基于CAD利用VB.NET二次开发自动化绘图应用研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CAD利用二次开发自动化绘图应用研究
从CAD支持点NET以来,给开发人员带来了很大的便利。
在建筑绘图领域,利用点NET在CAD下面进行二次开发成为主流,开发自动化绘图应用提高了建筑领域数据处理和绘图工作的效率,减轻了工作的劳动强度。
本文主要介绍利用开发自动化绘图的步骤及要点。
标签:CAD二次开发;;自动化绘图;地形图
1 前言
随着在开发领域的利用越来越广,CAD的最新版本已经支持点NET进行二次开发。
CAD以前只有LISP、VBA等进行二次开发,这几种开发方式都有自己的优点和缺点。
CAD支持点NET后,可以充分发挥点NET的综合开发的功能,让开发人员更便捷快速的利用CAD的各项功能。
下面主要介绍利用在CAD下面进行开发,并以实例:开发自动化绘图应用简单介绍开发步骤和要点。
2 CAD二次开发的需求
在建设绘图领域工作中,时常需要利用CAD制图工具进行绘图及数据内业处理。
但是由于建筑测绘专业工作的特殊性,有时候处理的数据比较繁多,利用CAD直接一个个的人工进行数据处理绘制图形,需要花费的时间和人力是比较多的。
这样就需要有一个可以处理大批量数据的程序应用,利用CAD自动的绘制数据所代表的图形元素(包括点、线、圆、符号、文字等),需要处理的数据有时几百、几千,甚至上万个数据,给我们在野外完成测绘调查后处理数据绘制图形工作带来很大的压力。
这个就需要我们有一个在CAD下面可以处理和绘制大批量数据的应用提供使用,满足内业处理数据和图形绘制工作,提高工作的效率和降低劳动的强度。
在CAD支持点NET进行开发后,我们可以方便的利用它来进行这方面的工作。
我们利用在CAD下面实现绘制测绘地形图的部分元素方法来认识利用在CAD下面进行的二次开发方法。
3 开发工具准备
利用点NET在CAD下进行二次开发主要利用工具包括:开发工具(本文利用VS2008)、AutoCAD(支持点NET版本)本文利用CAD2008版。
4 开发流程
4.1 准备数据
4.1.1 点数据样式:一个点数据包括X,Y,H,点号四个数值。
样例:100,100,20,A(代表X=100,Y=100,H=20,点号为A)。
准备一个样式数据文件
(点数据.txt):
4.1.2 线数据样式:一个线数据样式包括起点X,Y,H;终点X,Y,H六个数值。
样例:100,100,10,200,200,20。
准备一个样式数据文件(线数据.txt):
4.1.3 文字数据样式:一个文字数据样式包括X,Y,H,位置四个数值。
样例:100,100,20,房子。
准备一个样式数据文件(文字数据.txt):
4.2 建立DLL文件
本过程主要目的利用建立一个可以在CAD下面加载运行的生成chengtu.dll文件。
主要步骤包括如下:
①建立解决方案。
②添加类项目。
③引用相关.NET,CAD的acdbmdb.dll、acmgd.dll等。
④编写代码文件:主要包括连接CAD空间、菜单代码、功能代码等。
a.在CAD下面加载一个目录菜单
Dim pm As AcadPopupMenu = acadapp.MenuGroups.Item(0).Menus.Add(“成图”)
b.建立菜单项
pmi = pm.AddMenuItem(pm.Count + 1,“新建数据库”,“_XJSJK ”),换行,pmi.HelpString = “新建数据库”。
pm.AddSeparator(pm.Count + 1),添加一个分隔条
pmi = pm.AddMenuItem(pm.Count + 1,“录入数据”,“_Lrsj ”),换行,pmi.HelpString = “录入*txt格式数据”
pmi = pm.AddMenuItem(pm.Count + 1,“绘制图”,“_Hzt ”),换行,pmi.HelpString = “绘制图”
c.编写功能代码
新建数据库代码:dbs = ws.CreateDatabase(gxpath,nguageConstants.dbLangChineseSimplified)
td = dbs.CreateTableDef(“ZB”)
然后在表tb添加相关的数据字段:X坐标、Y坐标、H坐标、点号等。
绘制点及点号代码:
Point=mspace.AddText(点号,ZB,DX)
wtext = mspace.AddText(点号,ZB,DX),注:点号,ZB,为每一条记录的点号和XYZ坐标。
绘制直线:
LJCK = mspace.AddLine(qdzb,zdzb)
注:qdzb,zdzb为每一条记录的起点XY和终点的XY。
绘制块:
acadblock = mspace.InsertBlock(ZB,块名字,1,1,1,0)
绘制圆:
acadblock = mspace.AddCircle(ZB,2)
⑤生成chengtu.dll文件
利用生成chengtu.dll文件,直接在下面生成打包,生成chengtu.dll文件。
相关过程可以参考帮助。
4.3 CAD加载chengtu.dll文件
在CAD下面,输入命令NETLOAD,按照窗口加载以上生成的chengtu.dll 文件。
在CAD下面输入命令addmenu,在CAD下面加载菜单“成图”(菜单项包括:绘制点、绘制线、绘制块、绘制圆等。
4.4 利用菜单命令绘图
(1)点击菜单“新建数据库”,选择目录文件建设一个自己的绘图使用的数据库文件。
(2)点击菜单“录入数据”,选择测绘的数据文件。
(3)绘制图形数据。
点击绘制点,在CAD下执行绘制点代码,读取每天数据库记录,按照相应的数据在图形文件上面绘制点元素,并绘制文字。
同理绘制线、块、圆的元素,自动进行处理。
(4)保存绘制的图形CAD文件:图形.dwg。
绘制图形完成。
5 总结
在基于CAD二次开发方面,可以实现很多以前其他方法在CAD下面可以实现的事情,并更加方便快捷。
本次介绍的在CAD下面实现的最基本的相关数据处理和图形绘制的功能,在此功能上,可以利用发掘更好的应用功能。
使我们在繁杂的工作量中可以很方便的进行处理。
在建筑测绘工程领域,可以很好的利用这方面的功能,开发一些新的有用的应用功能,例如:对图形元素和数据的对比检查、图形统计、数据统计等合适有效的功能应用,实现测绘地形图的自动化,提高工作效率和减轻劳动的强度。
6 结束语
通过开发基础的自动化绘图工具,探索一个利用CAD、来开发计算机自动化处理数据和绘图的程序应用,给我们在提供了一个很好的思路和方向,让我们的很多重复的数据量大的处理工作可以通过程序应用进行统一处理。
参考文献
[1]曾洪飞,张帆.AUTOCAD VBA&开发基础与实例教程[M].中国电力出版社,2008,2.。