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

标题: 焊接切割清单怎么链接单重、总重的属性? [打印本页]

作者: dzp1023    时间: 2020-12-25 23:17
标题: 焊接切割清单怎么链接单重、总重的属性?
如题,大侠帮忙

作者: upstate    时间: 2020-12-28 11:05
顶一下,坐等高手!
作者: puttransnetcana    时间: 2020-12-28 11:48


solidworks中如果焊件的零件不是由“结构构件”生成的话,切割清单项目的属性默认情况下会生成“材料”和“数量”2个属性。

以下方法的测试版本solidworks2016

今天我会用“宏”来自动的给切割清单中的零件添加“单重”和“总重”,并自动链接到工程图中,这在实际工作中是非常有用的,比如零件好几百的板料的焊件,下料的尺寸、数量和重量统计。如果人工智能来做的话,不仅容易出错,工作也很繁琐。


今天我就给亲讲一下如何把数量和重重链接到solidworks工程图的“焊接清单明细表”中。

1.运行宏,生成单重和总重
1.1宏代码


  1. Option Explicit
  2. Dim swApp As SldWorks.SldWorks
  3. Dim Part As SldWorks.ModelDoc2
  4. Dim thisFeat As SldWorks.Feature
  5. Dim thisSubFeat As SldWorks.Feature
  6. Dim cutFolder As Object
  7. Dim BodyCount As Integer
  8. Dim fn As String
  9. Dim pn As String
  10. Dim custPropMgr As SldWorks.CustomPropertyManager
  11. Dim propNames As Variant
  12. Dim vName As Variant
  13. Dim propName As String
  14. Dim Value As String
  15. Dim resolvedValue As String
  16. Dim TotalW As Double
  17. Sub main()
  18. Set swApp = Application.SldWorks
  19. Set Part = swApp.ActiveDoc
  20. Set thisFeat = Part.FirstFeature
  21. Do While Not thisFeat Is Nothing
  22.     If thisFeat.GetTypeName = "SolidBodyFolder" Then
  23.         thisFeat.GetSpecificFeature2.UpdateCutList
  24.     End If
  25.     Set thisSubFeat = thisFeat.GetFirstSubFeature
  26.     Do While Not thisSubFeat Is Nothing
  27.         If thisSubFeat.GetTypeName = "CutListFolder" Then
  28.             Set cutFolder = thisSubFeat.GetSpecificFeature2
  29.         End If
  30.         If Not cutFolder Is Nothing Then
  31.             BodyCount = cutFolder.GetBodyCount
  32.             If BodyCount > 0 Then
  33.                 Set custPropMgr = thisSubFeat.CustomPropertyManager
  34.                 If Not custPropMgr Is Nothing Then
  35.                     custPropMgr.Delete "Total Weight"
  36.                     custPropMgr.Delete "Weight"
  37.                     fn = thisSubFeat.Name
  38.                     pn = Part.GetTitle
  39.                     custPropMgr.Add "Weight", "文字", Chr(34) & "SW-Mass@@@" & fn & "@" & pn & Chr(34)
  40.                     propNames = custPropMgr.GetNames
  41.                     If Not IsEmpty(propNames) Then
  42.                         For Each vName In propNames
  43.                             propName = vName
  44.                             custPropMgr.Get2 propName, Value, resolvedValue
  45.                             If propName = "Weight" Then TotalW = resolvedValue
  46.                         Next vName
  47.                     End If
  48.                     custPropMgr.Add "Total Weight", "文字", Format(BodyCount * TotalW, "0.00")
  49.                 End If
  50.             End If
  51.         End If
  52.         Set thisSubFeat = thisSubFeat.GetNextSubFeature
  53.     Loop
  54.     Set thisFeat = thisFeat.GetNextFeature
  55. Loop
  56. End Sub

复制代码


1.2新建宏

1.3运行宏后添加单重和总重属性


2.在工程图的焊接清单中添加单重和总重
2.1添加单重

2.2添加总重



作者: auto1234    时间: 2020-12-28 12:42
好好学习,天天向上!
作者: schjck    时间: 2020-12-31 13:09
upstate 发表于 2020-12-28 11:05
顶一下,坐等高手!



   经典案例图书

顶一下,坐等高手!
作者: dzp1023    时间: 2021-1-2 15:49
puttransnetcana 发表于 2020-12-28 11:48
solidworks中如果焊件的零件不是由“结构构件”生成的话,切割清单项目的属性默认情况下会生成“材料” ...

运用宏命令,非常感谢分享!
作者: dzp1023    时间: 2021-1-2 16:29
puttransnetcana 发表于 2020-12-28 11:48
solidworks中如果焊件的零件不是由“结构构件”生成的话,切割清单项目的属性默认情况下会生成“材料” ...

代码好像有问题,在19项出现错误,编译错误,发现二义性的名称:mian
作者: sazbwz    时间: 2021-1-5 15:53
运行宏命令麻烦,自己设置零件模板时,方程式里设置好、保存 一劳永逸,不管焊件、还是零件重量自动显示,这是我以前没法逼出来的,论坛找一找吧,找不到我告诉你。
作者: 1215956038    时间: 2021-4-10 06:12
感谢楼主分享,很不错!
作者: 1215956038    时间: 2021-4-10 12:29
谢谢楼主分享
作者: lvhailong    时间: 2021-7-16 14:19
好东西,努力学习学习!
作者: 小西太阳    时间: 2022-4-13 09:18
sazbwz 发表于 2021-1-5 15:53
运行宏命令麻烦,自己设置零件模板时,方程式里设置好、保存 一劳永逸,不管焊件、还是零件重量自动显示, ...

楼主,模板怎么设置
作者: 824751842    时间: 2022-7-19 22:22
感谢楼主分享,很不错!
作者: yun6yun7    时间: 2022-11-30 22:49
很不错,找到组织了!
作者: sg2010    时间: 2023-5-31 11:24
很不错,找到组织了!
作者: 1215956038    时间: 前天 21:14
楼主辛苦了!




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2