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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请问切割清单参数怎么链接到自定义明细表里面

  [复制链接]

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

跳转到指定楼层
楼主
 楼主| 发表于 2020-11-6 10:30:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100金币
请问切割清单参数怎么链接到自定义明细表里面,切割清单里的链接是什么原理?

最佳答案

查看完整内容

把代码复制丟新宏文件里,然后按下图解释,增加修改自己需要的代码,刚刚看到,之前的代码,删除和写入属性的名称没有对应,因为我之前用的是删除有所属性的,这个增加的时候复制错名了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 转播转播 分享教程|习题|模型|技巧 点赞点赞 拍砖拍砖
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

沙发
发表于 2020-11-6 10:30:30 | 只看该作者
拉丝毛刺 发表于 2021-1-18 14:32
代码是直接复制进去吗,前后需要修改吗,粘贴后是在图片红色框那里改参数(展开长,宽)吗

谢谢

把代码复制丟新宏文件里,然后按下图解释,增加修改自己需要的代码,刚刚看到,之前的代码,删除和写入属性的名称没有对应,因为我之前用的是删除有所属性的,这个增加的时候复制错名了。

001.png

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

使用道具 举报

2

主题

65

帖子

212

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
434
QQ
板凳
发表于 2020-11-9 10:21:32 | 只看该作者
活到老学到老!
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

地板
发表于 2021-1-14 12:48:30 | 只看该作者
用宏可以做到:

Dim thisFeat As SldWorks.Feature                                                         '
Dim thisSubFeat As SldWorks.Feature
Dim cutFolder As Object
Dim BodyCount As Integer
Dim custPropMgr As SldWorks.CustomPropertyManager
Dim propNames As Variant
Dim vName As Variant
Dim propName As String
Dim Value As String
Dim resolvedValue As String
Dim bjkcd As Double
Dim bjkkd As Double
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set thisFeat = Part.FirstFeature
Do While Not thisFeat Is Nothing '遍历设计树
If thisFeat.GetTypeName = "SolidBodyFolder" Then
thisFeat.GetSpecificFeature2.UpdateCutList
End If
Set thisSubFeat = thisFeat.GetFirstSubFeature
Do While Not thisSubFeat Is Nothing
If thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
Set cutFolder = thisSubFeat.GetSpecificFeature2
End If
If Not cutFolder Is Nothing Then
BodyCount = cutFolder.GetBodyCount
If BodyCount > 0 Then
Set custPropMgr = thisSubFeat.CustomPropertyManager
If Not custPropMgr Is Nothing Then
propNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组
If Not IsEmpty(propNames) Then
For Each vName In propNames
propName = vName
custPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值
If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取
If propName = "边界框宽度" Then bjkkd = resolvedValue
Next vName
End If
End If
End If
End If
Set thisSubFeat = thisSubFeat.GetNextSubFeature
Loop
Set thisFeat = thisFeat.GetNextFeature
Loop
blnretval = Part.DeleteCustomInfo2("", "边界框长度") '删除属性栏上摘要信息的数据
blnretval = Part.DeleteCustomInfo2("", "边界框宽度")
blnretval = Part.AddCustomInfo3("", "开料长度", swCustomInfoText, bjkcd) '添加数据到摘要信息
blnretval = Part.AddCustomInfo3("", "开料宽度", swCustomInfoText, bjkkd)
SolidWorks机械工程师网
回复

使用道具 举报

37

主题

990

帖子

1万

金币

版主

Rank: 7Rank: 7Rank: 7Rank: 7

积分
19494

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

5#
发表于 2021-1-18 09:04:33 | 只看该作者

   经典案例图书
搞错了,不好意思。
SolidWorks机械工程师网
回复

使用道具 举报

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

6#
 楼主| 发表于 2021-1-18 13:25:28 | 只看该作者
tg000057 发表于 2021-1-14 12:48
用宏可以做到:

Dim thisFeat As SldWorks.Feature                                                   ...

请问这个怎么用呢
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

7#
发表于 2021-1-18 14:21:38 | 只看该作者

   经典案例图书

做好一钣金零件,执行这一段宏,(要把宏修改成你需要的参数,比如展开长,宽,穿孔数,折弯等参数),然后切割清单的参数就到了文件自定义属性里,(每一次执行都是删除旧的,重新获取新的,更新)。然后再插入材料明细表,定义每一列的属性,再另想另为明细表模板。
SolidWorks机械工程师网
回复

使用道具 举报

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

8#
 楼主| 发表于 2021-1-18 14:32:24 | 只看该作者
