利用ChatGPT为Rhino软件编写新功能——一种脚本插件思路的拓展

108|57评论|10719人气|97收藏|2023-06-05 16:38:25

      Rhino是工业设计师必不可缺的常用软件,很多时候我们需要用到很多插件,但是只能下载别人打包封装好的插件,或者在别的软件上用到的比较好的功能,想移植到Rhino上就比较困难,毕竟我们大部分设计师并不会直接写代码,OPENAI强大的代码生成能力就可以解决这一问题。

    举个例子,在Blender软件中,有个很好用的功能,可以随机对的视图中的物体进行着色,这样场景里物体材质分类就一清二楚,但是Rhino中没有这个功能。

    有时我们在收到客户或者结构工程师给的STP文件时,里面的零部件往往非常多且杂,如果没有颜色上的分层分类操作起来往往需要很久的整理时间,比如下面RC车零件。

那么我们整理一下用犀牛python脚本写个随机分层步骤:


首先,使用SelectedObjects()函数获取当前选中的对象。

然后,使用Python内置的random库生成一个随机的RGB颜色值(范围为0-255)。

接着,使用CreateColor()函数将RGB颜色值转换为Rhino软件可以识别的颜色对象。

然后,使用ObjectColor()函数将颜色对象应用到选中的物体上,从而改变它们的颜色。

最后,用循环算法将以上步骤循环遍历一遍即可。


我们直接启动ChatGPT,输入上述我们整理的咒语,等待魔法生效

魔法生效很快,接着我们打开Rhino,在标题栏空白处右击“新增按钮”,为我们设想的功能开发一个按钮。

再给我们的功能画个漂亮的UI图标,用SKD举个栗子。

最后我们来看一下实际使用效果

速度还是很快的,效果还是很不错的,当然只是作为一种利用CHATGPT的思路,熟练运用脑洞大开,我们可以把很多常用的快捷键组合在一起,提高我们软件使用效率。

以上小插件有需要的同学关注私信留言,下期再会。



赞赏

小小心意,大大鼓励

97收藏文章 108赞起来+1

时珂设计

数码智能 · 上海市 长宁区 中山公园

热门文章

禅宗与现代艺术

37赞  9评论  4239人气

小米产品设计风格的百年溯源

72赞  22评论  11234人气

