CAD图平面坐标转换算法与VBA实现

2010-06-28 10:52庄宿军姚麒麟
电力勘测设计 2010年2期
关键词:平面坐标工程桩坐标值

荆 毅 ,庄宿军,姚麒麟

(上海华东电力设计岩土工程有限公司,上海 200331)

1 概述

当今,AutoCAD在设计施工与地形测绘中的应用已经相当的广泛,CAD图已经成为图形数据编辑和各种成果提交的主要形式。例如在施工放样桩位时,若工程桩施工图就是在其设计坐标系统下,则可以直接在图中“拾取”桩位坐标用于指导放样。但在多数情况下,CAD图中的实体坐标与其的设计坐标并不一致,使得实体的在CAD图中的位置信息不能直接使用,给设计和施工人员双方之间信息的共享带来了不便。常规的做法是根据图纸中标注的某点的设计坐标和距离间接地算出工程桩的设计坐标后再用于放样。这样不但效率低下,而且也很容易出错。为此考虑通过平面坐标转换的方法将工程桩施工图转换到其设计坐标系统下,则工程桩的图上坐标就是其设计坐标,这样不但提高了效率也大大降低了计算桩位时出错的概率,充分发挥CAD电子图的优势。

坐标转换的具体过程可以描述为:首先将图中设计坐标已知的点作为同名点,通过若干同名点求出坐标转换参数;然后根据得到的转换参数对CAD图进行坐标系的旋转、缩放和平移,将整幅图上的实体转换到设计坐标系下。对此问题已有不少有益的研究,但对CAD图进行坐标转换的方法各异,例如可通过CAD中提供的旋转,平移,缩放等命令实现坐标的转换[1],此方法虽然简便,但是对于行业之外的人来说,操作起来还是有一定的难度。另有一些通过编写程序对 CAD中(交换数据格式)DXF中地物的坐标数据进行坐标转换达到坐标转换的目的[2]、[3]。

本文主要介绍了一种基于最小二乘的平面坐标转换算法和对此算法的VBA实现,达到对CAD图坐标的自动转换。

2 基于最小二乘的坐标转换算法

由相似变换公式

其中,(x, y)是图形中某点在新坐标系下的坐标;(x′, y′)是图形中某点在旧坐标系下的坐标;(m, n)是就坐标系原点在新坐标系下的坐标即横向和纵向的平移参数;s为比例系数;θ为旋转角度。

令a = s·cosθ,b = s·sinθ ,则可将式⑴写为:

选取m、n、a、b作为平差参数,并将新坐标系下的坐标作为观测值,旧坐标系中的坐标设为无误差,可列出误差方程[4]

按上式组成法方程:

可得:

将求出的δx加到给定的参数初值上,带回法方程迭代至收敛,得到坐标转换参数m、n、a、b。

3 功能实现与实例分析

3.1 VBA开发简介

Visual Basic for Applications(简称VBA)是新一代标准宏语言,提供了面向对象的程序设计方法,并提供了相当完整的程序设计语言。Autodesk公司从AutoCAD R14.01版开始,内置了VBA开发工具,它易学易用、功能强大,并借助于VB提供的ActiveX对象强大功能,使它已经成为CAD二次开发中一种最为常见的形式,可以大大减轻CAD中重复性的绘图和计算工作[5]。

根据上一节算法得到的转换参数,利用ActiveX对象封装的函数实现图形坐标转换,转换过程见图1。

3.2 实例分析

选取绍兴滨海热电厂主厂房工程桩施工(CAD)图进行实验分析。见图2,图上左下角标有设计坐标(A=417.500 B=553.000)的角点与其图上的实际坐标(X=1038954.4740 Y= -91838.4526)并不一致。此外,从图上右下角(标有设计坐标A=272.500 B=553.000)的角点与其对应的图上实际坐标(X=1184454.4740 Y=-91838.4526)可以看出,设计坐标系统与图上坐标系统比例因子也不为1,且设计横坐标向左为正与图上横坐标向右为正的方向相反,说明两个坐标系之间还存在着一定的旋转角度。适于本文要解决的问题。

图1 转换流程图

已知同名点的设计坐标如表1的第2、3两列所示,选取其中的点1和2作为同名点进行坐标系统的转换。

图2 主厂房打桩设计桩位图(局部)

表1 同名点设计坐标和残差分析结果 单位:m

首先在图中“拾取”同名点的图上坐标值,然后输入其设计坐标值(A=417.500 B=553.000)。输入点1和2两个同名点后,点击“计算”,则计算的转换参数见图3。

图3 软件操作界面图

点击“转换”按钮后,软件按照计算得到的转换参数对原图自动地进行坐标系的旋转,缩放和平移,完成图形的坐标的转换。将转换后的同名点坐标值列于表1的第4、5两列,将同名点的设计坐标和转换后得到的坐标求其坐标残差并列于表的第6、7两列。经转换后的主厂房打桩设计桩位图,比较其同名点的设计坐标值,在165m×61m的主厂房打桩区域内,坐标转换的残差全部为0,转换的效果非常好。

4 结语

本文针对CAD图上坐标与设计坐标不一致的问题,介绍了一种坐标转换的算法并给出了坐标转换的VBA实现,最后以一幅实际工程的施工桩位图为例,验证了算法可行性。现软件已在实际工程中得到应用并得出以下结论:

⑴ 本文所介绍的转换模型和相应软件因为是四个参数,因此需要两个以上的同名点新旧坐标值;

⑵ 本文所介绍的转换模型和相应软件只适合于二维平面坐标的相似转换,即纵向的缩放比例和横向缩放比例是一致的情况;

⑶ 本文介绍的旋转是对坐标轴的旋转,因为若将创建为块(block)的图形进行旋转,虽然也可达到坐标系旋转的目的,但旋转后的图形相对于视图窗口会有一个角度,不方便使用者查看和使用。

[1]石永乐,梁宏奇,李国林.AutoCAD绘图中的坐标转换[J].矿山测量,2006.

[2]吴铭杰.CAD数据坐标转换方法研究[J].江西测绘,2009.

[3]任沂军.AutoCAD中DXF文件的坐标转换分析与实现[J].测绘通报,2006(7).

[4]武汉大学测绘学院测量平差组.误差理论与测量平差基础[M].武汉:武汉大学出版社,2003.

[5]曾洪飞,张帆,卢择临.AutoCAD VBA &VB.NET开发基础与实例教程[M].北京:中国电力出版社,2008.

猜你喜欢
平面坐标工程桩坐标值
建筑桩基工程桩端后注浆施工技术应用
奥维互动地图CAD中线坐标精度分析
房建工程桩基础施工质量控制方法
建筑工程桩基础施工技术应用探讨
濮阳市拟建立相对独立的平面坐标系统
基于二分法迭代的凸模数控铣削加工编程*
软黏土基坑开挖对坑内工程桩的影响分析
常用GPS软件实现平面坐标与WGS84经纬度转换精度探讨
基于宏程序的数控车削加工应用
长大连续梁上CPIII控制点实时坐标计算方法研究*