APP下载

基于SolidEdge二次开发的工程图智能生成系统

2017-04-14孙付春吴昌明甘露萍

关键词:装配图工程图表单

袁 影, 孙付春, 杨 涛, 吴昌明, 甘露萍

(成都大学 机械工程学院, 四川 成都 610106)

基于SolidEdge二次开发的工程图智能生成系统

袁 影, 孙付春, 杨 涛, 吴昌明, 甘露萍

(成都大学 机械工程学院, 四川 成都 610106)

针对工程图智能生成的问题,提出一种基于SolidEdge平台的智能生成零件明细表单、尺寸标注、属性填写以及技术要求的方法,搭建VB.NET系统开发的总体框架,分析了系统实现的关键技术,实现了SolidEdge功能模块的扩展.以某医疗设备装配为例,验证了工程图智能生成的可行性.

SolidEdge二次开发;BOM表;尺寸标注;VB.NET

0 引 言

工程图作为机械从业人员的语言,其制作效率对整个制造业的发展有着重要的作用,工程图质量的高低直接影响着产品的质量和产生废品的概率.随着计算机科学的不断发展,越来越多的企业从原来的手工绘图转变为使用AutoCAD绘图,从二维转到三维设计,使得工程人员制作工程图的错误概率不断降低.由于三维平台具有可扩展性强的特点,研究者们在不同的三维平台上实现了对工程图功能模块的扩展,并取得了大量的成果[1-6].目前,基于SolidEdge平台进行工程图的开发鲜有人涉足,而医疗病床设备带作为医院病床前必不可少的设备,其设计过程具有模块化、标准化程度较高的特点,设计人员会根据每个医院房间大小不一和医院自身要求不同来不断重复设计和制作该设备.对此,本研究基于SolidEdge平台,以医疗病床设备带为例,开发了一套工程图智能生成系统.

1 系统总体结构

系统以SolidEdge ST6为开发平台,VB.NET作为开发框架,在Visual Studio 2013开发环境下,使用Windows应用程序编程接口(Application Programming Interface,API)、SolidEdge API、Access数据库和组件对象模型(Component Object Model,COM)技术,实现了基于SolidEdge的工程图智能生成系统.

系统的工程流程如下:首先,系统进入初始化阶段,读取Access数据库中有关设备生成的参数设置到界面相应的位置,根据设备需求设置关键尺寸,生成设备主体框架;随后,系统进入模块化配置环节,将设备中需要配置的模块以自动的方式加载到装配相应位置,保存位置数据等信息,为二维图尺寸标注做准备;整个装配生成后,系统进入装配图生成环节,完成视图、零件明细表单(Bill of material,BOM)、装配尺寸、工程图属性、技术要求等工艺信息的生成.系统的流程图如图1所示.

图1 系统的工程流程图

由于模块化配置过程主要为工程图自动生成提供数据,因此本研究主要分析工程图自动生成模块.

2 系统关键技术

系统实现的关键在于:通过COM技术,建立Visual Studio 2013与SolidEdge间的通信与关联,再以API对SolidEdge进行二次开发,实现SolidEdge平台下的工程图工艺信息的智能生成.

2.1 SolidEdge二次开发

为满足不同用户需求的定制和开发,SolidEdge提供了可供用户自定义开发API函数库,实现对SolidEdge对象的访问与控制.API接口包含了SolidEdge开发中使用到的所有类,其采用的面向对象技术的方法,在SolidEdge之下是表示应用程序各种模型的事件、属性和方法,其对象框架图如图2所示.Visual Studio 2013 VB.NET工程通过COM技术调用SolidEdge API函数,可以完成某些特定功能,实现自动化.

图2 SolidEdge对象框架图

2.2 VB.NET与SolidEdge的连接

建立VB.NET与SolidEdge相关联的系统开发项目工程主要方式为,通过Visual Studio 2013创建VB.NET的集成开发环境.完成创建后,在工程项目中引用连接SolidEdge的COM组件(见图3),并在系

图3 COM组件引用图

统函数中加入如下代码,即可创建VB.NET与SolidEdge间的关联.其关联代码为:

Dim objApplication As SolidEdgeFramework.Application=Nothing

Dim objAssemblyDocument As SolidEdgeAssembly.AssemblyDocu-

ment=Nothing

On Error Resume Next

objApplication=GetObject(,″SolidEdge.Application″)’获取Solid-

Edge对象

If Err.Number 〈〉 0 Then '不成功,打开SolidEdge

Err.Clear()

objApplication=CreateObject(″SolidEdge.Application″)

objAssemblyDocument=objApplication.Documents.'创建文档

Add(″SolidEdge.AssemblyDocument″)

objApplication.Visible=True 'SolidEdge窗口显示

