AutoCAD
AutoCAD LT 能用 LISP 嗎?2024 版之後的支援範圍
完整版 AutoCAD 從很早就內建 AutoLISP,載入 .lsp、.fas、.vlx 都不是問題。 比較常被問的是 AutoCAD LT:以前 LT 不能跑 LISP,從 LT 2024 開始可以了, 但能用的範圍和完整版還是不一樣。以下依 Autodesk 的說明整理。
先講結論
- 完整版 AutoCAD:不分版本都能載入 LISP(.fas、.vlx 從 AutoCAD 2000 起)
- AutoCAD LT 2024 以後:可以載入並執行 LISP,也能顯示 DCL 對話框
- AutoCAD LT 2023 以前:官方不支援 LISP(早期有第三方擴充可以載入,不在 Autodesk 支援範圍)
- 仍然不能用:操作 Excel、Word 等外部程式的 ActiveX 功能、與 LT 沒有的物件(如 3D 實體)相關的函式,以及 .NET 和 ObjectARX
LT 2024 起可以用的部分
- 載入
.lsp、.fas、.vlx格式的程式 - 一般的 AutoLISP 函式:選取物件、讀寫圖元資料、呼叫指令、讀寫文字檔等
- DCL 對話框
- 大部分
vl-、vla-、vlax-、vlr-開頭的函式
也就是說,常見的繪圖輔助、批次修改圖層、讀取圖塊屬性、依規則插入圖框這類工具, 在 LT 2024 以後大多有機會使用。
LT 仍然不能用的部分
外部 ActiveX 物件
LT 不支援透過 ActiveX 操作其他應用程式,例如 Microsoft Excel、Word。下列函式在 LT 中無法使用:
vlax-create-objectvlax-get-objectvlax-get-or-create-objectvlax-import-type-libraryvla-GetInterfaceObject
LT 本身沒有的物件
建立或修改 3D 實體、曲面、螺旋、材料、複線(multiline)等只有完整版能建立之物件的 VLA 函式,不支援。
開發環境與其他 API
- Windows 版 LT 沒有 Visual LISP 編輯器(
VLIDE) - .NET API 與 ObjectARX 仍只能在完整版 AutoCAD 使用
完整版與 LT 對照表
| 項目 | AutoCAD 完整版 | AutoCAD LT 2024 以後 |
|---|---|---|
| 支援 LISP 的版本 | 全部(.fas/.vlx 自 2000 起) | LT 2024 起 |
| 載入 .lsp/.fas/.vlx | 可以 | 可以 |
| DCL 對話框 | 可以 | 可以 |
| 一般 VLA/VLAX 函式 | 可以 | 大部分可以 |
| 透過 ActiveX 操作 Excel、Word | 可以 | 不可以 |
| 3D 實體、曲面等相關函式 | 可以 | 不可以 |
| Visual LISP 編輯器(VLIDE) | 可以 | Windows 版不提供 |
| .NET、ObjectARX | 可以 | 不可以 |
需要讀寫 Excel 怎麼辦
LT 不能直接操作 Excel,但如果只是要「匯出料表」或「從清單讀入資料」, 可以改用 CSV 文字檔:LISP 用檔案函式(open、read-line、write-line)讀寫, Excel 再開啟或另存成 CSV。
;; 把資料寫成 CSV(Excel 可直接開啟)
(setq f (open "D:\\發圖\\料表.csv" "w"))
(write-line "圖號,品名,數量" f)
(write-line "A-1001,支架,2" f)
(close f)CSV 內含中文時,要注意存檔編碼與 Excel 開啟時的編碼設定是否一致,否則可能出現亂碼。
拿到一支 LISP,怎麼判斷 LT 能不能用
- 先確認是完整版還是 LT:完整版都能載入,LT 要 2024 以後
- 用文字編輯器搜尋程式裡是否出現
vlax-create-object、vlax-get-object、GetInterfaceObject,有的話通常是在操作外部程式 - 搜尋是否有建立 3D 實體或曲面的函式
- 最後仍以實際在 LT 上載入測試為準
參考資料:Autodesk AutoCAD 2024 說明:What's New or Changed with AutoLISP
常見問題
Q:完整版 AutoCAD 也要 2024 才能用 LISP 嗎?
不用。完整版一直都內建 AutoLISP,舊版一樣能載入 .lsp、.fas、.vlx。2024 這個版本分界只適用於 LT。
Q:AutoCAD LT 2023 以前的版本可以用 LISP 嗎?
官方不支援。LT 內建 AutoLISP 是從 LT 2024 開始;更早的 LT 若能載入 LISP,多半是裝了第三方擴充,不在 Autodesk 支援範圍。
Q:在完整版寫好的 LISP,搬到 LT 一定能用嗎?
不一定。只使用一般 AutoLISP 函式與 DCL 的程式通常可以,但若用到外部 ActiveX(例如操作 Excel)或建立 3D 實體等 LT 沒有的物件,就需要修改。建議在 LT 上實際測試。