Auto CAD二次開發(fā)技術(shù)比較
AutoCAD二次開發(fā)技術(shù)比較岳海云(甘肅政法學(xué)院,甘肅蘭州730070)摘要:AutoCAD軟件一直是CAD市場(chǎng)的主流產(chǎn)品,并以其功能強(qiáng)、用戶界面友好,具有開放的體系結(jié)構(gòu)和完善的開發(fā)系統(tǒng),能夠提供各種編程工具和接1:2用于滿足不同層次用戶的需要等優(yōu)點(diǎn),成為使用最為廣泛的CAD軟件和二次開發(fā)平臺(tái)。本論述就Autodesk公司提供的四種主要的二次開發(fā)工具:AutoLISPⅣi—sualusP)、ADS、0bjeetARX及VBA(VB)這些技術(shù)試做一比較。關(guān)鍵詞:CAD二次開發(fā)工具開發(fā)系統(tǒng)隨著CAD技術(shù)的發(fā)展,CAD領(lǐng)域的支撐軟件也越desk公司推出的AutoCAD系統(tǒng)軟CAD的作用。1AutoLISP語言UsP語言是一種表處理語言,是廣泛應(yīng)用于人工CAD的一個(gè)典型例子就是實(shí)現(xiàn)參數(shù)化繪圖的LISP替代。ADS(AutoCADDevelopmentSystem)開ADS是從AutoCADR11開始引入的基于C語言萬方數(shù)據(jù)CAD內(nèi)部,而是作為一組ALISP外部函數(shù)由AL_CAD運(yùn)行。早期國內(nèi)常見的應(yīng)用軟件多是用ADS進(jìn)行開發(fā)的,但ADS程序必須經(jīng)過ALISP解釋加載,其各方面CADRl3中提供了面向?qū)ο蟮拈_發(fā)工具ARX。目前,AutoCAD提供的第一代開發(fā)工具ALISP和CAD二Lisp、ARX和VBA等。VisuaILISPVLISP是ALISP的發(fā)展,是一種可視化的LISP編LISP語言的擴(kuò)展和延伸,可以通Automation接口與對(duì)象交互。VLISP提供了基于ActiveXAutomation技術(shù)的VBA(Vi—BasicforApplication)開發(fā)工具作為從AutoCADRl4之后提供的二次開發(fā)工具Automation接口向AutoCAD發(fā)送信息,可使許多面向?qū)ο缶幾g語言2l基于C開發(fā)的專用語言。它包括了C的全部功能,是編譯型語言,功能強(qiáng)大,克服了解釋性語言所固有的許多缺點(diǎn)而具有速度快,安全性高的特點(diǎn)。ADS不包含于AutoISP解釋器裝入、解釋并請(qǐng)求Auto性能受到限制。同時(shí),隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,面向過程的ADS已有些不能適應(yīng)CAD開發(fā)的需要,所以,在Auto來越多,其中,Auto件和在其上進(jìn)行二次開發(fā)的工具在國內(nèi)外各行各業(yè)使用非常廣泛,是CAD市場(chǎng)的主流產(chǎn)品。但是許多企業(yè)購進(jìn)AutoCAD軟件,僅停留在計(jì)算機(jī)輔助繪圖階段,只是用作“代替圖板”,而沒有發(fā)揮其應(yīng)有的作用。只有真正地在其上實(shí)現(xiàn)了二次開發(fā),才能充分發(fā)揮Auto第二代開發(fā)工具ADS,由于已不適合當(dāng)今Auto次開發(fā)的需求已逐漸被淘汰。現(xiàn)在二次開發(fā)大多選用第三代開發(fā)工具V3程開發(fā)環(huán)境,是Auto過ActiveX一個(gè)完整的集成開發(fā)環(huán)境(IDE),包括編譯器、調(diào)試器智能的語言。ALISP語言是完全嵌套在AutoCAD內(nèi)部的LISP編程語言,是LISP語言和AutoCAD有機(jī)結(jié)合和其他工具,使編寫、修改代碼以及測(cè)試和調(diào)試程序更加容易,可以提高二次開發(fā)的效率。VLISP適于描述人機(jī)交互操作的過程,善于編寫模擬設(shè)計(jì)師思路的專業(yè)設(shè)計(jì)程序。對(duì)于各種用戶輸人的接受、錯(cuò)誤識(shí)別與恢復(fù)的產(chǎn)物,它既具備一般高級(jí)語言的基本結(jié)構(gòu)和功能,又具備一般高級(jí)語言所沒有的圖形處理能力。利用ALISP開發(fā)Auto程序設(shè)計(jì)。但也存在一些明顯的缺點(diǎn),例如:缺乏集成開發(fā)環(huán)境;面向過程的編程;采用解釋方式,程序運(yùn)行速度慢;其文件是ASCII碼方式,無法編譯,程序安全性差等,因此影響了該語言的發(fā)展,已被V2等操作具有相當(dāng)優(yōu)秀的功能,能充分發(fā)揮CAD功能的巨大作用和利用交互操作的技巧。4sualVBA(VB),使得用戶不必學(xué)習(xí)ADS,ARX和ALISP就可以用VB(VB)來開發(fā)AutoCAD。VBA是內(nèi)置到R14中的開發(fā)工具,采用VB語言的全部語法和嶄新的格式,支持ActiveX控件,VBA通過ActiveX發(fā)系統(tǒng)開發(fā)應(yīng)用程序的系統(tǒng)。它不是C語言的一個(gè)子集,而是和應(yīng)用程序通過ActiveX與AutoCAD進(jìn)行通信,并操縱AutoCAD的許多功能,如iava、VB、Vc++、Delphi、VBA等面向?qū)ο缶幊陶Z言都可用于AutoCAD的二次開發(fā)。VBA的主要特點(diǎn)如下:ActiveXAutomation技術(shù)的完全面向?qū)ο缶幊痰奶攸c(diǎn),使其開發(fā)環(huán)境具備了強(qiáng)大的開發(fā)能力和簡(jiǎn)單易用的優(yōu)良傳統(tǒng),VBA(VB)可以通過ActiveXAutomation接口訪問和控制AutoCAD所有圖形對(duì)象和非圖形對(duì)象,并且可以訪問這些對(duì)象的方法和屬性。同時(shí),VBA可與AutoCAD在同一進(jìn)程空間中運(yùn)行,這使程序執(zhí)行得非???。VBA最早是內(nèi)嵌在Omee97中的一種編程語言,VBA易學(xué)易用,功能強(qiáng)大。VBA嵌入到了AutoCAD中,使AutoCAD能容易地與其他Windows下的應(yīng)用軟件交互。VBA對(duì)話框設(shè)計(jì)能力比LISP所使用的DCL對(duì)話框設(shè)計(jì)工具好得多,多圖檔環(huán)境下的應(yīng)用程序也比ALISP能提供更多的支持。但由于它是使用ActiveX與AutoCAD交互,程序設(shè)計(jì)比較復(fù)雜。VBA開發(fā)AutoCAD必須以VB語言為前提,但VBA并不完全等同于VB。VBA具有比較明顯的幾個(gè)缺陷:(1)VBA不能像VLISP一樣比較自如地使用AutoCAD命令,只能用腳本文件的模式,以字串方式向AutoCAD命令行發(fā)送一串響應(yīng),這個(gè)字串的內(nèi)容也只能在自己的程序中生成和進(jìn)行數(shù)據(jù)轉(zhuǎn)換。這樣,許多交互操作的技巧,在VBA中不能直接借用。(2)VBA不能編譯,源程序始終暴漏在最終用戶面前。VBA很容易由于用戶的誤操作,使應(yīng)用程序出錯(cuò)甚至崩潰,這也是ALISP的致命缺陷。5ObjectARX(AutoCADRuntimeExtend)開發(fā)系統(tǒng)近幾年廣為應(yīng)用的ObieetARX是從AutoCADR13開始推出的第一個(gè)全新的面向?qū)ο蟮拈_發(fā)環(huán)境。它提供了以C++為基礎(chǔ)的面向?qū)ο蟮拈_發(fā)環(huán)境及應(yīng)用程序接口,能快速訪問AutoCAD圖形、數(shù)據(jù)庫,支持面向?qū)ο缶幊谭椒?,同時(shí)向下兼容ADS,所以對(duì)開發(fā)者的編程能力要求較高。它的特點(diǎn)是:ARX程序在很多方面與ADS程序和AUSP程序萬方數(shù)據(jù)都不相同,其實(shí)質(zhì)上是一個(gè)動(dòng)態(tài)鏈接庫(DLL),它和Au—toCAD共享地址空間并且直接和AutoCAD進(jìn)行通信。在ARX中,每個(gè)命令都有獨(dú)立的入口。ARX程序還可以創(chuàng)建新的類,這些類可以為其他程序所共享,從而充分利用面向?qū)ο缶幊痰膬?yōu)點(diǎn)。ALISP和ADS都是通過內(nèi)部進(jìn)程通訊(IPC)來和AutoCAD通訊,它們與AutoCAD是相互分離的過程,而ARX以DLL形式和AutoCAD共享地址空間。因此,與前兩者相比,速度更快、運(yùn)行更穩(wěn)定、更簡(jiǎn)單。但ARX更“脆弱”,ARX程序崩潰通常會(huì)導(dǎo)致AutoCAD系統(tǒng)的崩潰。ARX程序具有ADS程序和ALISP程序所不具備的訪問和控制AutoCAD的能力。ARX程序可以監(jiān)控和處理AutoCAD各種事件,可以定義AutoCAD命令,這些命令可以像AutoCAD自身的命令一樣被ALISP和ADS所調(diào)用。ARX程序以C++為基本開發(fā)語言,具有面向?qū)ο蟮木幊谭绞降臄?shù)據(jù)可封裝性、可繼承性及多態(tài)性的特點(diǎn),用其開發(fā)的CAD軟件具有模塊性好、獨(dú)立性強(qiáng)、連接簡(jiǎn)單、使用方便、內(nèi)部功能高效實(shí)現(xiàn)以及代碼可重用性強(qiáng)等特點(diǎn),并且支持MFC基本類庫,能簡(jiǎn)潔高效地實(shí)現(xiàn)許多復(fù)雜功能。ARX在Autodesk內(nèi)部和增值軟件開發(fā)商中廣泛使用。由于ARX是以Vc++作為基本程序設(shè)計(jì)語言,無論其效率、數(shù)據(jù)處理和軟硬件的控制能力都是最好的,是唯一圓滿地針對(duì)多圖檔環(huán)境的程序設(shè)計(jì)方法。是從根本上擴(kuò)展VLISP的程序設(shè)計(jì)方法。總之,通過以上分析可以看出ALISP雖然作為AuwCAD的基本開發(fā)手段,它可以使一般開發(fā)者用于較為簡(jiǎn)單交互性程序的開發(fā),但目前已被VLISP所替代。ADS將逐步被更為完善的ARX所取代。VBA則成為AumCAD用戶二次開發(fā)的另一支生力軍。AutoCAD提供的開發(fā)手段讓各類開發(fā)者都能選擇適合自己的開發(fā)工具。.參考文獻(xiàn):【11肖剛.等.機(jī)械CAD原理與實(shí)踐【M】.北京:清華大學(xué)出版社,2006.【2】王玉琨.等.CAD二次開發(fā)技術(shù)及其工程應(yīng)用【M】.北京:清華大學(xué)出版社,2008.【3]劉良華,朱東海.AutoCAD2000ARX開發(fā)技術(shù)【M】.北京:清華大學(xué)出版社,2000.
三億文庫3y.uu456.com包含各類專業(yè)文獻(xiàn)、專業(yè)論文、中學(xué)教育、各類資格考試、幼兒教育、小學(xué)教育、高等教育、51Auto+CAD二次開發(fā)技術(shù)比較等內(nèi)容。
- 國務(wù)院:2018年,“三調(diào)”就這樣干 (2018-09-17)
- 國土空間規(guī)劃專題研究 (2019-10-30)
- 國土空間規(guī)劃概念內(nèi)涵 (2019-10-30)
- 國土空間規(guī)劃技術(shù)流程 (2019-10-30)
- 公司獲"嘉英薈·南充雙創(chuàng)大賽"市本級(jí)選拔賽獲三等獎(jiǎng) (2018-11-30)