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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字
查看: 2569|回复: 22
打印 上一主题 下一主题

求 隐藏草图 宏

  [复制链接]

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

跳转到指定楼层
楼主
 楼主| 发表于 2021-8-26 00:04:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一键隐藏 显示 顶层装配体 子装配体下所有零件(零件中插入的零件)中的草图                      装配体或者零件环境下都能用最好



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

使用道具 举报

27

主题

1348

帖子

3140

金币

传奇

Rank: 8Rank: 8

积分
10392

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

推荐
发表于 2021-8-27 08:39:59 | 只看该作者
这个用VBA式试

Macro1.rar

(10.43 KB, 下载次数: 239

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

使用道具 举报

10

主题

537

帖子

227

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2496

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

板凳
发表于 2021-8-26 11:45:58 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3140

金币

传奇

Rank: 8Rank: 8

积分
10392

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

地板
发表于 2021-8-26 13:30:43 | 只看该作者
Option Explicit
Sub BlankSketchFeature(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature)
    Dim bRet  As Boolean
    If "ProfileFeature" = swFeat.GetTypeName Then
        bRet = swFeat.Select2(False, 0): Debug.Assert bRet
        swModel.BlankSketch '隐藏草图
    End If
End Sub

Sub TraverseFeatureFeatures(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swFeat As SldWorks.Feature, nLevel As Long)
    Dim swSubFeat As SldWorks.Feature
    Dim swSubSubFeat As SldWorks.Feature
    Dim swSubSubSubFeat As SldWorks.Feature
    Dim sPadStr As String
    Dim i As Long
    For i = 0 To nLevel
        sPadStr = sPadStr + "  "
    Next i
    Dim bRet As Boolean
    If "Annotations" <> swFeat.Name Then
        bRet = swFeat.Select2(True, 0): Debug.Assert bRet
    End If
    While Not swFeat Is Nothing
        Debug.Print sPadStr + swFeat.Name + " [" + swFeat.GetTypeName + "]"
        BlankSketchFeature swApp, swModel, swFeat
        Set swSubFeat = swFeat.GetFirstSubFeature
        While Not swSubFeat Is Nothing
            Debug.Print sPadStr + "  " + swSubFeat.Name + " [" + swSubFeat.GetTypeName + "]"
            BlankSketchFeature swApp, swModel, swSubFeat
            Set swSubSubFeat = swSubFeat.GetFirstSubFeature
            While Not swSubSubFeat Is Nothing
                Debug.Print sPadStr + "    " + swSubSubFeat.Name + " [" + swSubSubFeat.GetTypeName + "]"
                BlankSketchFeature swApp, swModel, swSubSubFeat
                Set swSubSubSubFeat = swSubFeat.GetFirstSubFeature
                While Not swSubSubSubFeat Is Nothing
                    Debug.Print sPadStr + "      " + swSubSubSubFeat.Name + " [" + swSubSubSubFeat.GetTypeName + "]"
                    BlankSketchFeature swApp, swModel, swSubSubSubFeat
                    Set swSubSubSubFeat = swSubSubSubFeat.GetNextSubFeature()
                Wend
                Set swSubSubFeat = swSubSubFeat.GetNextSubFeature()
            Wend
            Set swSubFeat = swSubFeat.GetNextSubFeature()
        Wend
        Set swFeat = swFeat.GetNextFeature
    Wend
End Sub

Sub TraverseComponentFeatures(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, nLevel As Long)
    Dim swFeat As SldWorks.Feature

    Set swFeat = swComp.FirstFeature
    TraverseFeatureFeatures swApp, swModel, swFeat, nLevel
End Sub

Sub TraverseComponent(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swComp As SldWorks.Component2, nLevel As Long)
    Dim vChildComp As Variant
    Dim swChildComp As SldWorks.Component2
    Dim swCompConfig As SldWorks.Configuration
    Dim sPadStr As String
    Dim i As Long
    For i = 0 To nLevel - 1
        sPadStr = sPadStr + "  "
    Next i
    vChildComp = swComp.GetChildren
    For i = 0 To UBound(vChildComp)
        Set swChildComp = vChildComp(i)
        Debug.Print sPadStr & "+" & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
        TraverseComponentFeatures swApp, swModel, swChildComp, nLevel
        TraverseComponent swApp, swModel, swChildComp, nLevel + 1
    Next i
End Sub

Sub TraverseModelFeatures(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, nLevel As Long)
    Dim swFeat As SldWorks.Feature

    Set swFeat = swModel.FirstFeature
    TraverseFeatureFeatures swApp, swModel, swFeat, nLevel
End Sub
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swConf As SldWorks.Configuration
    Dim swRootComp As SldWorks.Component2
    Dim nStart As Long
    Dim bRet As Boolean

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swConf = swModel.GetActiveConfiguration
    Set swRootComp = swConf.GetRootComponent3(True)
    nStart = Timer


    TraverseModelFeatures swApp, swModel, 1 '零件
   
    TraverseComponent swApp, swModel, swRootComp, 1 '装配体

End Sub

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

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

5#
 楼主| 发表于 2021-8-26 16:11:50 | 只看该作者

   经典案例图书
复制到这里不能运行

For i = 0 To UBound(vChildComp) 类型不匹配
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

6#
 楼主| 发表于 2021-8-27 14:22:06 | 只看该作者
可以运行,零件环境下挺好的   装配体环境下 20个零件就 运行太慢很容易卡死 必须点这里的运行才能使用

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

使用道具 举报

0

主题

42

帖子

51

金币

天使

Rank: 2Rank: 2

积分
156
QQ
7#
发表于 2021-8-27 16:43:22 | 只看该作者

   经典案例图书
很不错,顶一下!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

27

主题

1348

帖子

3140

金币

传奇

Rank: 8Rank: 8

积分
10392

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

8#
发表于 2021-8-28 08:46:04 | 只看该作者
阿斯蒂芬0 发表于 2021-8-27 14:22
可以运行,零件环境下挺好的   装配体环境下 20个零件就 运行太慢很容易卡死 必须点这里的运行才能使用

我试过50多个零件下的速度还行.

可能电脑配制上的差异吧!

只能帮你到这
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

9#
 楼主| 发表于 2021-8-28 17:22:04 | 只看该作者
design100 发表于 2021-8-28 08:46
我试过50多个零件下的速度还行.

可能电脑配制上的差异吧!

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

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

10#
 楼主| 发表于 2021-9-2 20:57:17 | 只看该作者
SW机械工程师网,找到组织了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

160

帖子

584

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2142

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

11#
发表于 2021-9-10 13:17:58 | 只看该作者
好东西,努力学习学习!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

12#
 楼主| 发表于 2021-9-10 21:46:21 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

160

帖子

584

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2142

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

13#
发表于 2021-9-14 22:39:57 | 只看该作者
好好学习,天天向上!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

192

帖子

900

金币

传奇

Rank: 8Rank: 8

积分
3192

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

14#
 楼主| 发表于 2021-9-23 21:42:14 | 只看该作者
活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

246

帖子

687

金币

VIP用户组

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

积分
2183

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

15#
发表于 2021-11-1 11:21:20 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

537

帖子

227

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2496

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

16#
发表于 2021-11-2 19:31:16 | 只看该作者

   经典案例图书
好东西,努力学习学习!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

246

帖子

687

金币

VIP用户组

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

积分
2183

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

17#
发表于 2021-11-3 10:53:19 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

145

帖子

265

金币

堂主

Rank: 4

积分
801

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

18#
发表于 2023-12-4 08:49:00 | 只看该作者

   经典案例图书
好东西,努力学习学习!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

314

帖子

8

金币

堂主

Rank: 4

积分
930

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

19#
发表于 2023-12-8 19:59:53 | 只看该作者
下载下来看看,应该会有用!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

314

帖子

8

金币

堂主

Rank: 4

积分
930

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

20#
发表于 2023-12-10 18:04:39 | 只看该作者
为什么不能直接运行,要用调试--运行才行
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-27 13:49 , Processed in 0.212577 second(s), 37 queries .

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

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

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