自動化・效能最佳化・協作 - 從 AutoLISP 到 Autodesk Docs

AutoCAD · AutoLISP & Automation

概述

若重複相同作業,可透過 AutoLISP・巨集・指令碼加以自動化。

再搭配 PURGE/AUDIT/OVERKILL 等 整理指令讓圖面保持輕量,並透過 Autodesk Docs・Trace・Share 等協作功能與團隊同步,個人生產力可提升 2~3 倍,團隊工作流程則可提升數倍。

> 基本快捷鍵與編輯指令請見 01-shortcuts.md,圖塊/Xref 運用請見 03-blocks-xref.md。


1. AutoLISP — AutoCAD 的內建腳本語言

AutoLISP 是 AutoCAD 自 1986 年起內建的 LISP 衍生語言。副檔名 .lsp(原始碼)、.fas/.vlx(編譯後)。

1.1 載入方式

方式說明
APPLOAD於對話方塊選擇檔案
(load "C:/my.lsp")直接於命令列載入
Startup SuiteAPPLOAD → Contents → 登錄為自動載入清單
acaddoc.lsp每次開啟圖面時執行
acad.lspAutoCAD 啟動時執行一次

提示: 個人與團隊公用程式不要全部塞進 acaddoc.lsp,分別登錄到 Startup Suite 對版本控管與除錯較有利。

1.2 基本結構 — Hello World

(defun c:HELLO ()
  (princ "\nHello, AutoCAD!")
  (princ)
)
  • defun:函式定義。
  • c: 前綴:可從命令列以 HELLO 呼叫。
  • princ:輸出函式。最後的 (princ) 是 慣例性呼叫,用於避免回傳值(nil)顯示於命令列。

1.3 常用基本函式

函式用途
getpoint取得使用者輸入的點座標
getdist取得距離(兩點或數值)
getreal / getint取得實數・整數輸入
getstring取得字串輸入
getangle / getorient取得角度輸入
entsel選取單一物件
ssget建立選擇集(支援篩選)
command呼叫 AutoCAD 內建指令
entget / entmod讀寫物件的 DXF 資料
assoc / cons / subst關聯串列操作
mapcar / foreach串列走訪

1.4 實用常式範例 — 「鎖定所選物件的圖層」

(defun c:LL ( / ss i ent lay)
  (princ "\nSelect objects to lock their layers: ")
  (setq ss (ssget))
  (if ss
    (repeat (setq i (sslength ss))
      (setq ent (ssname ss (setq i (1- i))))
      (setq lay (cdr (assoc 8 (entget ent))))
      (command "_.LAYER" "_LO" lay "")
    )
  )
  (princ)
)

載入後於命令列輸入 LL,所選物件所屬的 圖層全部被鎖定。關鍵在於 DXF 代碼 8 存放實體的圖層名稱。

