APP下载

浅谈用VB.NET实现AutoCAD和DB2数据库的连接

2014-12-23成金凤谈景尧

中国科技纵横 2014年24期
关键词:命令行命令程序

成金凤 谈景尧

(天津开发区海宁船舶工程技术有限公司,天津 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—),男,天津人,大专,主要从事船舶及海洋工程的详细设计和生产设计工作。

猜你喜欢

命令行命令程序
只听主人的命令
一种基于docker集群的自动评价虚拟命令行实验终端构建及其在类Unix系统教学中的应用
Windows 10新版CMD更新
试论我国未决羁押程序的立法完善
移防命令下达后
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
这是人民的命令
创卫暗访程序有待改进
对卢沟桥事变期间一份“作战命令”的考析