浅谈用VB.NET实现AutoCAD和DB2数据库的连接
2014-12-23成金凤谈景尧
成金凤 谈景尧
(天津开发区海宁船舶工程技术有限公司,天津 300457)
浅谈用VB.NET实现AutoCAD和DB2数据库的连接
成金凤 谈景尧
(天津开发区海宁船舶工程技术有限公司,天津 300457)
长期应用Autocad进行设计工作的人员经常需要对设计图纸中杆件进行汇总分析,而将这些杆件用Autocad绘制成图块,再将图块的属性值输入到数据库后进行汇总、分析,将会大大节省设计人员的设计时间,提高工作效率和工作质量。本文主要讨论的是如何用VB.NET开发AutoCAD和DB2数据库,实现AutoCAD和DB2数据库的连接。
Autocad VB.NET DB2数据库
众所周知,对AutoCAD进行二次开发用到的主要工具有ObjectARX、VBA和LISP,但它们的优缺点也是显而易见的:ObjectARX功能强大,编程效率高,但对于编程者必须掌握VC++,而这门语言非常难学;VBA和LISP语言虽然简单易于上手,但他们对开发大型的程序好像无能为力,而.NET则结合了VC++功能强大与VBA易学易用的特点,可以快速的开发出功能强大的AutoCAD程序。
1 开发环境的搭建
AutoCAD从2005版本开始,加入了对.net的支持,这说明AutoCAD本身的一些功能也是使用.NET来开发的,本文使用的是AutoCAD 2010版本。
安装完AutoCAD以后,还必须安装.NET开发工具,.NET开发工具很多,但功能最强大的莫过于微软的Visual Studio,本文使用VS2010版本。.NET开发语言有C#、VB.NET、托管C++等,本文采用的开发语言是VB.NET。
最后安装DB2数据库。DB2数据库主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境。本文采用的数据库是DB2 Express C,它提供了DB2的大多数功能。
2 程序描述
本文以在AutoCAD命令行内显示数据库的连接状态来讨论.NET开发AutoCAD,实现AutoCAD与DB2数据库的连接。在本文中,使用VS2010来创建一个新的类库项目,通过这个项目可以生成一个能被Autocad加载的dll文件,此文件会向Autocad中加入一个名为acd的新命令,当执行这个命令后,如果AutoCAD已经连接上DB2数据库则会在命令行中显示“Open”,否则显示“数据库连接错误”。
3 开发程序步骤
(1)新建项目。启动VS2010,选择“文件”中“新建项目”菜单,在项目类型中选择VB语言,然后在模板列表中选择“类库”项目,输入项目名称“CADConnectDB2”,单击“确定’创建项目。
(2)添加对Autocad程序集的引用。在解决方案资源管理器中鼠标右键单击项目名,选择“添加引用”菜单,在弹出的对话框中加入acdbmgd.dll和acmgd.dll,然后在项目“属性”面板中选择“引用”选项卡,将acdbmgd.dll和acmgd.dll的“复制本地”属性值设置为“FALSE”即可。
(3)编写AutoCAD程序。首先导入CAD.NET托管封装类。在Class1类的声明语句之前导入ApplicationServices,EditorInput和Runtime这三个命名空间,代码如下:
Imports Autodesk. AutoCAD. ApplicationServices
Imports Autodesk. AutoCAD. EditorInput
Imports Autodesk. AutoCAD. Runtime
然后加入AutoCAD调用的命令,必须使用CommandMethod属性,这个属性由Runtime命名空间提供。
<CommandMethod(“ACD”)>_
Public sub CADConnectDB2()
End Sub
最后编写连接DB2数据库的程序。首先引入命名空间:Imports System.Data.Oledb,然后创建OledbConnection对象。程序如下:
‘获得AutoCAD当前活动文档的Editor对象
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
‘声明connection对象
Dim conn As OleDbConnection
Try
conn = New OleDbConnection()
conn.ConnectionString =quot;Provider=IBMDADB2.1;User ID=quot;quot;;Password=quot;quot;;_
Data Source=samplequot;
conn.Open()
Ed.WriteMessage (conn.State.ToString)
conn.Close()
Catch
ed.WriteMessage(quot;数据库连接错误quot;)
End Try
(4)启动AutoCAD2010进程。在解决方案管理器中右键单击项目名,然后选择“属性”菜单项。在项目的属性页对话框中选择“调试”选项卡,在“启动操作”项目中单击“启动外部程序”项右边的省略号按钮,然后选择AutoCAD2010安装目录下的acad.exe.
(5)编译程序。按F5键或选择工具栏中的“调试”来启动一个AutoCAD进程,生成一个CADConnectDB2.dll文件。
(6)运行程序。在AutoCAD命令行中执行NETLOAD命令,加载编译好的托管程序,然后在命令行中输入命令acd,并按下Enter键,如果AutoCAD已经连接上DB2数据库则会在命令行中显示“Open”,否则在命令行中显示“数据库连接错误”。
4 结语
本文简单介绍了用VB.NET开发AutoCAD,实现AutoCAD与DB2数据库的连接。在命令行中输入VB.NET开发的AutoCAD命令后,AutoCAD却没有执行该命令,而提示该命令为未知命令,出现这种情况的原因是未将添加的acdbmgd.dll和acmgd.dll这两个程序集的“复制本地”属性值设置为“FALSE”。
[1]石志国,刘冀伟,张维存.VB.NET数据库编程.清华大学出版社,北京交通大学出版社.
[2]曾洪飞,张帆,卢择临.AutoCAD VBAamp;VB.NET开发基础与实例教程.中国电力出版社.
成金凤(1985—),女,河北藁城人,本科,主要从事船舶及海洋工程的详细设计和生产设计工作;谈景尧(1984—),男,天津人,大专,主要从事船舶及海洋工程的详细设计和生产设计工作。