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