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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大佬修改宏,急用!!!!

  [复制链接]

7

主题

39

帖子

245

金币

堂主

Rank: 4

积分
507

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

跳转到指定楼层
楼主
 楼主| 发表于 2022-7-31 18:12:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  1. Dim swApp As SldWorks.SldWorks
  2. Dim Part As SldWorks.ModelDoc2
  3. Dim thisFeat As SldWorks.Feature
  4. Dim thisSubFeat As SldWorks.Feature
  5. Dim cutFolder As Object
  6. Dim BodyCount As Integer
  7. Dim custPropMgr As SldWorks.CustomPropertyManager
  8. Dim propNames As Variant
  9. Dim vName As Variant
  10. Dim propName As String
  11. Dim Value As String
  12. Dim resolvedValue As String
  13. Dim bjkcd As Double
  14. Dim bjkkd As Double
  15. Dim zw As Double
  16. Dim qgcdwb As Double
  17. Dim qgcdnb As Double
  18. Dim qg As Double




  19. Sub main()
  20. Set swApp = Application.SldWorks
  21. Set Part = swApp.ActiveDoc
  22. Set thisFeat = Part.FirstFeature
  23. Do While Not thisFeat Is Nothing '遍历设计树
  24. If thisFeat.GetTypeName = "SolidBodyFolder" Then
  25. thisFeat.GetSpecificFeature2.UpdateCutList
  26. End If
  27. Set thisSubFeat = thisFeat.GetFirstSubFeature
  28. Do While Not thisSubFeat Is Nothing
  29. If thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
  30. Set cutFolder = thisSubFeat.GetSpecificFeature2
  31. End If
  32. If Not cutFolder Is Nothing Then
  33. BodyCount = cutFolder.GetBodyCount
  34. If BodyCount > 0 Then
  35. Set custPropMgr = thisSubFeat.CustomPropertyManager
  36. If Not custPropMgr Is Nothing Then
  37. propNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组
  38. If Not IsEmpty(propNames) Then
  39. For Each vName In propNames
  40. propName = vName
  41. custPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值
  42. If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取
  43. If propName = "边界框宽度" Then bjkkd = resolvedValue
  44. If propName = "切割长度-外部" Then qgcdwb = resolvedValue
  45. If propName = "切割长度-内部" Then qgcdnb = resolvedValue
  46. If propName = "切除" Then qg = resolvedValue
  47. If propName = "折弯" Then zw = resolvedValue
  48. If propName = "钣金厚度" Then bjhd = resolvedValue
  49. Next vName
  50. End If
  51. End If
  52. End If
  53. End If
  54. Set thisSubFeat = thisSubFeat.GetNextSubFeature
  55. Loop
  56. Set thisFeat = thisFeat.GetNextFeature
  57. Loop
  58. blnretval = Part.DeleteCustomInfo2("", "展开长度") '删除属性栏上摘要信息的数据
  59. blnretval = Part.DeleteCustomInfo2("", "展开宽度")
  60. blnretval = Part.DeleteCustomInfo2("", "切割长度-外部")
  61. blnretval = Part.DeleteCustomInfo2("", "切割长度-内部")
  62. blnretval = Part.DeleteCustomInfo2("", "穿孔数")
  63. blnretval = Part.DeleteCustomInfo2("", "折弯")
  64. blnretval = Part.DeleteCustomInfo2("", "板厚")
  65. blnretval = Part.AddCustomInfo3("", "展开长度", swCustomInfoText, bjkcd) '添加数据到摘要信息
  66. blnretval = Part.AddCustomInfo3("", "展开宽度", swCustomInfoText, bjkkd)
  67. blnretval = Part.AddCustomInfo3("", "切割长度-外部", swCustomInfoText, qgcdwb)
  68. blnretval = Part.AddCustomInfo3("", "切割长度-内部", swCustomInfoText, qgcdnb)
  69. blnretval = Part.AddCustomInfo3("", "穿孔数", swCustomInfoText, qg)
  70. blnretval = Part.AddCustomInfo3("", "折弯", swCustomInfoText, zw)
  71. blnretval = Part.AddCustomInfo3("", "板厚", swCustomInfoText, bjhd)
  72. End Sub
复制代码
把宏修成钣金下料尺寸数据放在一起显示,重谢!!!

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

使用道具 举报

5

主题

432

帖子

60

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2312

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

