有没有 快速隐藏结构线 的指令

有没有 切换 隐藏或显示结构线 的开关命令,就是如果曲面显示了结构线执行命令 就关闭结构线,如果关闭了就打开,我见到别人有写这个功能,不想每次都在属性里面勾选

自己写一个 Macor (宏) 即可,如何写 Macor 请参考下面这里的几个教学

! _-Properties _Pause _O _S _N _Enterend 隐藏结构线

! _-Properties _Pause _O _S _Y _Enterend 显示结构线

关键是 开关不会写,选到有结构线的关闭 选到没结构线的就打开,我只想 通过一个命令执行

CAD 里面的逻辑 就是通过获取 结构线变量 (if (= (GETVAR “结构线”)0) 打开 (/= (GETVAR “结构线”)0) 关闭) 很简单

Rhino 里面也是很简单,其实你已经写的差不多了,自己稍稍调试一下就可以了,我帮你修改了一下

! -Properties _pause _Visible=Yes _Object _ShowIsoCurves _No _Enter _Enter

你这个只能隐藏,开启不了

你没有发现只需要修改一个参数就可以吗?你有测试过我前面的回复?且对比过差别?

! -Properties _pause _Visible=Yes _Object _ShowIsoCurves _Yes _Enter _Enter

做成一个 开关 怎么写的,你这两句 是 两个功能

前面已经给过你答案,麻烦你查看我前面的回帖 -关于工具列中使用脚本与Macro

我说的 开关 是 一句话 ,能实现 开启 或 隐藏,大神能指点一下吗

抱歉不能,macro是宏,不可能在里面给你检测当前结构线是开还是关,也不可能给你再带一个if判断,

你可以参考前面的 工具列图标中使用脚本与Macro 教学,建立一个图标,分别给与左键与右键功能即可。

好吧! 谢谢大神

之前 @Jessen 给的方案就是最佳方案了,你做个按钮,通过左右键来切换即可。

如果做成你说的那种可切换的功能,通过脚本是可以实现,但是对于这样一个小功能其实意义并不大。

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,如果要记住之前的,你又要花费时间完善脚本,所以“性价比”是很低的,只是放上来供你参考。

最后放到按钮中即可。

1 个赞