Else '打开成功,获取SolidEdge活动文档

objAssemblyDocument=objApplication.ActiveDocument

End If

2.3 BOM表单自动生成

BOM表单又称零件明细表,其在装配图的制作中占有重要的比重.传统的装配图采用CAD直接绘制,在三视图上会花费大量时间.随着三维软件的快速发展,当前装配图的制作主要时间花费为BOM表单的制作,而三视图的表达只需通过软件就可自动完成.因此,在三维平台上实现BOM表单的自动生成,将大大提高设计效率.

基于SolidEdge实现的BOM表单自动生成功能模块,其实现方式为:当用户点击生成工程图时,系统遍历整个三维装配树,将装配树中所有零件属性读取并存储在内存中,创建标准BOM表头结构的表格,将当前所获取的信息按格式自动写入表格中.有时,某些虚拟值并未在装配树中体现,对此,本研究设计了对BOM表单的增加、修改与删除功能,其核心代码如下:

1)BOM表单创建.

objDraftDocument=objApp.ActiveDocument'SolidEdge工程图活

动文档

objSheets=objDraftDocument.Sheets'SolidEdge工程图页

objSheet=objDraftDocument.Sheets.Item(1)'SolidEdge工程图打

开的页

objDrawingViews=objSheet.DrawingViews'SolidEdge工程图绘制

视图

objDrawingView=objDrawingViews.Item(1)'SolidEdge工程图主

视图

objDrawingView.DisplayBreakLinesInBrokenState=False'视图连接

属性状态

objPartsLists=objDraftDocument.PartsLists'SolidEdge工程图零件

明细表'以主视图创建零件明细表

objPartsList=objPartsLists.AddEx(objDrawingView,1,″″,1,10)

2)BOM表单增加.

objTables=objDoc.Tables'SolidEdge工程图表单总数对象

objTable=objTables.Item(1)'SolidEdge工程图BOM表对象

objTable.Rows.Add(1,False)'新增一行

objTable.Update()'BOM表单更新

3)BOM表单修改.

objTableCell=objTable.Cell(1,1)'BOM表单第1行第1列表格对象

objTableCell.value=1'设置该表格的值为1

4)BOM表单删除.

objTable.Rows.Item(1).Delete()'删除1行

objTable2.Update()

2.4 尺寸标注自动生成

完成装配视图和BOM表的自动生成后,系统实现了对装配视图关键尺寸的自动生成.实现方式为:获取当前装配图中的配合关系,在关键部位创建点,并调用尺寸标准API将两点联系起来,实现尺寸的自动标准,其核心代码如下:

Dim objPoint1 As SolidEdgeFrameworkSupport.Point2d

Dim objPoint2 As SolidEdgeFrameworkSupport.Point2d

Dim objDimStyles As SolidEdgeFrameworkSupport.DimensionStyles

Dim objDimGBStyle As SolidEdgeFrameworkSupport.DimensionStyle

Dim objDimScale As SolidEdgeFrameworkSupport.DimStyle

objSheet.DrawingViews.Item(1).GetOrigin(ViewCenterPointInfo.x,

ViewCenterPointInfo.y)'获取主视图中点坐标

objPoint1=objSheet.Points2d.Add(ViewCenterPointInfo.x,

ViewCenterPointInfo.y)'中点处创建点

objPoint2=objSheet.Points2d.Add(ViewCenterPointInfo.x,y)'右

边界创建点

objSheet.Dimensions.AddDistanceBetweenObjects(objPoint1,0.55,

0.55,0,False,objPoint2,0,0,0,False)'创建两点间的尺寸

objSheet.Dimensions.Item(i).Style.DimensionScaleMode=0'设置

尺寸风格

2.5 属性及技术要求自动生成

属性及技术要求是工程图中关键的工艺信息.其自动生成功能的实现,主要是系统自动捕获属性或设计人员自动填写系统界面,系统获取信息并在指定位置创建文本,再将所获取的信息设置到文本中,完成整个过程.其实现方式如下:

Dim objSheet As SolidEdgeDraft.Sheet=Nothing

Dim objTextBoxs As SolidEdgeFrameworkSupport.TextBoxes=Nothing

Dim objTextBox As SolidEdgeFrameworkSupport.TextBox=Nothing

objSheet=objDoc.ActiveSheet

objTextBoxs=objSheet.TextBoxes'获取文本框对象

objTextBox=objTextBoxs.Add(x1:=0.226,y1:=0.274,z1:=

0)'指定位置创建文本框

TextString=″技术要求″+Chr(10)'写入文本框的内容

objTextBox.Text=TextString'写入

objTextBox.TextControlType=SolidEdgeFrameworkSupport.'文本框

格式

TextControlTypeConstants.igTextWrap

