基于SolidWorks二次开发的钣金箱体三维建模

2019-12-06 08:48赵鹏德闫栋闫玲
软件 2019年10期
关键词:参数化设计二次开发

赵鹏德 闫栋 闫玲

摘  要: 以VB为开发工具,通过调用solidworks对象和API函数,实现尺寸驱动的钣金箱体的三维建模及自动装配。通过对钣金箱体实际产品数据进行归类管理,总结出通用的设计流程。模拟主特征面逐步添加面上辅助特征及阶梯面特征的设计过程,调用相应特征函数实现钣金件的三维建模。通过改变钣金件在装配环境下的位姿矩阵达到虚拟装配的目的。此辅助设计系统,减少了设计过程中大量重复劳动,提高了产品的设计效率。

关键词: SolidWorks;二次开发;参数化设计;自动装配

中图分类号: TP39    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.10.028

本文著录格式:赵鹏德,闫栋,闫玲. 基于SolidWorks二次开发的钣金箱体三维建模[J]. 软件,2019,40(10):125128

The 3D Modeling of Sheet Metal Box Based on Secondary Development of SolidWorks

ZHAO Peng-de1, YAN Dong1, YAN Ling2

(1. School of Mechanical and Automotive Engineering, Shanghai University of Engineering Sicence, Shanghai 201620, China;

2. Department of mechanical and electrical, Yanzhou Coal Mining Company Limited Dongtan Coal Mine, Shandong 273512, China)

【Abstract】: Using VB as a development tool, the 3D modeling and automatic assembly of the size-driven sheet metal case is realized by calling the solidworks object and the API function. Through the classification and management of the actual product data of the sheet metal cabinet, the general design process is summarized. The main feature surface of the simulation is gradually added to the design process of the surface auxiliary features and the step surface features, and the corresponding feature function is called to realize the three-dimensional modeling of the sheet metal parts. The purpose of virtual assembly is achieved by changing the pose matrix of the sheet metal in the assembly environment. This auxiliary design system reduces the amount of repetitive work in the design process and improves the design efficiency of the product.

【Key words】: SolidWorks; Secondary development; Parametric design; Automatic assembly

0  引言

如今日常生活中,鈑金箱体被广泛使用。配电箱、操作柜、机箱等箱体型号多样,结构、工艺都有所不同。因为没有统一的归类管理和分析,导致设计时存在大量重复劳动,同时大多企业仍采用手工方式进行板金件的展开,这势必降低了设计的正确率和效率。钣金零件在工业中往往作为辅助零件使用,标准化程度低,故很少有专业的软件来进行辅助设计。

常用的三维软件,例如Pro/E、UG、Solidworks、CATIA等都具有钣金模块,但只能实现简单钣金件的展开,并不能减少设计过程中的重复工作量。所

以有必要结合市场中的钣金箱体实例数据,对solidworks进行二次开发[1],来达到辅助设计、减少工作量、提高设计效率的目的。

较以往轴类零件、齿轮零件等传统零件[2]的二次开发不同,钣金箱体多为装配结构,需要零件建模[3]之后再实现自动装配,且箱体中的零件样式多变不固定。所以,需要通过对钣金箱体的实例进行分析,总结出零件的通用设计流程,以便生成各类箱体零件[4]的模型。

1  问题描述

钣金箱体的按结构分为两种[5],焊接结构和拼装结构。焊接结构的钣金箱体通常仅包括箱体和箱门两部分。箱体由一个钣金件经过裁剪、折弯、开孔后焊接而成。拼装结构则由多个钣金件装配而成,主要分为底板、左侧板、右侧板、上盖板、前门板等。箱体由多个钣金件进行分开加工后组装而成,各钣金件再由螺丝和三通进行连接。焊接结构箱体的设计较为简单,本文以拼装结构箱体进行说明。

拼装结构箱体的设计流程如下图1所示。

首先是选择需要的基体样式,而后提取出所有方向的主特征面,在每个主特征面上添加孔特征、冲压特征等面上辅助特征,之后对所有主特征面进行分配,每组特征面再添加阶梯面特征后构成独立钣金件。最后对所有钣金件进行装配得到需要的箱体设计方案。

其中,每个钣金件都包含主特征面、面上辅助特征、阶梯面特征三个部分,拼装结构箱体中的右侧板钣金件设计流程如图2所示。

其主特征面是右上切角的矩形面,面上輔助特征包括20个冲压特征,4个?8圆孔,2个?40圆孔。阶梯面由solidworks中的斜接法兰功能生成,所需要绘制的草图为阶梯面的截面形状。图3中右侧为零件的阶梯面截面,左侧为阶梯面特征的表示形式。

所以,辅助设计系统总体需要两个部分,钣金件的建模和箱体的装配。首先用户在界面上选择模型基体、特征类型并输入尺寸参数后,再调用solidworks的内置函数逐个生成钣金件的三维模型,最后按照板件的位置信息,逐个修改其位姿矩阵进行自动装配。最终完成设计方案,展现完整的箱体模型。

2  solidworks的二次开发

2.1  零件的三维建模

对solidworks进行二次开发实现三维建模的原理是,通过调用solidworks的内置函数[6],实现草图绘制、基体拉伸等功能,最后按一定的设计顺序安排,实现尺寸驱动的自动建模。、

对钣金箱体实际零件进行分析,总结出零件的通用建模流程如图4所示。

具体流程为,首先绘制主特征面草图,使用钣金特征拉伸为钣金薄板零件。之后选择特征面,绘制圆孔的草图,选择拉伸切除,形成孔特征。然后,选择冲压模具,在特征面上进行冲压成形。再绘制斜接法兰草图,选择特征面外轮廓,形成阶梯面。最后如果阶梯面上存在孔特征,再绘制孔特征的草图,拉伸切除后完成建模。