推荐
发表于 2022-8-1 14:20:02 | 只看该作者
blnretval = Part.DeleteCustomInfo2("", "展开长度") '删除属性栏上摘要信息的数据
blnretval = Part.DeleteCustomInfo2("", "展开宽度")
blnretval = Part.DeleteCustomInfo2("", "切割长度-外部")
blnretval = Part.DeleteCustomInfo2("", "切割长度-内部")
blnretval = Part.DeleteCustomInfo2("", "穿孔数")
blnretval = Part.DeleteCustomInfo2("", "折弯")
blnretval = Part.DeleteCustomInfo2("", "板厚")
blnretval = Part.DeleteCustomInfo2("", "开料尺寸")
blnretval = Part.AddCustomInfo3("", "展开长度", swCustomInfoText, bjkcd) '添加数据到摘要信息
blnretval = Part.AddCustomInfo3("", "展开宽度", swCustomInfoText, bjkkd)
blnretval = Part.AddCustomInfo3("", "切割长度-外部", swCustomInfoText, qgcdwb)
blnretval = Part.AddCustomInfo3("", "切割长度-内部", swCustomInfoText, qgcdnb)
blnretval = Part.AddCustomInfo3("", "穿孔数", swCustomInfoText, qg)
blnretval = Part.AddCustomInfo3("", "折弯", swCustomInfoText, zw)
blnretval = Part.AddCustomInfo3("", "板厚", swCustomInfoText, bjhd)
blnretval = Part.AddCustomInfo3("", "开料尺寸", swCustomInfoText, bjkcd&”x“&bjkkd&”x“&bjhd)
End Sub
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 1 反对 0

使用道具 举报

1

主题

55

帖子

143

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
332
QQ
板凳
发表于 2022-8-1 09:32:51 | 只看该作者
顶一下,坐等高手!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

31

帖子

209

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
375
QQ
地板
发表于 2022-8-1 09:35:06 | 只看该作者
SolidWorks机械工程师网,顶一下。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

38

帖子

519

金币

堂主

Rank: 4

积分
831
QQ
5#
发表于 2022-8-1 16:57:19 | 只看该作者

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

使用道具 举报

3

主题

231

帖子

684

金币

传奇

Rank: 8Rank: 8

积分
3485

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

6#
发表于 2022-8-1 20:14:43 | 只看该作者
在"end sub“前加上一句:”blnretval = Part.AddCustomInfo3("", "展开尺寸", swCustomInfoText, bjkcd & "x" & bjkkd & "x" & bjhd)
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

60

帖子

105

金币

堂主

Rank: 4

积分
639

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

7#
发表于 2022-8-2 08:41:52 | 只看该作者

   经典案例图书
,这个宏呵呵
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

111

帖子

712

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2560

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

8#
发表于 2022-8-2 09:07:12 | 只看该作者
顶一下,坐等沙发
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

1

主题

219

帖子

470

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1756

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

9#
发表于 2022-8-2 09:17:32 | 只看该作者
宏,有点啰嗦了,可以更简洁一点,支持5五楼的
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

84

帖子

346

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1365

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

10#
发表于 2022-8-6 08:55:14 | 只看该作者
感谢楼主分享,很不错!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

39

帖子

245

金币

堂主

Rank: 4

积分
507

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

11#
 楼主| 发表于 2022-8-7 16:33:33 | 只看该作者
能不能做成在装配体一键批量所有钣金零部件写入到自定义属性里
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

39

帖子

245

金币

堂主

Rank: 4

积分
507

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

12#
 楼主| 发表于 2022-8-12 00:13:12 | 只看该作者
刘茂机械 发表于 2022-8-1 14:20
blnretval = Part.DeleteCustomInfo2("", "展开长度") '删除属性栏上摘要信息的数据
blnretval = Part.Del ...

按照修改内容更正之后,运行还是出错呢

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

使用道具 举报

5

主题

432

帖子

60

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2312

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

13#
发表于 2022-8-12 20:54:48 | 只看该作者
iawifj 发表于 2022-8-12 00:13
按照修改内容更正之后,运行还是出错呢

字符不对  直接复制不行吗
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

39

帖子

245

金币

堂主

Rank: 4

积分
507

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

14#
 楼主| 发表于 2022-8-13 09:25:56 | 只看该作者
刘茂机械 发表于 2022-8-12 20:54
字符不对  直接复制不行吗

其实我就是想在钣金切割清单生成多一项,(边界框长度×边界框宽度×钣金厚度)属性名称为“长度”!不用写入自定义属性里,能做到吗??

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

使用道具 举报

1

主题

67

帖子

136

金币

堂主

Rank: 4

积分
511

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

15#
发表于 2022-8-19 10:05:48 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

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

使用道具 举报

6

主题

487

帖子

572

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2678

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

16#
发表于 2022-8-23 17:26:05 | 只看该作者

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

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

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

手机版|小黑屋| GMT+8, 2024-6-19 03:23 , Processed in 0.189500 second(s), 39 queries .

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

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

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