技术要求与属性的实现方式相似,只是文本框创建的位置不同.

3 工程案例分析

本研究所设计系统的测试以病床设备带产品为例,实现了智能生成病床设备带装配图,装配图中包含了BOM表单、装配尺寸、工程图属性和技术要求.其主要实施步骤为:

1)系统开始,进入病床设备带设计系统主窗口.系统初始化时,首先连接指定目录下的Access数据库中设备带代号表单,更新主窗口中设备带代号下拉框选项.设计人员编辑好当前需创建的设备带整体布局参数,点击“创建设备带布局”按钮,系统进入设置设备带长度对话框.点击“确定”,完成布局创建,其结果如图4所示.

图4 系统三维框架测试图

2)完成病床设备带整体布局后,系统进入“设备带配置选型设计”选项卡.该功能模块根据设计人员需要,完成将设备带中需配置的各功能件加入到指定位置的整体布局装配中.配置完成后,点击“移动复制”按钮,生成最终的三维装配模型,如图5所示.

图5 系统整体布局测试图

3)完成三维装配模型,系统进入“工程图自动生成”选项卡.该功能模块是本研究的核心.设计人员填写好工程图相关名称、代码等属性,点击“计算虚拟值”按钮.系统自动计算装配图中各功能件的个数、电线长度、接线盒数、终端数量、螺钉数量与管道长度等.点击“生成工程图”按钮,系统调用工程图模板,完成主视图和BOM表单的自动创建.BOM表单中的零件名称、代号均从零件自身属性中获取,而其数量为计算所得.最后完成主视图关键尺寸、技术要求及工程图属性生成,结果如图6所示.

图6 系统工程图自动生成测试图

4 结 论

本研究对基于SolidEdge工程图工艺信息的智能生成进行了深入探讨,实现了对SolidEdge平台功能的扩展.在SolidEdge平台环境下利用SolidEdge的二次开发功能,应用Access数据库、VB.NET以及SolidEdge API编程实现了自动化.本研究直接将整套设备的设计经验以软件的方式写入数据库,完成了从无到有的快速设计,实现了工程图的快速生成,减少了出错概率,大大提高了工作效率.

[1]刘鸫根,张铁,王小强.基于SolidEdge采用Visual Basic开发塑料模标准件库[J].模具工业,2006,32(5):15-19.

[2]常选仓,殷国富,尹洋,等.基于SolidEdge的机床高速主轴数字化设计系统研究[J].机械设计与制造,2008,46(5):58-61.

[3]叶斌,刘向农,江斌,等.基于VB的SolidEdge变量化设计在换热器设计中的应用[J].低温与超导,2011,39(9):47-52.

[4]陈洋,管殿柱,何西阳,等.基于SolidWorks的蜗轮蜗杆设计系统研究[J].青岛大学学报(工程技术版),2016,31(1):115-119.

[5]张超,廖敦明,贺云峰,等.基于UG的汽车管路自动化弯曲胎具CAD二次开发[J].模具工业,2016,42(3):1-5,9.[6]杭祖权.基于Pro/E二次开发的自动装配技术[J].军民两用技术与产品,2016,29(3):57-58,62.

Intelligent Generating System of Engineering Drawing Based on SolidEdge Secondary Development

YUANYing,SUNFuchun,YANGTao,WUChangming,GANLuping

(School of Mechanical Engineering, Chengdu University, Chengdu 610106, China)

Aiming at the intelligent generating problems in engineering drawing,the paper puts forward an intelligent generating BOM form,size marking,attribute requests and technical requirements based to SolidEdge.The overall framework of VB.NET system development is built,and the key techniques for the system implementation are analyzed.Therefore,the extension of the function module of SolidEdge is realized.A medical equipment assembly is taken as an example,which is used to prove the feasibility of the intelligent generating method of engineering drawing.

SolidEdge;secondary development;BOM form;dimension marking;VB.NET

1004-5422(2017)01-0085-04

2016-10-08.

四川省教育厅自然科学基金(16ZA0382)资助项目.

袁 影(1993 — ), 男, 硕士研究生, 从事机械制造与设计CAD/CAM/CAE技术研究.

TH164;TP391.72

A

猜你喜欢

装配图工程图表单
通过三维软件PDF自适应转换实现工艺卡片二维工程简图的高清显示
四合一铅笔刀设计
电子表单系统应用分析
实物模型拼装、图块拼接与AUTO CAD软件在装配图绘制中的有机结合
面向工程认证的机制专业工程图学(一)课程教学探索
MASTERCAM工程图出图功能研究
基于图表示和匹配的表单定位与提取
浅谈网页制作中表单的教学
工程制图小班化教学的实践与探索
普通CA6140车床的经济型数控化改造设计