测绘控制点自动绘制程序的实现

2012-04-29 00:44陈冠臣
科技资讯 2012年12期
关键词:施测数据格式二次开发

陈冠臣

摘要:本文利用VB.NET对AutoCad进行二次开发,实现了对不同数据格式的控制点绘制,不仅提高了工作效率,而且避免了数据转换而出现的错误。

关键词:控制点VB.NET

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2012)04(c)-0031-01

随着测绘技术的不断发展,GPS-RTK在测绘工作中的运用越来越广泛。它的出现使我们的工作变的非常便捷,在测量领域越来越受到广大测量人员的重视和青睐。尤其是在大面积的测图中,使用GPS-RTK施测图根控制相比传统的导线测量效率要提高很多。在施测好图根控制点后,需要在南方CASS中展点时,问题就出现了。因为RTK手簿导出的数据格式与南方CASS中的格式不一致,需要在EXCEL中进行一系列的转换才能展点成功。而且在转换过程中,稍不注意就会出现错误,给外业工作带来不必要的麻烦。本文就是利用AutoCad二次开发程序来实现了展点的功能,避免了转换数据的麻烦。

现在AutoCad二次开发的语言很多,如AutoLISP、ObjectARX、VBA、.NET等,各种语言有各自的优点。其中使用VB.NET来开发AutoCad不仅实用,而且非常的方便。从AutoCad 2006开始的时候,AutoDesk就开发了针对.NET的类库,使开发者很方便的操纵CAD中的各种图元。虽然AutoCad 2006版本支持.NET并不是很好,但随着时间的推移,.NET的功能将越来越强大。

1程序思路和编程实现

(1)RTK数据的提取。

不同厂家生产的仪器,其数据格式可能不尽相同,所以要对不同的数据格式进行处理。结合生产中的应用,编写了一种实现程序,以下是提取数据的主要代码:

Dim data1 As String

data1 = TextBox1.Text

Dim strLines() As String

strLines = data1.Split(New String() {ControlChars.CrLf}, _

StringSplitOptions.RemoveEmptyEntries)

For Each strLine As String In strLines

Dim surData() As String

surData = strLine.Split(New String() {","}, StringSplitOptions.None)

If RadioButton1.Checked = True Then

ElseIf RadioButton2.Checked = True Then

(2)实现展点。

根据不同的控制点类型来展绘控制点,其实不同的控制点对应不同的块定义和不同的实体代码,所以在处理不同的控制点类型的时候,只要插入不同的块定义,再附于不同的实体代码就可以达到目的了。下面是部分实现代码:

If RadioButton5.Checked = True Then

''''遍历集合中的每个元素

For Each kongzhiData As Data In AllPtColl

''''获取控制点的坐标

Dim kzPt As Point3d = New Point3d(kongzhiData.Y, kongzhiData.X, kongzhiData.Z)

''''插入块定义

Block.InsertBlockRef("gc261", kzPt, CassScale, 0)

''''添加控制点的文字

AddKZText(kongzhiData, "KZD", 95)

Next

ElseIf RadioButton6.Checked = True Then

For Each kongzhiData As Data In AllPtColl

Dim kzPt As Point3d = New Point3d(kongzhiData.Y, kongzhiData.X, kongzhiData.Z)

Block.InsertBlockRef("gc168", kzPt, CassScale, 0)

AddKZText(kongzhiData, "KZD", 95)

Next

ElseIf RadioButton7.Checked = True Then

For Each kongzhiData As Data In AllPtColl

Dim kzPt As Point3d = New Point3d(kongzhiData.Y, kongzhiData.X, kongzhiData.Z)

Block.InsertBlockRef("gc257", kzPt, CassScale, 0)

AddKZText(kongzhiData, "KZD", 95)

Next

End If

2結语

Visual Basic 2005是一种易学易懂的.NET语言。用此语言结合CAD的托管API来进行AutoCad二次开发非常的方便。本程序根据在实际工作中的应用而开发出来的,实现了多种数据格式的转换,进而来实现控制点的展绘。本程序编制结束后,一直应用于生产,不仅提高了工作效率,而且避免了数据之间转换而产生的错误。

参考文献

[1] AutoCAD.NET开发人员手册.

[2] AutoCAD 2006帮助文件.

[3] (美)Thearon Willis Bryan Newsome.Visual Basic 2005入门经典[M].北京:清华大学出版社,2006.

[4] 秦洪现,崔惠岚,孙剑,等.Autodesk系列产品开发培训教程[M].北京:化学工业出版社,2008.

猜你喜欢
施测数据格式二次开发
浅谈基于Revit平台的二次开发
国产 RIV ADCP 长江流量测验适应性测试
浅谈Mastercam后处理器的二次开发
在智能交通系统中PLC数据格式转换方法的研究
西门子Easy Screen对倒棱机床界面二次开发
心理测量使用量表易出现的问题及对策
论子函数在C语言数据格式输出中的应用
DWG与SHP数据格式互转换方法研究——以龙岩规划测绘数据为例
基于Pro/E二次开发的推土铲参数化模块开发
基于ArcGIS的规划数据格式转换研究