Rhino8的选取过虑器怎么能像rhino7那样用 巨集控制打开与关闭??

rhino8的选取过虑器怎么能像rhino7那样用 巨集控制打开与关闭??

-_SelectionFilter
_ShowDialog
enter
在rhino8中不起作用?


777

我们可以通过 Rhino 8 的容器来实现你要的功能:

  1. 创建包含选取过滤器的容器(指令:Containers

  1. 编写巨集(指令:MacroEditor

Noecho -_Containers _Show Z-SelectionFilter _Toggle _EnterEnd

Containers 前面要加上连字符(中划线) ‘-’ ,Z-SelectionFilter 是你上一步创建的容器名称。

切换过滤器显示

补充,Rhino 8 中 选取过滤器物件锁点 这两组工具 类型为面板


更多有关 Rhino 8 UI 相关的介绍请查阅 Rhino 8 更新介绍 | 界面布局 UI ,欢迎补充。

1 个赞

感谢 ansen老师
我还有一个疑问:
这样操作是可以实现选取过虑器巨集控制打开与关闭,但在rhino7里 用一个巨集 可以实现在选取过虑器
关闭即停用过虑器,打开选取过虑器即启前一次过虑器的设置。
在rhino8中上述巨集只能控制打开与关闭,能不能实现 关闭即停用过虑器;打开即启前一次过虑器的设置?
谢谢
附图rhino7的jif效果
222


rhino8 却来个 选择过滤器在多次失败的选择尝试后被禁用 这个要狂点多好次 是不是不够方便?

运行指令:-_SelectionFilter
里面有对应的选项,和之前的巨集缝合到一起,这个相信你自己能研究出来。

-_SelectionFilter _J=_no _d _Toggle _enterend
-_Containers _Show 0z-SelectionFilter _Toggle _enterend
555

老师好
这是我试了好久了,但感觉不对,达不到rhino7的那种操作,谢谢

_d _Toggle 这句是错的,选项值是 Yes 或者 No,而不是 Toggle. 我个人写 Macro 会把全称写出来,这样可读性比较好,如果你经常要编写 Macro,建议切换到英文版界面,找选项值会比较直观。

正确的写法应该是:
NoEcho '-_SelectionFilter _DisableFilter=_Yes _Enter '-_Containers _Show Z-SelectionFilter _Toggle _EnterEnd

但是这个方法治标不治本,因为无论是否显示过滤器容器,选择过滤器的状态要么是激活,要么是停用。

所以需要借助脚本来完成,请复制到 Rhino 按钮编辑器中执行测试。

NoEcho -_RunPythonScript (
#coding:utf-8
import rhinoscriptsyntax as rs
import Rhino
Rhino.ApplicationSettings.SelectionFilterSettings.Enabled = not(Rhino.ApplicationSettings.SelectionFilterSettings.Enabled)
if Rhino.ApplicationSettings.SelectionFilterSettings.Enabled:
    rs.Command("NoEcho '-_Containers _Show Z-SelectionFilter _Show _Enter")#如果激活过滤器,则显示"Z-SelectionFilter"容器面板
else:
    rs.Command("NoEcho '-_Containers _Show Z-SelectionFilter _Hide _Enter")#如果激活过滤器,则隐藏"Z-SelectionFilter"容器面板
)

切换过滤器显示-脚本4

依然有缺陷(主要是我没有也不想去仔细深究这个问题):

  1. 手动关闭这个容器并不会停用过滤器,我没有去研究侦测窗口动作
  2. 并非巢状指令,即在运行 Rhino 中其他指令时(例如画线途中),运行该脚本会打断正在运行的指令。
  3. 可能还有其他问题

总之不是很完美的解决方案。

就我个人而言不会纠结这些细枝末节的问题,就是鼠标点击一下的动作而已, Rhino 8 和之前版本操作上有很多细节差异,应该拥抱变化才能节约时间。

这个帖子到此为止吧,不要跟贴啦,当然如果有用户想到很好的方案欢迎补充呀~ :stuck_out_tongue_winking_eye:

另外温馨提示下,你发的贴子可读性挺差的,你要想让别人理解你的问题你应该编辑仔细点,说清楚你的问题,别人理解起来不会很费劲,这节省的是你自己的时间。

1 个赞