基于CAD 的数字地形图坐标转换系统的开发

2020-07-08 02:00范福平
科学技术创新 2020年15期
关键词:编辑器坐标系编程

范福平

(中铁六局集团有限公司,北京100026)

在工程测量中,DWG 图是各种成果提交的主要形式,经常遇到不同坐标系成果转换的问题。AutoCAD 软件是绘制DWG 格式图纸的基础软件, 常用的制图软件大多是以AutoCAD 软件为基础进行开发,通常具有完善的制图编辑功能,但AutoCAD 软件自身并不提供坐标转换的功能。坐标变换从坐标系形式可以分为国家标准坐标坐标系变换和任意坐标系变换, 从坐标的维度可以分为二维坐标变换和三维坐标变换, 从坐标变换的对象可以分为基于整体的变换和基于实体的变换。本文主要研究任意坐标系变换下二维坐标成果的转换问题。

1 坐标变化的基本原理

任意坐标系变换下二维坐标成果的整体变化, 本质就是数学上的二维坐标系变化,数学公式如下:

对其求解首先需要确定变换函数, 一般采用相似变换和仿射变换,相似变换通常采用四参数模型,仿射变换一般采用一次仿射变换模型[1]。在此采用相似变换的四参数模型,见公式(2)。

其中,x,y 为转换前坐标,X,Y 为转换后坐标,△X,△Y 为平移参数,m 为尺度变换因子,θ 为旋转角。

令a=m·cosθ,b=m·sinθ,则:

将△X,△Y、a、b 作为平差参数,并将新坐标系下的坐标作为观测值,旧坐标系中的坐标设为无误差,可列出误差方程:

设选中了n 个新旧坐标重合点,根据公式(4)可列出2n 个方程,当n>2 时,方程个数大于4,可采用最小二乘法求解式中的4个参数。

公式(5)用矩阵进行表达为:

按最小二乘进行求解,可得:

2 CAD 下VBA 的编程实现

2.1 VBA 开发AutoCad 应用程序的原理

Visual Basic for Applications(简称VBA)是Autodesk 公司提供的一个基于对象的编程开发环境[2]。它利用AutoCAD ActiveX Automation 接口向AutoCAD 发送消息。而ActiveX Automation 是Microsoft 基于COM(组件对象模型)体系结构开发的一种技术。用户可以用它来自定义AutoCAD,开发人员通过调用AutoCAD ActiveX 对象封装的方法与属性, 操纵AutoCAD 图形对象。VBA 开发具有易学易用、功能强大等特点, 已经成为CAD 二次开发中一种最为常见的形式之一。

AutoCAD 的VBA 编程开发需要理解三方面内容, 一是AutoCAD 本身, 包括AutoCAD 图元对象、数据和命令; 二是AutoCAD ActiveX Automation 接口, 可以与AutoCAD 对象进行消息传递;三是VBA 本身,理解对象、常量、程序流控制、调试和执行[3]。

理解AutoCad 的对象模型是对其进行编程的基础。AutoCAD 以层次结构组织对象,如图1,其顶层是Application,下面是Preferences、Document 等。Document 对象包含ModalSpace、PaperSpace、Blocks、Layers、Plot、Utility 等一系列对象。最底层的对象是点、线、圆、圆弧等基本图形对象。

VBA 通过ActiveX Automation 技术能够返回AutoCAD 的对象及其方法、属性,开发的应用程序通过对AutoCAD 的各级对象的方法和属性进行操作控制AutoCAD 的工作。通过方法可以实现对象的一些操作, 而对象状态信息的收集或改变则是通过属性操作来完成。

图1 AutoCAD 对象模型层次路径简图(部分)

2.2 基于VBA 的CAD 地形图平面坐标转换的实现

2.2.1 CAD 地形图平面坐标转的具体过程

a. 首先将CAD 地形图中新旧坐标系已知的点作为同名点,计算:

b.将新旧坐标系的同名点坐标分别减去

c.用b 转换获得的同名点坐标求出坐标转换参数:

d.将CAD 地形图整体平移,使(△X,△Y)与CAD 坐标原点重合;

2.2.2 CAD 中坐标转换VBA 程序的实现

a.启动AutoCAD,打开要坐标转换的地形图,command 命令行输入VBAIDE 命令,启动VBA 编辑器,如图2;

b.在VBA 编辑器中,编制矩阵计算程序模块,包括矩阵的乘法、转置、加法和求逆;

c.编制求参数和误差计算模块;

d.编制DWG 图形实体遍历程序,实现对图形实体坐标逐一进行变换;

e.程序编制完毕,保存为独立的后缀为dvb 的文件;

f.在command 命令行输入vbarun 或者在菜单中定制调用。

图2 AutoCAD 中VBA 编辑器窗口

结束语

基于本文原理开发的坐标变换系统在多个工程项目得到应用,精度可靠,实现了DWG 数字地形图不同坐标系间自动转换,提高了生产效率。上述系统适合地形图坐标变换旋转角度和放缩比例不大的情况,当旋转角度或放大比例过大,存在地形图符号不符合制图要求的,将在后续的研究中加以解决。

猜你喜欢
编辑器坐标系编程
独立坐标系椭球变换与坐标换算
编程,是一种态度
元征X-431实测:奔驰发动机编程
司空见惯感觉烦 锁屏画面快走开
编程小能手
纺织机上诞生的编程
编辑精选APP
你距离微信创作达人还有多远?
坐标系背后的故事
三角函数的坐标系模型