程式檔與支援檔的預設資料夾結構設計,旨在有效地將這些檔案組織為邏輯群組。
如果程式的預設組織和支援檔不符合您的需求,您可以加以變更。不過,由於某些應用程式會在特定位置中尋找某些檔案,所以您必須確認所做的修改不會與那些應用程式的需求發生衝突。如果沒有完整路徑 (包含磁碟機與資料夾),程式僅可找到那些在其資源庫搜尋路徑中的檔案。
程式會參考作業系統的使用者紀要,以指出本端和可漫遊自訂檔應儲存的位置。您可以使用以下系統變數存取本端和可漫遊資料夾的位置:
- LOCALROOTPREFIX - 儲存其中安裝了本端自訂檔之根資料夾的完整路徑。
- ROAMABLEROOTPREFIX - 儲存其中安裝了可漫遊自訂檔之根資料夾的完整路徑。
從 Windows 的 AutoCAD 2013 SP1 系列產品和 AutoCAD 2014 for Mac 開始,保留的 acad<release_number>.lsp 或 acadlt<release_number>.lsp 和 acad<release_number>doc.lsp 或 acadlt<release_number>doc.lsp 與其後續檔案都只會從產品的預設安裝資料夾中載入。根據 SECURELOAD 系統變數的設定,TRUSTEDPATHS 系統變數會指定 AutoCAD 系列產品可以從其中載入並執行包含程式碼之其他檔案的資料夾。此外,LEGACYCODESEARCH 系統變數會控制是否會在「開始」資料夾中搜尋可執行檔。
註: Mac OS 上的 AutoCAD LT 不支援 AutoLISP 應用程式。
以下 AutoLISP 範例程式碼定義 CUSTFILES 指令,並且會在安裝可漫遊自訂檔的位置開啟檔案總管。
註: SHELL 指令只能在 Windows 上的 AutoCAD 中使用,無法在 Windows 上的 AutoCAD LT 中使用。
(defun c:custfiles ()
(command "shell"
(strcat "explorer \"" (getvar "roamablerootprefix") "\"")
)
(princ)
)
資源庫搜尋路徑
資源庫搜尋路徑用於在您未指定完整路徑名稱時指定程式搜尋檔案的位置,例如:
- 「開始位置」資料夾。此資料夾是由檔案按兩下時所在的資料夾 (在 Windows 或 Mac OS),或由 Windows 捷徑圖示的「開始位置」屬性所決定。(STARTINFOLDER 系統變數)
- 包含目前圖檔的資料夾。(DWGPREFIX 系統變數)
- 外部參考檔案 (例如影像、外部參考或參考底圖) 的專案資料夾名稱。(PROJECTNAME 系統變數)
- 程式的「支援檔案搜尋」路徑中所列示的資料夾。(ACADPREFIX 系統變數)
- 包含程式安裝檔案的資料夾。
可能會有兩個或多個相同的資料夾 (視目前的環境而定)。
重要: 從 AutoCAD 2016 系列產品開始,LEGACYCODESEARCH 系統變數會控制是否會在「開始」和「圖面」資料夾中搜尋可執行檔。由於「開始」與「圖面」資料夾通常是惡意程式碼鎖定的目標,因此建議您保持將 LEGACYCODESEARCH 設定為 0 (關閉)。
如果某個檔案不在這個搜尋路徑中,您必須指定其完整或相對路徑名稱與檔名,程式才能找到此檔案。例如,如果想將 part5.dwg 檔案插入目前圖面中,而該檔案不在資源庫搜尋路徑中,則必須根據資源庫搜尋路徑中的有效路徑,指定其完整路徑名稱或相對路徑名稱。相對路徑名稱如下所示:
指令:-insert
輸入圖塊名稱或 [?]: /files2/olddwgs/part5
資料夾結構
程式使用樹狀結構的資料夾和子資料夾。建議您將 AutoLISP 應用程式 (不在 Mac OS 上的 AutoCAD LT 中)、自訂檔或協力廠商應用程式等補充檔案,與安裝程式檔與支援檔分開放置。此作法比較容易找得到可能發生衝突的地方,而且在升級任何一個應用程式時,均不會影響到其他的應用程式。
程式的預設位置在 Windows 上為 Program Files 資料夾,在 Mac OS 上為 Applications。您可以在同一層 (例如 /AcadApps)) 建立新資料夾,並將自訂程式、自訂檔和其他協力廠商應用程式儲存在下一層的子資料夾中。如果要保留多個圖面資料夾 (針對不同的工作檔案),您可以建立一個資料夾 (例如 /AcadJobs),並在該資料夾下針對每項工作建立一個子資料夾。
指令搜尋程序
當您輸入某一指令時,應用程式會執行一系列的步驟,以評估該指令名稱的有效性。指令可以是
- 內建指令或系統變數
- 在 acad.pgp (或 AutoCAD LT 中的 acadlt.pgp) 檔中定義的外部指令或別名
- 在 autoCorrectUserDB.pgp 檔中的指令自動修正項目
- 在 acadSynonymsGlobalDB.pgp 檔中的指令同義字項目
- 使用者定義的 AutoLISP 指令
- ObjectARX 或 Managed .NET 應用程式的使用者定義指令
- 設備驅動程式指令
註: 下列項目不支援的應用程式
- Mac OS 上的 AutoCAD LT 不支援 AutoLISP 應用程式
- AutoCAD LT 不支援 ObjectARX 和 Managed .NET 應用程式
- Mac OS 不支援 Managed .NET 應用程式
您可以於指令提示下輸入指令,或者從使用者介面啟動。您還可以從腳本檔、或是藉由 AutoLISP、ObjectARX 或 Managed .NET 應用程式啟動指令。
以下清單說明了用於確認指令名稱的搜尋順序。
- 如果輸入為空回應 (按下空格鍵或 Enter),則程式會使用上次核發的指令名稱。預設為 HELP。
- 程式會以內建指令清單來檢查該指令。如果該指令位於清單中且並非以句點 (.) 開頭,則程式會以未定義的指令清單檢查該指令。如果它是未定義指令,則會繼續搜尋;否則,便會執行該指令 (除非另有原因造成該指令無法執行)。該指令可能無法以透通的方式或透視模式來執行。
- AutoCAD 先以設備驅動程式所定義的指令名稱,來檢查該指令名稱,然後再以顯示器驅動程式所定義的指令名稱,來檢查該指令名稱。
- 程式會以程式參數檔中定義的外部指令來檢查該指令。如果該指令名稱符合任一已定義的外部指令,AutoCAD 就會執行該指令而完成搜尋作業。
- 程式會以 AutoLISP、ObjectARX 和 Managed .NET 應用程式所定義的指令清單檢查指令。此時會載入自動載入指令。(可用性在 Windows 上的 AutoCAD LT 受到限制,無法在 Mac OS 上的 AutoCAD LT 使用)
- 程式會根據系統變數清單檢查指令名稱。如果指令名稱位於清單中,則會使用輸入做為變數名稱,來執行指令 SETVAR。
- 如果指令名稱符合相關程式參數檔中定義的指令別名、自動修正名稱或同義字,則會使用展開的指令名稱,且搜尋程序會再次以內建指令清單執行檢查。
- 如果上述步驟全部失敗,AutoCAD 就會終止搜尋作業,並顯示一則不合規定的指令名稱的警告訊息。