iCAx开思网

标题: 保存触发的常驻宏,宏的自动更新,自动执行 [打印本页]

作者: zhang961670949    时间: 2019-9-4 17:30
标题: 保存触发的常驻宏,宏的自动更新,自动执行
本帖最后由 zhang961670949 于 2019-9-5 16:12 编辑

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

作者: zhang961670949    时间: 2019-9-4 17: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


作者: zhang961670949    时间: 2019-9-4 17:44
这是我改动的,只执行保存触发的宏 ,需要点击执行的

作者: 风中de沙    时间: 2019-9-4 19:10
这个好,收藏学习了!谢谢楼主!
作者: wmx0910    时间: 2019-9-5 08:53
图号分离宏  是直接放在路径里还是建立新类别、怎么建立、

作者: wmx0910    时间: 2019-9-5 09:11
楼主看到后加下我QQ:347811850   帮忙指导下、公司正好想这样用、谢了!
作者: zhang961670949    时间: 2019-9-5 09:17
wmx0910 发表于 2019-9-5 09:11
楼主看到后加下我QQ:347811850   帮忙指导下、公司正好想这样用、谢了!

......还是你自己慢慢研究吧,先把楠柠檬的帖子研究透

作者: zhang961670949    时间: 2019-9-5 09:19
wmx0910 发表于 2019-9-5 08:53
图号分离宏  是直接放在路径里还是建立新类别、怎么建立、

你首先要有图号名字分离的宏

作者: wmx0910    时间: 2019-9-5 10:15
我明白了你这个是常驻宏、然后结合楠柠檬的模式一起使用
作者: wmx0910    时间: 2019-9-6 10:10
搞定了、非常感谢!!
作者: jyzas    时间: 2019-9-6 15:58
谢谢楼主分享
作者: qxzch    时间: 2019-9-8 14:04
谢谢分享,顶起
作者: scattie    时间: 2019-9-9 10:53
不错的资料
作者: hh4984    时间: 2019-9-10 13:55
使用挺好,谢谢楼主!!
作者: Vic5945    时间: 2019-9-11 08:59
感谢zhang兄分享,学习了
作者: scattie    时间: 2019-9-11 10:58
谢谢正需要

作者: ming81    时间: 2019-9-22 15:08
谢谢分享,还不太懂
作者: scattie    时间: 2019-9-23 14:38
谢谢!很专业!
作者: 老陕在广东    时间: 2020-2-7 22:45
谢谢楼主
作者: shilimengma    时间: 2020-3-14 10:45
必须支持楼主!!
作者: alicen_mo    时间: 2020-3-14 12:06
谢谢分享!
作者: FINDADAY    时间: 2020-5-2 22:19
谢谢分享了!!
作者: kirod    时间: 2020-6-3 14:06
好东西,谢谢楼主分享!!
作者: zhengmo    时间: 2020-8-15 21:15
不知怎么用,先下载学习
作者: nh1009    时间: 2020-8-16 09:38
非常感谢!!
作者: 疑则问之    时间: 2020-8-16 17:55
谢谢分享!
作者: freecek    时间: 2020-8-17 14:19
看一看吧
作者: 185351567    时间: 2020-10-25 18:01
看看好不好用!!
作者: panliang9    时间: 2020-10-28 10:34
好贴标记一个!
作者: 285240263@qq.co    时间: 2020-12-10 16:36
受教了
作者: dreamsboy    时间: 2020-12-11 15:57
谢谢楼主分享,下载研究下。
作者: cj8510    时间: 2020-12-17 11:37
之前也用过一个类似的,保存就触发。感觉会比较卡,特别是喜欢经常保存的。感觉不如弄个批量的统一执行一次来的方便。
作者: zctao1966    时间: 2022-4-12 23:08
见证了宏的自动更新历程,但还是没用上。保存了,还得看一下,属性是不是自己想要的
作者: azheng0612    时间: 2022-4-24 15:42
很实用的资料,下载学习了!
作者: 懒懒的高贵    时间: 2023-1-10 14:14
感谢楼主分享,学习了
作者: youyouyangzi    时间: 2023-6-8 11:44
感谢楼主分享





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3