留言板(57

添加表情
登录后评论 添加图片
    最新 最热
    KIDOOR 2023-06-25
    举报 回复 1

    6,一键建模指日可待

    红豆泥 2023-06-19
    举报 收起回复

    单走一个6

    时珂设计 作者 2023-06-19
    举报 回复
    我也说一句
    花生 2023-06-19
    举报 收起回复

    犀牛着色模式分色感觉没啥用啊,不过这种增加新功能还是挺有意思的

    时珂设计 作者 2023-06-19
    举报 回复 1
    看评论区下面,着色模式下,非渲染模式
    我也说一句
    2023-06-08
    举报 回复 1

    变成着色模式随机上色

    Hoyo 2023-06-08
    举报 收起回复

    时珂设计 作者 2023-06-08
    举报 回复
    我也说一句
    SUIXINSUOYI 2023-06-08
    举报 回复

    不错

    Hoyo 2023-06-08
    举报 收起回复 2

    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)

    大白胖嘟嘟 2023-06-08
    举报 回复
    一执行命令,就弹出导入文件窗口
    Hoyo 2023-06-08
    举报 回复
    回复 大白胖嘟嘟: 1. 工具-pyhon脚本-编辑-新建空脚本-删除全部复制上面的过去-保持脚本
    2. 去新建按钮,代码框里输入 RunPythonsc-ript "脚本保存的路径后面加上 \脚本的名称(包括后缀)" ,保存使用
    Hoyo 2023-06-08
    举报 回复
    回复 大白胖嘟嘟: 第二步RunPythonsc-ript 删掉“ - ”
    Hoyo 2023-06-08
    举报 回复
    回复 大白胖嘟嘟: 还是读取不了路径就直接指令RunPythonsc-ript,然后手动浏览选择
    我也说一句
    Bumblebee 2023-06-08
    举报 收起回复

    好用

    时珂设计 作者 2023-06-08
    举报 回复
    共同进步
    我也说一句
    2023-06-07
    举报 收起回复

    Rhino软件中如何正确设置了Python环境并导入了必要的库?这个怎么弄?

    时珂设计 作者 2023-06-07
    举报 回复
    不用设置导入,Rhino中自带的
    2023-06-08
    举报 回复
    回复 时珂设计 作者 : 我失败了
    直接是你百度云分享的文档复制粘贴
    时珂设计 作者 2023-06-08
    举报 回复
    回复 : 显示什么错误?
    2023-06-08
    举报 回复
    回复 时珂设计 作者 : 刚刚又试了一下。是着色模式随机颜色,在渲染模式是没颜色的,
    大白胖嘟嘟 2023-06-10
    举报 回复
    回复 : 我的也是这样,还没找到原因
    我也说一句
    白作 2023-06-06
    举报 回复 1

    老幺 2023-06-06
    举报 收起回复

    这原理能否做成一键创建图层并且赋予图层?

    时珂设计 作者 2023-06-06
    举报 回复
    这个功能按理不用python,直接用巨集编辑器就可以实现,将多个操作集成在一个巨集里面,或者你将你的需求再详细描述下,我抽空尝试下
    老幺 2023-06-07
    举报 回复
    回复 时珂设计 作者 : 按你的方法用gpt实现了,一键创建规定数量不同颜色的图层,然后再自动赋予选中的物件
    廿八 2023-06-07
    举报 回复
    回复 老幺: 代码发一下大佬
    老幺 2023-06-07
    举报 回复 1
    回复 廿八: 工具-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
    时珂设计 作者 2023-06-07
    举报 回复
    奈斯
    廿八 2023-06-21
    举报 回复
    回复 老幺: 谢谢大佬
    我也说一句
    Nj 2023-06-06
    举报 收起回复

    复制了不行啊老哥

    时珂设计 作者 2023-06-06
    举报 回复
    链接:https://pan.baidu.com/s/1XjuUUw7ENJ9hNuTppnN6og 提取码:30t4 我把源文件上传到网盘了,下面的哥们已经成功了,你试下。
    莫名 2023-06-10
    举报 回复
    就复制这个网盘的文件有用,其他都没用
    时珂设计 作者 2023-06-10
    举报 回复
    回复 莫名: 因为复制的其他文件被普象自动加了其他符号
    design1529 2023-07-21
    举报 回复 1
    回复 时珂设计 作者 : 你好,链接失效了,麻烦再分享下呀,谢谢!
    我也说一句
    小筑听泉 2023-06-06
    举报 收起回复

    求插件求插件

    时珂设计 作者 2023-06-06
    举报 回复
    看楼上回复
    我也说一句
    mediocrity 2023-06-06
    举报 收起回复 1

    求插件

    mediocrity 2023-06-06
    举报 回复
    好的
    我看看咋用
    mediocrity 2023-06-06
    举报 回复
    用不了啊大佬
    时珂设计 作者 2023-06-06
    举报 回复
    回复 mediocrity: 是按照教程步骤来的吗?标题栏右键新建按钮,将代码复制进去命名下就行了。
    mediocrity 2023-06-06
    举报 回复
    回复 时珂设计 作者 : 对是按照教程步骤来的 然后复制大佬给我发的代码复制进去用不了
    时珂设计 作者 2023-06-06
    举报 回复
    回复 mediocrity: -runpythonsc-ript (

    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)

    )
    时珂设计 作者 2023-06-06
    举报 回复
    回复 mediocrity: 不知道普象回复为何自动加了个-,在第一行把ript前面那个-去掉即可
    mediocrity 2023-06-06
    举报 回复
    回复 时珂设计 作者 : 好的 我再试试
    时珂设计 作者 2023-06-06
    举报 回复
    回复 mediocrity: 私信发你了
    大壮爱宠物 2023-06-21
    举报 回复
    回复 时珂设计 作者 : 我照着所有的评论看了一遍就是没用
    我也说一句
    mediocrity 2023-06-06
    举报 回复

    求啊

    你可能还喜欢 换一换

    收藏
    创建收藏夹

    创建收藏夹

    收藏夹名称
    确定

    举报评论

    恶意辱骂,诋毁
    垃圾广告信息
    黄赌毒,诈骗信息
    政治敏感问题
    其他原因
    提交
    留言 点赞 收藏 分享

    时珂设计

    小小心意,大大鼓励

    赞赏金额

    ¥ 1
    ¥ 5
    ¥ 10
    ¥ 50
    ¥ 100
    其他

    赞赏金额

    微信
    支付宝
    确认支付

    最高赞赏200元

    支付宝支付

    使用支付宝扫描二维码完成支付

    微信支付

    使用微信扫描二维码完成支付

    余额支付

    当前余额:¥0.00

    支付操作会向你普象账户的注册手机号发送验证码
    请注意查收

    发送验证码
    确认支付
    支付成功
    关闭