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

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 8144|回复: 35
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1
发表于 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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏12 分享淘帖 赞一下!赞一下!
2
发表于 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

3
发表于 2019-9-4 17:44:09 | 只看该作者
这是我改动的,只执行保存触发的宏 ,需要点击执行的

本帖子中包含更多资源

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

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

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

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

本版积分规则

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

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-22 18:31 , Processed in 0.028628 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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