摘 要:本文簡要介紹CAD(主要針對AutoCAD產(chǎn)品)二次開發(fā)技術(shù),結(jié)合燃?xì)庑袠I(yè)對于CAD二次開發(fā)的需求分析,探討CAD二次開發(fā)技術(shù)在解決燃?xì)庠O(shè)計過程實際問題的應(yīng)用。
關(guān)鍵詞:CAD;二次開發(fā);燃?xì)庠O(shè)計
1 技術(shù)背景
CAD技術(shù)是先進(jìn)技術(shù)轉(zhuǎn)化為生產(chǎn)力的典型代表,是實現(xiàn)制造業(yè)信息化的基礎(chǔ),已成為衡量一個國家設(shè)計水平的重要標(biāo)志[1]。許多行業(yè)在使用CAD技術(shù)的同時根據(jù)行業(yè)特點對CAD進(jìn)行二次開發(fā),由此誕生了天正建筑、鴻業(yè)暖通等知名的商業(yè)軟件,提高了CAD技術(shù)應(yīng)用的深度。
然而在燃?xì)庠O(shè)計領(lǐng)域缺少商業(yè)化的二次開發(fā)產(chǎn)品。實際工作中燃?xì)庠O(shè)計同樣需要二次開發(fā)成果提升設(shè)計效率。本文簡要介紹CAD二次開發(fā)技術(shù),并應(yīng)用該技術(shù)成功解決燃?xì)庠O(shè)計過程中的工藝通用圖調(diào)用等實際問題。
2 CAD二次開發(fā)的要求
快速開發(fā)??焖匍_發(fā)分為兩層含義,1、開發(fā)人員能夠快速學(xué)習(xí);2、開發(fā)人員能夠在較短的時間內(nèi)完成產(chǎn)品雛形并不斷迭代。燃?xì)庠O(shè)計領(lǐng)域的CAD開發(fā)應(yīng)由具有燃?xì)鈱I(yè)知識的人來實施,較低的學(xué)習(xí)門檻和緩和的學(xué)習(xí)曲線才有利于專業(yè)人員進(jìn)行研究開發(fā)工作。
標(biāo)準(zhǔn)化。CAD的開發(fā)的目的之一就是實現(xiàn)企業(yè)的標(biāo)準(zhǔn)化。通過開發(fā)的方式對設(shè)計人員所使用的圖框、圖例、字體等基礎(chǔ)信息進(jìn)行標(biāo)準(zhǔn)化處理。對設(shè)計人員調(diào)用所需要的材料庫、工藝通用圖等進(jìn)行標(biāo)準(zhǔn)化處理和滾動更新。
實用性。CAD開發(fā)要能夠解決設(shè)計人員的問題,解放設(shè)計人員的生產(chǎn)力。燃?xì)庵茍D過程中存在復(fù)雜度較高或者重復(fù)性強(qiáng)的操作例如管線樁號的坐標(biāo)標(biāo)注、管線長度的統(tǒng)計計算、透視圖繪制等內(nèi)容。如果單純手工繪制耗時長,浪費(fèi)了設(shè)計人員時間。
專業(yè)性。針對燃?xì)庑袠I(yè)的CAD開發(fā)要具備專業(yè)性。例如燃?xì)庠O(shè)計中頻繁使用的水力計算需要符合國家相關(guān)標(biāo)準(zhǔn)并經(jīng)過驗證等。
3 CAD二次開發(fā)技術(shù)選擇
Auto LISP是為擴(kuò)展和自定義AutoCAD功能而設(shè)計的一種解釋性的編程語言。對于開發(fā)者來說語法簡單,功能函數(shù)強(qiáng)大并可以直接調(diào)用CAD的命令,與CAD環(huán)境結(jié)合好,非常適合設(shè)計人員學(xué)習(xí)使用;成果兼容性好,主流的CAD平臺基本集成了運(yùn)行Auto LISP編寫成果的接口環(huán)境,已完成的程序在不修改或少量修改的情況就可以運(yùn)行在不同的平臺上。
VisualLISP是嵌入AutoCAD的集成開發(fā)環(huán)境(IDE),它可以通過Microsoft ActiveX Automation接口與對象交互,同時通過實現(xiàn)反應(yīng)器函數(shù),擴(kuò)展了AutoLISP響應(yīng)事件的能力。[2]VisualLISP在顯著提高了程序的執(zhí)行能力和效率的基礎(chǔ)上繼承了Auto LISP的幾乎所有特性。
VBA是微軟公司開發(fā)出來的由VB衍生出來的編程語言,主要用于桌面應(yīng)用程序中的二次開發(fā)從而擴(kuò)展應(yīng)用軟件的功能。VBA具有可視化的編程開發(fā)環(huán)境,在界面設(shè)計等方面具有較大的優(yōu)勢。
ADS、ARX、ObjectARX、Managed.NET等開發(fā)方式在CAD的二次開發(fā)上具有強(qiáng)大的擴(kuò)展性,可以實現(xiàn)AutoLISP等腳本類無法實現(xiàn)的功能。與之相對應(yīng)的,這些開發(fā)方式龐大的體系結(jié)構(gòu)一般需要具有計算機(jī)軟件應(yīng)用開發(fā)背景的開發(fā)人員才能夠掌握,開發(fā)層次上也比較接近于CAD底層技術(shù),因此在開發(fā)過程中潛在的問題即可能造成軟件系統(tǒng)的崩潰。
根據(jù)以上開發(fā)技術(shù)的對比,本次開發(fā)選定以Visual LISP為主要開發(fā)方式。以下選擇燃?xì)夤に囃ㄓ脠D的開發(fā)實例對開發(fā)過程作進(jìn)一步的探討。
4 燃?xì)馔ㄓ脠D開發(fā)實例
需求的挖掘和確認(rèn)。燃?xì)庠O(shè)計企業(yè)通常會制作通用圖集,圖集通過整合燃?xì)夤艿涝O(shè)計施工建設(shè)中的通用做法、燃?xì)庑袠I(yè)相關(guān)規(guī)范標(biāo)準(zhǔn)以及燃?xì)庠O(shè)備技術(shù)參數(shù),為工程技術(shù)人員提供參考,有效的指導(dǎo)設(shè)計施工過程,提高工程效率。如廣州廣燃設(shè)計有限公司編制的通用圖集包含:調(diào)壓裝置;工業(yè)、工商用戶計量裝置;管碼、支架、吊架;室內(nèi)燃?xì)夤艿拦こ?室外燃?xì)夤艿拦こ?陰極保護(hù)工程等六大部分共118張圖紙。在通用圖集形成文檔的同時,設(shè)計人員需要一個快速查找和調(diào)用圖集的工具。
圖庫的制作。圖庫是燃?xì)夤に囃ㄓ脠D工具開發(fā)的基礎(chǔ),形成通用圖集文檔的編制和發(fā)布已經(jīng)完成了整個工作的80%以上,下一步是對圖集內(nèi)每一幅圖紙的標(biāo)準(zhǔn)化完善,將其分拆建立為圖塊,再由圖塊形成圖庫并上傳至網(wǎng)絡(luò)空間,最后建立URI對應(yīng)圖庫的映射表,方便下一步工具的調(diào)用。
用戶界面技術(shù)。一個優(yōu)秀的工具應(yīng)具有良好的用戶交互界面,燃?xì)夤に囃ㄓ脠D工具開發(fā)中至少應(yīng)包含如下內(nèi)容:搜索框、搜索、待選項、已選項、更新、幫助、確定、取消。本文采用dcl(Dialog Control Language)語言編寫用戶交互界面,并嵌入在VisualLISP代碼塊中,實現(xiàn)動態(tài)的釋放和加載。實現(xiàn)的界面如圖1所示。
模塊化設(shè)計??紤]到代碼的重用以及后期不斷迭代的需求,燃?xì)夤に囃ㄓ脠D工具的開發(fā)采用模塊化設(shè)計:1、預(yù)處理模塊;2、對話框處理模塊;3、配置讀寫修改模塊;4、下載模塊;5、邏輯處理模塊等。預(yù)處理模塊完成檢查CAD環(huán)境是否滿足要求,相應(yīng)的配置文件是否成功建立等內(nèi)容。對話框處理模塊完成DCL文件的生成、DCL文件的加載以及用戶操作的展示和記錄。配置讀寫修改模塊完成配置文件的生成、配置文件的讀取和根據(jù)對話框操作記錄對配置文件進(jìn)行修改。下載模塊專注于文件的下載功能。邏輯處理模塊根據(jù)讀取的配置文件內(nèi)容進(jìn)行邏輯判斷相關(guān)操作,最終將選定圖塊下載并插入當(dāng)前圖紙。
5 總結(jié)
本文對比了CAD的若干種二次開發(fā)技術(shù)、分析了燃?xì)庠O(shè)計領(lǐng)域?qū)τ诙伍_發(fā)的需求,最終以燃?xì)夤に囃ㄓ脠D工具的開發(fā)為實例說明CAD二次開發(fā)從需求發(fā)掘——界面設(shè)計——模塊設(shè)計——編碼完成的設(shè)計開發(fā)流程。燃?xì)夤に囃ㄓ脠D工具的開發(fā)成果在實際應(yīng)用中簡化了設(shè)計流程、提高了設(shè)計人員工作效率、提高了企業(yè)發(fā)布更新通用圖集的效率。進(jìn)一步可利用燃?xì)夤に囃ㄓ脠D工具的開發(fā)經(jīng)驗和編碼成果彌補(bǔ)現(xiàn)有軟件系統(tǒng)的不足,滿足更多燃?xì)庠O(shè)計的需求,使燃?xì)庠O(shè)計更加智能、高效和標(biāo)準(zhǔn)。
參考文獻(xiàn)
[1] AutoCAD二次開發(fā)方法的研究 王永輝 《計算機(jī)系統(tǒng)應(yīng)用》2007
[2] AutoCAD二次開發(fā)技術(shù)分析和比較 高永惠 《懷化學(xué)院學(xué)報》2007
作者簡介:田文龍,男,漢族,河南省安陽人,職稱:助理工程師,本科學(xué)歷,研究方向:城市燃?xì)夤こ淘O(shè)計。