APP下载

基于CorelDRAW X4及其VBA的专题地图集编制研究

2010-04-18张天纯张晓强张健

城市勘测 2010年6期
关键词:图集等高线二次开发

张天纯,张晓强,张健

(南京市测绘勘察研究院有限责任公司,江苏南京 210005)

基于CorelDRAW X4及其VBA的专题地图集编制研究

张天纯∗,张晓强,张健

(南京市测绘勘察研究院有限责任公司,江苏南京 210005)

介绍了采用CorelDRAW X4进行专题地图集编制的一般流程,探讨了以解决专题地图集编制中的具体问题和以提高生产效率为目的,利用CorelDRAW的宏语言进行脚本定制及利用对象模型进行二次开发的可行性及方法,并通过实例加以说明。

CorelDRAW X4;专题地图集编制;VBA;宏程序

1 引 言

(1)现代地图产品设计与开发的特点

在信息时代,纸质地图作为不可取代的可视化地图产品得以发扬光大,其需求量更大,产品种类更为丰富,应用领域更为全面、深入;专题地图集的编制引进国外经验,更多地采用章节的形式图文并茂地展示专题内容要素,以增强地图的表现力;非专业地图制图软件应时之需被大量用于现代地图产品的设计和工艺制作流程,如CorelDRAW和PhotoShop等等,尤其是前者的应用尤为广泛,美观已成为使用CorelDRAW软件编制地图的最大特点。

(2)问题的提出

矢量绘图软件CorelDRAW功能强大,具有各行业用户群,被大量应用于广告设计和制图领域,但很难对各个行业的应用都非常贴近,具体到专业的应用,如制图领域,应根据具体的需求进行功能的定制与开发,即通过CorelDRAW提供的宏语言编制脚本和VBA开发函数。

CorelDRAW 10增加了VBA功能,它使用户可以根据自身的需要量身裁衣,对CorelDRAW的功能进行改进和增加,最新推出的CorelDRAW X4增加了对大量新文件格式的支持,包括AutoCAD DXF/DWG,这为专题地图所常用的地理底图DLG数据直接导入Corel-DRAW提供了可行的途径,但需对导入的矢量图形进行预处理,清除冗余数据。另外,由于地图相对于其他矢量图形的特殊性,在使用CorelDRAW进行地图编制时,经常还会遇到一些问题或可以改进的地方,对专题制图进行更准确的加工和处理,达到简化操作和提高效率的目的。

2 制作专题地图集的一般流程

专题制图制作一般分为:底图制作、专题要素添加、图面整饰和图文配置排版。测绘技术早已从传统测绘发展到数字测绘甚至已迈入信息化测绘时代,地理底图很少再采用扫描矢量化的方式,而是主要采用由AutoCAD制作的数字地图作为底图,然后在此基础上利用CorelDRAW来制作专题地图或专题地图集。

(1)地理底图的制作

直接利用DLG作为底图数据,在导入CorelDRAW前,可以根据专题制图区域的范围对DLG图实施拼接或裁减处理。

(2)专题要素的制作

以不同类型的专题图对专题要素的具体要求,直接在已经修改好的底图数据上进行编辑处理,得到想要的专题要素;统计图表的制作可以直接利用Excel等软件根据统计数据生成的统计图表,然后导入CorelDRAW X4作为单独的一个统计图表层叠加在地理底图上。

(3)图片和文字的添加

专题地图集除了地图编辑的内容之外,还需加上与专题要素相关的图片和文字说明,尤其是采用章节形式表达的专题图集,对图片和文字说明的处理就显得更为重要。可以使用PhotoShop等专业图像处理软件对图集中所需图片进行预处理,使制作出来的专题图集更加美观,并且达到图文并茂的效果,增加专题图的可读性和艺术性。

(4)利用CorelDRAW X4的符号库工具将图集所需符号图形或外部矢量图形安装到CorelDRAW X4中,直接调出符号面板就可以使用,可以大大提高图集编制的工作效率。

图1 基于CorelDRAW的专题图集编制流程图

3 CorelDRAW的二次开发

3.1 CorelDRAW VBA简介

VBA(Visual Basic for Applications)是一种标准宏语言,提供了面向对象的程序设计方法和完整的程序设计语言,用户可以通过VBA很容易地调用Corel-DRAW的现有功能和CorelScript语言来实现一些特定的操作。CorelDRAW的对象模型包括Application所包含对象、Document所包含对象、Shape所包含对象、Curve所包含对象和Effect所包含对象,每个对象又包含多个属性、方法和事件。

3.2 VBA开发步骤

