QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 6744|回复: 2
收起左侧

[求助] sw图号分离宏不能正常运行,求解决

[复制链接]
发表于 2021-5-29 09:41:01 | 显示全部楼层 |阅读模式 来自: 中国山东烟台
安装
主题分类用于问题归类:

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 长虹贯日 于 2021-5-29 09:45 编辑 ( Q+ c. n* R7 L: t9 M( a

% p% {% u. p( @7 {  {, O; x& v 微信截图_20210529094444.png 2 r% E" |, Q& M' O+ X
宏文件链接及内容如下:我的sw版本是2018的,图号和名称分离宏不能运行,不知道怎么解决,请教高手帮助,谢谢!
( H6 X0 g# p- g* Hhttp://fans.solidworks.com.cn/article-1657-1.html* r5 O) \1 X. c8 J) t9 {) M1 v
摘要:本文主要是讲解在[color=#444444 !important]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
. {0 ^: j3 T! |# m4 C6 }
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   

6 g8 ~" s* H1 d
- d; e: ]3 z! F9 G5 k- n7 F5 Z" c8 g' w
5.      在C盘新建文件夹,命名Macros,将附件的两个.swp文件放到上面新建的Macros文件夹中;
7.      在目标栏中接着路径输入:空格/m空格"C:\Macros\AutoRun.swp"2 N7 G$ ]. m3 |7 b( f
就是:SOLIDWORKS启动程序的路径+空格+/m+空格+常驻宏的文件位置(注意一定要空格键)注:如果发现目标是灰色无法输入,需要删掉桌面的图标,然后在我的电脑中找到安装启动程序,创建快捷方式到桌面。
8.      最后我们的设定就已经成功了,当我们在新建文件的时候,保存零件需要输入:零件号+空格+零件名,这样在我们关闭零件再次打开,或者切换窗口时,软件会自动运行宏命令,自动将零件名称代号添加到属性中。
 楼主| 发表于 2021-6-2 15:40:25 | 显示全部楼层 来自: 中国山东烟台
已经解决啦,下载了其他的分割器
发表于 2021-6-13 21:03:38 | 显示全部楼层 来自: 中国四川成都
长虹贯日 发表于 2021-6-2 15:40
% G9 g0 R, Y% {6 C7 U已经解决啦,下载了其他的分割器
7 Z9 H+ H1 s5 {8 b  t% R
兄弟,分享一下噻
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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