陳青松
(中冶賽迪技術(shù)研究中心有限公司 BIM技術(shù)研究中心,401122)
基于Microstation V8 XM圖紙批量打印的實(shí)現(xiàn)
陳青松
(中冶賽迪技術(shù)研究中心有限公司 BIM技術(shù)研究中心,401122)
Microstation通用功能已非常強(qiáng)大,但在實(shí)現(xiàn)圖紙批量化打印方面卻存在著不足,需要用戶手動對每幅圖進(jìn)行選擇、設(shè)置和打印,工作效率低下,這就需要開發(fā)出一種快速批量打印工具。著重介紹了了在MicrostationV8 XM平臺上基于Nativecode開發(fā)方式實(shí)現(xiàn)批量打印的方式方法。
Microstation;dgn;批量打印
隨著企業(yè)甩圖板工程的完成,企業(yè)信息化建設(shè)的不斷深入,計算機(jī)在企業(yè)應(yīng)用中的地位越來越重要,而作為信息化基礎(chǔ)的CAD軟件是企業(yè)信息化工程的一個支承點(diǎn)。為了能夠指導(dǎo)工程項(xiàng)目施工建設(shè),CAD出圖是一個必不可少的步驟,特別是出大批量的工程圖、建筑圖等。如果針對項(xiàng)目圖紙單張打印,這將大大增加設(shè)計人員的工作量,使工作顯得冗余,降低了工作效率。
Microstation是全球馳名的美國Bentley公司開發(fā)的企業(yè)級工程模式應(yīng)用軟件產(chǎn)品的基礎(chǔ)CAD軟件,具有強(qiáng)大的2D/3D輔助設(shè)計功能,在歐美及國內(nèi)的大中型工程設(shè)計企業(yè)得到了極為廣泛的應(yīng)[1]。本文將圍繞如何在Microstation V8 XM中實(shí)現(xiàn)圖紙批量打印展開研究。
在一個具體項(xiàng)目中,工程圖紙對應(yīng)的圖框存在圖框大小不一、橫放或豎放、縮放、旋轉(zhuǎn)(本文只針對那些旋轉(zhuǎn)角度為90度整數(shù)倍的圖框)、加長等各種情況,這為圖框范圍正確識別和針對各類型圖框正確設(shè)置打印參數(shù)帶來了挑戰(zhàn)。針對這些實(shí)際情況批量打印程序必須實(shí)現(xiàn)以下基本功能:
1)對于單個文件中存在多個圖框情況,要能獲取該文件中所有圖框信息;
2)對于批量選擇的多個文件,要能獲取每個文件中所有圖框信息;
3)可對相同類型圖框單獨(dú)或者統(tǒng)一設(shè)置打印參數(shù);
4)對于設(shè)置好打印參數(shù)所有圖紙,能在命令觸發(fā)的條件下執(zhí)行全自動批量打印。
本文中涉及圖框信息主要有以下四類:
1)圖框類型信息,圖框是A4、A4豎、A3、A2等等類型(便于自動匹配打印紙張);
2)圖框范圍信息,圖框左上角和右下角坐標(biāo)信息;
3)圖框縮放比例;
4)圖框旋轉(zhuǎn)角度。
Microstation軟件本身提供了打印程序和批量處理程序,但結(jié)合使用局限較多(例如不同大小圖框在同一批量處理程序中進(jìn)行打印則效果不佳,同一批量圖框橫放和豎放也只能識別一種等等)。通過二次開發(fā)可完美解決此類問題,但由于軟件本身和SDK(Software development kit,二次開發(fā)包)開放接口所限,批量打印程序需要解決圖框信息獲取及打印參數(shù)動態(tài)設(shè)置及發(fā)送給問題。
2.1 獲取完整的圖框信息
每個企業(yè)根據(jù)自身實(shí)際情況,會制定一套統(tǒng)一使用的圖框,如果圖框制作沒有一定規(guī)范那么將阻礙后續(xù)批量打印程序?qū)D框信息獲取。本文采用的圖框解決方案是:利用程序生成統(tǒng)一命名的圖框Cell(通過手動制作公司統(tǒng)一的圖框Cell再發(fā)布給設(shè)計人調(diào)用則無法實(shí)現(xiàn)不同類型圖框命名為為同樣名字的Cell,對于該圖框生成程序本文不做過多分析,該程序已在筆者公司穩(wěn)定運(yùn)行),并為該Cell添加屬性用來保存圖框類型信息(例如A4、A4豎等等),同時將圖框最外圍邊框線作為Cell第一個元素(以便快速準(zhǔn)確獲取到圖框?qū)嶋H范圍)。通過這種方法生成的圖框,再結(jié)合二次開發(fā)就可以完整獲取文件中所有圖框信息(Cell縮放比例就是圖框縮放比例,Cell旋轉(zhuǎn)角度就是圖框旋轉(zhuǎn)角度)。
2.2 打印過程中動態(tài)設(shè)置打印參數(shù)并實(shí)現(xiàn)自動批量打印
批量打印另一個重要功能是在自動打印過程中將設(shè)置好的打印參數(shù)應(yīng)用到具體圖框并發(fā)送給打印機(jī),而Microstation V8 XM開放的SDK[2]中并沒有提供接口來操作打印過程,就算間接利用發(fā)送命令的方式也只能設(shè)置部分打印參數(shù),最后通過研究該軟件自身打印工具的打印過程以及提供的SDK,本工具采用如下思路來實(shí)現(xiàn)自動化過程:在每個文件打印過程中通過編程啟動Microstation軟件自帶打印功能[3],并通過程序代碼控制這個過程(編程來控制軟件本身的打印過程間接達(dá)到自動化打印效果)達(dá)到實(shí)現(xiàn)批量打印功能。
Microstation V8 XM支持MDL(Microstation Development Language)、VBA(Visual Basic for Applications)、Addins及NativeCode等多種二次開發(fā)方式[4],本文采用NativeCode方式實(shí)現(xiàn)批量打印程序開發(fā),即在Visual Studio2003環(huán)境中結(jié)合版本號為08090451的Microstation二次開發(fā)包完成代碼編寫工作(程序功能主界面如圖1所示)。
3.1 獲取待打印文件中所有圖框信息關(guān)鍵代碼
每個Microstation文件可由多個Model組成,每個Model中可放置多個圖框。
1)后臺打開待打印文件
2)獲取文件所有Model
3)獲取Model的所有圖框
4)獲取每個圖框的圖框信息
圖1 批量打印程序主界面
3.2 自動設(shè)置打印參數(shù)并觸發(fā)打印關(guān)鍵代碼
1)打開待打印文件,并將待打印圖框居中
2)啟動Microstaion軟件本身打印界面
圖2 Microstation軟件自帶打印功能界面
3)通過程序設(shè)置打印界面各打印參數(shù)
4)觸發(fā)打印
圖3 參數(shù)設(shè)置好的打印界面
Microstation批量打印程序在實(shí)際工作中得到了極大應(yīng)用,成百上千張圖紙只需要簡單地設(shè)置好打印參數(shù)后即可按順序進(jìn)行批量打印,極大提高了打印效率。通過選擇適當(dāng)?shù)拇蛴◎?qū)動可將圖紙文件批量轉(zhuǎn)換成PLT或PDF格式,極大地滿足了工程需求。
[1] 肖劍平.VC++環(huán)境下運(yùn)用MDL進(jìn)行Microstation二次開發(fā)的剖析[J].工程勘察,2006,(2).
[2] MicroStation V8 MDL Function Reference SDK自帶幫助文件[K].
[3] 溫特斯.學(xué)習(xí)MicroStation VBA[M].中國水利水電出版社,第1版,2007(7):1.
[4] 何立輝.基于Microstation的礦山設(shè)計二次開發(fā)技術(shù)探討[J].內(nèi)蒙古煤炭經(jīng)濟(jì),2016:10.
[5] 趙亭懷,王怡紅,劉董梅.談?wù)凪icroStation圖形文件輸出[J].油田建設(shè)設(shè)計,1998:1.
Realization of batch printing based on microstation V8 XM
CHEN Qing-song
TH12;TP391
:B
1009-0134(2017)07-0133-03
2017-03-30
陳青松(1982 -),男,湖南人,工程師,碩士,研究方向?yàn)閰f(xié)同設(shè)計與企業(yè)信息化。