幾乎所有 Rhino 的指令都可以使用指令巨集執行,指令巨集可以由指令行輸入、工具列按鈕、快速鍵、指令別名、以 ReadCommandFile 指令或將指令巨集以 Paste 指令貼上至 Rhino 的指令行執行。
編寫指令巨集就像是在指令行輸入一連串的指令一樣。
特殊字元 |
在巨集裡的意思 |
空格 |
巨集裡的空格就像按 Enter 鍵一樣。 在編寫包含空格的名稱 (或文字串) 時,您需要使用雙引號將內容含括以避免破壞指令。 例如: _-SelName "Table 01" ✔ _-SelName Table 01 ✘ |
* |
可以連續執行指令,不用按 Enter 重複啟動指令。 |
! |
中止前一個指令。 將驚嘆號 (!) 置於指令巨集的開頭可以中止任何正在執行中的指令,放在其它位置可以中止指令巨集,必要時也可以放在指令巨集的結尾。 |
- |
隱藏對話框 基本上,Rhino 的所有指令幾乎都可以在指令行以指令巨集執行,即使是會彈出對話框的指令也可以。在指令名稱前加上連字號 (-) 可以抑制指令彈出對話框,改以指令行選項執行。有一些指令(例如 DevLoft) 僅在指令行有可用的選項。 |
_ |
以英文執行指令和選項。 Rhino 有多種語言版本,指令和選項在不同語言中的翻譯方式不同,為了使指令巨集在全球皆可使用,我們建議使用英文編寫指令巨集,並在每個指令和選項前加入底線。 例如: Cerchio 3Punti 0,0,0 1,1,0 0,3,0 ❗ 此指令巨集僅適用於義大利版的 Rhino。
_Circle _3Point 0,0,0 1,1,0 0,3,0 ✔ 此指令巨集可適用於所有語言版本的 Rhino。
|
' |
下一個執行的是可以巢狀執行的指令,所謂的巢狀執行是指一個指令執行中可以插入另外一個指令,插入的指令完成後再繼續執行原來的指令。 視圖、工作平面操作及物件鎖點指令是可以巢狀執行的指令,建立幾何圖形的指令則不行。 單次使用的物件鎖點及選取次物件過濾器本身就可以巢狀執行,不需要再加上單引號。 |
\ |
如果工具列按鈕的指令巨集的最後一個字元是 "\",該指令巨集結束時不會自動輸入 Enter。 例如: 使用指令巨集 "5\" 建立一個工具列按鈕,點擊該按鈕會在指令行中輸入 5 並在此停止以便進一步輸入。此功能可用於建立類似螢幕上的數字鍵盤按鈕。
|
~ |
不顯示指令選項,但指令巨集中設定的選項仍然可以正確執行。 |
; (分號) |
註解。 指令巨集中以分號開始的行並不是巨集的一部分,但可以讓您在巨集裡做註解。 例如: ; 此為測試巨集 |
:: (雙冒號) |
巢狀圖層由圖層名稱之間的雙冒號 "::" 表示。在 -Layer 指令中,使用以下指令巨集在圖層 01 之下加入一個新的圖層: ! _-Layer New "Layer 01:: New Layer" Enter |
# (井號) |
開啟在 # 後面指令的建構歷史。 例如:#ArcBlend |
% (百分號) |
停用在 % 後面指令的建構歷史。 例如:%ArcBlend |
這個指令巨集可以建立一個中心點座標 5,5,半徑 10 的圓:
! _-Circle 5,5 10
指令巨集中的空格就如同您在指令行輸入時按下 Enter。
這個指令巨集可以確定在啟動 Move 指令時沒有任何物件被選取,在 Move 指令啟動後會再要求選取要移動的物件。
! _SelNone _Move
這個指令巨集會要求建立三個點物件,然後建立通過這些點物件的曲線。
! _SelAll _Points _Pause _Pause _Pause _Enter _Invert _CurveThroughPt _EnterEnd
這個指令巨集如何作業:
! _SelAll |
取消正在執行中的指令,然後選取模型中的所有物件。 |
_Points |
執行 Points 指令。 |
_Pause _Pause _Pause |
等待指定三個點,建立三個點物件。 |
_Enter |
模擬按下 Enter 結束建立點物件。 |
_Invert |
反選選取集合,在這個指令巨集開始的時候已經選取了模型中的所有物件,反選以後只剩下新建立的點物件會處於選取狀態下。 |
_CurveThroughPt |
建立一條通過所有點物件的曲線。 |
_Enter |
結束指令。 |
! -_Rebuild _Pause _Points=10 _Degree=3 _Enter
選取一條曲線,然後執行這個指令巨集,自動將曲線重建為 3 階 10 個控制點的曲線,並不會彈出重建曲線對話框。
Pause |
暫停指令巨集等待使用者輸入。 範例: ! _Circle _Pause 50 這個指令巨集會要求您指定圓的中心點,然後繼續完成指令碼,建立一個半徑為 50 單位的圓。 |
MultiPause |
停止指令碼,等待多次選取,例如 Join、Polyline、FilletEdge。 |
Enter |
在指令巨集中模擬按下 Enter。 這個指令並不會像平常的時候按下 Enter 會重複執行上一個指令。 |
EnterEnd |
結束指令。 |
SetRedrawOff |
在指令巨集執行過程中暫停畫面重繪。 |
SetRedrawOn |
在使用 SetRedrawOff 指令之後再次開啟畫面重繪。 |
NoEcho |
使指令巨集不在指令視窗顯示提示與訊息。 |
Echo |
允許指令巨集在指令視窗顯示提示與訊息。 |
如果您不知道如何編寫指令巨集,可以執行有連字號版本的指令,將指令歷史視窗中的指令流程複製到指令巨集裡。
工具列 | 功能表 | 面板齒輪功能表 |
---|---|---|
|
工具 指令 > 巨集編輯器 面板 巨集編輯器 |
巨集編輯器 |
MacroEditor 指令可開啟編寫或測試指令巨集的編輯視窗。
巨集編輯器面板
工具列 | 功能表 |
---|---|
|
工具 指令 > 從檔案讀取 |
ReadCommandFile 指令可從文字檔案讀取指令巨集並執行。
將以下的指令巨集範例複製到文字檔裡,然後使用 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
......
工具列 | 功能表 |
---|---|
|
|
NoEcho 指令可停止指令巨集在指令視窗顯示提示與訊息。
NoEcho 或 _NoEcho 必須是巨集中的第一個單字才能正常工作。包括驚嘆號在內的所有內容都應由一個空格分隔。
工具列 | 功能表 |
---|---|
|
|
工具列巨集或指令碼裡可以使用 Enter 指令摸擬按 Enter 的功能。
這個指令巨集讓您以指定三個點的方式設定工作平面:
'_CPlane _3Point
_Pause _Pause _Pause _Enter
這裡的 Enter 指令並不會像平常的時候按下 Enter 鍵會重複執行上一個指令。
工具列 | 功能表 |
---|---|
|
|
工具列巨集或指令碼裡可以使用 EnterEnd 指令摸擬連按數次 Enter 結束巨集或指令碼。
EnterEnd 與 Enter 指令不同之處是它在有許多層提示的指令 (例如:-Options 與 -DocumentProperties 指令),不管位於哪一層提示,使用 EnterEnd 指令可直接結束指令。
! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01
像這個指令巨集必需在結尾加上兩個 Enter 指令才能結束,使用 EnterEnd 指令只要加上一個即可直接結束。
! _-DocumentProperties _Mesh _Custom _MaxEdgeSrf .01 _EnterEnd
工具列 | 功能表 |
---|---|
|
|
Pause 指令可暫停指令巨集等待使用者輸入。
這個指令巨集會要求您指定圓的中心點,然後繼續完成指令碼,建立一個半徑為 50 單位的圓。
! _Circle _Pause 50
RhinoScript 是用來執行指令碼的外掛程式,指令碼可以使用迴圈、變數....將重複性的作業自動化。
相關指令:
.rvb 檔案拖放到 Rhino 視窗可以自動載入指令碼。
更多與 Rhino.Python 相關的指令碼資訊請參考:http://wiki.mcneel.com/rhino/basicmacros
工具列 | 功能表 |
---|---|
|
工具功能表 Rhino Script > 載入 |
LoadScript 指令可將指令碼檔案 .rvb 載入到 Rhino 等待執行。
.rvb 檔案拖放到 Rhino 視窗可以自動載入指令碼。
RhinoScript 程式設計的線上說明:http://developer.rhino3d.com/guides/rhinoscript/
工具列 | 功能表 |
---|---|
|
工具功能表 Rhino Script > 執行 |
RunScript 指令可執行已載入的指令碼。
.rvb 檔案拖放到 Rhino 視窗可以自動載入指令碼。
工具列 | 功能表 |
---|---|
工具 Rhino Script > 編輯 |
EditScript 指令可開啟 RhinoScript 檔案的編輯程式。
工具列 | 功能表 |
---|---|
|
工具 Python Script > 執行 |
PythonScript 指令可執行 Python 指令碼。
Rhino.Python 程式設計的線上說明:http://developer.rhino3d.com/guides/rhinopython/
使 Python 引擎重新初始化。
工具列 | 功能表 |
---|---|
|
工具 Python Script > 編輯 |
EditPythonScript 指令可編輯 Python 指令碼。
更多與 Rhino.Python 相關的指令碼資訊請參考:http://wiki.mcneel.com/developer/python。
Rhinoceros 7 © 2010-2022 Robert McNeel & Associates. 06-七月-2022