大比例尺数字地形图虚拟分幅技术研究

2018-10-19 09:18吴新广
水力发电 2018年7期
关键词:图幅批量对话框

黎 杰,吴新广

(中国电建集团贵阳勘测设计研究院有限公司,贵州 贵阳 550081)

1 地形图传统分幅概述

现代工程测量中,大比例尺地形图是最主要的一项基本测绘成果。按照我国测绘规范一直沿用传统模拟纸质地形图分幅存储管理方法,地形图最终成果均要求有一定规格:中小比例尺采用梯形分幅;大比例尺常采用50 cm×50 cm正方形或50 cm×40 cm矩形分幅;工程地形图可采用工程图幅分幅标准。对规模较大的工程项目,其大比例尺地形图图幅数量较多,如某工程15 km2区域1∶500地形图按50 cm×50 cm分幅图幅数量就超过240幅。目前,工程建设项目主要使用1∶500~1∶2 000大比例尺数字地形图,勘察设计过程中根据需要使用全区域或局部区域数字地形图,通常不使用标准分幅数字地形图成果。地形图分幅的主要目的是满足成果提交和成果归档使用要求,大比例尺数字地形图通常采用相应的成图软件自动或半自动分幅。地形图分幅出图主要包括以下几个步骤:分幅出图前预处理(分区地形图质检、分区地形图合并与接图处理)→确定并设置分幅标准→按标准分幅生成分幅图形文件→图廓注记与整饰→制作分幅接合表→分幅地形图文件规范化及拷贝出图。

目前,业内大多数测绘生产单位均使用地形图成图系统软件进行地形图分幅处理,也有部分作业单位自行编制数字地形图分幅程序或插件实现地形图分幅处理,程序功能不尽相同,软件界面、处理流程、分幅效果有所区别,但对于分幅地形图基本都采用独立文件形式。图1为国内应用最广泛的某款地形图成图系统软件的地形图分幅功能菜单与对话框,主要包括分幅标准、图廓整饰和批量分幅等设置子项。

图1 成图系统中相关菜单项

利用成熟商用地形图成图系统软件进行地形图分幅处理具有软件成本低、作业人员上手快、批量分幅自动化程度高等优点,但也存在一些不足之处:

(1)成图系统地形图分幅是在AutoCAD模型空间对测区地形图文件进行物理切割,为独立的标准图幅地形图文件,文件数量多,存储空间大,实现批量打印出图较为困难,分幅与出图使用脱节。

(2)批量自动分幅对每个标准图幅地形图文件以图幅左下角坐标命名,图幅结合表也采用该名称自动标注,美观度较差且查询使用不便。若后续需要将图幅按测区流水号、地形图内特征地物或地名命名,文件名称、图幅结合表、地形图分幅结合图等修改工作量大。

(3)批量自动分幅按矩形或梯形(经纬度)区域进行分幅切割,不能识别空白图幅,需人工删除空白图幅文件和编辑测区分幅结合图、图幅结合表,容易产生差错,处理工作量较大。

(4)地形图分幅方式不灵活。对带状测区或不规整测区,成图软件批量自动分幅同样按矩形或梯形(经纬度)区域分幅,单个图幅不能移动或变换规格,产生大量只有极少内容的图幅,大大增加了图幅数量。若采用人工任意图幅(任意位置或任意规格)分幅,分幅工作量和后期修改工作量较大。

(5)增加地形图质量控制和地形图修测工作量。地形图质量控制通常按图幅进行,质量检查时需增加地形图图幅接边检查工序,图幅检查后修改还需进行图幅接边检查,必要时还要修改测区地形图总图,增加了内业工作量。开展已有地形图修测时,通常在测区地形图总图上进行,修测后需对修测部分按原有分幅标准重新分幅,分幅工作量较大。

(6)地形图使用不便。工程区域面积相对较大,在工程建设过程中需要整个区域或分区地形图,用图人员需要将分幅地形图逐个拼合成区域地形图,并删除图廓内容,必要时还要进行地物、等高线等要素连接,造成使用不便。

2 地形图虚拟分幅技术研究

