VB与AutoCAD二次开发在海工建模中的应用
2012-01-22,,
,,
(1.渤海船舶职业学院,辽宁 葫芦岛 125000;2.渤海船舶重工有限责任公司,辽宁 葫芦岛 125004)
在海洋工程领域,计算机辅助设计技术和工程数据库的联合运用仍然处于起步阶段,工程设计过程中大量的数据信息仍需要手工操作完成,利用AutoCAD和VB.NET进行二次开发辅助海洋工程生产模型的分解、细化,能提高数据输出效率[1-4]。为此,结合渤船重工有限责任公司海洋工程事业部在进行海洋工程建模工作中工程技术人员经常面对的技术难题,选取AutoCAD2010、VB.NET软件进行二次开发。
1 二次开发环境搭建
结合渤船重工有限责任公司海工事业部在开展海工项目中遇到的问题,以VB.NET作为开发工具,利用AutoCAD2010进行二次开发,并通过ActiveX Data Objects(ADO)实现与数据库的连接。实现海洋平台三维设计参数化建模,使操作简单直观,为降低建模周期的复杂度提供可靠技术依据。
进行海洋工程平台建模的二次开发的体系架构见图1。
图1 二次开发体系架构
2 海工建模二次开发的设计步骤
2.1 建立二次开发的互动界面
启动VB.NET软件,创建“海洋平台生活区建模二次开发系统”窗体,在窗体上添加若干控件并设置其相关属性。
2.2 VB与AutoCAD的连接技术
1)引用AutoCAD类型库,此项工作在VB编程环境中进行;
2)编写VB程序代码,创建AutoCAD对象,启动AutoCAD。
建立好VB与AutoCAD连接后,可以获得AutoCAD对象及其下级对象的属性和方法等,完成用VB语言在AutoCAD图形绘制及编辑等操作。
引用AutoCAD数据库在VB编程环境中单击菜单栏中的“工程”→“引用”,选中“AutoCAD 2010 Type Library”。创建AutoCAD对象的方法很多,这里定义AutoCAD对象变量选取在全局模块Module中实现,目的是便于多个窗体可以共同引用。为了能够正确使用AutoCAD的Automation对象,必须首先在VB.NET中引用该对象类型库acad.tlb,下面程序代码为在VB程序中启动运行AutoCAD的部分源代码。
’在程序代码窗体的定义全局变量
Public acadapp As Object '定义AutoCAD的应用程序
Public acaddoc As Object '定义当前文档变量引用AutoCAD图形
Public moSpace As Object 设置当前模型空间变量
Public paSpace As Object '设置当前图纸空间变量
Public sub Main( )
On Error Resume Next
Setacadapp = GetObject(," AutoCAD.Application")
If Err Then
Err.Clear
Set acadapp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox (“无法打开运行AutoCAD”)Err.description
Exit Sub
End If
End if
Set acaddoc=acadapp.ActiveDocument
Set mospace=acaddoc.ModulSpace
Set paspace=acaddoc.PaperSpace
Acadapp.Visual=True
Dim templatefilename As String
Templatefilename=“C:Program FilesAutoCAD2010TEMPLATE生活区舱室设计.dwt”
Dim doc As Object
Set doc acaddoc.New(templatefilename)
End sub
以上的程序代码中不仅实现VB与AutoCAD的连接,而且声明了多个全局变量便于在绘图程序中引用。程序中的条件语句是为确保只打开一次AutoCAD窗口,节约系统资源。如果无法打开运行AutoCAD程序将报错,出错情况可用MsgBox Err.description语句查询具体原因。
2.3 二次开发系统功能模块的实现
2.3.1 数据查询模块
实现AutoCAD数据库的查询功能操作,主要包含:数据库信息初始化、共享、备份;工程数据参数录入、维护和查询等,新建、删除表格及其关联数据的操作。
在进行海工建模过程中,最基本的工作是建立一系列的数据表,其中包括海工平台类型表、平台基本信息表、水平层类型表等。见表1~3。
表1 平台类型表
在海洋平台结构上除了支撑结构上的管件之外,还大量地使用了构件,所以建立工程数据库将常用截面参数基本信息存放于此,从而减少工程技术人员的重复性劳动。
表2 海工平台基本信息表
2.3.2 AutoCAD实体造型模块
针对不同的海工平台类型、截面参数等控制AutoCAD软件,根据工程技术人员自定义修改数据库里已有的数据信息,建立与之适应的模型,并且支持用户通过VB.NET 内置的菜单、工具栏对模型进行添加或者修改等操作。本次开发可以保证用户通过主程序界面完成主尺度、水平层选择和设计参数,不需要直接操作AutoCAD,整个过程达到自动化和智能化的设计标准。
3 结论
1)本系统采用Visual Basic.NET 和AutoCAD进行海洋平台生活区建模二次开发,实现了模块化思想设计软件体系结构。
2)系统软件已经应用于渤海船舶重工有限责任公司海工事业部海洋钻井平台等工程设计部门中,用户实际使用证明,该系统操作直观简便,降低劳动重复率,缩短工程设计周期,实际工程应用中取得了较好的辅助设计效果。
3)初步解决海洋平台建模过程中功能生活区的参数重置现象,用户可进一步根据需要对海洋平台钻井区、工具堆放区等区域进行二次开发设计工作。
[1] 杨立军,党新安,夏 田.基于VB的AutoCAD二次开发技术[J].现代制造工程,2004(3):27-28.
[2] 张 帆,郑立楷,王华杰. AutoCAD VBA开发精彩实
例教程[M].北京:清华大学出版社,2004.
[3] 张祥瑞,严家文.基于AutoCAD平台的船体三维建模研究[J].船舶,2007(4):56-60.
[4] 周愫承,奚立康.21世纪IT:信息技术在中国海洋平台工程中的应用展望[J].中国海洋平台,2000(2):4-9.