之前 @Jessesn 给的方案就是最佳方案了,你做个按钮,通过左右键来切换即可。
如果做成你说的那种可切换的功能,通过脚本是可以实现,但是对于这样一个小功能其实意义并不大。
Rhino中曲面属性的结构线显示与否是通过设置结构线密度值来实现的,当密度为-1,结构线就不显示,当>=0,显示结构线,但是如果深入了解你会发现,结构线密度为0和大于0其代表的意义是不同的,还有一种特殊的情况:对于挤出物件来讲,结构线密度值返回的是None,这里就不做展开讨论了,总之我觉得通过巨集来实现你要的功能是最适合的。
我写了一段脚本来实现比较基础的结构线显示与否的功能。
#coding=utf-8
import rhinoscriptsyntax as rs
Surfaces = rs.GetObjects("请选择曲面/多重曲面(可多选)", rs.filter.surface|rs.filter.polysurface, preselect=True)
for Surface in Surfaces:
#获取原曲面结构线密度
Original_Isocurve_Density = rs.SurfaceIsocurveDensity(Surface)
#通过判断原结构线密度开或者关闭结构线
if Original_Isocurve_Density < 0:
rs.SurfaceIsocurveDensity(Surface,1)
else:
rs.SurfaceIsocurveDensity(Surface,-1)
但是这里有个不完美的地方:如果你之前曲面结构线密度设置成了任意的整数来满足实际需求,例如8,那么通过隐藏,再显示,结构线密度会还原为脚本中我设置的1,无法记住你之前设置的8,如果要记住之前的,你又要花费时间完善脚本,所以“性价比”是很低的,只是放上来供你参考。
最后放到按钮中即可。