目前,市场上没有成熟并满足需求的商用地形图分幅专业软件。在工程建设中广泛使用的AUTODESK公司的AutoCAD软件从2000版以后提供了模型空间和布局、定制等功能,全面支持Internet,增加了Visual Basic和Visual LISP语言,二次开发环境更为开放,提供Vlisp独立编程环境,自带的二次开发AutoLisp汇编语言,用户根据需要可进行AutoCAD专业应用开发定制,扩充AutoCAD的功能。

1个AutoCAD图形文件对应1个模型空间,1个模型空间可以对应多个布局。每个AutoCAD的模型空间可以完整的输入、显示、编辑、存储、输出(包括第三方软件文件格式转换、硬拷贝输出等)1个图形文件,而布局只对模型空间的局部或部分内容进行独立显示、编辑、硬拷贝输出,每个布局中可设立图框(仅在布局中显示和编辑)对布局内图形进行编辑(实际修改并存储的是模型空间图形数据)。AutoCAD的模型空间和布局功能为地形图分幅处理提供了新思路,1个测区1种比例尺地形图对应1个图形文件,即1个AutoCAD模型空间每个布局对应1张分幅地形图,每幅分幅地形图的完整信息只在1个布局中显示、编辑和输出,地形图修改无论在布局中还是在模型空间中结果完全一致,不需要进行图幅接边,仅需进行地形图测绘分区接边,这种地形图分幅方式即为地形图虚拟分幅,大大节约了存储空间,减小了图形文件编辑修改、图幅接边工作量,后续用户可直接使用,无需开展分幅地形图合并处理,十分方便。因此,较传统硬分幅,地形图虚拟分幅具有明显优势,但目前主流地形图成图系统不支持地形图虚拟分幅,需要用户自主开发定制该项功能。

地形图虚拟分幅软件应具有以下功能:①采用面向对象的程序设计,界面友好,相关参数输入或设定方便;②程序在模型空间中仅自动产生分幅格网、标注分幅图名称或编号,可由用户自由设定,图纸名称与分幅图号相结合,易于查询识别;③程序在模型空间中可对部分图幅位置进行调整和特殊图幅规格定制;④批量分幅过程中自动识别空白图幅,仅对非空白图幅进行分幅处理;⑤分幅编号可由用户根据情况自行设定,提高分幅图号的灵活性和连续性;⑥通过自动创建分幅图布局,实现虚拟分幅,自动识别分幅图号,将其作为该分幅图的布局名称;⑦采用视口设计技术,按设定比例尺显示相关分幅图内容,每个布局显示范围与模型空间分幅范围一一对应;⑧自动插入、标注、修改并绘制图框,自动完善图框相关注记内容;⑨批量分幅前定制布局模板,完成设置,创建布局时自动插入,减少人工干预;⑩设置必要的操作提示信息,提高程序易用性;考虑在AutoCAD版本或成图系统的环境兼容性,减小程序使用环境要求。

3 地形图虚拟分幅程序实现

AutoLISP是由Autodesk公司开发的一种LISP程序语言,嵌入AutoCAD内部,是一种具有智能特点的编程语言,第三方软件开发人员使用AutoLISP语言可实现增加和修改AutoCAD命令、扩大图形编辑功能、建立图形库和数据库等功能,并可对当前图形直接访问和修改,开发编制各种应用程序软件包,是开发应用AutoCAD不可缺少的工具。AutoLISP是地形图虚拟分幅程序开发的主要编程语言。

地形图虚拟分幅程序需要用户交互式输入地形图分幅标准、图幅参数等多种信息数据,为使程序界面友好,采用对话框界面输入参数。对话框具有形象、直观的特点,可随意输入、随时修改,鼠标、键盘并用,是一种深受用户欢迎的界面。AutoLISP编程语言实现对话框较为繁琐,因此选用对话框控制语言DCL定制对话框,使用AutoLISP调用,AutoCAD的对话框也使用DCL编程,提供了ACAD.DCL、BASE.DCL等2个重要的DCL文件,ACAD.DCL为AutoCAD系统定义的对话框,BASE.DCL为用户提供了一些常用的对话框标准控件。DCL具有与AutoCAD平台无关的优点,不同平台之间的移植非常容易,程序设计成本低。对话框文件是扩展名为.dcl的文本文件,符合DCL对话框控制语言的语法,本身并不能工作,必须使用AutoLISP或其他应用程序调用。对话框由主对话框和其内部的各种片型框组成,结构为树状。

