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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助,复制属性A零件到BCD零件

  [复制链接]

4

主题

32

帖子

127

金币

堂主

Rank: 4

积分
645

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

跳转到指定楼层
楼主
 楼主| 发表于 2024-2-22 11:19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. '在装配体中选择首选A零件,然后选择后续的B、C、D多个零件,可以一键复制A零件的自定义属性和配置属性到后选的零件。

  2. Option Explicit

  3. Dim swApp As SldWorks.SldWorks
  4. Dim swModel As SldWorks.ModelDoc2
  5. Dim sourceComponent As SldWorks.Component2
  6. Dim destComponents As Collection

  7. Sub Main()

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

  10.     Dim selMgr As SldWorks.SelectionMgr
  11.     Set selMgr = swModel.SelectionManager

  12.     ' 检查当前选中的零件是否为装配体
  13.     If swModel.GetType = 2 Then
  14.         ' 获取首选A零件作为源零件
  15.         Set sourceComponent = selMgr.GetSelectedObjectsComponent4(1, -1)
  16.         
  17.         ' 创建一个集合来存储后续选中的目标零件
  18.         Set destComponents = New Collection
  19.         
  20.         Dim i As Integer
  21.         For i = 2 To selMgr.GetSelectedObjectCount2(-1)
  22.             destComponents.Add selMgr.GetSelectedObjectsComponent4(i, -1)
  23.         Next i
  24.         
  25.         ' 复制自定义属性和配置属性到后选的零件
  26. '        CopyPropertiesToDest(sourceComponent, destComponents)
  27.         
  28.     Else
  29.         MsgBox "请在装配体中选择首选A零件!"
  30.     End If

  31. End Sub

  32. Sub CopyPropertiesToDest(sourceComp As SldWorks.Component2, destComps As Collection)

  33.     Dim sourceModel As SldWorks.ModelDoc2
  34.     Set sourceModel = sourceComp.GetModelDoc2()
  35.    
  36.     ' 获取源零件的自定义属性和配置属性
  37.     Dim sourceCustPrpMgr As SldWorks.CustomPropertyManager
  38.     Dim sourceConfCustPrpMgr As SldWorks.CustomPropertyManager
  39.    
  40.     Set sourceCustPrpMgr = sourceModel.Extension.CustomPropertyManager("")
  41.     Set sourceConfCustPrpMgr = sourceModel.Extension.CustomPropertyManager(sourceModel.ConfigurationManager.ActiveConfiguration.Name)
  42.    
  43.     Dim destComp As SldWorks.Component2
  44.     Dim destModel As SldWorks.ModelDoc2
  45.    
  46.     Dim propNames As Variant
  47.     Dim propTypes As Variant
  48.     Dim propValues As Variant
  49.     Dim i As Integer
  50.    
  51.     For Each destComp In destComps
  52.         Set destModel = destComp.GetModelDoc2()
  53.         
  54.         ' 复制自定义属性到目标零件
  55.         sourceCustPrpMgr.GetAll propNames, propTypes, propValues
  56.         Dim destCustPrpMgr As SldWorks.CustomPropertyManager
  57.         Set destCustPrpMgr = destModel.Extension.CustomPropertyManager("")
  58.         
  59.         For i = 0 To UBound(propNames)
  60.             destCustPrpMgr.Add2 propNames(i), propTypes(i), propValues(i)
  61.             destCustPrpMgr.Set propNames(i), propValues(i)
  62.         Next i
  63.         
  64.         ' 复制配置属性到目标零件
  65.         sourceConfCustPrpMgr.GetAll propNames, propTypes, propValues
  66.         Dim destConfCustPrpMgr As SldWorks.CustomPropertyManager
  67.         Set destConfCustPrpMgr = destModel.Extension.CustomPropertyManager(destModel.ConfigurationManager.ActiveConfiguration.Name)
  68.         
  69.         For i = 0 To UBound(propNames)
  70.             destConfCustPrpMgr.Add2 propNames(i), propTypes(i), propValues(i)
  71.             destConfCustPrpMgr.Set propNames(i), propValues(i)
  72.         Next i
  73.     Next destComp

  74. End Sub
复制代码


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

使用道具 举报

0

主题

31

帖子

38

金币

天使

Rank: 2Rank: 2

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

使用道具 举报

16

主题

170

帖子

754

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2319

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

板凳
发表于 2024-2-23 10:37:09 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

1129

帖子

217

金币

传奇

Rank: 8Rank: 8

积分
3792

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

地板
发表于 2024-2-23 14:35:00 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

32

帖子

127

金币

堂主

Rank: 4

积分
645

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

5#
 楼主| 发表于 2024-2-23 16:42:25 | 只看该作者

   经典案例图书
来顶一下
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

568

帖子

52

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1603

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

6#
发表于 2024-2-26 13:06:02 | 只看该作者
没图,不知道是什么!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

24

主题

245

帖子

428

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1834

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

7#
发表于 2024-2-29 14:53:34 | 只看该作者

   经典案例图书
顶一下谢老哥
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-7 17:28 , Processed in 0.192596 second(s), 34 queries .

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

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

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