本帖最后由 筑梦NARUTO 于 2015-7-11 11:27 编辑
今天介绍下如何用GhPython电池制作自己的插件(案例用偏移曲面成实体),用vs写自己的gha插件过两天介绍。
插件的完成效果:
制作过程
一:先写代码 先说说为啥不用rs.OffsetSurface(),因为rs.OffsetSurface()函数有个小小的bug,rs.OffsetSurface()函数不能偏移修建过的曲面(如图),所以我们不用rs.OffsetSurface()函数。
查阅rhinocommonSDK帮助手册,在brep类下有个CreateFromOffsetFace方法。利用这个方法就可以偏移曲面成实体了。
源码:(代码就不讲了,如果看不懂的可以回复)
[mw_shl_code=applescript,true]def off(srf,dis,ofler,bothSides,createSolid):
if (not srf) :return
face = [i.Faces[0] for i in srf]
brep = [srf[0].CreateFromOffsetFace(i,dis,ofler,bothSides,createSolid) for i in face]
return brep
brep=off(srfs,dis,ofler,bothSides,createSolid)[/mw_shl_code]
在写代码的时候可以右键输入一些默认参数(如图)。
二:加入插件的信息
[mw_shl_code=applescript,true]#********************************************************************************************#
#********* 偏移曲面多重曲面 **********************************************************#
#********* 作者:月之眼 ****************************************************************#
#********* 联系:naruto@n-dda.cn 编写时间:2015年7月 ***********************************************#
"""
偏移曲面多重曲面(与犀牛的曲面类似)
Input:
srfs: 需要偏移的曲面或者多重曲面
dis: 偏移的距离,默认的偏移距离为5
ofler: 偏移的公差
bothSides:是否向两边偏移
createSolid:是否偏移为实体
Output:
out:查看错误原因
brep:偏移成功的brep
"""
ghenv.Component.Name = "Solid brep offset"
ghenv.Component.NickName = "Sob"
ghenv.Component.Category = "n-dda"
ghenv.Component.SubCategory = "brep"
ghenv.Component.Message = "偏移曲面多重曲面成实体"
try: ghenv.Component.AdditionalHelpFromDocStrings = "1"
except: pass[/mw_shl_code]
1:最上面随意加入一些作者的信息。 2:中间加入插件的作用,input的参数和output的参数,这个就是在help里显示的内容。写好了之后每个参数端都会有对应的提示,和正式的gh电池就差不多了 3:最下面加入一些电池在创建cluster的一些信息,比如电池的名字,简称,在那个名字下等等
三:打包创建图标 最后把写好的电池打包创建成cluster就可以。这样就完成自己的插件创建。
最后的效果:
源文件下载:下载链接[/hide]
|