为达到面向对象的程序设计效果,笔者在编制地形图虚拟分幅程序时,使用AutoLISP语言编写主程序,DCL语言进行对话框界面设计,程序主要分以下几个部分:①用户使用程序信息提示;②图框信息设置;③图形识别、分幅,用户自行选择分幅规格及范围;④批量创建布局及视口,设置视口和图框;⑤程序授权设置;⑥操作成果保存;⑦相关对话框设计;⑧对话框驱动程序设计等。

对话框程序部分源代码

tksz:dialog{

label="图框设置";

:edit_box{

label="图框名称";

width=50;

height=1.5;

key="tm";

}

:edit_box{

label="成图单位";

width=50;

height=1.5;

(4)接种、灌装、发酵。试验所用所有仪器事先必须经过高压灭菌,接种在超净工作台进行,接种前黄精浸提液与复原乳充分搅拌混合,将菌种接种后也需充分搅拌使菌种均匀分散在混合液中,接种完成后在无菌条件下进行灌装,然后在42℃的恒温培养箱中进行发酵。

key="ctdw";

… ……

主程序部分源代码

(defun act3 ()

(setq tm (get_tile "tm"))

(setq ctdw (get_tile "ctdw"))

(setq cly (get_tile "cly"))

(setq hty (get_tile "hty"))

(setq jcy (get_tile "jcy"))

(setq clfst (get_tile "clfst"))

(setq jbdgj (get_tile "jbdgj"))

… ……

4 应用展示

首先,打开需要分幅处理的地形图文件进行地形图虚拟应用程序加载(见图2)。若经提示后发现设置不对,可按“取消”退出程序运行,转入相关处理流程,设置或处理完毕后再运行程序,此时按“确定”进入图框信息设置界面(见图3)。设置完成后按“确定”,进入图形分幅设置界面(见图4)。

图2 弹出用户提示信息界面

图4 图形分幅设置界面

设置完成后按“确定”,进入图形分幅,程序自动运行,完成分幅(见图5)。

图5 对地形图进行自动分幅

批量分幅完成后,新创建9个布局(第1个布局为分幅结合图,后8个布局分别对应8张分幅地形图),实现地形图虚拟分幅。自动生成的分幅图布局见图6。

图6 自动生成的分幅图布局

布局中图框信息可以进行人工修改。由于程序采用输入定制参数自动生成图框,标注图廓信息,所有图幅责任人员均为一致,需根据实际情况对布局图幅编辑修改,修改完成后进行保存,若需硬拷贝出图,可选择AutoCAD中的“发布”功能,进行必要的打印页面设置检查,实现地形图批量打印出图。

5 结 语

本文利用AutoCAD软件丰富的平台功能,综合运用AutoCAD自带的AutoLISP编程语言和对话框控制DCL编程语言,按照可视化的程序设计思路,通过定制地形图模板和输入分幅参数,完成地形图自动分幅,在布局中自动创建分幅地形图,自动生成图框、标注图廓信息,实现地形图虚拟分幅,最终实现地形图批量自动化虚拟分幅与打印输出。地形图虚拟分幅程序具备以下特点:①界面友好、简洁、实用;②人工干预少,自动化程度高;③用户选择度大,使用方便灵活;④实现批量自动虚拟分幅和出图打印。地形图虚拟分幅程序解决了生产中遇到的技术难题,提高了工作效率,增加了用户的体验度。

猜你喜欢
图幅批量对话框
批量提交在配置分发中的应用
正常恢复虚拟机
Bootlace Worms’Secret etc.
What Is Beauty?
浅谈VB的通用对话框《CommonDialog》控件的使用
基于EXCEL的地形图图幅号转换查询方法
在数控车床上批量钻铰孔类工件的实践
基于ArcMap的图幅接合表快速生成方法研究
地形图图幅编号规则及实现
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改