跳到主要內容
Hai 二次開發工作室

AutoCAD

AutoCAD LT 能用 LISP 嗎?2024 版之後的支援範圍

完整版 AutoCAD 從很早就內建 AutoLISP,載入 .lsp、.fas、.vlx 都不是問題。 比較常被問的是 AutoCAD LT:以前 LT 不能跑 LISP,從 LT 2024 開始可以了, 但能用的範圍和完整版還是不一樣。以下依 Autodesk 的說明整理。

本文目錄(6 節)

先講結論

  • 完整版 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-object
  • vlax-get-object
  • vlax-get-or-create-object
  • vlax-import-type-library
  • vla-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 用檔案函式(openread-linewrite-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 能不能用

  1. 先確認是完整版還是 LT:完整版都能載入,LT 要 2024 以後
  2. 用文字編輯器搜尋程式裡是否出現 vlax-create-objectvlax-get-objectGetInterfaceObject,有的話通常是在操作外部程式
  3. 搜尋是否有建立 3D 實體或曲面的函式
  4. 最後仍以實際在 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 上實際測試。

LINE諮詢開發需求