1.5 Visual LISP・COM・.NET

  • VLIDE:Visual LISP 整合式開發環境,內含除錯工具與主控台。
  • 執行 (vl-load-com) 後即可透過 (vla-*) 函式群操作 ActiveX 物件模型,自動化能力更強。
  • .NET(C#/VB):以 NETLOAD 載入 DLL 部署公司內部工具,屬於專業開發人員領域。
  • ObjectARX:以 C++ 為基礎,是 第三方外掛的標準開發環境。

提示: 一般使用者其實不必特地學 .NET。只要將同事寫的 .lsp 10 個載入 acaddoc.lsp,體感生產力就能翻 2 倍。


2. 指令巨集(Command Macro)

在 CUI 的「Macro」欄位以字串撰寫指令序列,並綁定至工具列・功能區按鈕或鍵盤快捷鍵。

2.1 語法

符號意義
^C^C按兩次 Esc(中斷進行中的指令)
_底線。強制使用英文指令(相容多國語系)
.忽略使用者自訂,使用原始指令
; 或換行Enter
\等待使用者輸入
*指令自身重複

2.2 範例

將目前圖層切換為 DIMS 後開始線性標註:

^C^C_-LAYER;S;DIMS;;_DIMLINEAR

於 Paper space 原點插入公司標準圖塊 TB-A3:

^C^C_-INSERT;TB-A3;0,0;1;1;0

提示: 巨集前加上 * 即可 讓指令自動重複,適合連續插入或連續加註。


3. SCR 指令碼與批次執行

3.1 SCR 檔

.scr 是 將命令列輸入逐行記錄的純文字檔。

ZOOM EXTENTS
PURGE ALL * N
AUDIT Y
QSAVE

可透過 SCRIPT 指令載入後執行,或於 AutoCAD 啟動時以 /b 選項指定。

3.2 大量 DWG 批次處理

  • ScriptPro 2.0(Autodesk 免費):結合 SCR 與 DWG 清單進行 批次執行。
  • accoreconsole.exe(AutoCAD 2013+):無 GUI,於背景開啟 DWG 並執行 SCR。是於伺服器夜間處理 數千個 DWG 的標準做法。

提示: 將 定期維護 SCR(AUDIT → -PURGE A * N → SAVE)每週對所有 DWG 執行,可預防檔案肥大與損毀徵兆。

注意: SCR 內部若跳出對話方塊(FILEDIA=1 狀態),自動化會停止。指令碼開頭應將 FILEDIA 0・CMDDIA 0 切換為非對話模式,結束時 務必還原。


4. 效能最佳化 — 讓圖面保持輕量

4.1 PURGE

PURGE(PU)移除 未使用的定義(圖層・圖塊・線型・文字型式・標註型式・材質等)。

選項說明
預設對話方塊勾選項目
-PURGE命令列自動化
-PURGE R清理 Registered Applications(Regapps)
Purge nested items包含圖塊內的圖塊
Purge zero-length geometry零長度線・空字串

提示: 若 PURGE 一次未能刪除,代表該定義 仍被其他定義參照。將 -PURGE A * N 重複 2~3 次通常可清理乾淨。

4.2 AUDIT / RECOVER / RECOVERALL

  • AUDIT:檢查目前圖面的 完整性。以「Fix errors? Y」自動修正。
  • RECOVER:以 復原模式開啟損毀 DWG。用於一般 OPEN 無法開啟的檔案。
  • RECOVERALL:對目前 DWG 及 所有 Xref 整體復原。

提示: 無法開啟 DWG 時的順序為 (1) DWG TrueView 等檢視器 → (2) RECOVER → (3) 還原 .bak 檔 → (4) 自動儲存 .sv$(SAVEFILEPATH)→ (5) 商用復原服務。

4.3 OVERKILL

OVERKILL 將 重疊於相同位置的重複物件或 同一直線上的分段線整併為一條。

  • 以圖層・顏色・線型 篩選。
  • Numeric fuzz(公差):略微偏移的物件也視為相同。
  • Optimize polylines:簡化連續的直線線段。
  • Combine co-linear objects:合併同線上的物件。

提示: PDF→DWG 轉換・掃描描圖的成果通常含 數千條重疊線,OVERKILL 是 第一順位整理工具。

4.4 系統變數建議值

變數預設建議說明
SAVETIME105自動儲存週期(分鐘)
ISAVEBAK11產生 .bak 備份
INDEXCTL03Xref 部分載入最佳化
WHIPTHREAD13多執行緒顯示
VTENABLE150關閉縮放・平移動畫(加速)
BACKGROUNDPLOT20~2大量 Publish 以 0 較安全

4.5 大型圖面疑難排解

症狀可能原因處置
開啟緩慢眾多 Xref・巨大影像INDEXCTL ↑、影像解析度 ↓
儲存緩慢Drawing History 啟用中關閉 History、-PURGE
選取延遲重複物件OVERKILL
剖面線緩慢過密圖樣Scale ↑、改用 Solid、Draw Order 置後
REGEN 過久物件過多凍結不必要圖層、VP Freeze
出圖中斷BACKGROUNDPLOT設為 0、調整 PDF 品質

5. 協作 — Autodesk Docs・AutoCAD Web・Share・Trace

5.1 Autodesk Docs / Construction Cloud

  • 專案共用檔案儲存庫。整合 DWG・PDF 審查・Markup・發行管理。
  • 可於 AutoCAD 以 Open from Autodesk Docs / Save to Autodesk Docs 直接開啟與儲存。
  • 版本・權限・活動記錄皆 自動保存。

提示: 相較於 Windows 共用或 SharePoint 等傳統儲存庫,其優勢在於內建 圖面鎖定 與 版本歷史。若團隊超過 5 人,值得考慮導入。

5.2 AutoCAD Web / Mobile

  • 可於瀏覽器・平板 開啟・簡易修改・量測・加註 DWG。
  • 適合 現場快速確認與標註。完整編輯仍於桌面端進行。

5.3 SHARE — 連結分享

SHARE 將目前圖面建立為可於 Autodesk Viewer 開啟的連結。收件者 無需安裝任何軟體,僅憑 URL 即可檢視。預設有效期為 7 天。

5.4 Drawing History / COMPARE / XCOMPARE

  • 儲存於 Autodesk Docs 等版本控管儲存庫的 DWG,可於 Drawing History 以 滑桿比對過往版本。
  • COMPARE / XCOMPARE:以顏色覆蓋顯示兩個 DWG 的差異。

5.5 Trace (2022+)

TRACE 是 不修改原始圖面,於 半透明圖層上覆蓋註解與修改建議的功能。

可將於網頁・行動端建立的 Trace 於桌面端載入進行 核准・反映。

Markup Assist:以 AI 辨識 PDF・影像標註,並建議轉換為 Trace 圖層上可編輯的物件。

5.6 Markup Import (2023+,2026 改進)

MARKUPIMPORT 將外部的 PDF・PNG・JPG 標註插入為 Trace 圖層。

自 2026 起與 Autodesk Docs 雙向同步,Docs 端修改的標註會自動反映至 AutoCAD。

5.7 eTransmit — 外部分發標準

ETRANSMIT 將目前 DWG + 所有 Xref + 影像 + SHX/TTF 字型 + 出圖型式打包為 單一 ZIP 或資料夾。

單純複製檔案容易遺漏參照與字型,因此 外包・監造・投標提交務必使用 eTransmit。

5.8 Trusted DWG

指由 Autodesk 正版・認證應用程式產生並儲存的 DWG。開啟由其他 CAD 儲存的 DWG 時,可能出現「Not a Trusted DWG」警告。

功能上差異不大,但為預防匯入相容性事故,建議 重要圖面在 AutoCAD 中開啟並重新儲存一次。


6. 協作基礎建設 — 標準分發

  • DWS + CHECKSTANDARDS:公司・國家 標準檢查。
  • Sheet Set:專案圖紙一致管理(詳見 03-blocks-xref.md)。
  • Block Library 網路 Tool Palette:全體員工使用相同圖塊。
  • CUIx Partial 分發:相同的功能區・快捷鍵・巨集。
  • Profile(.arg):透過 export/import 同步 OPTIONS 設定。

提示: 要自動化 新進員工設定,可於登入腳本加入 (1) Profile import (2) Template 路徑對應 (3) 將公司 LSP 登錄至 Startup Suite。


7. 實務檢查清單

  • 常用 LSP 已登錄至 Startup Suite
  • acaddoc.lsp 未膨脹過大
  • 公司標準巨集以 Partial CUIx 分發
  • 夜間批次處理以 accoreconsole.exe 為基礎
  • 每週定期維護 SCR(AUDIT→PURGE→SAVE)有執行
  • 已啟用 SAVETIME=5、ISAVEBAK=1 自動儲存・備份
  • 大型 Xref 已套用 INDEXCTL=3
  • 對掃描・PDF→DWG 產物已套用 OVERKILL
  • 外部提交使用 ETRANSMIT 打包
  • Autodesk Docs 或同等 VCS 為團隊儲存庫
  • Markup Import・Trace 工作流程已與團隊分享
  • Profile .arg 用於新進員工設定

請將本站加入書籤!
PC: Ctrl + D
手機: 瀏覽器選單 → 加入書籤