指令巨集可以包含指令、特殊字元、DIESEL 表示式或 AutoLISP 程式碼。
您可以在「自訂使用者介面編輯器」(Windows) 或「自訂」對話方塊 (Mac OS) 中修改指令的「巨集」性質,在定義巨集之後將其指派給指令。
巨集可定義在使用使用者介面元素時應執行的動作。它可以像指令一樣簡單 (例如 circle),也可以包括特殊字元 (例如 ^C^C)。
例如,巨集 ^C^C_.circle\1 可繪製半徑為 1 個單位的圓。下表說明定義此巨集的元件。
CIRCLE 巨集中的元件 |
||
---|---|---|
元件 |
元件類型 |
結果 |
^C^C |
特殊控制字元序列 |
類似於按 Esc 鍵兩次的序列。 |
_ |
特殊控制字元 |
指示後續令應使用整體指令名稱,而非本土化的指令名稱。 |
. |
特殊控制字元 |
指示後續指令應使用指令的標準定義,而非可能存在的已重新定義指令。 |
CIRCLE |
指令 |
啟動 CIRCLE 指令。 |
特殊字元 |
空間類似於在使用指令的同時按下空格鍵。 |
|
\ |
特殊控制字元 |
暫停以進行使用者輸入;在此範例中,這是為了取得圓的中心點所進行的暫停。 |
1 |
特殊控制字元 |
回應圓半徑的提示;在此範例中,這是單位 1。 |
按一下使用者介面中的按鈕時,所指定的巨集會在目前程式的介面環境中執行。這表示巨集會嘗試回應目前的提示。如果您要確保當執行巨集時沒有任何指令處於作用中狀態,請以 ^C 指令序列為字首加在巨集之前。雖然一個 ^C 可取消多數指令,但從標註指令返回至指令提示需要輸入 ^C^C,根據 -LAYER 指令的目前選項則需要輸入 ^C^C^C。^C^C 可處理多數指令序列的取消,這也是建議使用的序列。
巨集中的每個字元都是有意義的,即便空格也有意義。當您在巨集結尾放置空格時,此動作會被解釋為您已按空格鍵或 Enter 以完成該指令。
作為 AutoCAD 或 AutoCAD 系列產品一部分的指令字首應具有英文句號字元 (.)。句點字元允許使用標準指令,即使其尚未使用 UNDEFINE 指令進行定義。當您在其他共用相同自訂 (CUI/CUIx) 檔的電腦上使用巨集時,此預防措施可讓巨集更易於預測。
當您第一次建立巨集時,您通常會在熟悉的語言中使用指令名稱和選項值建立該巨集。每個指令和選項都有本端和全域名稱,使您可以在 AutoCAD 支援的所有不同語言中使用巨集。即使是非英文的支援,您也不需要進行過多的額外作業,只要在每個指令或選項前方加上底線字元 (_) 即可。對於 AutoCAD 而言,底線字元表示指令名稱或選項值應於執行之前進行轉譯。
單一物件選取模式會取消編輯指令中「選取物件」提示的正常重複。在選取一個物件和回應任何其他提示後,指令將結束。
請考慮以下範例中的巨集:
^C^C._erase single
此巨集會終止目前的指令,並以單一物件選取模式啟動 ERASE 指令。啟動巨集之後,您可以選取物件,或按一下圖面中的空白區域,然後指定視窗/框選。使用這些方法選取的所有物件均會被刪除。
一旦建立了巨集,在繼續使用其他指令之前,您可能還想重複使用該巨集數次。在巨集中,您可以使用前導星號 (*) 指示重複指令,直到您按 Esc 或啟動其他以 ^C 開始的巨集為止。
以下範例中的巨集可重複指令:
*^C^C._move Single *^C^C._copy Single *^C^C._erase Single *^C^C._stretch Single Crossing *^C^C._rotate Single *^C^C._scale Single
某些巨集需要特殊終止符號。例如,TEXT 指令需要您按 Enter 而不是按空格鍵來終止指令,而某些指令需要按數次空格鍵或 Enter 才能完成。
有兩種特殊慣例可解決這些問題。
比較下列巨集:
ucs ucs ;
第一個範例中啟動 UCS 指令,且由於該行以空格結束,因此會模擬按空格鍵的動作。將顯示下列提示:
指定 UCS 的原點或 [面(F)/具名(NA)/物件(OB)/前一個(P)/視圖(V)/世界(W)/X/Y/Z/Z 軸(ZA)] <世界>:
第二個範例啟動 UCS 指令,模擬按空格鍵的動作,然後模擬按 Enter 的動作以接受預設值 (世界)。
巨集中的字元會顯示在指令提示中,就像您已在鍵盤上鍵入了字元一樣。此重複顯示稱為「回應」。您可以抑制巨集回應與 MENUECHO 系統變數。如果已打開項目輸入的回應與提示,巨集之前的 ^P 會暫時將其關閉。您也可以使用巨集中的 ^Q 以抑制所有來自指令行歷程提示和輸入的顯示。