青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2898|回复: 45

[原创] SolidWorks自动更新代号名称分离方法

[复制链接]
发表于 2017-8-31 11:10 | 显示全部楼层 |阅读模式
摘要:本文主要是讲解在SolidWorks中,如何自动分离零件的代号跟名称的方法。大家都知道我们在设计好零件后,通常会命名该零件的名字是代号”+“名称的方法。例如一个传动抽会命名:SW001传动轴。然后我们在出工程图的时候通常就会想到有没有什么方便快捷的方法,能在出工程图的时候,能自动的将零件名字中的代号和名称进行分离,分别放入对应的线框中。
下面讲的就是运用宏的命令,来实现自动的分离代号和名称。之前可能网上也有一些运用宏命令的方法,但是那些方法的确能实现分离代号和名称,但是需要去手动运行宏命令,我们现在要讲的就是自动运行宏命令的方法。
         我们要创建两个宏命令,两个宏命令的作用分别是分离宏命令以及自动运行宏命令。步骤如下:
1.      打开SolidWorks,工具-宏-新建;
1.png
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
2.png
4.      右键左边资源管理器,选择插入类模块,并将下列代发复制进去,保存宏;
3.png
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图标 4.png ,选择属性 5.png
7.      在目标栏中接着路径输入:空格/m空格"C:\Macros\AutoRun.swp". T1 A$ w( S" U2 O) _" ]# r- |8 l
就是:solidworks启动程序的路径+空格+/m+空格+常驻宏的文件位置(注意一定要空格键)注:如果发现目标是灰色无法输入,需要删掉桌面的图标,然后在我的电脑中找到安装启动程序,创建快捷方式到桌面。
8.      最后我们的设定就已经成功了,当我们在新建文件的时候,保存零件需要输入:零件号+空格+零件名,这样在我们关闭零件再次打开,或者切换窗口时,软件会自动运行宏命令,自动将零件名称代号添加到属性中。
; l3 ~& ]6 b3 L0 t# N
发表于 2017-9-1 23:20 | 显示全部楼层
貌似改不掉哟
& l" T. v1 v3 O3 Z4 Z
回复 支持 反对

使用道具 举报

发表于 2017-9-20 16:41 | 显示全部楼层
给力,楼主,谢谢分享~方法很好,省事了
回复 支持 反对

使用道具 举报

发表于 2017-9-20 16:42 | 显示全部楼层
给力楼主,成功分离
回复 支持 反对

使用道具 举报

发表于 2017-9-20 17:05 | 显示全部楼层
janson8888,貌似改不掉哟
回复 支持 反对

使用道具 举报

发表于 2017-9-20 17:06 | 显示全部楼层

$ `6 b& a" d1 d! X: u) q+ v' ^. u" Ajanson88888888888888888888888,貌似改不掉哟
回复 支持 反对

使用道具 举报

发表于 2017-9-20 17:07 | 显示全部楼层
膜拜神贴,UG爱好者们后面请保持队形~
回复 支持 反对

使用道具 举报

发表于 2017-9-20 17:09 | 显示全部楼层
貌似改不掉哟, s试试看
回复 支持 反对

使用道具 举报

发表于 2017-9-21 10:04 | 显示全部楼层
膜拜神贴,UG爱好者们后面请保持队形~
回复 支持 反对

使用道具 举报

发表于 2017-9-21 10:06 | 显示全部楼层
膜拜神贴,UG爱好者们后面请保持队形~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-12-4 02:39 , Processed in 0.098099 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表