找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?在线3D打印服务,一键上传,自动报价 
查看: 401|回复: 18

[分享] 保存触发的常驻宏,宏的自动更新,自动执行

[复制链接]
发表于 2019-9-4 17:30:49 | 显示全部楼层 |阅读模式
本帖最后由 zhang961670949 于 2019-9-5 16:12 编辑

这个宏是根据 楠柠檬、闷大 和 国外的一个大神的程序改编的,实现保存就触发,楠柠檬和闷大的宏只能根据切换窗口或者打开文件触发。单根据切窗自动执行宏,如果我新建了一个文件,然后以图号和名字命名好,我还没切换过窗口,那这个时候零件的属性栏还是不会有图号和名称,我直接从零件图创建工程图,工程图就无法链接零件图的图号,我再需要进行切换窗口的操作,这个操作是多余的,如果我点了保存就触发图号名称分离宏,那就不需要切窗了。在看此贴前建议先把楠柠檬的帖子看完并且看懂!
楠柠檬的帖子,由于我没有发链接的权限,链接只能这么发 icax.org/forum.php?mod=viewthread&tid=964846&highlight=%B3%A3%D7%A4%BA%EA

本帖子中包含更多资源

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

x
 楼主| 发表于 2019-9-4 17:36:36 | 显示全部楼层
下面是搬运别人的原程序

模块:
Option Explicit
Public notifyWrapper As Class1

Sub main()
    Set notifyWrapper = New Class1
    notifyWrapper.monitorSolidWorks
End Sub


类模块:
Option Explicit
Public WithEvents swApp As SldWorks.SldWorks
Public WithEvents swAssDoc As SldWorks.AssemblyDoc
Public WithEvents swDrawDoc As SldWorks.DrawingDoc
Public WithEvents swPartDoc As SldWorks.PartDoc

Private Function swApp_ActiveModelDocChangeNotify() As Long
    Dim swModelDoc As SldWorks.ModelDoc2
    Set swModelDoc = swApp.ActiveDoc
    Select Case swModelDoc.GetType
        Case SwConst.swDocASSEMBLY
            Set swAssDoc = swModelDoc
        Case SwConst.swDocDRAWING
            Set swDrawDoc = swModelDoc
        Case SwConst.swDocPART
            Set swPartDoc = swModelDoc
    End Select
    Set swModelDoc = Nothing
End Function

Private Function swAssDoc_FileSaveAsNotify2(ByVal FileName As String) As Long
    preSave FileName
End Function

Private Function swAssDoc_FileSaveNotify(ByVal FileName As String) As Long
    preSave FileName
End Function

Private Function swDrawDoc_FileSaveAsNotify2(ByVal FileName As String) As Long
    preSave FileName
End Function

Private Function swDrawDoc_FileSaveNotify(ByVal FileName As String) As Long
    preSave FileName
End Function

Private Function swPartDoc_FileSaveAsNotify2(ByVal FileName As String) As Long
    preSave FileName
End Function

Private Function swPartDoc_FileSaveNotify(ByVal FileName As String) As Long
    preSave FileName
End Function

Public Sub monitorSolidWorks()
    Set swApp = Application.SldWorks
End Sub

Sub preSave(sFileName As String)
    MsgBox sFileName & " is about to be saved!"
End Sub

 楼主| 发表于 2019-9-4 17:44:09 | 显示全部楼层
这是我改动的,只执行保存触发的宏 ,需要点击执行的

本帖子中包含更多资源

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

x
发表于 2019-9-4 19:10:08 | 显示全部楼层
这个好,收藏学习了!谢谢楼主!
发表于 2019-9-5 08:53:43 | 显示全部楼层
图号分离宏  是直接放在路径里还是建立新类别、怎么建立、
发表于 2019-9-5 09:11:12 | 显示全部楼层
楼主看到后加下我QQ:347811850   帮忙指导下、公司正好想这样用、谢了!
 楼主| 发表于 2019-9-5 09:17:51 | 显示全部楼层
wmx0910 发表于 2019-9-5 09:11
楼主看到后加下我QQ:347811850   帮忙指导下、公司正好想这样用、谢了!

......还是你自己慢慢研究吧,先把楠柠檬的帖子研究透
 楼主| 发表于 2019-9-5 09:19:40 | 显示全部楼层
wmx0910 发表于 2019-9-5 08:53
图号分离宏  是直接放在路径里还是建立新类别、怎么建立、

你首先要有图号名字分离的宏
发表于 2019-9-5 10:15:42 | 显示全部楼层
我明白了你这个是常驻宏、然后结合楠柠檬的模式一起使用
发表于 2019-9-6 10:10:47 | 显示全部楼层
搞定了、非常感谢!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网 ( 粤ICP备09030954号

GMT+8, 2020-2-29 18:35 , Processed in 0.043328 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2001-2019 Comsenz Inc.

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