tg000057 发表于 2021-1-18 14:21
做好一钣金零件,执行这一段宏,(要把宏修改成你需要的参数,比如展开长,宽,穿孔数,折弯等参数),然 ...

代码是直接复制进去吗,前后需要修改吗,粘贴后是在图片红色框那里改参数(展开长,宽)吗

谢谢
SolidWorks机械工程师网
回复

使用道具 举报

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

9#
 楼主| 发表于 2021-1-18 15:26:26 | 只看该作者
tg000057 发表于 2020-11-6 10:30
把代码复制丟新宏文件里,然后按下图解释,增加修改自己需要的代码,刚刚看到,之前的代码,删除和写入属 ...


这是修改后的,可是运行没有反应,请问是什么原因
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

10#
发表于 2021-1-18 16:17:32 | 只看该作者
拉丝毛刺 发表于 2021-1-18 15:26
这是修改后的,可是运行没有反应,请问是什么原因

没有反映,是什么情况,是切割清单的参数没到导到自定义属性里吗?
SolidWorks机械工程师网
回复

使用道具 举报

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

11#
 楼主| 发表于 2021-1-18 16:29:31 | 只看该作者
tg000057 发表于 2021-1-18 16:17
没有反映,是什么情况,是切割清单的参数没到导到自定义属性里吗?

是的,自定义属性里没有变化
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

12#
发表于 2021-1-18 16:59:14 | 只看该作者
拉丝毛刺 发表于 2021-1-18 16:29
是的,自定义属性里没有变化

嗯,是我的问题,少了最后的结束语,新建宏原来就有几行的,都不要。因为Sub main()会重复。就执行不了了。最后一行加上 end sub
按这下面的也行


Sub main()
Dim thisFeat As SldWorks.Feature                                                         '
Dim thisSubFeat As SldWorks.Feature
Dim cutFolder As Object
Dim BodyCount As Integer
Dim custPropMgr As SldWorks.CustomPropertyManager
Dim propNames As Variant
Dim vName As Variant
Dim propName As String
Dim Value As String
Dim resolvedValue As String
Dim bjkcd As Double
Dim bjkkd As Double
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set thisFeat = Part.FirstFeature
Do While Not thisFeat Is Nothing '遍历设计树
If thisFeat.GetTypeName = "SolidBodyFolder" Then
thisFeat.GetSpecificFeature2.UpdateCutList
End If
Set thisSubFeat = thisFeat.GetFirstSubFeature
Do While Not thisSubFeat Is Nothing
If thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
Set cutFolder = thisSubFeat.GetSpecificFeature2
End If
If Not cutFolder Is Nothing Then
BodyCount = cutFolder.GetBodyCount
If BodyCount > 0 Then
Set custPropMgr = thisSubFeat.CustomPropertyManager
If Not custPropMgr Is Nothing Then
propNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组
If Not IsEmpty(propNames) Then
For Each vName In propNames
propName = vName
custPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值
If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取
If propName = "边界框宽度" Then bjkkd = resolvedValue
Next vName
End If
End If
End If
End If
Set thisSubFeat = thisSubFeat.GetNextSubFeature
Loop
Set thisFeat = thisFeat.GetNextFeature
Loop
blnretval = Part.DeleteCustomInfo2("", "边界框长度") '删除属性栏上摘要信息的数据
blnretval = Part.DeleteCustomInfo2("", "边界框宽度")
blnretval = Part.AddCustomInfo3("", "开料长度", swCustomInfoText, bjkcd) '添加数据到摘要信息
blnretval = Part.AddCustomInfo3("", "开料宽度", swCustomInfoText, bjkkd)
end sub
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

13#
发表于 2021-1-19 10:14:32 | 只看该作者
拉丝毛刺 发表于 2021-1-18 16:29
是的,自定义属性里没有变化

昨天回复几个贴都没通过,不知道怎么回事,
你这个是开始和结束语注意一下,要把新建宏时原有的语句全部删除了,要复制代码进去,最后加一行结束语,这一行我复制漏了:end sub
SolidWorks机械工程师网
回复

使用道具 举报

23

主题

71

帖子

223

金币

传奇

Rank: 8Rank: 8

积分
3490

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

14#
 楼主| 发表于 2021-1-19 10:24:43 | 只看该作者
tg000057 发表于 2021-1-19 10:14
昨天回复几个贴都没通过,不知道怎么回事,
你这个是开始和结束语注意一下,要把新建宏时原有的语句全部 ...

