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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

按设计树顺序遍历装配体

  [复制链接]

6

主题

45

帖子

38

金币

天使

Rank: 2Rank: 2

积分
130
QQ
跳转到指定楼层
楼主
发表于 2020-4-10 11:15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享一段完整按设计树顺序遍历装配体代码,此代码是VB.NET编写。可以在此代码中添加功能代码后可实现特定功能。
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim swApp As SldWorks
Dim swModel As ModelDoc2
Dim swPrOPMgrs As CustomPropertyManager
Dim swConMgrs As ConfigurationManager
Dim swConfigs As Configuration
Dim swGetType As String
Dim swFeat As Feature
Dim swChild As String
RichTextBox1.Text = ""
swApp = GetObject(, "SldWorks.Application")
If swApp Is Nothing Then
  MsgBox("请您在运行本程序前先运行SOLIDWORKS!")
  Exit Sub
End If
swModel = swApp.ActiveDoc
If swModel Is Nothing Then
  MsgBox("请您打开模型后再运行!")
  Exit Sub
End If
If swModel.GetType2 Then
  MsgBox("请您打开装配模型后再运行!")
  Exit Sub
End If
swConMgrs = swModel.ConfigurationManager '获取配置管理器
swConfigs = swConMgrs.ActiveConfiguration '获取活动配置
swChild = swConfigs.Name '获取活动配置名
swPropMgrs = swModel.Extension.CustomPropertyManager("") '获得自定义属性
'swPropMgrs = swModel.Extension.CustomPropertyManager(swChild) '获得配置特定属性
swGetType = swModel.GetPathName '获取此文档的完整路径名,包括文件名
RichTextBox1.Text &= swGetType & vbNewLine
swFeat = swModel.FirstFeature
While IsNothing(swFeat) = False
  Select Case swFeat.GetTypeName2
  Case "Reference", "ReferencePattern" '排除镜像及阵列模型
  Throughs(swModel, swFeat.Name)
  End Select
  swFeat = swFeat.GetNextFeature
End While
End Sub
Private Sub Throughs(ByVal swModels As ModelDoc2, ByVal swPartName As String)
Dim swComponent As Component2
Dim swildMode As ModelDoc2
Dim swPropMgr As CustomPropertyManager
Dim swGetTypes As String
Dim swFeature As Feature
Dim swChild As String
swComponent = swModels.GetComponentByName(swPartName) '获取指定的顶级程序集组件
swChild = swComponent.ReferencedConfiguration
If swComponent.IsSuppressed = False AndAlso swComponent.ExcludeFromBOM = False AndAlso swComponent.IsEnvelope = False Then '排除否被压缩、不包括在材料明细表中或是一个封套
  swildMode = swComponent.GetModelDoc2 '获取此组件的模型文档
  swGetTypes = swildMode.GetPathName '获取此文档的完整路径名,包括文件名
  RichTextBox1.Text &= swGetTypes & vbNewLine
  swPropMgr = swildMode.Extension.CustomPropertyManager("") '获得自定义属性
  'swPropMgr = swildMode.Extension.CustomPropertyManager(swChild) '获得配置特定属性
  '..............
  '..............
  '..............
  '..............添加你要处理的代码
  If swildMode.GetType = 2 Then '获取文档类型,是否是装配文件
  swFeature = swildMode.FirstFeature '获取此组件中的第一个模型
  Do While Not swFeature Is Nothing '如果模型存在, 模型循环此模型
  Select Case swFeature.GetTypeName2
  Case "Reference", "ReferencePattern"
    Throughs(swildMode, swFeature.Name)
  End Select
  swFeature = swFeature.GetNextFeature
  Loop
  End If
End If
End Sub
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

7

主题

32

帖子

41

金币

天使

Rank: 2Rank: 2

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

使用道具 举报

4

主题

58

帖子

25

金币

天使

Rank: 2Rank: 2

积分
88
QQ
板凳
发表于 2020-6-5 19:59:15 | 只看该作者
自己去查查VB和VB.net的区别就知道了
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

99

帖子

41

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
438

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

地板
发表于 2022-1-19 18:45:57 | 只看该作者
不知道有没有用
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

99

帖子

41

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
438

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

5#
发表于 2022-1-19 18:53:35 | 只看该作者

   经典案例图书
用不了这代码
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

250

主题

1082

帖子

858

金币

传奇

Rank: 8Rank: 8

积分
13738

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

6#
发表于 2022-1-21 07:32:27 | 只看该作者
活到老学到老!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

104

帖子

130

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1319

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

7#
发表于 2022-3-20 17:43:49 | 只看该作者

   经典案例图书
非常好,不错不错,可以的
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

1992

帖子

1467

金币

传奇

Rank: 8Rank: 8

积分
7395

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

8#
发表于 2022-6-8 00:32:21 | 只看该作者
楼主辛苦了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

566

帖子

48

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1592

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

9#
发表于 2023-12-4 09:51:12 | 只看该作者
楼主辛苦了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-29 21:08 , Processed in 0.189703 second(s), 33 queries .

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

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

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