利用ChatGPT为Rhino软件编写新功能——一种脚本插件思路的拓展
Rhino是工业设计师必不可缺的常用软件,很多时候我们需要用到很多插件,但是只能下载别人打包封装好的插件,或者在别的软件上用到的比较好的功能,想移植到Rhino上就比较困难,毕竟我们大部分设计师并不会直接写代码,OPENAI强大的代码生成能力就可以解决这一问题。
举个例子,在Blender软件中,有个很好用的功能,可以随机对的视图中的物体进行着色,这样场景里物体材质分类就一清二楚,但是Rhino中没有这个功能。
有时我们在收到客户或者结构工程师给的STP文件时,里面的零部件往往非常多且杂,如果没有颜色上的分层分类操作起来往往需要很久的整理时间,比如下面RC车零件。
那么我们整理一下用犀牛python脚本写个随机分层步骤:
首先,使用SelectedObjects()函数获取当前选中的对象。
然后,使用Python内置的random库生成一个随机的RGB颜色值(范围为0-255)。
接着,使用CreateColor()函数将RGB颜色值转换为Rhino软件可以识别的颜色对象。
然后,使用ObjectColor()函数将颜色对象应用到选中的物体上,从而改变它们的颜色。
最后,用循环算法将以上步骤循环遍历一遍即可。
我们直接启动ChatGPT,输入上述我们整理的咒语,等待魔法生效
魔法生效很快,接着我们打开Rhino,在标题栏空白处右击“新增按钮”,为我们设想的功能开发一个按钮。
再给我们的功能画个漂亮的UI图标,用SKD举个栗子。
最后我们来看一下实际使用效果
速度还是很快的,效果还是很不错的,当然只是作为一种利用CHATGPT的思路,熟练运用脑洞大开,我们可以把很多常用的快捷键组合在一起,提高我们软件使用效率。
以上小插件有需要的同学关注私信留言,下期再会。
小小心意,大大鼓励
本文章版权归 时珂设计 所有,禁止匿名转载及个人使用,任何商业用途均需联系原作者。
举报
6,一键建模指日可待
单走一个6
犀牛着色模式分色感觉没啥用啊,不过这种增加新功能还是挺有意思的
变成着色模式随机上色
不错
Rhino 7用下面这个:
import rhinosc-riptsyntax as rs
import Rhino
import random
import System.Drawing.Color as Color
selected_objs = rs.SelectedObjects()
for obj in selected_objs:
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
color = Color.FromArgb(r, g, b)
rs.ObjectColor(obj, color)
2. 去新建按钮,代码框里输入 RunPythonsc-ript "脚本保存的路径后面加上 \脚本的名称(包括后缀)" ,保存使用
好用
Rhino软件中如何正确设置了Python环境并导入了必要的库?这个怎么弄?
直接是你百度云分享的文档复制粘贴
牛
这原理能否做成一键创建图层并且赋予图层?
# -*- coding: utf-8 -*-
import random
import rhinosc-riptsyntax as rs
# 创建20个图层,名字为 Layer0~Layer19,并随机赋予不同颜色
for i in range(20):
layer_name = "Layer" + str(i)
# 随机生成 RGB 颜色,并把值转换成整数
color = tuple(int(255 * random.random()) for _ in range(3))
rs.AddLayer(layer_name, (255, 255, 255))
rs.LayerColor(layer_name, color)
# 选择要分配到不同图层的物体
objects = rs.GetObjects("请选中要分配图层的对象:")
# 遍历每个物体并为其分配新图层
for i, obj in enumerate(objects):
layer_ind
复制了不行啊老哥
求插件求插件
求插件
我看看咋用
import rhinosc-riptsyntax as rs
import random
# 获取当前选中的所有物体
objs = rs.SelectedObjects()
# 遍历所有选中的物体
for obj in objs:
# 生成一个随机的RGB颜色值
rr = lambda: random.randint(0, 255)
color = rs.CreateColor(rr(), rr(), rr())
# 将随机颜色应用到当前物体上
rs.ObjectColor(obj, color)
)
求啊