400-696-5950
网站首页 公司简介
新闻中心
产品中心
企业视频
案例赏析
2024新功能
客户留言
会员中心
新闻中心

用SOLIDWORKS”宏”代码实现“图号分离”

发布时间:23年03月 - 作者:SOLIDWORKS卓盛信息 - 来源: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)