一、现有的方法分析
最近在使用solidworks画三维图,使用的是图号+空格+图名的命名方式。这样的命名方式可以保证零部件名称的唯一性,在两个机台互相装配的时候,不会因为重名而出现问题。但是在工程图里面的标题栏中一般图号和图名是分开填写在不同的地方,所以需要做图号分离操作。
搜了网上不少的教程,有纯用宏命令的办法,也有使用方程式的办法。
1.宏代码的方式
宏就是写了一段VBA代码,在已经建好的模型里面点击一下运行,即可自动将图号和图名更新到属性里面。宏用起来比较简单,做成宏按钮一键即可分离,但是图名和图号属性与文件名没有关联,有时候我们需要对零部件改名,而改了名字之后它没办法自动更新,需要手动更新。
- 优点:新旧零件都比较方便(都是一键实现)
- 缺点:零件改名后,需要手动更新
2.方程式的方式
方程式的方法呢,就是使用全局变量和属性,利用solidworks全局变量自动更新的特点,将图号和图名自动更新到相应的属性里面去。
在实际使用的过程中,零部件改名后,方程式可以自动更新。对于新的零件,可以将前面含有方程式的零件做成零件模板,调用这个模板,就不用每个零件都输入方程式了。但是对于已经建立好的模型,就需要挨个输一遍方程式,太过于麻烦。
- 优点:无需手动更新,可以自动关联、做成模板之后的新建立零件使用方便
- 缺点:旧零件不好用,需要手动输入
二、宏与方程式结合的方式
基于宏命令和方程式图号分离的两种方法,取其所长,将添加方程式步骤加入了宏命令里面,结合做成了一个含有方程式的宏命令
- 使用过该宏命令的零件,图名和图号自动和零件名称关联,改名后,自动更新
- 使用过该宏命令的零件,可以存为零件模板,后续使用该模板建立的零件,就不需要每次先点击该宏命令按钮了。
1.宏代码
Dim swApp As Object
Sub main()
'用字符串来临时存放代码
Dim s As String
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swEqnMgr As SldWorks.EquationMgr
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swEqnMgr = swModel.GetEquationMgr
Set CurCFG = swModel.GetActiveConfiguration<