三 SOLIDWORKS之VBA宏

在使用SOLIDWORKS软件宏时 , 用户会经常访问零件、装配体、工程图的属性,或向属性中返写字段信息 。
SOLIDWORKS的属性位于两个位置:①自定义属性,②配置特定属性;自定义属性适用于零件中仅存在单配置,或是多配置但同物料编码的情形 。配置特定适用于多配置系列化零件的情形,即每个配置的物料编码都不相同的情况;但这也不是完全限定的,用户可以基于自身理解和需求来实现不同效果 。


属性的提取和返写可以用于以下情形:
1.提取零件中已有的多个属性,对多个属性进行合并,比如由长宽高信息合并生成规格信息;
2.通过提取到的多个属性,根据映射规则生成新的属性字段,比如由文件的类型、规格等信息生成物料编码;
3.提取结构的对应属性,对结构中的不同零件进行分类,输出不同类型的BOM;
4.在EXCEL中添加零件的各类属性字段信息 , 并返写到SOLIDWORKS文件中,实现批量操作;
5.批量读取配置特定属性,返写至自定义属性中;
一:如何读取文件
以下介绍在VBA宏中,如何读取文件的自定义属性、配置特定属性:

三 SOLIDWORKS之VBA宏

用于获取当前激活的SOLIDWORKS文件,并将获取到的激活文件赋值给swDoc变量;
代码:var1 = swDoc.CustomInfo(“物料编码”)
用于读取文件自定义属性中字段为“物料编码”的属性值(如果有),并将该值赋给var1;
代码:var2 = swDoc.GetCustomInfoValue(“默认”,“零件类型”)
用于读取文件”默认”配置特定中字段为“零件类型”的属性值(如果有),并将该值赋给var2;
用户在获取到这些所需的属性字段后,即可对这些属性字段进行输出或者是执行其他的字符串操作;执行完成后 , 可以将生成的新属性字段返写至SOLIDWORKS文件中;
二:激活文件返写
以下介绍在VBA宏中,如何向一个激活的文件返写属性:
三 SOLIDWORKS之VBA宏

用于删除自定义属性中原始字段(如果有) , 然后再添加该字段,并在添加该字段时,为该字段指定新的值(“0001”);
代码中的swDmCustomInfoText为该字段的变量类型,与下图中的Type对应,所有代码类型对应的关键字请查阅SOLIDWORKS API Help;
三 SOLIDWORKS之VBA宏

代码:
swDoc.DeleteCustomInfo2 “默认”, “零件类型”
swDoc.AddCustomInfo3(“默认”, “零件类型”, swDmCustomInfoText, “焊件”)
用于删除“默认”配置特定中的原有字段信息(“零件类型”) , 然后再添加该字段,即字段所对应的值(“焊件”) 。
三:实例演示
接下来,我们通过一个实例来演示一个完整的过程;零件已经预先人工输入了一些属性信息,如下图所示:
三 SOLIDWORKS之VBA宏

读取零件的属性信息,判断打开的零件是否属于焊件结构;如果是焊件,则提取该焊件的“长”、“宽”、“高”属性,并将该长宽高信息组合,返写到零件的“规格”属性字段中;代码如下:
三 SOLIDWORKS之VBA宏

宏执行结果如下:
三 SOLIDWORKS之VBA宏

【三 SOLIDWORKS之VBA宏】注意:如果用户需要对装配体下属的零件进行属性批量读取、返写,需结合我前面的文章 , 遍历整个装配体结构,来实现该效果,在这里不做过多赘述 。

相关经验推荐