關於定義外部指令概述

在執行 AutoCAD 或 AutoCAD 系列產品時,外部指令會啟動其他程式或公用程式。

在執行 AutoCAD 或 AutoCAD 系列產品時,您可以呼叫其他程式或公用程式,如以下所示:

註: 僅 Windows 中的 AutoCAD 支援外部指令。AutoCAD LT 不支援外部指令。

您可以透過在 ASCII 文字編輯器中編輯 acad.pgp 來加入指令定義。acad.pgp 的第一節會定義外部指令。除了 acad.pgp 中的指令別名,您也會發現前面加分號 (;) 的指令行,且您可以加入關於檔案的文字資訊或指令別名。

定義外部指令時,您必須指定要在作業系統提示下使用的指令名稱以及要傳給作業系統的可執行指令字串。外部指令區域的每一行都含有以下以逗號分隔的五個功能變數:

command,[executable/shell request],bit flag[,[*]prompt[,return_code]] 
指令

在作業系統提示下輸入的指令。如果名稱為內部 AutoCAD 指令名稱,則請忽略該名稱。該名稱沒有大小寫的分別。

執行檔/薄殼請求

在您輸入指令名稱時,傳送到作業系統的常數字串。它可以是任何一個可在作業系統提示下執行的指令。該字串可以包括指令行參數。該字串是否區分大小寫,取決於您要執行的應用程式。

位元旗標

必要的位元碼參數。您可以以任何組合方式使這些整數值相加,以得到您要的結果。

0 啟動應用程式並等待它完成。

1 無需等待應用程式完成。

2 以最小化方式執行應用程式。

4 以「隱藏」方式執行應用程式。

8 將引數字串加上雙引號。

不能同時指定 2 和 4 這兩個位元值;如果同時指定這兩者,則只會使用位元值 2。請避免在沒有使用位元值 1 的情況下,單獨使用位元值 2 或 4,因為在此情況下,必須等到應用程式完成後,才能繼續使用程式。

位元值 8 允許 del 一類的指令正確使用具有嵌入空格的檔名。選用位元值 8 之後,就不可能將以空格分隔的檔名列示傳給這些指令了。假如您偏好多重檔案支援,請勿使用位元值 8。

提示

可選擇的欄位。其指定顯示於指令提示下的提示。針對此提示所作出的回應,會附加在 executable 功能變數提供的字串之後。如果提示欄位的第一個字元為星號 (*),則回應可包含空格,使用者必須按 Enter 才能將其終止。否則,可按空格鍵或 Enter 來終止回應。如果未指定任何提示,就不需要任何輸入;不過,如果您想要提供傳回碼,或希望提示以空格結尾,則必須加上逗號。

return_code

可選擇的位元碼參數。您可以將下列整數值以任一組合方式加在一起,以得到您要的結果。例如,如果要求的值是 1 2 ,則請將 3 用作傳回碼。這些值的定義如下 (代碼 04 在視窗環境下無意義,因此不包括在內):

1 載入 DXB 檔。指令終止後,AutoCAD 或 AutoCAD 系列產品會將名為 $cmd.dxb 的 DXB 檔載入圖面中。載入 DXB 檔後,AutoCAD 會刪除 $cmd.dxb 檔。此動作所產生的結果與 DXBIN 指令相同。

2 從 DXB 檔建構圖塊定義。程式會從名為 $cmd.dxb 的 DXB 檔建立圖塊定義。針對 prompt 功能變數所作出的回應將用作該圖塊的名稱。此名稱必須是有效的圖塊名稱,而且不能是目前圖面中現有的名稱;所以,此模式無法用來重新定義先前定義過的圖塊。載入 DXB 檔後,程式會刪除檔案 $cmd.dxb。指令 INSERT 的預設名稱被設為新定義的圖塊。

作業系統指令

在定義外部指令時,作業系統指令 startcmd 非常有用。如果指定的可執行字串未使用 startcmd 指令,則在關閉該視窗之前,程式將不能使用。

start 指令用於單獨啟動一個視窗並執行指定的程式或指令。如果 start 沒有跟任何參數同時使用,它會為作業系統開啟一個新指令提示視窗。start 指令有許多指令行參數,這些參數會影響新視窗的顯示模式。若要啟動單機版應用程式,請使用不帶任何指令行參數的 start。就啟動與應用程式關聯的文件這方面來看,start 指令也是很有用的。例如,您可以使用 start 直接開啟藉由文字處理器建立的文件或 HTML 檔。

cmd 指令可為作業系統開啟一個指令提示視窗,以做為 AutoCAD 或 AutoCAD 系列產品薄殼。關閉此視窗後,才能將控制權傳回給作業系統提示。對於外部指令而言,/c/k 這兩個指令行參數非常有用。/c 指令行參數會在執行指定的指令之後停止執行 (視窗會關閉)。/k 指令行參數會在執行指定的指令之後繼續執行 (視窗保持開啟狀態)。使用 /k 指令行參數時,必須關閉指令視窗 (使用指令 exit)。

一般而言,start 用於建立新視窗或啟動要與程式分開處理的應用程式。cmd 可用於執行批次檔或不會另外建立視窗的指令腳本,或也可以用於建立在將控制權傳回程式之前必須關閉的視窗。若要取得有關這些指令與參數的更多資訊,請參閱您的作業系統指令文件。

自訂指令

下列範例定義了三個新指令:RUN、 LISTSET 以及 DXB2BLK。

RUN, cmd /c,0,*Batch file to run: ,
LISTSET,cmd /k SET,0
DXB2BLK,cmd /c DXBCOPY,0,DXB file: ,2

指令 RUN 可執行批次檔或指令腳本。帶有 /c 指令行參數的指令 cmd 會開啟一個指令視窗,執行批次檔,然後關閉視窗。

LISTSET 指令會顯示作業系統目前的環境變數設定。由於此範例使用的是 cmd /k 而非 start,所以必須先關閉指令視窗才能返回程式。如果您要讓該視窗保持在作用中,請使用 start /realtime。若要取得有關這些指令與參數的更多資訊,請參閱您的作業系統指令文件。

指令 DXB2BLK 會從指定的 DXB 檔建立一個圖塊定義。DXB 檔會將所有的物件全部轉換成線。此程序會附帶產生一個有用的結果,就是它提供了一種將文字物件分解為線的簡單方法。

DXB2BLK 會將指定的 DXB 檔名傳至 dxbcopy 批次檔,而該批次檔會將該檔名複製到檔名 $cmd.dxb。接著,程式會從指定的 DXB 檔中建立一個圖塊。在 DXB 檔提示下所提供的名稱將用作新圖塊名稱。若要建立 dxbcopy.cmd 檔,請在作業系統提示下輸入下列內容:

echo copy %1.dxb $cmd.dxb > dxbcopy.cmd

這樣可在目前的目錄中建立 dxbcopy.cmd 檔。將此檔案移至 DOS 路徑中的目錄下,或在 acad.pgp 檔中明確指定此檔案的位置。例如,如果 dxbcopy.cmd 檔位於 D:\cad 中,請在 acad.pgp 檔的外部指令節中輸入下列內容。

DXB2BLK, cmd /c D:\CAD\DXBCOPY,0,DXB file: ,2