我想要用python实现在gh中更改曲面的控制点位置。看了rhinocommon的文档,刚开始我的思路是
:先打开曲面的控制点用Rhino.DocObjects.RhinoObject.EnableCustomGrips()命令,然后再用Rhino.DocObjects.RhinoObject.GetGrips()得到gripobject,然后再用Rhino.DocObjects.GripObject.Move()来移动曲面控制点到目标点上实现最初的更改曲面控制点的目标。
然而第一步我就卡在了我输入的是一个surface,但是enablecustomgrips期待得到的是一个Rhinoobject。苦思冥想试了一天也没想到怎么将surface转成rhinoobject.
最后还是通过nurbssurface.points.setpoint()最后实现了最开始的目标。但是怎么将surface转成rhinoobject还让我困惑,高手们知道的能解答下疑问吗????跪谢!!
或者说怎样创建一个rhinoobject呢,然后再用rhinoobject.enablecustomgrips()
你这个问题描述的不是很清楚。你可以查看一下RhinoObject类的帮助文档。
你要创建RhinoObject类型必须物体要在犀牛视窗中显示,才有办法通过 RhinoDoc.找到那个 rhinoobject。
所以说你的问题有两个答案。
1:如果你的Surface类型只是在代码中生成的几何体,还没创建到犀牛视窗,就不能把Surface类型转化成rhinoobject类型。
2:如果已经在犀牛视窗中有曲面了。就可以通过下面的代码找到那个 rhinoobject。
import Rhino.RhinoDoc as rd
obj = rd.ActiveDoc.Objects.FindId(id)
print type(obj)
感谢感谢,明白了,我是在ghpython里写的代码所以这个surface还没在犀牛视窗里创建出来,只是在ghpy里,所以用不了rhinodoc.最终我用的nurbssurface.points.setpoint()实现了调节曲面控制点的目标😂也算是条条大路通罗马吧。感谢感谢!