在solidworks二次开发过程中可利用宏录制功能来获得命令函数代码,宏文件代码同Visual Basic代码类似,将宏文件代码稍加改动便可在VB[7]中应用。因此通过VB对solidworks进行二次开发拥有独特优势[8]。

VB编程主要实现代码如下:

Set swApp =CreateObject("SldWorks.Application")

'连接solidworks

swApp.Visible = True

Set Part = swApp.ActiveDoc

'新建零件

boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

'选择前基准面

Part.SketchManager.InsertSketch True

'插入草图

Part.SketchManager.CreateCenterRectangle 0, 0, 0, CC, GG, 0

'插入中心矩形

Set myFeature = Part.FeatureManager.Insert SheetMetalBaseFlange2(0.0018, False, 10, 0.02, 0.01, False, 0, 0, 1, customBendAllowanceData, False, 0, 0, 0, 0.5, True, False, True, True)

'拉伸为钣金薄板

Dim skSegment As Object

Set skSegment = Part.SketchManager.CreateLine (0, GG, 0#, -SS, GG, 0#)

'绘制阶梯面截面折线

Dim CBAObject As Object

Set myFeature = Part.FeatureManager.Insert SheetMetalMiterFlange(True, 10, 0.00025, True, True, 0.5, 0.001, 0.001, 1, False, 1, 0, 0, CBAObject)

'斜接法兰生成阶梯面

2.2  箱体的自动装配

因为箱体模型不涉及后续的运动仿真,只有三维模型展示的作用,所以移动各钣金件到预定位置固定后便能达到目的。且采用面、边、点配合[9]的形式,需要大量手动选择,依旧不能很好的实现自动化的要求。所以本文采用改变零件在装配环境下的位姿矩阵的方式来进行虚拟装配101]。具有简单易行、自动化程度高的优点。

该方式需要在零件建模时,对相对原点的位置选择具有一定要求。对于钣金箱体类零件,一般选择零件中心为相对原点。以箱体基体的中心为绝对原点。根据尺寸信息来确定钣金件在箱体中的空间位置,而后改变位姿矩阵来移动零件进行装配。

该方式主要是利用了矩阵变换理论,通过矩阵变换移动一个部件在装配体中的物理位置。Solidworks中零件的位姿矩阵形式如图5。

元素a到i是一个旋转矩阵,实现组件在装配体中绕X、Y、Z轴旋转,元素j、k、l是对应组件在装配体中沿X、Y、Z轴方向的平移量,元素m表示组件缩放因子。具体构建的变换矩阵如表1  所示。

其中参数a为需要绕X轴旋转的角度,b为绕Y轴旋转的角度,c为绕Z轴旋转的角度,x为零件朝X轴正方向平移的距离,y为朝X轴正方向平移的距离,z为朝Z轴正方向平移的距离。

3  用户界面

简洁美观的用户界面[11]是一个完整的软件系统必不可缺的。本文用VB进行solidworks二次开发的同时,也构建了相关的用户界面,来使得系统操作更简单易行。软件的用户界面包括主界面、数据管理界面、零件建模界面、自动装配界面等。主要界面如图7、图8、图9所示。

4  结论

基于solidworks平台,利用VB语言对其进行二次开发,经实际测试所编写的辅助设计软件能够实现常用箱体的三维建模和自动装配,且具有历史数据保存功能。后期对大量数据进行整理分析后,

可为系统增加自学习功能,实现智能设计。本软件提高了设计效率,可以满足企业的实际需求。

参考文献

[1]刘永波. 分析AutoCAD二次开发方法的研究[J]. 软件, 2013, 34(05): 148-149.

[2]郭丽静. 基于UG的标准直齿圆柱齿轮的参数化建模[J]. 软件, 2012, 33(06): 56-58.

[3]杜轩, 李登桥. 螺纹连接件三维参数化建模系统开发[J]. 软件, 2012, 33(12): 14-17.

[4]王卫荣, 齐芬. SolidWorks的二次开发在箱体类零件中的应用[J]. 机械工程与自动化, 2007(2): 33-34.

[5]张胜文, 李群, 朱鹏. 基于Solidworks制麦设备数字化设计平台的开发[J]. 机械设计与制造, 2017(s1): 164-167. .

[6]马咏梅, 丁行武, 李鑫. SolidWorks二次开发在机械零件设计中的应用与研究[J]. 机械传动, 2010, 34(1): 72-74.

[7]董海波, 胡坤, 方永丽, 唐守锋. VB平台下的虚拟实验软件开发研究[J]. 软件, 2011, 32(06): 20-22.

[8]李建峰, 赵继承, 赵随军, 张威望. 卧式半球封头圆筒体罐容积计算及VB数学建模编程应用[J]. 软件, 2012, 33(04): 129-132.

[9]吕晓燕, 贾海英, 张晓钟. 基于VB对SolidWor二次开发方法的研究[J]. 机械设计与制造, 2005(3): 114-116.

[10]田源, 王欣, 许滨, 等. 基于SolidWorks二次开发的自动装配技术研究与应用[J]. 机械科学与技术.

[11]吴昊. 一种基于模型的用户界面开发方法[J]. 软件, 2015, 36(08): 7-11.

猜你喜欢
参数化设计二次开发
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
基于SolidWorks的零件建模参数化设计应用简析
基于CATIA的飞机复杂结构件三维参数化设计①
基于Pro/E二次开发的推土铲参数化模块开发