⑴ cadlisp二次開發實例
AutoCAD的二次開發主要涉及以下內容:(1)編寫各種用戶自定義函數並形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜單文件,一般可在AutoCAD原菜單文件內添加自己的內容,對於AutoCAD2000版本還可增加部分菜單文件,然後經交互方式加入到系統中去。(3)在系統的ACAD.LSP或類似文件中加入某些內容以便進行各種初始化操作,如在啟動時立即裝入一些文件等。(4)通過系統對話框設置某些路徑。這些操作在程序開發成功後向其它AutoCAD系統上安裝應用,特別是需要大批安裝時,需要進行很多文件檢索、內容增刪、子目錄創建、文件拷貝、系統設置等繁瑣工作,如能令上述工作全部自動進行,使整個二次開發程序在無人干預的情況下嵌入系統,將大大提高工作效率。
AutoCAD榮登全球繪圖軟體的龍頭寶座,主要是因為它具有開放的體系鏈派高結構。它允許用戶和開發者採用高級編程語言對其進行擴充和修改,即二次開發,能最大限度地滿足用戶的特殊要求。AutoCAD第一版於1982年11月由AutoDESK公司推出,目前大家廣泛使用的是AutoCAD2000或2002,最新版本是AutoCAD2004,其二次開發語言及工具也在不斷地涌現
1AutoLISP
AutoLISP的全名是LISTProcessingLanguage,她出現於1985年推出的AutoCADR2.18中,是一種嵌入在AutoCAD內部的編程語言,是LISP原版的一個子集,她一直是低版本AutoCAD的首選編程語言。它是一種表處理語言,是被解釋執行的,任何一個語句鍵入後就能馬上執行,它對於互動式的程序開發非常方便。其缺點是繼承了LISP語言的編程規則而導致繁多的括弧。
3ADS
ADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C語言開發系統,ADS本質上是一組可以用C語言編寫AutoCAD應用程序的頭文件和目標庫,它直接利用用戶熟悉的各種流行的C語言編譯器,將應用程序編譯成可執行的文件在AutoCAD環境下運行,這種可以在AutoCAD環境中直接運行的可執行文件叫做ADS應用程序。ADS由於其速度快,又採用結構化的編程體系,因而很適合於高強度的數據處理,如二次開發的機械設計CAD、工程分析CAD、建築結構CAD、土木工程CAD、化學工程CAD、電氣工程CAD等。
4ObjectARX
ObjectARX是一種嶄新的開發AutoCAD應用程序的工具,她以C++為編程語言,採用先進的面向對象的編程原理,提供可與AutoCAD直接交互的開發環境,能使用戶方便快捷地開發出高效簡潔的AutoCAD應用程序。ObjectARX並沒有包含在AutoCAD中,可在AutoDESK公司網站中去下載,其最新版本是ObjectARXforAutoCAD2000,它能夠對AutoCAD的所有事務進行完整的、先進的、面向對象的設計與開發,並且開發的應用程序速度更快、集成度更高、穩定性更強。ObjectARX從本質上講,是一種特定的C++編程環境,她包括一組動態鏈接庫(DLL),這些庫與AutoCAD在同一地址空間運行並能直接利用AutoCAD核心數據結構和代碼,庫中包含一組通用工具,使得二次開發者可以充分利用AutoCAD的開放結構,直接訪問AutoCAD資料庫結構、圖形系統以及CAD幾何造型核心,以便能在運行期間實時擴展AutoCAD的功能,創建能全面享受AutoCAD固有命令的新命令。ObjectARX的核心是兩組關鍵的API,即AcDb(AutoCAD資料庫)和AcEd(AutoCAD編譯器),另外還有其它的一些重要庫棚尺組件,如AcRX(AutoCAD實時擴展)、AcGi(AutoCAD圖形介面)、AcGe(AutoCAD幾何庫)、ADSRX(AutoCAD開發系統實時擴展)。ObjectARX還可以按需要載入應用程序;使用ObjectARX進行應用開發還可以在同一水平上與Windows系統集成,並與其它Windows應用程序實現交互操作。
5VisualLISP
VisualLISP已經被完整地集成到AutoCAD2000中,羨悉她為開發者提供了嶄新的、增強的集成開發環境,一改過去在AutoCAD中內嵌AtuoLISP運行引擎的機制,這樣開發者可以直接使用AutoCAD中的對象和反應器,進行更底層的開發。其特點為自身是AutoCAD2000中默認的代碼編輯工具;用它開發AutoLISP程序的時間被大大地縮短,原始代碼能被保密,以防盜版和被更改;能幫助大家使用ActiveX對象及其事件;使用了流行的有色代碼編輯器和完善的調試工具,使大家很容易創建和分析LISP程序的運行情況。在VisualLISP中新增了一些函數:如基於AutoLISP的ActiveX/COM自動化操作介面;用於執行基於AutoCAD內部事件的LISP程序的對象反應器;新增了能夠對操作系統文件進行操作的函數。
6VBA
VBA即Mcrosoftoffice中的VisualBasicforApplications,它被集成到AutoCAD2000中。VBA為開發者提供了一種新的選擇,也為用戶訪問AutoCAD2000中豐富的技術框架打開一條新的通道。VBA和AutoCAD2000中強大的ActiveX自動化對象模型的結合,代表了一種新型的定製AutoCAD的模式構架。通過VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應用程序,使之相互之間發生互易活動。
⑵ 什麼是CAD中的visual lisp程序
LISP是 Processor(表處理程序)的縮寫,主要用於人工智慧(AI)領域。AutoLISP是人工智慧語言CommonLISP的簡化版本,作為通用LISP語言的一個小子集,AutoLISP嚴格遵循其語法和慣例,但又添加了許多針對AutoCAD的功能。Autodesk公司在AutoCAD 2.1版引入AutoCAD作為應用程序編程介面(API),用於擴展和自定義AutoCAD功能。藉助AutoLISP,用戶可以用適合編寫圖形應用程序的強大的高級語言來編寫宏程序和函數,並開發各種軟體包。AutoLISP易於使用,並且非常靈活,多年來一直是自定義AutoCAD的標准。
從AutoCAD R14開始,Visual LISP被引入到AutoCAD中,它增強並擴展了AutoLISP語言,可以通過 Microsoft ActiveX Automation介面與對象交互,並擴展了AutoLISP響應事件的能力。作為開發工具,Visual LISP提供了一個完整的集成開發環境(IDE),包括編譯器、調試器和其他工具,可以提高自定義AutoCAD的效率。另外,Visual LISP提供了發布用AutoLISP編寫的獨立應用程序的工具。Visual LISP沒有任何特殊的硬體需求,能運行AutoCAD系統即可運行Visual LISP。
36.1.2 Visual LISP與AutoCAD
Visual LISP作為一個完整的集成開發環境(IDE),具有自己的窗口和菜單,但它並不能獨立於AutoCAD運行。當用戶從Visual LISP IDE中運行AutoLISP程序時,經常需要與AutoCAD圖形交互或在命令窗口響應程序提示。
如果Visual LISP 把控制傳給AutoCAD時AutoCAD已被最小化,用戶必須手動恢復並激活AutoCAD才可繼續,Visual LISP不會自動恢復AutoCAD 窗口。相反,Visual LISP窗口中會出現並保持一個 Visual LISP符號,直到激活AutoCAD並響應了在AutoCAD命令提示處的提示。
36.1.3 Visual LISP IDE簡介
Visual LISP IDE的主要組成部分和功能為:
(1) 語法檢查器:可識別AutoLISP語法錯誤和調用內置函數時的參數錯誤。
(2) 文件編譯器:改善了程序的執行速度,並提供了安全高效的程序發布平台。
(3) 源代碼調試器:專為AutoLISP設計,利用它可以在窗口中單步調試AutoLISP源代碼,同時還在AutoCAD圖形窗口顯示代碼運行結果。
(4) 文字編輯器:可採用AutoLISP和DCL語法著色,並提供其他AutoLISP語法支持功能。
(5) AutoLISP格式編排程序:用於調整程序格式,改善其可讀性。
(6) 全面的檢驗和監視功能:用戶可以方便地訪問變數和表達式的值,以便瀏覽和修改數據結構。這些功能還可用來瀏覽AutoLISP數據和AutoCAD圖形的圖元。
⑶ 如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
打開Visual Lisp編輯器有兩種方式:
1.AutoCAD2008及之前的版本,在菜單欄「工具(Tools)"下面,選擇」AutoLisp"---->"Visual
Lisp編輯器"。(」AutoLisp"---->"導入應用"這個命令是用來載入AutoLisp腳本的)
2.AutoCAD2009及之後的版本,在功能區的」管理「選項卡里可以直接打開Visual Lisp編輯器。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
打開Visual Lisp編輯器之後新建一個文件,並另存為Lisp源文件。然後就可以在編輯窗口裡輸你的代碼了。
代碼編輯並調試確認無錯誤後,就可以在AutoCAD中使用了。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
左邊的按鈕表示立即運行當前代碼,如果有錯誤就會提示出來,右邊按鈕是切換到CAD窗口。
如果不需要再修改代碼了還可以將代碼進行編譯以加速運行。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
根據向導一步步進行編譯很簡單的。
如果在其他CAD圖形文件中需使用當前代碼文件或編譯後的文件,就按上面第一點的,或者在命令行輸入」ap",打開導入應用的對話框。
如何在AutoCAD Visual Lisp編輯器中創建與編譯lisp程序
1是用來臨時導入的,2是將程序加入CAD的啟動組。
lisp解決重復性勞動問題
在設計和繪圖中,你覺得都是簡單粗暴的重復性工作,就可以考慮用AutoLisp來代替你做。
首先,AutoLisp也是一個程序設計語言,屬於Common
Lisp的子集,同時加入了很多自定義的函數。即然是一個程序語言,就是其他編程語言能做的,它也能做,只是他的lisp語法跟一般的語言有些差另就是了,但是如果是一個沒有VB、C#、C++(對應於AutoCAD的開發方式分別是VBA,.net,ObjectArx)的基礎的人來說,AutoLisp是很簡單而且特別容易上手的一個語言。
作為一個編程語言,AutoLisp能做的很多:
1、擴充AutoCAD的原有命令。任何帶有C:前綴的AutoLisp函數,在AutoCAD中都可以像"line" "circle"
"dim"等命令一樣使用。
2、編寫代碼直接根據國標圖庫要求來繪出一些常用圖庫標准件什麼的,或是代替人查找各種設計手冊中的相關數據並繼續使用。
3、進行參數化繪圖,對於一些不特別復雜的系統,提供窄范圍、大深度的專業設計自動化或者輔助系統,如發動機裝配工具設計、縱使機主軸箱設計等。
4、DWG文件本質上是AutoCAD在圖形生成和編輯中使用的資料庫,可以將一些非圖形信息的數據(粗糙度,高度,厚度。。)等存於DWG文件中作
為非圖形資料庫文件,然後利用Lisp程序進行讀取等。
各種AutoCAD二次開發方式的比較:
由於 .net語言和c++的學習曲線比較陡峭,所以簡單易學的AutoLisp經常與VBA進行對比。(當然如果有VB的基礎還是直接學VBA好了。)
AutoLISP擅長建立新命令和產生已有命令的連接。VBA擅長執行包括在其他應用程序中的組件,如Microsoft的Excel和Access。AutoLISP是基於表處理的編程體系,它允許程序員隨意地存儲和操作傳送信息,然而VBA部件包括數據和對復雜情況的各種有效操作,這就是問題變得復雜的地方。
不過,在AutoCAD2000開始,Autodesk公司就在AutoCAD中加入了Visual
Lisp編輯器,引入了許多新函數擴充AutoLisp的功能,並支持ActiveX對象的訪問方式,所以使用AutoLisp來與Word\Excel等程序進行交互也是變簡單了。
另外,在創建帶GUI圖形界面的應用程序上,VBA當然是所見即所得的了,而AutoLisp是通過DCL文件來實現GUI的(語法很簡單,但做不到所見即所得).這點是AutoLisp略遜一籌了。原文出自[
CAD自學網 ] 轉載請保留原文鏈接:http://www.cadzxw.com/1873.html
⑷ Autolisp是一個什麼程序啊
AutoLISP是由Autodesk公司開發的一抄種LISP程序語言(LISP是List Processor的縮寫)http://www.88ve.cn/jixiesoft/cad/200705/jixiesoft_3126.html
在眾多的AutoCAD開發工具中,AutoLISP是使用最簡單、應用最廣泛、使用者最多的一種開發工具,因此一直受到AutoCAD開發人員的喜愛。
http://tag.csdn.net/tag/autolisp/3.html