Rhino3D犀牛中文网

标题: 【Rhino6.0】使用GhPython编译器创建Grasshopper组件01 [打印本页]

作者: 筑梦NARUTO    时间: 2018-10-28 00:07
标题: 【Rhino6.0】使用GhPython编译器创建Grasshopper组件01
Rhino6中Ghpython电池被内置于Grasshopper中,最明显的优势有两个
1:运行速度变快
2:使用Ghpython电池创建的GH组建很难被反编译。

1:我们在Math标签下找到Ghpython电池,基本上和Rhino5里的Ghpython电池差不多,这里就不细讲了。
(, 下载次数: 169)

2:这次我们的案例山寨一下袋鼠插件里的interconnectPoints电池,所以我们需要把Python电池的数据类修改为Pooint3d,数据结构修改为List。如图

(, 下载次数: 177)


3:双击打开Ghpython编译器,这时候可以看见如图,会有些参数的介绍和作者和导入的rs模块等等信息。

(, 下载次数: 158)


4:我们开始写代码和加一些参数注释,这时候我们可以直接在Ghpython电池上看见刚刚参数注释的内容。

(, 下载次数: 140)


(, 下载次数: 163)


5:这样我们的插件功能就写好了,我们来把电池制作成Grasshopper组建。

(, 下载次数: 198)


我们会看见我们的电池变了样子,如图(不过这转换的注释会掉的不全,需要做一些小调整


(, 下载次数: 147)


把注释和导入移动到前面,后面一句注释语句删掉,这样程序结构会清晰一些。刚刚不全的注释也回来了。

(, 下载次数: 178)


6:我们接下来需要制作图标(注意:图标必须为24X24的png文件),我们将画好的图片拖拽到Ghpython电池上就ok了,效果如图(我是随便放的图标,制作插件的时候还是应该认真做图标的)。

(, 下载次数: 159)


7:我们接下来开始编译电池,如果这个编译标签为灰色,需要删除out输出端。

(, 下载次数: 172)


8:(这里要特别说明一下,注释用中文,需要再最前面加#coding=utf-8)这里会弹出来一个窗口如图,方便我们进行一些细节设置,这里特别重要的是GUID,不能和已有的组件具有相同的GUID,一般不需要管。(和打包电池差不多,我们需要改一下名字和分类到那个标签下)
然后会出现保存的路径。这时候我们的插件就编译好了。
(, 下载次数: 166)

9:重启一下rhino我们就可以在我们对应的标签下找到刚刚编译好的插件了。如图。

(, 下载次数: 147)

(, 下载次数: 162)

(, 下载次数: 151)



这样我们的插件就制作好了,赶快来制作属于你自己的插件吧!



作者: Achilles    时间: 2018-10-28 12:35
请教一下,为什么我调用AutosaveInterval这个函数的时候总是会报错: 'type' object has no attribute 'AutosaveInterval',调用别的函数就没有这个提示?
作者: 筑梦NARUTO    时间: 2018-10-28 12:38
本帖最后由 筑梦NARUTO 于 2018-10-28 13:02 编辑
Achilles 发表于 2018-10-28 12:35
请教一下,为什么我调用AutosaveInterval这个函数的时候总是会报错: 'type' object has no attribute 'Aut ...

这个函数有些BUG,开发者把“AutoSaveInterval”这个属性中的Save小写了,所以会出现这个错误。我已经在论坛汇报这个问题了,你可以使用下面的代码作为临时代替,等待修复。
[AppleScript] 纯文本查看 复制代码
import rhinoscriptsyntax as rs
import Rhino
import System

def AutoSaveInterval(minutes=None):
    rc = Rhino.ApplicationSettings.FileSettings.AutoSaveInterval.TotalMinutes
    if minutes:
        timespan = System.TimeSpan.FromMinutes(minutes)
        Rhino.ApplicationSettings.FileSettings.AutoSaveInterval = timespan
    return rc

minutes = AutoSaveInterval()

if minutes<30:
    AutoSaveInterval(30)






作者: 邱继衠    时间: 2018-11-2 10:19
筑梦NARUTO 发表于 2018-10-28 12:38
这个函数有些BUG,开发者把“AutoSaveInterval”这个属性中的Save小写了,所以会出现这个错误。我已经在论 ...

学习了,拖icon这招真是骚操作啊!!




欢迎光临 Rhino3D犀牛中文网 (https://www.rhino3d.asia/) Powered by Discuz! X3.3