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

标题: 求一个SolidWorks “保存 刷新 保存 ”宏 [打印本页]

作者: wwl808    时间: 2021-6-3 17:20
标题: 求一个SolidWorks “保存 刷新 保存 ”宏
求一个SolidWorks “保存 刷新 保存 ”宏

作者: 淡淡的雲    时间: 2021-6-4 11:01
最近下载的,转一手

保存触发的常驻宏,宏的自动更新,自动执行.zip

(13.65 KB, 下载次数: 214 售价: 1 金币


作者: 02111307    时间: 2021-6-4 11:22
楼主太有才了,膜拜中……
作者: 淡淡的雲    时间: 2021-6-4 13:05

摘要:本文主要是讲解在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 As SldWorks.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. 最后我们的设定就已经成功了,当我们在新建文件的时候,保存零件需要输入:零件号+空格+零件名,这样在我们关闭零件再次打开,或者切换窗口时,软件会自动运行宏命令,自动将零件名称代号添加到属性中。

作者: wwwsdd    时间: 2021-7-7 12:44
正需要 感谢分享
作者: gudu8765    时间: 2022-3-17 12:28
好不好用再说  先下载一个支持下

作者: yanglifk    时间: 2022-3-23 19:29
学海无涯学无止境
作者: snycef    时间: 2022-5-12 09:56
非常感谢,学习了
作者: snycef    时间: 2022-5-12 10:00
非常感谢,学习了




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