【摘 要】本文對如何利用AutoCAD的擴展數(shù)據(jù)的特點、設(shè)置、檢索的方法進行二次開發(fā),以解決工程設(shè)計過程存在的問題如目錄生成、圖紙分解等進行了介紹。
【關(guān)鍵詞】AutoCAD;擴展數(shù)據(jù);二次開發(fā);VBA、ActiveX;編程
0.引言
自從80年代AutoCAD開始引入國內(nèi)以來,在CAD和CAM等領(lǐng)域已經(jīng)得到了廣泛的應用,特別是在工程設(shè)計行業(yè),AutoCAD已成為主要的設(shè)計軟件和工具。雖然這些年來,隨著計算機圖形圖像處理技術(shù)的發(fā)展,已經(jīng)開始使用三維設(shè)計軟件進行工程設(shè)計,如石油化工等行業(yè)使用PDS等軟件進行工廠三維設(shè)計,但是許多設(shè)計工作仍然離不開AutoCAD。
設(shè)計人員在設(shè)計圖紙時往往在一個圖形文件(.dwg)中設(shè)計多張圖紙,便于圖紙之間的參照,在所有圖紙設(shè)計好之后,再手工將圖紙逐個分解成單個圖形文件(以各自圖號為文件名)進行繪圖并歸檔,并手工做出圖紙目錄文件(.xls)和材料表文件(.xls)。設(shè)計工作本身已經(jīng)是一個比較繁重的任務,后期再手工分解圖紙、做圖紙目錄和材料表,額外增加了許多負擔,而這都是一些簡單、重復、繁瑣、易錯的工作。
通過對AutoCAD二次開發(fā)有關(guān)資料的分析研究,AutoCAD實體對象的擴展數(shù)據(jù)及其它技術(shù)可以解決以上問題,并使用AutoCAD提供的VBA和ActiveX進行編程開發(fā)。下面對在開發(fā)過程中擴展數(shù)據(jù)的應用進行介紹。
1.擴展數(shù)據(jù)及特點
AutoCAD擴展數(shù)據(jù)是在常規(guī)的圖形數(shù)據(jù)基礎(chǔ)上增加的按一系列分類代碼組合而成的數(shù)據(jù)塊,它與常規(guī)實體數(shù)據(jù)一起構(gòu)成內(nèi)容更加廣泛的實體數(shù)據(jù)。AutoCAD提供了一系列的擴展數(shù)據(jù)組碼,這里只使用了1001和1000。
AutoCAD的ActiveX所提供的對象特別是圖元(如線、圓、文字等)都包含對擴展數(shù)據(jù)進行設(shè)置和檢索的方法SetXData和GetXData。
擴展數(shù)據(jù)的設(shè)置具有如下特點:
(1)對于同一個對象可以設(shè)置多個不同類型的擴展數(shù)據(jù),這就為開發(fā)應用增加了靈活性,根據(jù)二次開發(fā)的需要可以給一個圖元設(shè)置不同類型的擴展數(shù)據(jù)。
(2)對于同一個對象如果以同一個類型的數(shù)據(jù)重復設(shè)置,則只保留最后一次所設(shè)的擴展數(shù)據(jù),當認為設(shè)置不正確時,可以重新設(shè)置圖元的擴展數(shù)據(jù)。
(3)對圖形中的對象設(shè)置擴展數(shù)據(jù)并保存圖形后再次打開該圖形,先前設(shè)置的擴展數(shù)據(jù)仍然存在。這說明所設(shè)置的擴展數(shù)據(jù)是永久的,這樣可以制定標準的圖框和圖簽。
由此可見,所謂擴展數(shù)據(jù)實際上就是擴展屬性,這樣根據(jù)二次開發(fā)的實際需要可以為圖元對象設(shè)置必要的不同類型的擴展數(shù)據(jù)。
2.擴展數(shù)據(jù)的設(shè)置
主要是采用AutoCAD ActiveX的圖元對象所提供的SetXData方法進行擴展數(shù)據(jù)的設(shè)置??梢詫蝹€對象進行設(shè)置,也可以同時對多個對象進行設(shè)置。
對單個對象設(shè)置擴展數(shù)據(jù):在實際應用過程中是經(jīng)常要用到的,如在制作標準圖框和圖簽時,需要對圖框和圖簽的有關(guān)圖元設(shè)置擴展數(shù)據(jù),以生成圖紙目錄。
3.結(jié)束語
以上只是利用AutoCAD的VBA進行了一些初步的開發(fā),解決了設(shè)計過程中的某些問題。其實,AutoCAD所提供的ActiveX功能非常強大,用戶可以進行深度的二次開發(fā),以滿足設(shè)計工作的需要。除了VBA之外,還可以使用ObjectARX開發(fā)包在Visual Studio(.Net)環(huán)境下進行二次開發(fā),因此利用AutoCAD所提供的開發(fā)工具還可以開發(fā)出與設(shè)計有關(guān)并與設(shè)計緊密結(jié)合的管理系統(tǒng)如項目管理系統(tǒng)、協(xié)同設(shè)計系統(tǒng)等。 [科]
【參考文獻】
[1]梁學春,宋德明編著.AutoCAD2002二次開發(fā)技術(shù)指南.
[2]李長勛主編.AutoCAD ObjectARX程序開發(fā)技術(shù).