梁騰偉
(拜耳技術(shù)工程(上海)有限公司,上海 201507)
在工程設(shè)計(jì)過程中,儀表位置圖的繪制一直是一項(xiàng)極其費(fèi)時(shí)費(fèi)力而又必不可少的工作。有了三維建模軟件PDS后,傳統(tǒng)的儀表位置圖繪制方法有3種:第一種是設(shè)計(jì)人員直接看PDS的3D模型,結(jié)合二維設(shè)備布置圖繪制儀表位置圖;第二種是從PDS中切出帶儀表點(diǎn)位的設(shè)備圖;第三種是借助AutoCAD的第一代二次開發(fā)語言AutoLISP,在設(shè)備布置圖上打點(diǎn),再手動(dòng)修改儀表圖標(biāo),添加相關(guān)儀表信息。第一種方法純手動(dòng),而且所繪儀表位置不夠精確;第二種方法位置準(zhǔn)確,但直接從PDS切出的二維圖紙帶有很多噪聲信息,整理非常費(fèi)時(shí)費(fèi)力;雖然第三種方法較前兩種稍微先進(jìn)一點(diǎn),但后續(xù)仍需做大量的手動(dòng)工作。
為此,筆者提出一種基于AutoCAD VBA[1]的儀表位置圖設(shè)計(jì)方法,將AutoCAD與PDS三維建模軟件進(jìn)行無縫鏈接,實(shí)現(xiàn)儀表位置圖的自動(dòng)繪制。
儀表位置圖的繪制工作是一項(xiàng)較為機(jī)械的重復(fù)工作。原理上,任何機(jī)械重復(fù)工作都可由電腦或機(jī)器完成。此時(shí)人的任務(wù)是理解機(jī)器語言(程序語法),“教給”機(jī)器實(shí)現(xiàn)方法(算法實(shí)現(xiàn)),并最終檢查確認(rèn)機(jī)器實(shí)現(xiàn)的結(jié)果,因此進(jìn)行程序自動(dòng)繪制儀表位置圖是可行的。
在程序工具的選擇上,典型的AutoCAD二次開發(fā)工具有AutoLISP和AutoCAD VBA。AutoLISP是Autodesk公司早期開發(fā)的一種二次開發(fā)語言;AutoCAD從R14版以后,提供了VBA語言接口,它是Excel與AutoCAD的“遙控器”[2],功能更加強(qiáng)大。因此,筆者選用AutoCAD VBA工具進(jìn)行設(shè)計(jì)。
欲實(shí)現(xiàn)AutoCAD VBA自動(dòng)繪制儀表位置圖,關(guān)鍵確認(rèn)兩個(gè)問題:一是VBA可否在AutoCAD模型空間中定位?二是AutoCAD VBA如何獲取Excel數(shù)據(jù)?筆者經(jīng)過研習(xí)AutoCAD的VBA幫助模塊,結(jié)合AutoCAD與Excel VBA的使用經(jīng)驗(yàn),成功打通這兩條脈絡(luò),確認(rèn)了該方法的基礎(chǔ)可行性。另外,每一類儀表應(yīng)當(dāng)用不同的符號(hào)表示,以提高圖紙的可讀性與美觀性,這一點(diǎn)也可以通過VBA實(shí)現(xiàn)自動(dòng)繪制。
利用AutoCAD VBA自動(dòng)繪制儀表位置圖的主要流程如圖1所示。
圖1 新方法的工作流程
部分儀表的相關(guān)信息可以從PDS模型中提取并導(dǎo)出Excel文件,這部分工作需要配管專業(yè)與儀表專業(yè)密切合作。許多PDS建模工程師不太了解儀表專業(yè),根據(jù)P&ID圖輸入儀表建模信息時(shí),儀表位號(hào)參差不齊。這就需要前期儀表工程師與PDS建模工程師進(jìn)行良好的溝通,明確定義PDS中儀表位號(hào)的命名方法。如:P&ID中有如圖2所示的流量變送器,建議在PDS建模時(shí)直接命名為F4001,而不要命名為FICA4001,字母與數(shù)字間也不能有空格。因?yàn)閮x表的功能號(hào)FICA可能根據(jù)需要而經(jīng)常改動(dòng),但儀表大類F輕易不會(huì)改動(dòng),除非根據(jù)工藝需要?jiǎng)h減儀表。而且從PDS角度講,用F4001足以標(biāo)識(shí)該儀表,既方便后期儀表專業(yè)的比對(duì)又減少了配管專業(yè)的工作量。
圖2 P&ID圖中的流量變送器
另外,一個(gè)優(yōu)秀的PDS模型,應(yīng)當(dāng)包含儀表類型的描述。這部分工作是在PDS模型中建好各個(gè)儀表點(diǎn)后,由儀表工程師提供相應(yīng)儀表的類型信息給配管專業(yè),PDS工程師可直接導(dǎo)入PDS模型。有了這一步工作,就可以大幅提高PDS導(dǎo)出儀表數(shù)據(jù)的可讀性。需要PDS導(dǎo)出的信息包括:儀表位號(hào)、儀表位置三維坐標(biāo)(標(biāo)高和縱橫坐標(biāo))、儀表所在管線號(hào)或設(shè)備號(hào)。
首先要對(duì)直接從PDS導(dǎo)出的表格進(jìn)行整理,刪除不相關(guān)的信息,修整儀表位號(hào)(如除去空格等),使其與儀表索引表的命名完全對(duì)應(yīng)。從SPI(Smart Plant Instrumentation,舊稱Intools)中導(dǎo)出儀表索引,并把儀表索引與PDS導(dǎo)出的儀表信息進(jìn)行對(duì)比。結(jié)合P&ID圖,如果PDS有而儀表索引和P&ID無,說明PDS有誤,需刪除;如果PDS無而儀表索引和P&ID有,說明PDS有遺漏,需添加。匯總PDS不匹配信息后,通知配管專業(yè)刪除、修正或新增。
掃清PDS中儀表位號(hào)存在的問題后,通過Excel自帶的查詢功能把儀表位號(hào)、儀表類型、三維坐標(biāo)及管線號(hào)等信息整合為一張表,結(jié)合設(shè)備圖紙中的儀表圖例,整理為最終數(shù)據(jù)源,見表1。
表1 整理后的儀表數(shù)據(jù)源(包括閥門)
首先,配置坐標(biāo)原點(diǎn)。為了保證打點(diǎn)的精確性,需使設(shè)備圖紙的坐標(biāo)原點(diǎn)與PDS模型的坐標(biāo)原點(diǎn)完全一致。如此可省去在VBA程序中調(diào)整坐標(biāo)相對(duì)值的工作,使VBA程序可以直接根據(jù)PDS導(dǎo)出的坐標(biāo)定位打點(diǎn)。典型的配置方法是在設(shè)備布置圖中選取一個(gè)基準(zhǔn)點(diǎn),在PDS中查出該點(diǎn)的坐標(biāo),在AutoCAD中將設(shè)備布置圖移到相應(yīng)的坐標(biāo)。
然后,制作儀表圖例。根據(jù)項(xiàng)目的實(shí)際情況,在設(shè)備布置圖中繪制每類儀表類型的圖例,并制成AutoCAD圖塊,示例見表2。需要注意的是:圖塊名要與表1所列的最終數(shù)據(jù)源的圖塊名一致,否則VBA程序無法調(diào)用正確的圖例;同時(shí)需注意儀表圖塊所在的圖層,建議為儀表位置圖新建一個(gè)圖層,方便后期的修改與維護(hù)。制作各類儀表圖塊的目的是方便VBA程序找到相應(yīng)位置后,直接調(diào)用該儀表類型的塊名,標(biāo)識(shí)該儀表所在位置,免去后期人工添加儀表塊的繁瑣工作。
表2 儀表圖例和塊名舉例
通過VBAMAN打開AutoCAD VBA編輯器,載入預(yù)先編寫好的.dvb程序文件。執(zhí)行程序,通常1min內(nèi)即可生成儀表位置圖,繪制流程如圖3所示。
圖3 儀表位置圖繪制流程
注意:AutoCAD2013默認(rèn)不帶VBA模塊。若要編寫AutoCAD VBA程序,需到其官方網(wǎng)站下載一個(gè)安裝包。
此方法在張家港某外資項(xiàng)目中應(yīng)用后,極大地提高了設(shè)計(jì)人員的工作效率。施工中,由于儀表布置圖涵蓋了標(biāo)高、管線號(hào)和接線箱號(hào),詳盡的信對(duì)為施工單位執(zhí)行儀表安裝工作起到一定的指導(dǎo)意義。準(zhǔn)備的Excel版的最終數(shù)據(jù)源,也為施工階段提供了很大便利,施工管理人員可以很方便地檢索出某一區(qū)域的相關(guān)儀表信息。業(yè)主反饋:所繪圖紙儀表信息精確、詳盡而又美觀。
利用AutoCAD VBA實(shí)現(xiàn)儀表位置圖的自動(dòng)生成,大幅提升了項(xiàng)目的設(shè)計(jì)效率和準(zhǔn)確度,也提高了圖紙的準(zhǔn)確性和可讀性,最大程度地節(jié)約了人工成本,并增強(qiáng)了設(shè)計(jì)人員的工作積極性。該方法特別適用于同一樓層區(qū)域儀表數(shù)量眾多的情況,同一樓層儀表數(shù)量越多,越能體現(xiàn)該方法的優(yōu)越性。
該方法的不足之處在于AutoCAD VBA數(shù)據(jù)流的單向性問題。AutoCAD VBA只能把Excel中讀取的數(shù)據(jù)寫入AutoCAD圖紙,寫入之后無法用AutoCAD VBA讀出相應(yīng)儀表的信息,也即對(duì)于每張儀表位置圖該程序只能運(yùn)行一次,很難通過程序刪除來更新儀表相關(guān)信息。當(dāng)然,一般而言數(shù)據(jù)源正確率較高,項(xiàng)目后期變更較少,儀表位置圖的更新工作量較小,可以手動(dòng)進(jìn)行。而且,用程序制圖效率非常高,一般不到一分鐘就能繪制一張儀表位置圖。如果后期更新量較大,可以直接刪除儀表布置層,更新數(shù)據(jù)源,再調(diào)用程序進(jìn)行重新繪制。而且該方法有待開發(fā)簡(jiǎn)易的人機(jī)接口,使沒有VBA程序概念的人也能很快學(xué)會(huì)使用該方法,以便推廣應(yīng)用,使同行都能受益。