關於指令巨集字串

指令巨集字串用於指示 AutoCAD 執行哪些指令和系統變數,以及指令提示下允許的任何預期輸入。指令巨集字串中也可以包括特殊字元、DIESEL 表示式和 AutoLISP 程式碼。

您可以建立自訂指令巨集字串,以便協助:

您可以使用下列項目定義和編輯指令巨集字串:

指令巨集字串基礎知識

指令巨集字串是以一系列有專用語法的指令,以及預期的選項與值定義,但與您在 AutoCAD 指令提示下輸入的內容類似。當您與程式的使用者介面 (例如功能區上的按一下按鈕或快顯功能表上的項目) 互動時,您就是在執行指令巨集字串。指令巨集的語法可以像單一指令名稱 (例如 CIRCLE) 一樣簡單,也可以包含特殊字元而更複雜 (例如 ^C^C_.circle \1)。

下面列出指令巨集字串中最常用的特殊字元:

註: AutoLISP 無法在 AutoCAD LT for Mac OS 中使用,ObjectARX 也無法在 AutoCAD LT for Windows 或 Mac OS 中使用。

以下是在 AutoCAD 指令提示下啟動 CIRCLE 指令並繪製一個半徑為 5 的圓的指令語法,以及同樣輸入與指令巨集字串的比較:

指令提示順序 巨集字串語法對等項
Command: CIRCLE
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Specify radius of circle or [Diameter] <2.5000>: 5
CIRCLE;
\
5;

以下是最終指令巨集字串可能的外觀:



項目 語法 描述
1 ^C^C ^C^C 表示在執行巨集之前按 Esc 兩次
2 ._CIRCLE; 啟動 CIRCLE 指令,獨立於目前的 AutoCAD 語言套件
3 \ 提示輸入要繪製圓的中心點
4 5; 指定圓的半徑並結束 CIRCLE 指令

前面的巨集字串也可以寫為下列語法,但不包含分號,因為巨集中的空格就像在 AutoCAD 指令提示下按空格鍵:

^C^C_.circle \5
註: 在巨集字串中使用分號,比較容易閱讀和知道何時應出現 Enter,因為空格有可能表示提供給前面指令或系統變數的輸入中是一個真的空格。

以下另一個範例是在 AutoCAD 指令提示下使用 MOCORO 指令複製物件後旋轉這些複製的物件,以及指令順序與指令巨集字串的比較:

指令提示順序 巨集字串語法對等項
Command: MOCORO
Select objects:
Specify opposite corner:
Select objects:
Base point:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: C
Second point of displacement/Undo/<eXit>:
Second point of displacement/Undo/<eXit>: 
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: R
Second Point or Rotation angle:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>:
MOCORO;
\
\
;
\
C;
\
; 
R;
\
;

以下是最終指令巨集字串可能的外觀:



項目 語法 描述
1 ^C^C ^C^C 表示在執行巨集之前按 Esc 兩次
2 ._MOCORO; 啟動 MOCORO 指令,獨立於目前的 AutoCAD 語言套件
3 \\; 提示選取物件;此處有兩個反斜線,可指定窗選或框選的兩點
4 \ 提示輸入應用來複製所選物件的基準點
5 _C; 使用「複製」選項
6 \; 提示輸入位移的第二點
7 _R; 使用「旋轉」選項
8 \ 提示輸入旋轉角度
9 ; 結束 MOCORO 指令

取消作用中的指令

按一下使用者介面中的按鈕時,所指定的巨集會在目前程式的介面環境中執行。這表示巨集會嘗試回應目前的提示。如果您要確保當執行巨集時沒有任何指令處於作用中狀態,請以 ^C 指令序列當作字首加在巨集之前。雖然一個 ^C 可取消多數指令,但從標註指令返回至指令提示需要輸入 ^C^C,根據 -LAYER 指令的目前選項則需要輸入 ^C^C^C^C^C 可處理取消大多數指令序列,因此建議使用此序列。

在巨集中使用標準指令

作為 AutoCAD 或 AutoCAD 系列產品一部分的指令字首應具有英文句號字元 (.)。句點字元允許使用標準指令,即使其尚未使用 UNDEFINE 指令進行定義。當您在其他共用相同自訂 (CUI/CUIx) 檔的電腦上使用巨集時,此預防措施可讓巨集更容易預測。

註: 從 AutoCAD LT 2024 開始,可以不定義指令。

確認巨集字元

巨集中的每個字元都是有意義的,即便空格也有意義。空格會解譯為按空格鍵,這會在提供的輸入中產生空格字元,或如同您按 Enter 鍵。結果與您在指令提示下使用指令或系統變數時的結果相同。

註: 當您在巨集結尾放置空格時,會被解譯為您按了 Enter 完成指令。

巨集國際支援

當您第一次建立巨集時,您通常會以熟悉的產品語言使用指令名稱和選項值建立該巨集。每個指令和選項都有當地和全域名稱,可讓您的巨集由產品的其他語言使用。即使是非英文的支援,您也不需要進行過多的額外作業,只要在每個指令或選項前方加上底線字元 (_) 即可。對於程式而言,底線字元表示指令名稱或選項值應於執行之前轉譯成產品的當地語言。

使用單一物件選取模式

單一物件選取模式會取消編輯指令中「選取物件」提示的正常重複。在選取一個物件和回應任何其他提示後,指令將結束。

請考慮以下範例中的巨集:

^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 抑制所有來自指令行歷程提示和輸入的顯示。