基于Microstation V8 XM图纸批量打印的实现

2017-08-08 03:01陈青松
制造业自动化 2017年7期
关键词:批量二次开发图纸

陈青松

(中冶赛迪技术研究中心有限公司 BIM技术研究中心,401122)

基于Microstation V8 XM图纸批量打印的实现

陈青松

(中冶赛迪技术研究中心有限公司 BIM技术研究中心,401122)

Microstation通用功能已非常强大,但在实现图纸批量化打印方面却存在着不足,需要用户手动对每幅图进行选择、设置和打印,工作效率低下,这就需要开发出一种快速批量打印工具。着重介绍了了在MicrostationV8 XM平台上基于Nativecode开发方式实现批量打印的方式方法。

Microstation;dgn;批量打印

0 引言

随着企业甩图板工程的完成,企业信息化建设的不断深入,计算机在企业应用中的地位越来越重要,而作为信息化基础的CAD软件是企业信息化工程的一个支承点。为了能够指导工程项目施工建设,CAD出图是一个必不可少的步骤,特别是出大批量的工程图、建筑图等。如果针对项目图纸单张打印,这将大大增加设计人员的工作量,使工作显得冗余,降低了工作效率。

Microstation是全球驰名的美国Bentley公司开发的企业级工程模式应用软件产品的基础CAD软件,具有强大的2D/3D辅助设计功能,在欧美及国内的大中型工程设计企业得到了极为广泛的应[1]。本文将围绕如何在Microstation V8 XM中实现图纸批量打印展开研究。

1 批量打印程序需要具备基本功能

在一个具体项目中,工程图纸对应的图框存在图框大小不一、横放或竖放、缩放、旋转(本文只针对那些旋转角度为90度整数倍的图框)、加长等各种情况,这为图框范围正确识别和针对各类型图框正确设置打印参数带来了挑战。针对这些实际情况批量打印程序必须实现以下基本功能:

1)对于单个文件中存在多个图框情况,要能获取该文件中所有图框信息;

2)对于批量选择的多个文件,要能获取每个文件中所有图框信息;

3)可对相同类型图框单独或者统一设置打印参数;

4)对于设置好打印参数所有图纸,能在命令触发的条件下执行全自动批量打印。

本文中涉及图框信息主要有以下四类:

1)图框类型信息,图框是A4、A4竖、A3、A2等等类型(便于自动匹配打印纸张);

2)图框范围信息,图框左上角和右下角坐标信息;

3)图框缩放比例;

4)图框旋转角度。

2 在Microstation V8 XM中实现批量打印面临的问题及对应解决方法

Microstation软件本身提供了打印程序和批量处理程序,但结合使用局限较多(例如不同大小图框在同一批量处理程序中进行打印则效果不佳,同一批量图框横放和竖放也只能识别一种等等)。通过二次开发可完美解决此类问题,但由于软件本身和SDK(Software development kit,二次开发包)开放接口所限,批量打印程序需要解决图框信息获取及打印参数动态设置及发送给问题。

2.1 获取完整的图框信息

每个企业根据自身实际情况,会制定一套统一使用的图框,如果图框制作没有一定规范那么将阻碍后续批量打印程序对图框信息获取。本文采用的图框解决方案是:利用程序生成统一命名的图框Cell(通过手动制作公司统一的图框Cell再发布给设计人调用则无法实现不同类型图框命名为为同样名字的Cell,对于该图框生成程序本文不做过多分析,该程序已在笔者公司稳定运行),并为该Cell添加属性用来保存图框类型信息(例如A4、A4竖等等),同时将图框最外围边框线作为Cell第一个元素(以便快速准确获取到图框实际范围)。通过这种方法生成的图框,再结合二次开发就可以完整获取文件中所有图框信息(Cell缩放比例就是图框缩放比例,Cell旋转角度就是图框旋转角度)。

2.2 打印过程中动态设置打印参数并实现自动批量打印

批量打印另一个重要功能是在自动打印过程中将设置好的打印参数应用到具体图框并发送给打印机,而Microstation V8 XM开放的SDK[2]中并没有提供接口来操作打印过程,就算间接利用发送命令的方式也只能设置部分打印参数,最后通过研究该软件自身打印工具的打印过程以及提供的SDK,本工具采用如下思路来实现自动化过程:在每个文件打印过程中通过编程启动Microstation软件自带打印功能[3],并通过程序代码控制这个过程(编程来控制软件本身的打印过程间接达到自动化打印效果)达到实现批量打印功能。

3 批量打印在Microstation V8 XM中编程实现

Microstation V8 XM支持MDL(Microstation Development Language)、VBA(Visual Basic for Applications)、Addins及NativeCode等多种二次开发方式[4],本文采用NativeCode方式实现批量打印程序开发,即在Visual Studio2003环境中结合版本号为08090451的Microstation二次开发包完成代码编写工作(程序功能主界面如图1所示)。

3.1 获取待打印文件中所有图框信息关键代码

每个Microstation文件可由多个Model组成,每个Model中可放置多个图框。

1)后台打开待打印文件

2)获取文件所有Model

3)获取Model的所有图框

4)获取每个图框的图框信息

图1 批量打印程序主界面

3.2 自动设置打印参数并触发打印关键代码

1)打开待打印文件,并将待打印图框居中

2)启动Microstaion软件本身打印界面

图2 Microstation软件自带打印功能界面

3)通过程序设置打印界面各打印参数

4)触发打印

图3 参数设置好的打印界面

4 结束语

Microstation批量打印程序在实际工作中得到了极大应用,成百上千张图纸只需要简单地设置好打印参数后即可按顺序进行批量打印,极大提高了打印效率。通过选择适当的打印驱动可将图纸文件批量转换成PLT或PDF格式,极大地满足了工程需求。

[1] 肖剑平.VC++环境下运用MDL进行Microstation二次开发的剖析[J].工程勘察,2006,(2).

[2] MicroStation V8 MDL Function Reference SDK自带帮助文件[K].

[3] 温特斯.学习MicroStation VBA[M].中国水利水电出版社,第1版,2007(7):1.

[4] 何立辉.基于Microstation的矿山设计二次开发技术探讨[J].内蒙古煤炭经济,2016:10.

[5] 赵亭怀,王怡红,刘董梅.谈谈MicroStation图形文件输出[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 -),男,湖南人,工程师,硕士,研究方向为协同设计与企业信息化。

猜你喜欢
批量二次开发图纸
批量精装房项目工程信息管理综述
云南:铁路“520”运输鲜花4万余件 高铁批量运输创新高
批量提交在配置分发中的应用
浅谈汽车线束产品图纸管理
看图纸
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
模具图纸在全生命周期内的信息管理系统研究
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
基于虚拟现实技术二次开发的学生公寓漫游仿真的研究