(1)进入CorelDRAW的二次开发平台Visual Basic Editor,插入相应的窗体和控件,利用VBA提供的基本函数编制程序(∗.gms)和定义宏来实现Corel-DRAW二次开发编制专题地图。

(2)在工程中插入相应的窗体UserForm,并在窗体上放置满足功能要求的各种控件,以This Document直接访问CorelDRAW并编程。

3.3 使用CorelDRAW VBA解决问题实例

在分析问题和操作流程后,就可以通过脚本定制或宏程序编写,让计算机进行批量的操作,实现自动化处理,以下是在利用CorelDRAW X4进行专题制图中常见的解决实例。

(1)菜单和工具条的定制

为使用方便可为专题制图设置一个专门的菜单、工具条甚至快捷键。

在CorelDRAW X4程序窗口中单击“工具”菜单下的“选项”命令,弹出选项对话框,在自定义中选择“命令栏”,新定义一个工具栏“专题制图”,然后为这个新的工具栏添加命令,这些命令可以是CorelDRAW X4本身已有的命令,或是自定义的宏命令及VBA程序命令。

图2 根据需求定制和添加的工具条

(2)查找并替换类似于群组对象的对象流程图(如图3所示)

图3 查找与替换对象流程图

(3)图形裁剪流程图(如图4所示)

判断循环对象有没有位于多边形内的点的主要代码:

(4)等高线自动分层设色

①在地图编辑中,经常会涉及等高线分层设色,一般是按等高线从高到低设置过度颜色,在Corel-DRAW X4中,可以利用VBA开发程序自动计算颜色差值进行填充颜色。

图4 图形裁剪流程图

②程序设计思路:首先设置最高等高线和最低等高线封闭形状的轮廓色与填充色(同),然后依次选择从低到高等高线,根据所填充的颜色计算中间等高线所需填充的颜色,并进行填充、设轮廓色,并把当前对象置最低层,如果遇到洼地的情形,则可以用反转层叠的方法进行反转。

(5)统一文本字号和字体

①检测选择对象是否为文本对象,如果该对象为文本对象,并且具有不同的字号,则把整个文本对象设为统一的字号。

②统一字号的主要代码

(6)创建图框、图例和比例尺

专题图集的编制具有一定的规范和工艺流程,因此对于同一类型、同一图组的图幅的图框、图例和比例尺等要素完全可以用CorelScrip方法建立,以提高编图的效率和精度。

4 结 语

CorelDRAW虽然不是专门的专题制图软件,但因其强大的图文编辑功能,在近年来的地图集制作中得到了广泛应用,如《中国自然地理图集》、《江苏省可持续发展图集》等比较有水准的地图集均采用了Corel-DRAW软件作为专题地图编制的主要工具。随着CorelDRAW X4的推出及其愈发强大的编辑功能和脚本语言更为CorelDRAW软件在专题制图领域的应用提供了强有力的支持。

使用CorelDRAW VBA编写宏程序的关键是总结制图过程中常见问题,分析解决问题的方法,再利用VBA的开发环境写出宏程序,在一定程度上实现地图编辑的自动化,从而达到方便和简化操作,提高工作效率的目的。

[1] 杨穗,易捷.应用VB或VBA对CorelDRAW进行二次开发[J].电脑学习,2004(1)

[2] 冯静雨.使用CorelDRAW的二次开发功能绘制矿图的研究[J].科技情报开发与经济,2006(2)

Research on Thematic Atlas Eidting based on CorelDRAW X4 and CorelDRAW VBA

Zhang TianChun,Zhang XiaoQiang,Zhang Jian
(Nanjing Institute of Surveying,Mapping&Geotechnical Investigation,Co.,Ltd.Nanjing 210005,China)

This paper introduces the general procedures of editing Thematic Atlas by using CorelDRAW X4,probes into the feasibility and the methods by using CorelScrip and CorelDRAW secondary development based on object model,in order to solve the problems of thematicmap editing and to raise the production efficiency,then illustrates it by examples.

CorelDRAW X4;Thematic atlas edit;VBA second development;Macroscript

1672-8262(2010)06-100-03

P285

B

2010—05—21

张天纯(1969-),女,高级工程师,主要从事城市制图、GIS研究及信息系统项目的管理和监理工作。

猜你喜欢

图集等高线二次开发
世界抗疫图集
浅谈基于Revit平台的二次开发
地形图的阅读
浅谈Mastercam后处理器的二次开发
一种基于Fréchet距离的断裂等高线内插算法
现场图集
西门子Easy Screen对倒棱机床界面二次开发
“等高线地形图的判读”专题测试
动物打呵欠图集
基于Pro/E二次开发的推土铲参数化模块开发