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