APP下载

基于EPS的管线图打印自动化系统设计与实现

2021-09-01胡友明芜湖市勘察测绘设计研究院有限责任公司安徽芜湖241000

安徽建筑 2021年8期
关键词:图幅图层鼠标

胡友明 (芜湖市勘察测绘设计研究院有限责任公司,安徽 芜湖 241000)

1 引言

图纸打印是测绘生产中的一项重要内容,也是测绘成果提交前的最后一步,却是容易被人忽略的一步。测绘类图纸的主要特点是分层化,一个数据文件中包含不同的图层信息;分幅化,同一图层又分为离散或连续的若干个图幅;格式化,每一个图幅的打印需要加载标准图框。上述特点使其无法像其他文档一样进行快速地打印和整理。随着城市建设的快速化,客户对测绘成果提交周期的要求越来越短,图纸打印的自动化和快速化显得非常重要。

现阶段,地下管线图出图的主要流程是选择需要打印的图层,针对需要打印的图幅逐一加载图框,并输入相关的图框信息,发送到绘图仪,重复以上步骤直至所有的图层打印完成,整理图纸。上述流程中的每一步都需要人工干预,自动化水平低,容易出错。随着图层、图幅及图纸份数的增加,出图工作将耗费大量的时间。本文针对地下管线图出图效率低下的问题,基于EPS平台二次开发技术,使用VBScript设计并实现了一种图纸打印自动化系统。

2 EPS平台二次开发技术

EPS平台由北京清华山维新技术开发有限公司开发。是一种以数据库为核心的一体化解决数据采集、数据编辑、数据监理、跨平台数据转换、整合共享与多格式数据分发、数据库建设、数据更新到GIS分析应用等诸多问题的综合信息系统体系。具备的二次开发技术,赋予了其强大的灵活性和可扩展能力,广泛应用于勘测规划领域。EPS支持C++和脚本语言两种开发方式。EPS脚本语言遵循VBScript和JScript语言标准,可以实现工程管理、选择集操作、图形编辑操作、数据整理、数据转换、坐标体系转换和系统设置等功能。EPS脚本分为有模脚本和无模脚本两种形式,其中无模脚本支持与视图窗口交互操作。相比C++开发方式,脚本语言简单易学,开发快速,本文采用VBScript进行开发。SSProcess是系统缺省定义的对象,其包含的PrintCurFrameMap函数为图纸打印自动化系统的实现,提供了关键功能。

3 系统的设计与实现

3.1 系统的框架

地下管线图打印自动化系统大体可分为信息的输入,图幅的选择与打印两大部分。EPS提供了符合《城市地下管线探测技术规程》中图示要求的图框,需要输入9项信息,分别为图幅名称、平面坐标系、高程系、测量单位、测量方法、探测员、测量员、绘图员、检查员。目前,芜湖市的综合地下管线探测需要提交给水、雨水、污水、天然气、电力、路灯、电信等七种管线图。图幅的选择与打印就是在7个图层中打开特定的图层,关闭其余的图层,在该图层中定位到需要打印的图幅,加载图框,发送绘图指令到绘图仪。

整个系统的框架是以单个图幅的选择和打印为核心,在图幅、图层和打印份数间进行三重循环,如图1所示。

图1 地下管线图打印自动化系统框架

3.2 打印信息输入子系统

地下管线图打印时,除需要输入与图框有关的9项信息外,还需要确定纸张大小、比例尺、打印偏移、打印机、打印份数、打印颜色等要素。采用手动打印方式时,需要在不同位置的三个窗口输入以上信息,如图2所示。

整个打印流程中图2(a)弹出N1 x N2次,图2(b)弹出N1次,图2(c)弹出N1次,N1为需要打印的图层数,N2为图层内的图幅数。

图2 手动打印方式信息输入与要素选择窗口

在自动化打印系统中,使用AddInputParameter函数设计实现了一种综合信息输入窗口,如图3所示,可一次性输入、选择所有与打印相关的信息和要素,且只需要输入一次。为进一步减少用户操作的次数,通过给AddInputParameter函数指定缺省值的方式,可自动输入平面坐标系、高程系、测量单位等不随工程而改变的固定信息;使用ReadEpsIni函数可获取上一次打印使用的绘图仪名称;利用ReadEpsDBIni函数读取工程名称和勘测日期,经格式转换后可自动填写图幅名称和测量方法两项信息。在某些情况下,可以实现零输入即设置完成所有与打印相关的信息。

图3 打印机、图幅设置窗口

3.3 图幅的选择与打印子系统

用户在打印机、图幅设置窗口里提交完相应信息后,图幅的选择与打印会自动完成。程序能否按照设计的要求自动选择正确的图幅,是整个自动化打印系统的关键所在。考虑到实际工作中的各种应用场景,系统设计了两种图幅选择方式,全部图幅与自选图幅,可通过打印机、图幅设置窗口中的“打印范围”进行选择。前者会打印所有有管线数据的图幅,后者则打印用户指定的图幅。

在全部图幅的选择方式下,系统通过检测某一个图幅内是否有管线线或者管线点来确定是否选择该图幅。程序测试发现,两种检测条件在大部分情况下的选择结果没有区别。但是,对于某些特殊情况下(如管线数据未进行分幅),以管线线作为选择条件会出现遗漏。因此,最终以图幅内是否有管线点作为选择的依据。

自选图幅方式利用EPS无模脚本可进行视图窗口交互操作的特性实现。基本的操作方式是用户使用鼠标左键点击某个图幅,即选择该图幅,再次左击,取消选择,点击右键完成选择。实现该操作的关键是获取鼠标点击点所在图幅的中心点坐标。如图4所示,十字标记为图幅中心点O,星形标记为鼠标点击点P。

图4 鼠标点击点与图幅中心点

式(1)和式(2)中 Xo、Yo 为图幅中心点的坐标,Xp、Yp为鼠标点击点的坐标,W为图幅宽带,比例尺为1:500时,W取250,Xp/W、Yp/W为取模运算。通过SetCurMapFrame函数,利用获取的图幅中心点坐标即可选择该图幅。

图幅选择完成以后,利用EPS脚本提供的PrintCurFrameMap函数,即可向绘图仪发送打印指令。当打印份数大于1时,系统会逐份进行打印,对绘图仪输出的图纸无需再进行整理。

3.4 与手动打印方式的对比

以某小区的综合管线图出图为例,将手动打印方式与使用自动化系统打印进行了对比。该小区共有7种管线,分别为给水、雨水、污水、天然气、电力、路灯、电信,占据5个图幅,每种管线打印3份。对比结果如下表所示。

两种出图方法操作次数对比表

4 结语

本文结合生产实际,针对地下管线图出图需大量人工操作的问题,利用EPS平台二次开发技术,设计并实现了图纸打印自动化系统,可以对该系统进行进一步的优化,即可适用于带状地形图等其他类型图纸的打印。经测试对比,该系统自动化程度较高,大幅减少了人工操作,同时也避免了过多的人工操作可能出现的错误,提高了工作效率,让测绘成果得以快速提交应用。

猜你喜欢

图幅图层鼠标
基于ArcEngine自动生成1∶5万地形图标准分幅图框
解密照片合成利器图层混合模式
基于Arcpy的地形图接图表快速生成方法
基于EXCEL的地形图图幅号转换查询方法
跟我学添加真实的光照效果
鼠标折叠笔
国外建筑CAD图层标准发展现状与研究
地形图分幅及图幅号转换
用Photoshop图层技术制作精美邮票
45岁的鼠标