用SOLIDWORKS”宏”代码实现“图号分离”
用SOLIDWORKS”宏”代码实现“图号分离”
文章来源:SOLIDWORKS卓盛信息(400-696-5950)
在日常零件设计中,我们会对绘制好的零件进行命名,通常为图号+零件名称,例如“SOLIDWORKS-01-001 钣金零件”,当我们在生成对应的工程图时,工程图模板中提前定义好的标题栏属性会自行提取零件属性。但是,标题栏中图号和零件号是分开的,此时,需要我们在零件中手动输入分离开的两项自定义属性,面对较多的零件时,往往会减慢我们的工作效率。针对这种情况,下面就给大家分享如何利用SOLIDWORKS“宏”功能,实现一键图号分离。SOLIDWORKS价格
1. 新建零件,并按公司标准进行命名。
2. 点击“工具?宏?新建”,并对其进行命名。
3. 点击保存后,进入到“编辑宏”的界面,按下图中数位代码,并保存。
4. 运行写好的宏命令,进行测试。
5. 打开自定义属性,此时可以看到图号和零件名称成功分离。
6. 点击“自定义?命令”,找到宏,并将“运行宏”命令拖放到工具栏中,此时会自动弹出自定义宏按钮选项卡,将路径指定到保存好的宏位置,其它选项可根据需要自行选择,而后点击确定。后续使用此命令时,只需点击此命令选项即可。SOLIDWORKS价格
7. 以下为图号分离宏代码:
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim a As Integer
Dim b As String
Dim m As String
Dim k As String
Dim c As String
Dim j As Integer
Dim strmat As String
Dim tempvalue As String
Dim Part As Object
Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swConfig As SldWorks.Configuration
Dim CustPropMgr As SldWorks.CustomPropertyManager
Dim swModel As SldWorks.ModelDoc2
Sub main()
Set swApp = Application.SldWorks
Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension
Dim swModel2 As SldWorks.ModelDoc2
Dim vCustInfoNameArr2 As Variant
Set swModel2 = swApp.ActiveDoc
vCustInfoNameArr2 = swModel2.GetCustomInfoNames
If Not IsEmpty(vCustInfoNameArr2) Then
For Each vCustInfoName2 In vCustInfoNameArr2 '遍历自定义属性
bRet = swModel2.DeleteCustomInfo(vCustInfoName2)
Next
End If
Set CustPropMgr = swModelDocExt.CustomPropertyManager("") '获取自定义属性
'设定变量
c = swApp.ActiveDoc.GetTitle() '零件名,如SOLIDWORKS-01-001 钣金零件.sldprt
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
a = InStr(c, " ") - 1 '重点:分隔标识符,这里是一个空格,也可换成其他符号
If a > 0 Then
k = Left(c, a) '零件名取空格左侧值,如SOLIDWORKS-01-001
b = Mid(c, a + 2) '空格后的字符,如钣金零件.sldprt
j = Len(b) - 7 '消除后缀(区分大小写,即含4种)'空格后 后缀前有多少字符
m = Left(b, j) '空格后 后缀前字符,如钣金零件
End If
'删除栏
CustPropMgr.Delete ("图号") '删除配置特定的图号属性
CustPropMgr.Delete ("零件名称")
'新增
CustPropMgr.Add2 "图号", swCustomInfoText, k
CustPropMgr.Add2 "零件名称", swCustomInfoText, m
End Sub
一如以往,谢谢阅读,快乐阳光!SOLIDWORKS代理商(SOLIDWORKS 2023)