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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
楼主: david82
打印 上一主题 下一主题

求一键备份宏

  [复制链接]

0

主题

139

帖子

46

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
402

最佳新人活跃会员热心会员宣传达人灌水之王

61#
发表于 2023-6-7 11:04:28 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

0

主题

139

帖子

46

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
402

最佳新人活跃会员热心会员宣传达人灌水之王

62#
发表于 2023-6-10 10:52:10 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

16

主题

98

帖子

49

金币

堂主

Rank: 4

积分
918

最佳新人活跃会员热心会员宣传达人

63#
发表于 2023-12-8 13:52:31 | 只看该作者
我的SW,打包经常漏东西,楼主 这个能全部打包吧
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

16

主题

98

帖子

49

金币

堂主

Rank: 4

积分
918

最佳新人活跃会员热心会员宣传达人

64#
发表于 2023-12-8 14:07:59 | 只看该作者
付了2次金币,还下载不了,怎么回事
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

234

帖子

868

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2934

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

65#
发表于 2023-12-26 16:10:19 | 只看该作者

   经典案例图书
Allate 发表于 2021-12-28 11:57
' ******************************************************************************
' 快速打包.swp - B ...

A大 ,可否改一版 ,只打包选中零件(带图) ( 支持多选)。  这样能比去文件夹搜索复制高效
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

142

帖子

329

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1315

最佳新人活跃会员热心会员宣传达人灌水之王

66#
发表于 2023-12-27 09:57:48 | 只看该作者
Allate 发表于 2021-12-28 11:57
' ******************************************************************************
' 快速打包.swp - B ...

A大出手,一定就有,学习了学习了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

37

主题

990

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19520

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

67#
发表于 2024-2-3 16:37:20 | 只看该作者

   经典案例图书
sunsu168 发表于 2023-12-26 16:10
A大 ,可否改一版 ,只打包选中零件(带图) ( 支持多选)。  这样能比去文件夹搜索复制高效

理论上可以做到的,有空再弄
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

479

帖子

526

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2559

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

68#
发表于 2024-2-3 16:46:50 | 只看该作者
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

246

帖子

146

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2602

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

69#
发表于 2024-3-30 08:33:43 | 只看该作者
Allate 发表于 2022-2-10 11:32
' ******************************************************************************
' 快速打包.swp - B ...

老大,把选择位置弄出来会报错,是改的不对吗?

2024-03-30_083148.jpg

2024-03-30_083125.jpg
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

37

主题

990

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19520

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

70#
发表于 2024-4-3 10:44:42 | 只看该作者
Kerwin1314 发表于 2024-3-30 08:33
老大,把选择位置弄出来会报错,是改的不对吗?

位置最后那里少了个“\”,你需要加一个判断,或者自己每次写的时候就加上这个符号
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

246

帖子

146

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2602

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

71#
发表于 2024-4-3 14:46:28 | 只看该作者
Allate 发表于 2024-4-3 10:44
位置最后那里少了个“\”,你需要加一个判断,或者自己每次写的时候就加上这个符号

好的,谢谢大佬
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

246

帖子

146

金币

VIP用户组

Rank: 100Rank: 100Rank: 100Rank: 100

积分
2602

最佳新人活跃会员热心会员宣传达人灌水之王突出贡献

72#
发表于 2024-4-11 15:01:52 | 只看该作者
Allate 发表于 2022-2-10 11:32
' ******************************************************************************
' 快速打包.swp - B ...

Option Explicit
Dim swApp           As SldWorks.SldWorks
Dim swModel         As SldWorks.ModelDoc2