我刚才研究了一下,新建宏把里面的都删掉才可以运行,展开长度和宽度可以添加到自定义属性,现在我想添加切割长度、穿孔数、折弯数,添加进去后自定义属性里面没有变化,是不是和属性名称代码有关系,比如边界框长度是bjkcd,我试想切割长度-外部是不是qgcd-wb,然后添加进去并不是,请问怎么解决,谢谢
SolidWorks机械工程师网
回复

使用道具 举报

39

主题

372

帖子

3061

金币

传奇

Rank: 8Rank: 8

积分
7729

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

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

SolidWorks技术交流群

或扫描二维码加入

拉丝毛刺 发表于 2021-1-19 10:24
我刚才研究了一下,新建宏把里面的都删掉才可以运行,展开长度和宽度可以添加到自定义属性,现在我想添加 ...

Sub main()
Dim thisFeat As SldWorks.Feature                                                         '
Dim thisSubFeat As SldWorks.Feature
Dim cutFolder As Object
Dim BodyCount As Integer
Dim custPropMgr As SldWorks.CustomPropertyManager
Dim propNames As Variant
Dim vName As Variant
Dim propName As String
Dim Value As String
Dim resolvedValue As String
'Dim bjkcd As Double
'Dim bjkkd As Double


Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set thisFeat = Part.FirstFeature
Do While Not thisFeat Is Nothing '遍历设计树
If thisFeat.GetTypeName = "SolidBodyFolder" Then
thisFeat.GetSpecificFeature2.UpdateCutList
End If
Set thisSubFeat = thisFeat.GetFirstSubFeature
Do While Not thisSubFeat Is Nothing
If thisSubFeat.GetTypeName = "CutListFolder" Then '查找切割清单
Set cutFolder = thisSubFeat.GetSpecificFeature2
End If
If Not cutFolder Is Nothing Then
BodyCount = cutFolder.GetBodyCount
If BodyCount > 0 Then
Set custPropMgr = thisSubFeat.CustomPropertyManager
If Not custPropMgr Is Nothing Then
propNames = custPropMgr.GetNames '获取切割清单属性的数据全部名称并放入数组
If Not IsEmpty(propNames) Then
For Each vName In propNames
propName = vName
custPropMgr.Get2 propName, Value, resolvedValue '获取全部属性名称 ,数值和评估的值
If propName = "边界框长度" Then bjkcd = resolvedValue '判断是否是自己所需要的数据,如果是就获取
If propName = "边界框宽度" Then bjkkd = resolvedValue
If propName = "切割长度-内部" Then qgcdnb = resolvedValue
If propName = "切割长度-外部" Then qgcdwb = resolvedValue
If propName = "切除" Then qc = resolvedValue
If propName = "折弯" Then zw = resolvedValue
If propName = "钣金厚度" Then bjhd = resolvedValue




Next vName
End If
End If
End If
End If
Set thisSubFeat = thisSubFeat.GetNextSubFeature
Loop
Set thisFeat = thisFeat.GetNextFeature
Loop
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, qgcdnb)
blnretval = Part.AddCustomInfo3("", "切割长度-外部", swCustomInfoText, qgcdwb)
blnretval = Part.AddCustomInfo3("", "穿孔数", swCustomInfoText, qc)
blnretval = Part.AddCustomInfo3("", "折弯刀数", swCustomInfoText, zw)
blnretval = Part.AddCustomInfo3("", "板厚", swCustomInfoText, bjhd)


End Sub
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

82

帖子

26

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
235

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

16#
发表于 2021-1-27 10:23:25 | 只看该作者

   经典案例图书
谢谢各位大佬的分享    第一次接触到修改程序
SolidWorks机械工程师网
回复

使用道具 举报

7

主题

456

帖子

86

金币

长老

Rank: 6Rank: 6Rank: 6

积分
1365

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

17#
发表于 2021-4-12 22:08:11 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

楼主很专业,写得很好!
SolidWorks机械工程师网
回复

使用道具 举报

1

主题

33

帖子

47

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
246

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

18#
发表于 2021-4-13 10:08:32 | 只看该作者

   经典案例图书
能不能把外部切割长度和内部切割长度相加吗
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

160

帖子

582

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2137

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

19#
发表于 2021-8-11 11:24:13 | 只看该作者
活到老学到老!
SolidWorks机械工程师网
回复

使用道具 举报

0

主题

50

帖子

1040

金币

长老

Rank: 6Rank: 6Rank: 6

积分
2939

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

20#
发表于 2021-8-14 16:59:06 | 只看该作者
很不错,找到组织了!
SolidWorks机械工程师网
回复

使用道具 举报

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

本版积分规则

关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-4-23 22:22 , Processed in 0.232825 second(s), 37 queries .

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

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

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