Rhino 指令码
几乎所有 Rhino 的指令都可以指令码执行,指令码可以由指令行输入、工具列按钮、快捷键
、指令别名
、以 ReadCommandFile
指令或将指令码以 Paste
指令粘贴到 Rhino 的指令行执行。
编写指令码
编写指令码就像是在指令行输入一连串的指令一样,指令码文字之间的空格或跳行代表按指令行按下 Enter
键。
特殊字节
字节 |
在指令码中的意义 |
! |
指令码以惊叹号接着一个空格做为开头可以取消任何目前正在执行中的指令,放在其它位置可以终止本指令码,必要时也可以将其放在指令码的结尾。 |
_ |
Rhino 有数种语言的版本,非英文版本的指令、提示、指令选项、对话框、菜单….可能会被翻译成不同的语言,英文指令无法在这些语言版本中执行。 为了让在以英文编写的指令码可以在任何语言版本的 Rhino 中执行,指令码必需强制 Rhino 使用英文的指令名称。 例如:以下的指令码在英文版的 Rhino 4.0 可以正确地执行。 Circle 3Point 0,0,0 1,1,0 0,3,0 但在法文版的 Rhino 4.0 无法执行,为了避免这个问题,必需将指令码修改如下: _Circle _3Point 0,0,0 1,1,0 0,3,0 以英文指令编写的指令码必需在每一个指令名称及选项之前加上底线,该指令码才可以在各种语言版本的 Rhino 中执行。 |
- |
几乎所有指令 ( 即使是会弹出对话框的指令 ) 都可以在指令行以指令码执行,在指令名称前加上连字号,可以强制该指令不弹出对话框,而纯以指令行选项执行。 |
‘ |
视图、工作平面操作及物件锁点指令是可以嵌套执行的指令,建立几何图形的指令则不行。 单次使用的物件锁点 |
\ |
如果工具例指令码的第一个字节不是”!”,而最后一个字节是”\”,该指令码在结束时不会自动输入 Enter,以便继续输入更多信息。 这个功能可以让您将工具列按钮当做屏幕上的数字键盘按钮,以不同的按钮连续输入数个数字,而不会在按下一个按钮后指令行就跳到下一行。 |
; ( 分号 ) |
指令码中以分号开始的行并不是指令码的一部分,但可以让您在指令码里做注解。 范例: ; 这是一个测试用的巨集 |
范例
画一个圆
这个指令码可以建立一个中心点座标 5,5,半径 10 的圆:
! _-Circle 5,5 10
在指令码中的空格就如同您在指令行输入时按下 Enter
键,
取消选取所有物件再执行 Move 指令。
这个指令码可以确定在启动 Move
指令时没有任何物件被选取,在 Move 指令启动后会再要求您选取要移动的物件。
! _SelNone _Move
从文字文件中的点座标建立一条曲线。
这个指令码可以建立一些点物件,然后建立通过这些点物件的曲线。
! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _Enter
这个指令码如何作业:
! _SelAll |
取消正在执行中的指令,然后选取模型中的所有物件。 |
_Points |
执行 Points 指令,开始建立点物件。 |
_Pause x 3 |
等待指定三个点,建立三个点物件。 |
_Enter |
模拟按下 Enter 键,结束建立点物件。 |
_Invert |
反选选取集合,在这个指令码开始的时候已经选取了模型中的所有物件,反选以后只剩下新建立的点物件会处于选取状态下。 |
_CurveThroughPt |
建立一条通过三个点物件的曲线。 |
_Enter |
模拟按下 Enter 键,结束指令。 |
不使用对话框设置选
! -_Rebuild _Pause _Points=10 _Degree=3 _Enter
选取一条曲线,然后执行这个指令码,会自动将曲线重建为 3 阶 10 个控制点的曲线,并不会弹出重建曲线对话框。
如何测试这个指令码:
-
选取整个指令码。
-
按 Ctrl
+ C
将指令码复制到剪贴板。 -
在 Rhino 的指令行按一下,再按 Ctrl + V 将指令码粘贴。
特殊指令码指令
Pause |
暂停指令码,等待使用者输入。 范例: ! _Circle _Pause 50 这个指令码会要求您指定圆的中心点,然后继续完成指令码,画出一个半径为 50 单位的圆。 |
Enter |
在指令码中摸拟按下 Enter 键。 这个指令并不会像平常的时候按下 Enter 键会重复执行上一个指令。 |
SetRedrawOff |
在指令码执行过程中暂停画面重绘。 |
SetRedrawOn |
在使用 SetRedrawOff 指令之后再次打开画面重绘。 |
NoEcho |
关闭指令行的指令提示。 |
Echo |
打开指令行的指令提示。 |
附注
-
如果您不知道如何编写指令码,可以执行有连字号版本的指令,将指令历史视窗中的指令流程复制到指令码里。
打开编写或测试指令码的编辑视窗。
步骤:
-
在巨集编辑器视窗中输入指令。
-
按执行可以测示指令码。
-
按删除可以清除巨集编辑器里的所有文字。
附注
-
选取指令码的一部分再按执行,可以只执行选取的部分。
-
编辑视窗的右键快显菜单可以全选、复制、粘贴、删除、执行…。
公用工具 > 打开巨集编辑器
工具 > 指令集 > 巨集编辑器 相关主题… |
从文字文件中读取指令码并执行。
步骤:
-
在打开文字文件对话框中,选取要读取的文件。
-
文件的属性会被复制到指令行,就像您在指令行输入一连串的指令一样。
附注
-
建立指令文件时,可以使用 Enter
指令代表按下 Enter键。
-
如果您需要经常读取一个指令文件,可以将 ReadCommandFile 指令及指令文件的名称做为工具列按钮里的巨集。例如:
-
-readcommandfile myfile.txt
按下该按钮会自动读取设置的指令文件,如果未设置要读取的指令文件,您可以按下指令行的浏览选项,打开选择文件的对话框。
-
如果文件名称中有空格,必需在文件名称前后加上双引号。例如:
-
-readcommandfile “my file.txt”
范例:
将以下的指令码范例复制到文字文件里,然后使用 ReadCommandFile 指令读取该文字文件,一次建立数条曲线。
! _interpcrv
23,5,0
23.2,5,0
23.7,5.2,1
_enter
_interpcrv
26.1,4.9,1.1
26.8,4.9,1.0
27.1,4.8,0.9
_enter
……
工具 > 读取指令文件
工具 > 指令集 > 从文件读取 相关主题… |
暂停指令码,等待使用者输入。
范例:
这个指令码会要求您指定圆的中心点,然后继续完成指令码,画出一个半径为 50 单位的圆。
! _Circle _Pause 50
无
无 相关主题… |
这个指令的功能就如同按下 Enter 键,可以使用在指令码或工具列的巨集中。
范例:
这个指令码让您以指定三个点的方式设置工作平面:
‘_CPlane _3Point
_Pause _Pause _Pause _Enter
附注
-
这个指令并不会像平常的时候按下 Enter
键会重复执行上一个指令。
无
无 相关主题… |
打开指令行的指令提示。
无
无 相关主题… |
关闭指令行的指令提示。
无
无 相关主题… |
在指令码执行过程中打开画面重绘。
附注
-
在以 SetRedrawOff 指令关闭画面重绘后再次打开画面重绘。
查看 > 打开画面重绘 ( 右键 )
无 相关主题… |
在指令码执行过程中关闭画面重绘。
附注
-
在以 SetRedrawOn 指令打开画面重绘后再次关闭画面重绘。
查看 > 关闭画面重绘
无 相关主题… |
取消目前执行的指令与取消选取物件。
主要 1 > 取消
无
快捷键:Esc 相关主题… |
关闭 Rhino。
无
无 相关主题… |
从 Rhino 里执行其它程序。
步骤:
-
输入要执行的文件名称及路径。
无
无 相关主题… |
附加文字信息到物件。
附加的信息会以类似 Windows 登录文件的机码/数值的方式保存。
GetUserText
指令可以读取附加到物件的文字信息,.NET 插件程序和 VisualBasic Script 也可以写入这些文字信息。
.NET 和 VisualBasic Script 可以很容易地存取附加到物件的文字信息。
范例:
附加文字索引 = Weight
文字 = Kilograms
步骤:
-
选取 物件。
-
输入附加文字的索引。
-
输入附加的文字。
选项
附加至
物件
附加文字信息到物件的几何数据。
如果附加的文字信息和几何数据有关可以附加到几何数据。例如:一个圆的半径信息必需附加到几何数据,因为附加的半径信息在圆以控制点编辑或转换成 NURBS 曲线之后半径信息就无效了。
属性
附加文字信息到物件的属性。
如果附加的文字信息是较高阶的属性信息 ( 例如:颜色 ) 则应该被附加到物件的属性,属性信息在物件以控制点编辑、修剪、复制…之后并不会遗失。
无
无 相关主题… |
SetUserText
指令可以读取附加到物件的文字信息,.NET 插件程序和 VisualBasic Script 也可以读取这些信息。
步骤:
-
选取 物件。
-
输入索引或按 Enter
读取所有的索引。
无
无 相关主题… |