SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: SolidWorks自动更新代号名称分离方法 [打印本页]

作者: chenshenhao0    时间: 2017-8-31 11:06
标题: SolidWorks自动更新代号名称分离方法
摘要:本文主要是讲解在SolidWorks中,如何自动分离零件的代号跟名称的方法。大家都知道我们在设计好零件后,通常会命名该零件的名字是代号”+“名称的方法。例如一个传动抽会命名:SW001传动轴。然后我们在出工程图的时候通常就会想到有没有什么方便快捷的方法,能在出工程图的时候,能自动的将零件名字中的代号和名称进行分离,分别放入对应的线框中。
下面讲的就是运用的命令,来实现自动的分离代号和名称。之前可能网上也有一些运用命令的方法,但是那些方法的确能实现分离代号和名称,但是需要去手动运行命令,我们现在要讲的就是自动运行命令的方法。
         我们要创建两个命令,两个命令的作用分别是分离命令以及自动运行命令。步骤如下:
1.      打开SolidWorks,工具--新建;

2.      将里面的文字全部删除,并将下列代码复制进去并保存为:“图号分离-”;
'定义solidwork
Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long,longwarnings As Long
Dim Feature As Object
Dim a As Integer
Dim b As String
Dim m As String
Dim e As String
Dim k As String
Dim t As String
Dim c As String
Dim j As Integer
Dim strmat As String
Dim tempvalue As String
Sub main()
'link solidworks
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
swApp.ActiveDoc.ActiveView.FrameState= 1
'设定变量
c = swApp.ActiveDoc.GetTitle() '零件名
strmat = Chr(34) +Trim("SW-Material" + "@") + c + Chr(34)
blnretval =Part.DeleteCustomInfo2("", "代号")
blnretval =Part.DeleteCustomInfo2("", "名称")
blnretval =Part.DeleteCustomInfo2("", "材料")
a = InStr(c, " ") -1      '重点:分隔标识符,这里是一个空格
If a > 0 Then
   k = Left(c, a)
   t = Left(LTrim(e), 3)
   If t = "GBT" Then
       e = "GB/T" +Mid(k, 4)
   Else
        e = k
   End If
   b = Mid(c, a + 2)
   t = Right(c, 7)
   If t = ".SLDPRT" Or t = ".SLDASM" Then
        j = Len(b) - 7
   Else
        j = Len(b)
   End If
   m = Left(b, j)
End If
blnretval =Part.AddCustomInfo3("", "代号", swCustomInfoText, e)  '代号
blnretval =Part.AddCustomInfo3("", "名称", swCustomInfoText, m)  '名称
blnretval =Part.AddCustomInfo3("", "表面处理", swCustomInfoText, " ")
End Sub
3.      按照上面同样的步骤再次新建一个命令,命名为“AutoRun”;删除红色框中所有代码,并将下列代码复制进去。
Public AutoRun As 类1
Sub main()
Set AutoRun = New 类1
End Sub

4.      右键左边资源管理器,选择插入类模块,并将下列代发复制进去,保存

Private WithEvents SwApp AsSldWorks.SldWorks
Private Sub Class_Initialize()
Set SwApp = Application.SldWorks
End Sub
Private Function SwApp_ActiveModelDocChangeNotify()As Long
Dim runMacroError As Long
SwApp.RunMacro2 "C:\Macros\图号分离-.swp", "图号分离_1", "main", 0, runMacroError
End Function   
5.      在C盘新建文件夹,命名Macros,将附件的两个.swp文件放到上面新建的Macros文件夹中;
6.      右键桌面选择solidworks图标
,选择属性
7.      在目标栏中接着路径输入:空格/m空格"C:\Macros\AutoRun.swp"
就是:solidworks启动程序的路径+空格+/m+空格+常驻的文件位置(注意一定要空格键)注:如果发现目标是灰色无法输入,需要删掉桌面的图标,然后在我的电脑中找到安装启动程序,创建快捷方式到桌面。
8.      最后我们的设定就已经成功了,当我们在新建文件的时候,保存零件需要输入:零件号+空格+零件名,这样在我们关闭零件再次打开,或者切换窗口时,软件会自动运行命令,自动将零件名称代号添加到属性中。


作者: r68ser52    时间: 2017-8-31 12:29
这个常驻讲解好详细,谢谢

作者: e311016    时间: 2017-9-1 09:02
楼主辛苦了!
作者: vincentning    时间: 2017-9-1 21:55
非常详细,感谢!
作者: litao036    时间: 2017-9-2 11:21
感谢楼主分享,很不错!
作者: wwwerzhou    时间: 2017-9-14 12:08
分离正常,但是常驻不生效,是我哪里做错了?
作者: 道法自然    时间: 2017-9-20 16:40
不错的,给力楼主~
作者: janson8    时间: 2017-9-20 17:04
janson88888,非常详细,感谢!
作者: 李丶伟    时间: 2017-9-21 09:58
楼主太有才了,膜拜中……
作者: w_ou    时间: 2017-9-21 13:18
SolidWorks自动更新代号名称分离方法,给力!
作者: Luxjinc    时间: 2017-9-22 13:43
功能强大,很实用!给力!感谢楼主分享!!!
作者: bz1016    时间: 2017-9-22 13:48
这个真是太方便了,以前,操作太麻烦了!
作者: Ryu1223    时间: 2017-9-22 17:12
方法很实用,很不错
作者: 麦饼荣    时间: 2017-9-24 13:31

