您當(dāng)前的位置:主頁>>AutoCAD>>AutoCAD二次開發(fā)  
           AutoCADActiveX簡介

           1.1 AutoCAD與ActiveXAutomation
    ActiveXAutomation是微軟公司推出的一個技術(shù)標(biāo)準(zhǔn),該技術(shù)是OLE技術(shù)的進(jìn)一步擴(kuò)展,其作用是在Windows系統(tǒng)的統(tǒng)一管理下協(xié)調(diào)不同的應(yīng)用程序,允許應(yīng)用程序之間相互控制、相互調(diào)用。目前,ActiveXAutomation技術(shù)已經(jīng)在Internet、Office系列辦公軟件的開發(fā)中得到了廣泛的應(yīng)用。
    AutoCAD作為一種具有高度開放結(jié)構(gòu)的CAD平臺軟件,它提供了強(qiáng)大的二次開發(fā)環(huán)境。從AutoCADR14版開始,AutoCAD引入了ActiveXAutomation技術(shù)。由于ActiveX技術(shù)是一種完全面向?qū)ο蟮募夹g(shù),所以許多面向?qū)ο蠡幊痰恼Z言和應(yīng)用程序,可以通過ActiveX與AutoCAD進(jìn)行通信,并操縱AutoCAD的許多功能。
   AutoCADActiveX技術(shù)提供了一種機(jī)制,該機(jī)制可使編程者通過編程手段從AutoCAD的內(nèi)部或外部來操縱AutoCAD。    ActiveX是由一系列的對象,按一定的層次組成的一種對象結(jié)構(gòu),每一個對象代表了AutoCAD中一個明確的功能,如繪制圖形對象、定義塊和屬性等等。ActiveX所具備的絕大多數(shù)AutoCAD功能,均以方法和屬性的方式被封裝在ActiveX對象中,只要使用某種方式,使ActiveX對象得以“暴露”,那么就可以使用各種面向?qū)ο缶幊痰恼Z言對其中的方法、屬性進(jìn)行引用,從而達(dá)到對AutoCAD實(shí)現(xiàn)編程的目的。
           1.2 AutoCAD中的ActiveX對象模型樹
    在AutoCADActiveX中提供了各種封裝有AutoCAD功能的對象,這些對象可供應(yīng)用程序通過編程來引用。根據(jù)功能的不同,可以把這些對象分成以下幾類:
(1)圖元(Entity)類對象:如直線、圓弧、多段線、文字、標(biāo)注等。
(2)樣式設(shè)置(Style)類對象:如線型、標(biāo)注樣式等。
(3)組織結(jié)構(gòu)(Organizing)類對象:如圖層、編組、圖塊等。
(4)圖形顯示(View)類對象:如視圖、視口等。
(5)文檔與應(yīng)用程序(Document&Application)類對象:如DWG文件或AutoCAD應(yīng)用程序本身等。
所有這些對象都具有一種層次的關(guān)系,根據(jù)它們在AutoCAD中的功能,可以組成一種樹形結(jié)構(gòu),稱之為對象模型(ObjectModel)樹。圖37-1顯示了AutoCADActiveX的對象模型樹結(jié)構(gòu),其中“Document”對象的詳細(xì)結(jié)構(gòu)見圖37-2。

圖中兩端有半圓弧的框代表對象(Object),而矩形框則代表集合對象(Collection)。
從圖37-1中可以看到,AutoCADActiveX對象模型樹具有一個根對象“Application”,它包括1個“Preference”對象和3個集合對象。
在“Docements”集合對象中的“Document”對象代表了當(dāng)前的圖形文件,該對象下面又有Blocks(圖塊集合對象)、ModelSpace(模型空間集合對象)、PaperSpace(圖紙空間集合對象)等子對象,這些子對象又產(chǎn)生下一級的對象,如“Circle”、“Line”等,對應(yīng)著AutoCAD中的各種圖元命令,分別可以在圖塊、模型空間或圖紙空間創(chuàng)建各種圖元。如圖37-2所示。


模型樹中的對象和集合對象,可分為三種類型:
(1)駐留于圖形數(shù)據(jù)庫的圖元:如“Line”、“Circle”等。
(2)駐留于圖形數(shù)據(jù)庫的對象:如“Block”、“ModelSpace”、“PaperSpace”等。
(3)不駐留于圖形數(shù)據(jù)庫的對象和集合對象:這些對象產(chǎn)生的數(shù)據(jù)不會嵌入DWG文件中,如“Document”、“Database”對象等。
民眾工作室.制作      版權(quán)所有