陳曉偉,葛 君
(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)
AutoCAD二次開(kāi)發(fā)中的若干問(wèn)題
陳曉偉,葛 君
(商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000)
AutoCAD是一個(gè)通用和開(kāi)放的繪圖系統(tǒng),但應(yīng)用它的每一個(gè)行業(yè)都有自己的行業(yè)標(biāo)準(zhǔn)和技術(shù)規(guī)格,每個(gè)設(shè)計(jì)工程師和繪圖員更有各自獨(dú)特的工作方式. 所以,如果只使用AutoCAD的一般功能,要完成某一個(gè)具體的設(shè)計(jì),依然顯得比較復(fù)雜. AutoCAD提供的開(kāi)放式體系結(jié)構(gòu)實(shí)現(xiàn)對(duì)AutoCAD的二次開(kāi)發(fā), 使AutoCAD更加符合用戶的需要. 文章具體介紹了AutoCAD二次開(kāi)發(fā)的原理、幾種常用的技術(shù)和它的適用范圍,并對(duì)它們各自的特點(diǎn)進(jìn)行了分析比較;闡述了二次開(kāi)發(fā)在各行業(yè)中應(yīng)用的現(xiàn)狀及發(fā)展前景,以及在以后的使用中應(yīng)注意的問(wèn)題.
AutoCAD;二次開(kāi)發(fā);開(kāi)發(fā)原理;開(kāi)發(fā)工具
廣義的二次開(kāi)發(fā)是指為了滿足特定應(yīng)用領(lǐng)域及用戶的需求,以通用軟件為基礎(chǔ),結(jié)合本專業(yè)知識(shí),而開(kāi)發(fā)的應(yīng)用軟件.AutoCAD二次開(kāi)發(fā)則是指為了滿足本專業(yè)或本行業(yè)的特定需求,以通用的AutoCAD為基礎(chǔ),通過(guò)利用AutoCAD的開(kāi)放式資源和開(kāi)放式體系結(jié)構(gòu),結(jié)合本專業(yè)特點(diǎn),對(duì)AutoCAD進(jìn)行再開(kāi)發(fā),其原理如圖1所示.
圖1 二次開(kāi)發(fā)原理圖
2.1 AutoLISP
AutoCAD R2.18本身自帶了一個(gè)二次開(kāi)發(fā)工具:Auto LISP.它既具有高級(jí)語(yǔ)言的基礎(chǔ)結(jié)構(gòu)和功用,也具有高級(jí)語(yǔ)言欠缺的圖形圖像處理功能,它整體內(nèi)含于AutoCAD 里面,是一種人工智能語(yǔ)言.Auto LISP在進(jìn)行AutoCAD的二次開(kāi)發(fā)時(shí),幾乎可直接調(diào)用AutoCAD所有的指令.但由于其自身的缺陷,現(xiàn)如今VisualLISP已經(jīng)把Auto LISP取代.
2.2 ADS
ADS(AutoCAD Development System)是AutoCADR11開(kāi)始支持的一種基于C語(yǔ)言開(kāi)發(fā)應(yīng)用程序的系統(tǒng)[1]43-44,51.用戶用ADS和C語(yǔ)言編譯器相結(jié)合進(jìn)行開(kāi)發(fā)程序,應(yīng)用程序通過(guò)編譯變?yōu)榭蓤?zhí)行文件,然后通過(guò)AutoCAD運(yùn)行,不僅充分發(fā)揮了AutoCAD的巨大效用,使C語(yǔ)言的結(jié)構(gòu)化編程、運(yùn)行效率高的優(yōu)點(diǎn)能夠淋漓盡致地體現(xiàn).因?yàn)锳DS僅僅是一系列Auto LISP外部函數(shù)通過(guò)Auto LISP解釋器裝入、解釋然后申請(qǐng)AutoCAD執(zhí)行,沒(méi)有直接嵌在AutoCAD里面,因此ADS的功效在一定程度上被約束了.當(dāng)編程界的面向?qū)ο箫L(fēng)靡全球時(shí),在AutoCAD R13中也提供了面向?qū)ο蟮拈_(kāi)發(fā)工具ARX.采用結(jié)構(gòu)化的編程體系的ADS,雖然速度快,受到諸多CAD相關(guān)行業(yè)的青睞,但由于DOS操作系統(tǒng)現(xiàn)在已不被廣泛使用,在其之下運(yùn)行的C語(yǔ)言也會(huì)慢慢地被淘汰,因此從AutoCAD 2000開(kāi)始不再支持ADS編程.
2.3 ObjectARX
Object ARX以 C++語(yǔ)言為基礎(chǔ),支持面向?qū)ο缶幊?,還向下兼容ADS.用ObjectARX應(yīng)用程序研發(fā)的CAD應(yīng)用軟件可以使用MFC的類庫(kù),用簡(jiǎn)單的方法解決了諸多難題.Object ARX可以讓使用者創(chuàng)建或派生新的類,由于它使用C++作為開(kāi)發(fā)環(huán)境,諸如此類的類和源程序能夠讓其他程序使用,故而使面向?qū)ο缶幊痰膬?yōu)勢(shì)得到了最大程度的發(fā)揮.
2.4 VBA
VBA(Visual Basic for Application)是基于ActiveX Automation的二次開(kāi)發(fā)工具[2]94-96.OLE Automation技術(shù)是ActiveX Automation的前身.它運(yùn)用其面向?qū)ο缶幊碳夹g(shù)的主要優(yōu)點(diǎn),所以外顯的對(duì)象能夠使Windows應(yīng)用程序的一個(gè)控制另一個(gè).從R14起AutoCAD添加了當(dāng)作ActiveX Automation服務(wù)器應(yīng)用程序的效能,讓一系列面向?qū)ο蟮恼Z(yǔ)言與Application能夠使AutoCAD和ActiveX交流.
2.5 VisualLISP
從AutoCAD 2000開(kāi)始,VisualLISP已經(jīng)被完整地集成.作為AutoLISP的取代者,能有效兼容其原有功能,而且對(duì)其進(jìn)行了較多的創(chuàng)新.它讓程序研發(fā)人員開(kāi)發(fā)與完善程序更加簡(jiǎn)便易行.能夠有效地訪問(wèn)COM、ActiveX接口及事件反應(yīng)器,還能使原始的研發(fā)變得更加簡(jiǎn)易;對(duì)代碼更嚴(yán)謹(jǐn)?shù)倪M(jìn)行保密,可更好的防盜版和防篡改.那些沒(méi)有經(jīng)過(guò)計(jì)算機(jī)編程培訓(xùn)的工程設(shè)計(jì)人員使用起來(lái)會(huì)更加得心應(yīng)手.
2.6 .NET
.NET是AutoCAD二次開(kāi)發(fā)的一種具有革命性的開(kāi)發(fā)工具,它依賴于Microsoft.NET Framework的框架直接進(jìn)行[3]39-46.這種開(kāi)發(fā)工具可以兼容AutoCAD 2006及其以后的全部版本.AutoCAD也能使用Object ARX托管包裝類來(lái)研制基于.NET源代碼.而托管包裝類可以讓研發(fā)者開(kāi)發(fā)源程序時(shí)能夠用VB.NET與C#.從而讓VB.NET、C#的編程人員二次開(kāi)發(fā)CAD軟件得到相應(yīng)的幫助.AutoCAD ActiveX幫助用戶能夠由AutoCAD的內(nèi)(外)部使用程序去控制AutoCAD.
2.7 若干二次開(kāi)發(fā)工具性能對(duì)照
若干二次開(kāi)發(fā)工具都具有自己的特點(diǎn),詳見(jiàn)表1.
表1 幾種二次開(kāi)發(fā)工具性能比較
3.1 AutoCAD二次開(kāi)發(fā)工具在制作工程圖稿件時(shí)的應(yīng)用
1)可采用EPS、TIFF、BMP、LIC、EMP等諸多文件格式,完成CAD圖像的“高保真”存儲(chǔ),而且能創(chuàng)造依賴于它的圖紙目錄庫(kù),從而才能更好地實(shí)現(xiàn)對(duì)圖紙的訪問(wèn).CAD圖像有多種存儲(chǔ)方式,既能利用AutoCAD本身特有的方式,使用配置打印機(jī)和光柵文件的輸出,也可以完成CAD圖像“高保真”的存儲(chǔ),采用這種方式能生成多種圖像格式的文件,這種文件能在Windows和DOS操作系統(tǒng)中直接呈現(xiàn),也可在OFFICE辦公軟件文字處理和ILLUSTRATOR 等圖形圖像處理中使用.
2)使用DCL完成對(duì)特殊字符編輯器的創(chuàng)建,使AutoCAD的字符集更加豐富.
3)AutoCAD使Auto CAD和Excel的互動(dòng)成為可能.
3.2 標(biāo)準(zhǔn)件的參數(shù)化設(shè)計(jì)
參數(shù)化設(shè)計(jì)是CAD在制造行業(yè)里的最重要的體現(xiàn).針對(duì)個(gè)別結(jié)構(gòu)雷同只是尺寸存在細(xì)微差異的標(biāo)準(zhǔn)件,采取參數(shù)化設(shè)計(jì)的形式創(chuàng)設(shè)圖形庫(kù),研發(fā)者修改一部分參數(shù)就能夠制作新的標(biāo)準(zhǔn)件圖形,無(wú)須查看技術(shù)指導(dǎo)書(shū)即可以在計(jì)算機(jī)上發(fā)現(xiàn)需要的技術(shù)參數(shù),還能讓制造行業(yè)使用多種常用的校核和優(yōu)化等計(jì)算方法,把零件的研發(fā)與繪制聚集在相同的系統(tǒng)里,就已經(jīng)能讓研發(fā)與繪制同時(shí)進(jìn)行變成了現(xiàn)實(shí),而且使標(biāo)準(zhǔn)件的研制進(jìn)度得到了提高[4]761.
3.3 實(shí)用新型
日新月異的工業(yè)進(jìn)展,使AutoCAD 已經(jīng)滲透到眾多行業(yè)里,除了設(shè)計(jì)標(biāo)準(zhǔn)件、常用件的領(lǐng)域,AutoCAD也得到了綜合發(fā)展.屈永華等人利用VB 對(duì)AutoCAD進(jìn)行了二次開(kāi)發(fā),用研究成果把有關(guān)礦山的“三下采煤”評(píng)估系統(tǒng)進(jìn)行了完善;周亮等采取AutoLISP研制了注塑模澆注系統(tǒng).AutoCAD二次開(kāi)發(fā)工具的使用在諸如此類的項(xiàng)目開(kāi)發(fā)中得到了充分的體現(xiàn)[5]56-58.
AutoCAD技術(shù)目前已經(jīng)相當(dāng)成熟,且在各個(gè)行業(yè)中得到廣泛使用,并極大地提高了企業(yè)生產(chǎn)力.其二次開(kāi)發(fā)技術(shù)的發(fā)展趨勢(shì)主要有以下幾個(gè)方面:標(biāo)準(zhǔn)化、開(kāi)放式、集成化、智能化.
1)標(biāo)準(zhǔn)化
AutoCAD軟件一般都集成在一個(gè)異構(gòu)的工作平臺(tái)上,為了支持跨平臺(tái),就需要一個(gè)標(biāo)準(zhǔn),現(xiàn)在所使用的標(biāo)準(zhǔn)主要有兩類:國(guó)家或國(guó)際標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn).
2)開(kāi)放式
用戶可以利用AutoCAD的二次開(kāi)發(fā)的特點(diǎn)和本行業(yè)相結(jié)合,開(kāi)發(fā)出適合自己的CAD系統(tǒng).
3)集成化
AutoCAD進(jìn)行二次開(kāi)發(fā)時(shí),可以把最適合的功能進(jìn)行集成,為以后的開(kāi)發(fā)節(jié)省人力物力.
4)智能化
為了產(chǎn)生更高效的CAD系統(tǒng),人工智能在AutoCAD的二次開(kāi)發(fā)中將會(huì)有越來(lái)越重要的作用.
在園林、建筑、服裝、機(jī)械等各行業(yè)中AutoCAD二次開(kāi)發(fā)工具都被普遍使用,它大力地支持了標(biāo)準(zhǔn)件、常用件的參數(shù)化研發(fā).這里深度剖析對(duì)比了AutoCAD中常用的多個(gè)二次開(kāi)發(fā)工具,又闡述了它的現(xiàn)狀,最后探析了二次開(kāi)發(fā)技術(shù)的發(fā)展趨勢(shì).在實(shí)際工作中,要依照具體工程的情況、研發(fā)人員的知識(shí)儲(chǔ)備狀況來(lái)抉擇到底使用何種開(kāi)發(fā)技術(shù),以達(dá)到事半功倍的效果.
[1] 梁艷霞,曹 飛. AutoCAD 二次開(kāi)發(fā)工具綜述[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與制造,2001(7).
[2] 王永輝,胡青泥,李紅彩. AutoCAD 二次開(kāi)發(fā)方法的研究[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2007(3).
[3] 余興勝. 用.NET 進(jìn)行 AutoCAD 二次開(kāi)發(fā)的方案探索[J]. 鐵道勘測(cè)與設(shè)計(jì),2006(3).
[4] 周 亮,丁 怡.用AutoLISP進(jìn)行注塑模澆注系統(tǒng)的參數(shù)化設(shè)計(jì)[J].機(jī)械研究與應(yīng)用, 2004, 17(3).
[5] 簡(jiǎn)惠云.用VBA開(kāi)發(fā)AutoCAD標(biāo)準(zhǔn)圖紙圖欄系統(tǒng)[J].計(jì)算機(jī)應(yīng)用, 2002, 22(2).
[責(zé)任編輯 冰 竹]
Simple Analyses on Some Secondary Development’s Issues
CHEN Xiaowei, GE Jun
(ShangqiuPolytechnic,Shangqiu476000,China)
AutoCAD is a general and open graphics system. But every industry and professional application has its own industry standards and technical specifications, so if you use only the general function of AutoCAD to complete a specific design, it seems more complex. AutoCAD’s open architecture achieves the secondary development of itself, so that AutoCAD can meet the needs of users more. The article introduces the principle of the secondary development about AutoCAD, several commonly used technologies, and the scope of application, and then it analyses and compares the characteristics of their respective. This paper expounds the present situation and development of secondary development prospects and the problems that should be paid attention to in the later use.
AutoCAD;secondary development;development principle;development tool
2015-05-22
陳曉偉(1981- ),女,河南商丘人,商丘職業(yè)技術(shù)學(xué)院講師,碩士,主要從事圖形圖像、軟件應(yīng)用研究。
1671-8127(2015)05-0032-03
TP391.72
A
商丘職業(yè)技術(shù)學(xué)院學(xué)報(bào)2015年5期