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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1676|回复: 7
打印 上一主题 下一主题

VBA求救 toolbox组件压缩

  [复制链接]

2

主题

15

帖子

30

金币

天使

Rank: 2Rank: 2

积分
143

最佳新人宣传达人

跳转到指定楼层
楼主
 楼主| 发表于 2024-7-1 10:11:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

   经典图书
下面是代码能否请大神帮忙看看是哪里出现了问题,运行后也没有报错就是不将toolbox件压缩



Dim swApp As Object
Dim Part As Object

Sub Main()
    ' 获取当前SolidWorks应用程序对象
    Set swApp = Application.SldWorks
    ' 获取当前打开的文档
    Set Part = swApp.ActiveDoc

    If Not Part Is Nothing Then
        If Part.GetType = 2 Then ' 检查当前文档是否是装配体
            ProcessAssembly Part
        Else
            MsgBox "当前打开的文档不是装配体。", vbExclamation, "操作失败"
        End If
    Else
        MsgBox "未找到当前打开的文档。", vbExclamation, "操作失败"
    End If
End Sub

Sub ProcessAssembly(swAssy As Object)
    Dim vComponents As Variant
    Dim swComp As Object
    Dim i As Long
    Dim successCount As Long

    successCount = 0

    ' 获取装配体中的所有组件
    vComponents = swAssy.GetComponents(False)

    ' 遍历所有组件
    For i = 0 To UBound(vComponents)
        Set swComp = vComponents(i)

        ' 输出组件名称
        Debug.Print "处理组件: " & swComp.Name2

        ' 确保组件未被压缩且是Toolbox标准件
        If Not swComp.IsSuppressed And IsToolboxComponent(swComp) Then
            If SelectAndSuppressComponent(swComp) Then
                successCount = successCount + 1
                Debug.Print "成功压缩组件: " & swComp.Name2
            Else
                Debug.Print "无法压缩组件: " & swComp.Name2
            End If
        End If
    Next i

    ' 显示运行成功消息框
    MsgBox "Toolbox 标准件压缩操作成功完成。成功压缩了 " & successCount & " 个组件。", vbInformation, "操作成功"
End Sub

Function IsToolboxComponent(swComp As Object) As Boolean
    Dim swModelDoc As Object
    Dim swCustPropMgr As Object
    Dim valOut As String
    Dim resolvedValOut As String
    Dim wasResolved As Boolean
    Dim linkToProperty As Boolean

    ' 获取组件的模型文档
    Set swModelDoc = swComp.GetModelDoc2

    If Not swModelDoc Is Nothing Then
        ' 获取自定义属性管理器
        Set swCustPropMgr = swModelDoc.Extension.CustomPropertyManager("")

        ' 使用 Get6 方法获取 IsToolboxPart 属性值
        swCustPropMgr.Get6 "IsToolboxPart", False, valOut, resolvedValOut, wasResolved, linkToProperty

        ' 输出属性值
        Debug.Print "组件名称: " & swComp.Name2 & ", IsToolboxPart 值: " & valOut

        ' 如果属性值为 "Yes",则是 Toolbox 标准件
        If valOut = "Yes" Then
            IsToolboxComponent = True
        End If
    End If
End Function

Function SelectAndSuppressComponent(swComp As Object) As Boolean
    Dim boolstatus As Boolean

    ' 选择组件
    boolstatus = swComp.Select4(False, Nothing)

    If boolstatus Then
        ' 压缩组件
        swComp.EditSuppress2
        ' 清除选择
        swApp.ActiveDoc.ClearSelection2 True
    End If

    SelectAndSuppressComponent = boolstatus
End Function


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

3

主题

1354

帖子

338

金币

传奇

Rank: 8Rank: 8

积分
4852

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

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

使用道具 举报

1

主题

716

帖子

169

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2175

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

板凳
发表于 2024-7-2 08:15:44 | 只看该作者

   经典图书
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

74

帖子

199

金币

堂主

Rank: 4

积分
684

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

地板
发表于 2024-7-3 09:30:47 | 只看该作者

顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

15

帖子

99

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
261

最佳新人宣传达人

5#
发表于 2024-7-3 16:56:40 | 只看该作者

   经典案例图书
希望有人来解决
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

26

帖子

456

金币

堂主

Rank: 4

积分
645
QQ
6#
发表于 2024-7-4 10:03:46 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

74

帖子

199

金币

堂主

Rank: 4

积分
684

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

7#
发表于 2024-7-8 15:02:06 | 只看该作者

   经典案例图书
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

35

帖子

15

金币

天使

Rank: 2Rank: 2

积分
106

最佳新人

8#
发表于 2024-7-9 09:19:06 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-10-26 05:28 , Processed in 0.174210 second(s), 23 queries , Memcache On.

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

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

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