非常详细,感谢!
作者: 浪静峰平    时间: 2017-9-24 21:09
明天试一下!!!楼主辛苦啦!!!
作者: chenshenhao0    时间: 2017-9-25 10:50
嘻嘻嘻!哪里有不懂得问我!
作者: 伊豆2015    时间: 2017-9-26 13:11
SolidWorks自动更新代号名称分离方法,给力!
作者: 932841651    时间: 2017-9-27 10:31
这个技巧很不错啊,使用起来很方便,也很能解决问题。
作者: weisir1dds    时间: 2017-9-28 14:01
处理后,自定义属性的步骤省略了
作者: 1TOM1    时间: 2017-9-28 14:38
SolidWorks,简单,易学,易用。
作者: 824751842    时间: 2017-10-15 16:49
wwwerzhou 发表于 2017-9-14 12:08
分离正常,但是常驻不生效,是我哪里做错了?

我也是   你弄好了吗?
作者: 824751842    时间: 2017-10-15 16:50
w_ou 发表于 2017-9-21 13:18
SolidWorks自动更新代号名称分离方法,给力!

我第四项第一行出现错误了        
作者: 824751842    时间: 2017-10-15 16:51
LZ,我第四项第一行出现红色,怎么解决?????
作者: zpw2008    时间: 2017-10-17 11:39
第4点:
验证错误:
Private WithEvents SwApp AsSldWorks.SldWorks
少一个空格,更改OK:
Private WithEvents SwApp As SldWorks.SldWorks
作者: 神毓逍遥    时间: 2017-10-29 22:55
楼主辛苦了!
作者: 358317494    时间: 2017-11-1 12:11
分离好用   可自动运行怎么用不了 ;是哪里弄错了哦   楼主辛苦了
作者: yqzjjx    时间: 2017-11-17 21:57
楼主高手啊,学习了
作者: jimmy8005    时间: 2018-4-11 16:34
处理后,自定义属性的步骤省略了
作者: fy5186565    时间: 2018-4-16 14:26
感谢楼主分享,很不错!
作者: fan03488    时间: 2018-5-5 12:42
楼主简直是厉害的不要不要的
作者: fan03488    时间: 2018-5-5 12:46
新建快捷方式也是无法修改目标,还是灰色的
作者: LYCZJS    时间: 2018-5-13 21:55
楼主辛苦了!
作者: sunshine0099    时间: 2018-5-19 11:39
我试了 但是不成功。不知道哪里出错了
作者: sunshine0099    时间: 2018-5-19 11:40
@chenshenhao0 我试了 但是不成功。不知道哪里出错了
作者: ryouss    时间: 2018-5-19 13:34
sunshine0099 发表于 2018-5-19 11:40
@chenshenhao0 我试了 但是不成功。不知道哪里出错了

把需求上傳,看看可否解決!
作者: LYCZJS    时间: 2018-5-21 18:51
SW机械工程师论坛,找到组织了!
作者: wwwerzhou    时间: 2018-6-28 09:28
用到后来,感觉常驻,不如弄个遍历来得简单
作者: liuyun0113    时间: 2018-6-30 09:20
很不错,找到组织了!
作者: fanfei1230    时间: 2019-4-24 17:28
不能自动运行啊,手动分离可运行
作者: KEMIRWU    时间: 2019-4-25 09:25
SW机械工程师网,找到组织了!
作者: fanfei1230    时间: 2019-4-26 14:33
楼主实现不了啊, 我SW2015的,按教程来的,不行
作者: 1305274007    时间: 2019-4-28 13:46
这个真的很好的啊
作者: KEMIRWU    时间: 2019-4-28 18:59
我已经按照你的说明设置好了,非常感谢。谢谢!
  现在我试下来的时候就是,SLDDRW文档也是会做运算,我想只需要3D添加属性就好了,不要2d上加属性。
作者: KEMIRWU    时间: 2019-4-28 19:02
还有一个问题,
    我在打开装配体的时候不能运算零件体,
  我需要一个个的把零件打开才能实现添加属性。
请问有无方法可以让打开装配体就做零件体的属性赋值。
谢谢!
作者: suwenfeng1125    时间: 2020-10-7 08:57
感谢楼主分享,很不错!
作者: chai815    时间: 2020-10-7 16:17
感谢分享  学习了
作者: hqf52657    时间: 2022-7-14 16:55
很不错,希望能共享模型,谢谢!
作者: 824751842    时间: 2022-7-16 13:36
感谢楼主分享,很不错!
作者: 824751842    时间: 2022-7-16 13:47
KEMIRWU 发表于 2019-4-28 19:02
还有一个问题,
    我在打开装配体的时候不能运算零件体,
  我需要一个个的把零件打开才能实现添加属性 ...

使用遍历宏
作者: 824751842    时间: 2022-7-19 19:43
SW机械工程师网,找到组织了!




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2