SolidWorks的参数化功能有多种实现方式,本文详细介绍了利用Excel表格驱动SolidWorks模型的方法:通过Excel输入参数,利用Excel表格ActiveX控件、方便的数据计算能力,结合SolidWorks方程式及宏功能,实现对SolidWorks模型尺寸修改及更新。
参数化设计方法就是将模型中的定量信息变量化,使之成为任意调整的参数。对于变量化参数赋予不同数值,就可得到不同大小和形状的零件模型。
用CAD方法开发产品时,产品设计模型的建立速度是决定整个产品开发效率的关键。如果该设计是从概念创意开始,则产品开发初期,零件形状和尺寸有一定模糊性,要在装配验证、性能分析之后才能确定,这就希望零件模型具有易于修改的柔性;如果该设计是改型设计,则快速重用现有的设计数据,不啻为一种聪明的做法。无论哪种方式,如果能采用参数化设计,其效率和准确性将会有极大的提高。
在CAD中要实现参数化设计,参数化模型的建立是关键。参数化模型表示了零件图形的几何约束、尺寸约束和工程约束。几何约束是指几何元素之间的拓扑约束关系,如平行、垂直、相切和对称等;尺寸约束则是通过尺寸标注表示的约束,如距离尺寸、角度尺寸和半径尺寸等;工程约束是指尺寸之间的约束关系,通过定义尺寸变量及它们之间在数值上和逻辑上的关系来表示。
在参数化设计系统中,设计人员根据工程关系和几何关系来指定设计要求。要满足这些设计要求,不仅需要考虑尺寸或工程参数的初值,而且要在每次改变这些设计参数时维护这些基本关系。即将参数分为两类:其一为各种尺寸值,称为可变参数;其二为几何元素间的各种连续几何信息,称为不变参数。参数化设计的本质是在可变参数的作用下,系统能够自动维护所有的不变参数。因此,参数化模型中建立的各种约束关系,正是体现了设计人员的设计意图。
SolidWorks是典型的参数化设计软件,参数化功能非常强大,并且实现方法多种多样。笔者今天介绍一种通过Excel表格对模型参数进行驱动的方法,其特点是充分利用Excel表格强大的公式计算、直观的参数输入、方便的数据维护功能,来实现产品的参数化、系列化设计。如图1所示Excel表格,展示的是一个压力容器的法兰参数。表中直观地将不同法兰用不同颜色体现,并对应相同颜色块的参数。该参数采用下拉列表的方式,直接选取即可,最后只需要点击右下角的“更新法兰参数”,SolidWorks中的模型便实时得到更新。
当然,根据模型参数的需要,该表格还可以做得更加复杂,还是以该压力容器为例,大家知道压力容器的设计是有严格规范的,那么就可以将这些规范体现在表格中,利用Excel公式功能实现。如图2,同样只需要更改几个关键参数,点击更新按钮,SolidWorks中的相应模型参数便实时得到更新。
下面笔者介绍一下这个功能的实现方法,在此笔者用一个最简单的长方体模型作为例子进行介绍。
1.建立模型
首先用SolidWorks建立如下模型:一个长方体,长宽高分别为100mm、40mm和50mm。如图3。
2.编辑尺寸名称
这个过程需要强调的是,需要将尺寸名称显示出来。可按下面方法操作:勾选注解中的“显示特征尺寸”,并将“查看尺寸名称”按钮激活,如图4,结果如图5。
3.定义尺寸之间的逻辑关系
在此我们定义“高”是“宽”的1.5倍。注意,该步骤可选,因为可以将逻辑关系在Excel表格中定义,如图6。
4.生成Excel文件
本例中,驱动变量是“长”,“宽”和“高”均直接或间接由“长”得到。根据这个要求,该表格设计成由驱动列表、参数定义和参数说明三部分组成,如图7。
5.利用名称管理器定义参数区域
选中“参数”工作表中的“长”下面的所有数值表格,然后点击公式栏中的“名称管理器”,新建一个名称为“长”, 引用位置为刚才选中表格范围的名称内容,如图8。
6.引用参数区域
这是为了将驱动尺寸与设定好的参数进行关联调用,采用下拉框来实现,如图9。
7.设置尺寸参数之间的关系
这一步可以充分利用Excel表格方便的公式计算功能,如图10。
8.定义ActiveX控件按钮
切换到“开发工具”选项卡(此前要确保在“Excel选项→常用”中将开发工具选项卡激活),激活“设计模式”,在该选项卡中,点击“插入→ActiveX控件→命令按钮”,绘制一个按钮,并修改该按钮的显示名称为“更新尺寸”。如果你喜欢,也可以将该按钮的样式颜色修改一下,效果如图11。
9.修改按钮的代码内容
双击该按钮,在弹出窗口的代码中加入驱动SolidWorks尺寸参数的内容。需要说明的是,该代码形式固定,需要更改的只是箭头所指的变量传递部分语句,其中,前面括号中是在SolidWorks中的模型尺寸名,后面括号中是Excel表格中相应的单元格名称。注意,代码中数值单位是m,而本例模型中单位是mm,因此在代码中数值要除以1000。另外,按钮名称不要弄错,一定要与控件名称一致(注意不是显示名称)。需要指出的是,长方体需要长、宽和高三个参数,而我们只定义了2个参数“长、高”,这是因为,“宽”的参数SolidWorks的方程式中定义了。如图12。
通用代码内容如下,其中,红色部分可直接复制重用到其他例子中。
Private Sub CommandButton1_Click()
Dim swApp As Object
Dim Part As Object
Dim Gtol As Object
Dim longstatus As Long
Dim boolstatus As Boolean
Set swApp = CreateObject(“SldWorks.Application”)
Set Part = swApp.ActiveDoc
‘Values for calcualtions are in meters
Part.Parameter(“长@Sketch1”).SystemValue=Range(“A4”).Value/1000
Part.Parameter(“宽@Extrude1”).SystemValue=Range(“B4”).Value/1000Part.EditRebuild
End Sub10.保存该文件为特定格式
请注意,操作过程中必须保存为Excel2003的格式(xls),或者Excel2007的xlsm(启用宏的工作簿)格式。要想正确运行该按钮,还需要注意下面两点:①将“开发工具” 选项卡中的“设计模式”关闭。②将该Excel文件启用宏及激活ActiveX控件功能。这些内容是Excel文件的基本操作,在此不再赘述。
11.测试参数驱动是否正确执行
修改参数,点击“更新按钮”,SolidWorks中的模型会即时更新,注意SolidWorks中模型要处于打开状态。可以看到,只需要修改“长”这一个参数,便可以驱动SolidWorks中长方体的3个尺寸变换,如图13所示。
12.将驱动文件嵌入到SolidWorks的活页夹
最后,可以将相关文档嵌入到SolidWorks的活页夹,具体方法是:右键点击SolidWorks的活页夹,选择“添加附加件”,选中需要添加的文件即可(可采用链接或嵌入方式均可)。
至此,这种借助SolidWorks宏功能以及Excel控件等方法的表格驱动详细介绍完了。在采用这种方法的时候,要想获得更好的效果,一定要清楚要解决的问题的具体情况,并理解该方法针对参数设置关键地方。其关键点是:大量需要做的工作是提炼独立变量,将其他变量通过某种关系表达出来,而表达的方法具体有很多种,可以灵活处理。比如本例,全部变量有3个(长、宽和高),表格传递给SolidWorks模型的变量是2个(长和宽),而通过手工调整的独立变量只有一个(长)。那么一个独立变量如何实现三个变量联动呢?本例中,将一个变量“宽”与“长”建立关联,在表格中通过关系 式体现,将另一个变量“高”与“宽”关联,在SolidWorks的方程式中体现。当然,“高”、“宽”与长的关系,可以都放在SolidWorks的方程式中,这样表格只需要传递“长”这一个变量;也可以都体现在表格中,那么表格需要传递全部三个变量给SolidWorks。
上述方法可直观方便地维护数量繁多、关系复杂的产品参数,不过可以作为变量的仅仅是尺寸,如果产品改型涉及到几何拓扑或零部件替换的问题,就不那么容易维护了。
令人振奋的是,SolidWorks2011版解决了这个问题。在参数化功能增强方面,其方程式功能增加了压缩和解压缩的操作(图14),可以方便地维护产品几何拓扑的变化。这个功能的巧妙利用,使参数化设计提升了一个级别,即实现设计自动化的功能。同时,其新功能支持记事本的参数读入,该功能使设计者可以设置全局变量,驱动多个零部件的参数。