天津美腾科技股份有限公司 天津 300385
摘要:鉴于工况条件的不同,产品的精细化和定制化越来越多,为了实现准确、快速的模型修改,减少设计人员的做图时间和误差,缩短设计生产周期,故采用SolidWorks结合 VBA的零件参数化设计方法。运用SolidWorks API自带编程接口,结合Excel VBA便捷的编程及控件功能,在表格中输入设计参数,自动更新设计模型。在SolidWorks二次开发中,采用VBA的参数化设计,此方法简单实用,扩展性强,无需过多代码维护,既提高了设计效率,也降低了出错率。
关键词: Soliworks、VBA、参数化设计、侧护板
中图分类号:TP29 文献标识码:A
0 引言
在企业的现代化设计中,三维模型的各种参数化设计方法因其便捷高效、移植性强等特点深受研发人员青睐。SolidWorks也为用户的二次开发提供了应用程序API接口,只要支持OLE或COM接口的编程语言,都可以用来作为SW二次开发的工具,如VB、VBA、C++、C#等[1]。参数化设计包含两方面内容,一是参数化设计的图元因素,确定其基础几何关系,给出模型的基本尺寸变量;二是参数化设计的驱动,运用外部输入参数值的方法,驱动模型基本尺寸的变量参数。参数化就是建立在基础模型上,通过改变部分输入参数来驱动基础模型的变量参数,从而使数模产生变化,最终达到自动化建模的目的[2]。
1.Solidworks参数化设计的思路
1.1参数化设计
参数化是以高效性为目的,是通过高效复用来解决繁琐的重复工作。设计之前就要找出驱动参数,从动变量参数,这些参数的选择又和产品的后期变形和预判相关,要事先计划好哪些是变量,哪些是不变量,才能更高效地表达设计思路,呈现真实的设计结果。参数化就是通过整个零部件的变形或重新驱动建模,得到与设计要求符合的新的零部件。更准确的表达即:使用某些输入参数,来驱动整个零件或整个装配体重新生成或者直接变形,以获得相近的不同规格的零部件。
1.2参数化设计的原理
参数化设计是指将工程本身编写为函数或建立关联,通过修改初始条件参数并经计算机计算得出设计结果的过程,以实现设计过程的自动化。简单来说,就是用少量的元素,控制多数的内容。从一个物体中抽取一个或几个要素,作为主要驱动参数。其他的参数,或尺寸要素,或阵列个数,则作为从动要素。建立起从动要素和参数的关联的这个过程,称之为参数化。这个公式或关联是静态的,但参数是动态的,从动要素随主要驱动参数而变,主要驱动参数可以根据自身需求而定。
1.3参数化设计的优势
随着产品上市周期越来越快,要求企业要更快的推出新产品;用户定制化需求、设计人员成本、产品的技术经验等等都较以往有了更高的要求;对于零部件的重用度、模块化必将日趋成熟,这时就需要快速、准确的参数化建模。采用模块化、参数化的思路建立和修改模型,也会逐渐成为企业长远发展的必然选择。采用参数化重新生成零部件的方法,只需创建某个单一模型,之后通过调整驱动数据表中的参数,便可形成不同规格的零件,操作快捷简单,效果明显。
参数化可实现提取参数自动化、变量参数集中化、逻辑关系外置化、操作界面可视化,以达到自动化设计,模块化、参数化改造模型。参数化设计可以很大程度上提高模型的变更和修改速度,在新旧产品的系列化设计、相似性设计及专用数模系统的开发方面都具有重要的应用价值。
1.4基于Excel VBA的参数化设计
VBA是Excel中自带的开发编程工具,是基于的VB语言演变而来,是一种面向应用程序的通用语言,它适用于各种Windows的应用程序,解决了各应用程序的宏语言不统一的问题。VBA还含有的大量内部函数极大的方便设计者调用。
SolidWorks API就是其内嵌的具有开放性的编程接口,其不但提供大量可调用的函数,还可以与其他开放平台互通互用,提高了API接口的兼容性,其操作简便性和开放性,为设计者提供VB、C#、VBA、Delphi等多种语言的开发接口。其中VBA的编程比较简单,通用性最强,可使开发者更高效的实现参数化建模[3]。
SW自带的宏功能就可以把用户操作SW的 “一举一动”全程记录下来,将这些操作转化成可编辑的VBA代码。采用Excel VBA进行参数化设计的方法简单实用,其多数操作可通过宏录制的方法获取目标程序,之后再删减、修改调整代码。
2参数化设计实例
2.1创建基础模型
新建零件,创建草图并拉伸,完成基础模型创建。保存输入的数值尺寸,实例中数值70、30、5、600分别对应尺寸属性中的“D1宽度@草图1”、“D2高度@草图1”、“D3厚度@草图1”、“D1长度@拉伸1”,之后将模型保存为“E:\SW\参数化\侧护板”。
2.2创建驱动表格,关联SolidWorks软件
新建Excel表格,将参数尺寸与模型尺寸一一对应,插入命令按钮Command,将按钮属性修改为“生成模型”。
在Excel的设计模式下,双击“生成模型”命令按钮,进入VBA编程环境查看命令按钮代码。首先为Excel与SW建立关联,代码如下:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
以上四句为声明变量。
Set swApp = CreateObject("SldWorks.Application")‘建立对象’
swApp.Visible = True
Set Part = swApp.OpenDoc6("E: \SW\参数化\侧护板.SLDPRT ", 1, 0, "", longstatus, longwarnings) ‘打开前面保存的基础模型’
2.3变量驱动模型
通过Excel表格输入一组新的设计参数,设计参数要与尺寸属性相对应,之后更新模型。驱动程序如下:
Part.Parameter("D1宽度@草图1").System Value=Rang("E3").Value/1000
Part.Parameter("D2高度@草图1").System Value=Rang("E4").Value/1000
Part.Parameter("D3厚度@草图1").System Value=Rang("E5").Value/1000
Part.Parameter("D1长度@拉伸1").System Value=Rang("E8").Value/1000
在驱动表格中输入不同参数,点击生成模型,SW就会自动生成对应模型,根据需要可以建立一系列规格不同的侧护罩。
3 结束语
介绍了Solidworks参数化设计的设计思路,以及使用参数化设计的优势,采用SW API自带编程接口,结合Excel VBA的方式最为简单实用,扩展性强,无需过多代码维护,既提高了设计效率。并选用侧护板为实例,使用SolidWorks API结合VBA的方式进行参数化建模验证。
通过实例可明确此种参数化设计方法,可以大幅提升开发效率,缩短研发周期,可以轻松、准确的满足定制化产品需求,降低企业人力成本和设计者的经验成本。企业可根据自身产品需求发展不同功能的参数化,提高整套产品研发进度和质量。
参考文献:
1、付冲. 基于Excel和SolidWorks的U型托板参数化设计及展开[J].石油和化工设备,2019,22(10):22-25.
2、焦雯雯.基于Excel VBA编程的SolidWorks零件参数化设计[J].机械工程师,2014,11:200-204.
3、郭书英.基于SolidWorks和Excel二次开发零部件参数化设计研究[J].河北省科学院学报,2022,39(3):21-24.