本期我们来聊一聊GH方与Python的事儿。
关于GH提问:
设置物体的用户文本。健就是key,,给key赋值后,在gh里如何获得这个用户文本的健值?
Jorin版主回答:
Grasshopper 里面没有电池能够直接读取,但是GH 也是支持 python的,你可以在GH里用脚本读取。
假如我有个几何体,我在上面写入了一组键值对,“length” 对应的是”300″:
但是需要注意的是,在 GH 中用 GHpython 读取的时候,要把数据输入类型设置为 GUID ,还要在代码中把当前的文档设置为 Rhino 文档,通过引用把集合体拿到 GH 以后,GH 文档拿进来的只是几何体,没有把 UserData 拿进来,UserData 是记录而在 RhinoDoc 里面的。GH 默认是 ghdoc ,里面没有你在 Rhino 里面写好的 UserData。通过上下两个电池的对比就可以看出区别了:
获取完键值对以后,记得像上面那个电池最后一行这样把文档切换回 ghdoc ,不然之后用 ghpython 写的几何体全部都跑到 Rhino 文档里面去了,哪怕重启 Rhino 和 GH 以及换个 ghpython 电池,也会跑到 Rhino 里面去。
GH每次复制就卡住了 然后出现这个截面 请问应该如何设置? 这是GH的Bug吗?
Jorin版主回答:
这个问题实际上并不是GH的bug ,而是金山词霸、有道词典或是搜狗输入法等占用了剪贴板,导致 GH 无法在剪贴板写入文件造成的。
GH的Bake可选Display,假设我Display选择框线模式Bake进Rhino之后,不管Rhino改变成其他显示模式,刚刚Bake出来的模型永远就是会以框架模式显示。
想请教各位,此功能有没办法不透过GH直接在Rhino设定吗?
筑梦NARUTO版主回答:
请尝试这个SetObjectDisplayMode指令,单独给一个物件设置显示模式。
假如有很多的多段线和各种半径的圆,现在想把多段线和该多段线内的圆孔批量成组,我只想到多段线和只有一种半径的圆的方法,请各位指教一下
筑梦NARUTO版主回答:
其实你的程序都写得差不多了,可能是你对GH还不熟悉,可以直接bake的。
关于Python提问:
在python脚本里调用rs.command,是如何选取之前定义的变量?
Jorin版主回答:
按照问题的描述,下面这样写就能达到要求(选取物件后将物件向X方向移动一个单位。):
但实际上这样的脚本是没有任何意义的,都已经要用脚本来解决问题了,最好调用现成的函数来实现,调用 rs.Command 是下下策,不到万不得已,最好不要用直接调用 Rhino 的指令。
完!