Sub main()
    Dim swModelDocExt   As SldWorks.ModelDocExtension
    Dim swPackAndGo     As SldWorks.PackAndGo
    Dim pgFileNames     As Variant
    Dim CompNames       As Variant
    Dim status          As Boolean
    Dim statuses        As Variant
    Dim FileName        As String
    Dim vFileName       As String
    Dim myPath          As String
    Dim i               As Integer
    Dim objshell        As Object
    Dim objFolder       As Object
    Dim path            As String

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    If swModel Is Nothing Then MsgBox "请打开模型或工程图再运行本宏!": End

    FileName = swModel.GetPathName
    If FileName = "" Then MsgBox "请保存文档后再运行本宏!": End

    Set swModelDocExt = swModel.Extension
    Set swPackAndGo = swModelDocExt.GetPackAndGo

    '打包的设置
    swPackAndGo.IncludeDrawings = True
    swPackAndGo.IncludeSimulationResults = True
    swPackAndGo.IncludeToolboxComponents = True
    swPackAndGo.FlattenToSingleFolder = True

    status = swPackAndGo.GetDocumentNames(pgFileNames)
    pgCompNames swModel, CompNames, FileName                    '获取名字列表
    pgFixNames pgFileNames, CompNames                           '修复名称的大小写
    status = swPackAndGo.SetDocumentSaveToNames(pgFileNames)

    '目录输入提示框
   ' myPath = InputBox("" & vbCrLf & vbCrLf & "请输入打包的位置:", "填写打包的目录", myPath)
    'If Not Len(myPath) > 0 Then Exit Sub

    Set objshell = CreateObject("Shell.Application")
    Set objFolder = objshell.BrowseForFolder(0, "请选择打包保存的位置", 0)
    If Not objFolder Is Nothing Then

        myPath = objFolder.Self.path

    Else

       If myPath = "" Then

        MsgBox ("请选择保存文件夹")

        Exit Sub

    End If

     End If

    '删除以前曾经打包过的文件
    For i = 0 To UBound(pgFileNames)
        vFileName = myPath & Right(pgFileNames(i), Len(pgFileNames(i)) - InStrRev(pgFileNames(i), "\"))
        If Dir(vFileName, 16) <> Empty Then Kill vFileName
    Next i

    status = swPackAndGo.SetSaveToName(True, myPath)
    statuses = swModelDocExt.SavePackAndGo(swPackAndGo)                 '打包

    MsgBox "打包结束!"
End Sub

'获取名字列表
Private Sub pgCompNames(swDoc As ModelDoc2, CompNames As Variant, FileName As String)
    Dim Components          As Variant
    Dim SingleComponent     As Variant
    Dim i                   As Integer
    Dim n                   As Integer

    ReDim CompNames(0)
    CompNames(0) = FileName
    i = 1
    If swDoc.GetType() = 2 Then
        swDoc.ResolveAllLightWeightComponents (True)
        Components = swModel.GetComponents(False)
        For Each SingleComponent In Components
            If SingleComponent.GetSuppression = 2 Then
                ReDim Preserve CompNames(i)
                CompNames(i) = SingleComponent.GetModelDoc().GetPathName
                i = i + 1
            End If
        Next
    End If
    CompNames = RemoveDuplicate(CompNames)                  '去重
End Sub

'去重
Private Function RemoveDuplicate(Rng As Variant) As Variant
    Dim i                   As Integer
    Dim Dic                 As Object
    Set Dic = CreateObject("Scripting.Dictionary")
    For i = 0 To UBound(Rng)
        Dic(Rng(i)) = i
    Next i
    RemoveDuplicate = Dic.keys
End Function

'修复名称的大小写
Private Sub pgFixNames(pgFileNames As Variant, CompNames As Variant)
    Dim i                   As Integer
    Dim j                   As Integer

    For i = 0 To UBound(pgFileNames)
        For j = 0 To UBound(CompNames)
            If LCase(pgFileNames(i)) = LCase(CompNames(j)) Then
                pgFileNames(i) = CompNames(j)
                Exit For
            End If
            If j = UBound(CompNames) Then pgFileNames(i) = ""
        Next j
    Next i
End Sub
大佬,加了个文件选择报错,能帮看下吗

SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-2 09:22 , Processed in 0.185155 second(s), 31 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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