iCAx开思网

标题: 【遍歷宏】在總裝配內零件的自定義屬性寫入配套數量(開放代碼)最新版本在122樓 [打印本页]

作者: Francis    时间: 2014-2-8 20:47
标题: 【遍歷宏】在總裝配內零件的自定義屬性寫入配套數量(開放代碼)最新版本在122樓
本帖最后由 Francis 于 2014-10-28 21:30 编辑

相關討論:
https://www.icax.org/thread-755962-1-1.html
https://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1434418&extra=page%3D1

例子“整套微型電控銑床裝配”的下載地址:
https://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1427631

經過深思熟慮,悶人從自己一直用開及冗長不堪的宏中精簡出以下代碼:

鄭重聲明:此宏不存在實時關聯,只是一次性的程序,倘若修改設計後,必須再運行一次。

歡迎討論,探討還有沒有更好方法解決問題。
就算逐句研習代碼的意義也絕對歡迎。

但謝絕帶指控性的發帖,
例如『有沒有必要呀?』、『这个是比较奇芭的用法』、『與標準相悖』,一律扣分


作者: shui321yang    时间: 2014-2-8 21:23
这个问题两个论坛讨论挺热烈,先学习学习闷大的技巧。

作者: Francis    时间: 2014-2-8 21:24
本帖最后由 Francis 于 2014-2-8 23:14 编辑

裝配體直觀功能的確不錯,但是會連同“封套”及“不包括在材料明細表中”的零件都一併計算,又沒有計算到“備用量”,出來的數量可能存在偏差。
甚麼是“備用量”呢?就是在自定義屬性中加上一個指定的倍數,可以用一個零件代表多個零件的方法。
相關討論:
https://www.solidworks.org.tw/forum.php?mod=viewthread&tid=16082

以下例子中,『機腳』容易在運輸時損壞,改為到現場才安裝又會出現跌丟的情況,由於不是標準件,一旦遺失或損壞,就要工場重做,頗為麻煩。只要在『機腳』零件加上相應的自定義屬性,BOM內的數量就會自動乘以這個倍數,例子的倍數是2,『機腳』數量就是8件了。不難發現,裝配體直觀功能是不會計算這個倍數的。
[attach]1193540[/attach]
[attach]1193535[/attach]
[attach]1193533[/attach]
作者: Francis    时间: 2014-2-8 21:38
以下例子,
『110903-Ceiling_』只是吊頂的示意,
『110903-Ceiling_#』用來關聯數據,
兩者均從BOM排除了,但在“裝配體直觀”中依然存在數量。
[attach]1193536[/attach]
作者: Francis    时间: 2014-2-8 22:07
操作過程。
[attach]1193537[/attach]
作者: 豆蔻    时间: 2014-2-8 22:09
來頂頂悶大的帖子,偶先去細細閱讀相關帖子先……
作者: hbabc    时间: 2014-2-8 23:02
认真学习,谢谢闷大  {:soso_e163:}
作者: houge    时间: 2014-2-9 00:05
感谢闷大无私奉献
作者: sxl_sxl    时间: 2014-2-9 07:57
感谢闷大无私奉献
作者: zhg.x    时间: 2014-2-9 08:27
回复后再学习,谢闷大分享。
作者: ryouss    时间: 2014-2-9 09:14
謝謝分享,研習了!
作者: 飘渺尘世    时间: 2014-2-9 09:32
感谢分享,测试下

作者: 木瓜小子    时间: 2014-2-9 09:55
新年第一贴,谢闷大分享
作者: jingsong    时间: 2014-2-9 10:28
学习~~~~~~~~~~~
作者: sxl_sxl    时间: 2014-2-9 11:58
感谢闷大回复,期待教程
作者: Francis    时间: 2014-2-9 13:25
本帖最后由 Francis 于 2014-2-11 13:13 编辑

刪除下圖紅框中的代碼,就可以一併處理不同文件夾的零件。
[attach]1193558[/attach]


修改下圖籃框中的代碼,就可以更貼切自身的素求。
[attach]1193659[/attach]


ps:文件夾=目錄,一般在硬盤的文件夾悶人都會叫做“目錄”,以避免混淆特徵樹的“文件夾”。
作者: gaowengang    时间: 2014-2-9 13:38
多谢闷大分享,学习一下。

作者: 木瓜小子    时间: 2014-2-9 14:28
Francis 发表于 2014-2-9 13:25
刪除圖中紅框的代碼,就可以一併處理不同文件夾的零件。

再一次表示感谢。按闷大指导,成功!{:soso_e163:}{:soso_e163:}

作者: 棉裤老头    时间: 2014-2-9 14:29
木瓜老兄绝对是高人,一会儿美女一会儿骷髅的
作者: qiminger    时间: 2014-2-9 14:56
谢谢分享好源码,宏确实能解决非常复杂的问题,
收藏学习了。

作者: gaowengang    时间: 2014-2-9 15:06
运行成功!这个宏太有用了。原来制作产品的加工件清单和标准件清单的时候,我需要将材料明细表导入到excel中,再用计算器计算、合并相同项,有了这个宏就能直接向excel输出正确结果了,代码一定仔细研读。多谢!!

作者: Francis    时间: 2014-2-9 15:26
gaowengang 发表于 2014-2-9 15:06
运行成功!这个宏太有用了。原来制作产品的加工件清单和标准件清单的时候,我需要将材料明细表导入到excel中 ...

在沒有EPR的情況下統計產品較大型裝配內的不同種類的零件,利用Excel合併相同項也是一個辦法,但是工作量也不少。

除了修改此宏配合用途外,還有另一個選擇,就是『校對宏』:
https://www.icax.org/forum.php?mod=viewthread&tid=756507


作者: 远行云在下    时间: 2014-2-9 21:10
本帖最后由 远行云在下 于 2014-2-10 22:38 编辑

终于找到了。
作者: sunrise10283    时间: 2014-2-9 22:46
学习了 谢谢分享


作者: yc99zy    时间: 2014-2-9 23:56
学习学习

作者: Francis    时间: 2014-2-10 00:26
只要作以下修改,就可以連同子裝配一併計算。
[attach]1193578[/attach]
作者: langzhi    时间: 2014-2-10 08:51
下下来学习一下,感谢闷大。
作者: takeshi999    时间: 2014-2-10 09:04
以后闷大好像有一个帖子也是关于这个是,好像是用到EXCEL的
作者: 杀苏    时间: 2014-2-10 12:20
谢谢闷大 (开门第一次送给您了  祝您新年吉祥,龙马精神)

大家新年吉祥
作者: zhg.x    时间: 2014-2-11 09:12
本帖最后由 灯具小翔 于 2014-2-11 09:15 编辑

真诚的和大家说声抱歉了{:soso_e181:},
希望不要因为小翔这个无名小卒而影响大家的心情。{:soso_e160:}
还是转到正题吧,由于工厂的零件工程图需注明数量:
[attach]1193650[/attach]
以前都是手动修改,极其麻烦,容易出错,
现在有了遍历宏,一直在思考如何将数量改为自动填写,
想来想去,有个方法不知道对与错,请朋友给点建议与意见:
先在工程图模板,文件-属性-自定义-中建立新的属性“数量”
[attach]1193651[/attach]
然后:编辑图纸格式,在适当的位置链接”数量“属性:

[attach]1193652[/attach]
需注意:就是新建的“数量”属性名称需要与遍历宏中的名称相对应
[attach]1193653[/attach]
请问朋友,这样的做法对么???

作者: Francis    时间: 2014-2-11 10:56
還是言歸正傳吧。所有誤會帖子都刪除了,可能造成一定的短期困擾,但是為顧及後來的看帖人士不至于眼花繚亂,沒辦法中的辦法而已,望各位海涵。
作者: yechao122    时间: 2014-2-11 11:17
回复来学习。。。。。。。。。。。。。。。

作者: Francis    时间: 2014-2-11 11:35
灯具小翔 发表于 2014-2-11 09:12
真诚的和大家说声抱歉了,
希望不要因为小翔这个无名小卒而影响大家的心情。
...

先感謝小翔認真使用悶人提供的笨宏。獻上禮物一份{:soso_e177:}。{:soso_e113:}

工程圖可算是“反映模型”的一片照妖鏡,盡可能不存在孤立數據,數據盡可能來自模型(模型=裝配或零件),比如材料、表面處理等等。
工程圖內的“圖頁格式”更甚,如果在個別“圖頁格式”輸入一些描述零件的文字(好像小翔在“圖頁格式”手動輸入數量),當更新“圖頁格式”的時候,內容就會被重置。
因此,就算沒有遍歷宏,都不應在“圖頁格式”輸入數量等等的資料,在圖頁鍵入還可以,當然最好在模型的屬性加上項目,再連接到工程圖。

作者: zhg.x    时间: 2014-2-11 12:35
谢谢闷大的礼物。
尤其后面那几句金玉良言,胜读十年书!
修改了一下:
[attach]1193658[/attach]
将属性链接放在了图页上。(前提还是在工程图新建“数量”属性)
有个问题还是想和大家讨论一下,
若是直接在零件模板新建“数量”属性,然后打开工程图,链接属性却没有数量。
看来若要在工程图显示数量,似乎只能用这个办法了?
请大家多多讨论,争取秒杀。。。

作者: 木瓜小子    时间: 2014-2-11 12:38
Francis 发表于 2014-2-11 10:56
還是言歸正傳吧。所有誤會帖子都刪除了,可能造成一定的短期困擾,但是為顧及後來的看帖人士不至于眼花繚亂 ...

赞成,这样帖子也显得干净

作者: sxh_sxh    时间: 2014-2-11 14:28
感谢无私奉献, 学习
作者: 远行云在下    时间: 2014-2-11 14:47
灯具小翔 发表于 2014-2-11 09:12
真诚的和大家说声抱歉了,
希望不要因为小翔这个无名小卒而影响大家的心情。
...

盼望多年,这个问题终于有了解决方案,肯定不只是小关翔和我需要。

作者: zhg.x    时间: 2014-2-11 15:54
远行云在下 发表于 2014-2-11 14:47
盼望多年,这个问题终于有了解决方案,肯定不只是小关翔和我需要。

可否请朋友说说解决方案,小翔目前只能做到36#楼那样。
期待讨论。

作者: 远行云在下    时间: 2014-2-11 17:16
本帖最后由 远行云在下 于 2014-2-11 17:21 编辑
灯具小翔 发表于 2014-2-11 15:54
可否请朋友说说解决方案,小翔目前只能做到36#楼那样。
期待讨论。

在图纸格式中链接模型属性“数量”,保存图纸格式。
旧工程图需要更换图纸格式。
编缉工程图模板,载入新的图纸格式,保存模板。
新工程图用新模板。

在装配模型中运行大闷的统计零件数量宏程序(适当更改以便适合自用)

顺便问一下大闷,如何更改为“自定义”属性?我不想在“配置特定”属性中设置数量。


作者: Francis    时间: 2014-2-11 18:06
远行云在下 发表于 2014-2-11 17:16
在图纸格式中链接模型属性“数量”,保存图纸格式。
旧工程图需要更换图纸格式。
编缉工程图模板,载入 ...

紅框範圍內9個 『ChildConfString』 改為 『""』 就可以。(注意必須是ASCII字符,不可是中文的『“”』)
不過,如果有使用多配置(一個文件代表多種零件),就絕對不可這樣修改。
[attach]1193675[/attach]


作者: 远行云在下    时间: 2014-2-12 08:36
本帖最后由 远行云在下 于 2014-2-12 10:06 编辑
Francis 发表于 2014-2-11 18:06
紅框範圍內9個 『ChildConfString』 改為 『""』 就可以。(注意必須是ASCII字符,不可是中文的『“”』) ...

已改好能在自定义属性表中生成数量属性,谢谢大闷!



作者: zhg.x    时间: 2014-2-12 08:46
远行云在下 发表于 2014-2-11 17:16
在图纸格式中链接模型属性“数量”,保存图纸格式。
旧工程图需要更换图纸格式。
编缉工程图模板,载入 ...

请教朋友,你说在图纸格式中链接模型属性“数量”
这个“数量”属性是SW自带的???还是你手动新建的?
因小翔的图纸上似乎没有
可否截图指点一下。
谢谢!

作者: 远行云在下    时间: 2014-2-12 10:12
灯具小翔 发表于 2014-2-12 08:46
请教朋友,你说在图纸格式中链接模型属性“数量”
这个“数量”属性是SW自带的???还是你手动新建的? ...

手动建立
如:数量:$PRPSHEET:{数量}件/台         模型属性
如果:数量:$PRP:{数量}件/台  则为工程图属性
现在用公司电脑,已加密,不能截图

作者: zhg.x    时间: 2014-2-12 10:54
远行云在下 发表于 2014-2-12 10:12
手动建立
如:数量:$PRPSHEET:{数量}件/台         模型属性
如果:数量:$PRP:{数量}件/台  则为工程 ...

弱弱的问下朋友,你说的建立数量属性,
是在零件模板里还是在工程图模板里?

作者: 远行云在下    时间: 2014-2-12 11:08
灯具小翔 发表于 2014-2-12 10:54
弱弱的问下朋友,你说的建立数量属性,
是在零件模板里还是在工程图模板里?

在模型中是建立数量属性名称及输入数值
在工程图中格式建立文本,文本中数量值为链接到模型的属性。

作者: zhg.x    时间: 2014-2-12 11:16
远行云在下 发表于 2014-2-12 11:08
在模型中是建立数量属性名称及输入数值
在工程图中格式建立文本,文本中数量值为链接到模型的属性。

意思我明白。一开始我的做法也是:
先在零件模板中建立“数量”属性,
再打开工程图模板,链接零件“数量”属性,
可惜发现链接里没有刚才新建的“数量”属性

作者: 远行云在下    时间: 2014-2-12 11:23
灯具小翔 发表于 2014-2-12 11:16
意思我明白。一开始我的做法也是:
先在零件模板中建立“数量”属性,
再打开工程图模板,链接零件“数 ...

直接改文字
点文本图元
右键
动态菜单里选“在窗口中编辑”
按上面提到的格式输入
冒号双引号及大括号不要用中文全形,用英文输入法输入。

作者: dutian    时间: 2014-2-15 17:20
good good good

作者: 远行云在下    时间: 2014-2-23 13:16
本帖最后由 远行云在下 于 2014-3-9 21:56 编辑

大闷:
      你好!
      我在2012运行这个遍历宏, 不知何原因会出现有些零件的数量属性未输入。
请帮我检查一下。
      能不能做一个运行进度条?现示进度,完成后点确定才退出。
     我附图给你,请不要公开此图。
作者: 莱虫    时间: 2014-2-23 18:57
远行云在下 发表于 2014-2-23 13:16
大闷:
      你好!
      我在2012运行这个遍历宏, 不知何原因会出现有些零件的数量属性未输入。

大闷

不一定闷鸟才可回答吧。

废话少说,先回个帖看看什么代码。

作者: 远行云在下    时间: 2014-2-23 21:53
莱虫 发表于 2014-2-23 18:57
大闷

不一定闷鸟才可回答吧。

我根据大闷的程序更改为合我用的程序,但发现在2012好似不可靠,有些零件可以,有些不行。反复运行都不报错,就是不能全部更新数量属性。

作者: 莱虫    时间: 2014-2-24 12:02
远行云在下 发表于 2014-2-23 21:53
我根据大闷的程序更改为合我用的程序,但发现在2012好似不可靠,有些零件可以,有些不行。反复运行都不报 ...

在2012试过了 所有零件都ok 没你说的

运行后有 但关闭打开就无 要每个save吧

不懂
作者: 远行云在下    时间: 2014-2-24 21:26
莱虫 发表于 2014-2-24 12:02
在2012试过了 所有零件都ok 没你说的

运行后有 但关闭打开就无 要每个save吧

       再次测试,先把其中一些零件模型的数量属性更改或删除,运行我这个遍历宏,保存所有,从新打开还是发现有些零件的数量属性未更新。
       应该是有问题吧?

作者: brucecad    时间: 2014-2-25 09:43
紳人的寶貝
一定要認真學習
作者: 远行云在下    时间: 2014-2-26 21:21
我还是没搞懂我这个宏程序就这么一闪而过,算是运行完毕吗?
但是还有模型没处理完呀?!
等待大闷伸出援手。
作者: 莱虫    时间: 2014-2-27 01:26
远行云在下 发表于 2014-2-26 21:21
我还是没搞懂我这个宏程序就这么一闪而过,算是运行完毕吗?
但是还有模型没处理完呀?!
等待大闷伸出援手 ...

既然是您的宏程序,那就要问您了。

作者: seanxujun    时间: 2014-3-3 16:50
前辈真是我们的领路人,向您学习!

作者: seanxujun    时间: 2014-3-4 10:16
远行云在下 发表于 2014-2-24 21:26
再次测试,先把其中一些零件模型的数量属性更改或删除,运行我这个遍历宏,保存所有,从新打开还是 ...

好像如菜虫所说,必须每个零件保存一下才可以,不然关闭自定义属性都没写进零件文件,我版本2014同样遇到这个问题,装配体运行宏后都正行,打开每个零件也有"数量"属性值,就是保存关闭装配体后,再打开装配体中零件就还是运行宏前的样子。

作者: 远行云在下    时间: 2014-3-4 20:38
seanxujun 发表于 2014-3-4 10:16
好像如菜虫所说,必须每个零件保存一下才可以,不然关闭自定义属性都没写进零件文件,我版本2014同样遇到 ...

        零件数量少时,每个保存一下是很容易的,但我此装配体不算多零件,就算打开全部零件后,返回装配体,运行此宏,保存所有零件及装配体,关闭全部后从新开启还是有些模型没有更新数量属性,往往是特征树后面的最多没有更新。
       很有必要控制宏的运行进程,期待改进。

作者: 阳光普照    时间: 2014-3-5 14:44
繁字体的帖子好多,这是为什么。

作者: 九霄第一爷/傲慢    时间: 2014-3-31 13:07
好东西,赶快看看
作者: yeshengwen    时间: 2014-3-31 14:13
顶闷热教程

作者: molassee    时间: 2014-4-2 00:35
哇!!!!
對我來說可是冗長的研讀啊cccccccc
作者: wwggkk    时间: 2014-4-12 23:45
感谢闷大无私奉献
作者: JETCAM    时间: 2014-4-23 23:44
好好学习,天天向上

作者: yipl1974    时间: 2014-4-25 15:17
好东东看一下
作者: BBZSLASH    时间: 2014-5-13 13:15
也在为在零件图里插入总装数量而苦恼中,希望有用,谢谢无私奉献

作者: luohh886    时间: 2014-5-16 23:16
谢谢分享!

作者: yuhongbo    时间: 2014-5-16 23:30
写宏的人都是牛逼客!太厉害了!

作者: 木棉    时间: 2014-5-20 09:14
最近迷上宏了,来学习学习
作者: xuyi999    时间: 2014-5-24 21:27
rrfff

作者: whirlman    时间: 2014-5-25 10:31
谢谢分享......

作者: wyj123    时间: 2014-6-7 14:17
谢谢闷大  
作者: 大厨    时间: 2014-6-8 18:41
进来看看。
作者: vincent3166    时间: 2014-6-9 10:03
我都曾经想过写这样的Macro,既然Francis大哥已经搞定,哈哈,已经可以拿来用了。这个工具很实用。
源于工程人员需要在零件图纸的标题框上显示“它” 即将被用到的数量。。所以这个功能很人性化。。很有中国特色。
作者: xiaoerzeng    时间: 2014-6-9 15:21
万分感谢...尽管我还是没看懂..
作者: 陈鑫——001    时间: 2014-6-9 16:36
好棒,给你赞一个

作者: vincent3166    时间: 2014-6-9 22:01
陈鑫——001 发表于 2014-6-9 16:36
好棒,给你赞一个

楼上 表情好猥琐....
作者: chi0829    时间: 2014-6-10 23:41
谢谢分享!!!!!

作者: zhoucongda    时间: 2014-6-26 13:57
这个东西比较有用,我现在正为出工程图而苦恼呢,有了这个应该效率很高吧

作者: jpc2cc    时间: 2014-6-30 10:54
来学习,一直很想知道如何获取数量的函数接口

作者: o1ojacko1o    时间: 2014-6-30 14:51
看看这个宏是干嘛用的。

作者: yu_kefei    时间: 2014-7-10 14:53
学习一下大师的做法!

作者: yu_kefei    时间: 2014-7-10 16:27
唉,整了一下午还是没有搞定。郁闷!
作者: bjfhui    时间: 2014-7-11 10:27
请问企鹅去维权
作者: wslldgg    时间: 2014-7-13 22:27
谢谢楼主的辛苦工作。。。。。。。


作者: 報吿:噯已咫    时间: 2014-7-15 08:49
好东西能分享吗
作者: alea6666    时间: 2014-7-28 16:54
感謝樓主分享

作者: zhang2185    时间: 2014-8-2 18:24
{:2_36:}路过,来看看,支持楼主{:3_58:}
作者: 风云一笑    时间: 2014-8-5 14:07
这个不错,以前解决不了的问题现在终于能解决了

作者: ciami    时间: 2014-9-1 20:54
瞻仰闷大
作者: shenhaiyufu    时间: 2014-9-10 14:12
太强大了,不知道怎么学啊

作者: gddx110    时间: 2014-9-11 09:34
感谢分享!!!!!!!

作者: 楠柠檬、    时间: 2014-9-11 13:50
从没接触过宏。。学习学习

作者: 楠柠檬、    时间: 2014-9-11 13:56
繁体有点看不懂。。。还是再顶下
作者: 莱虫    时间: 2014-9-18 22:10
终于找到遍历结果不保存的问题,俺另开主题分享吧。
作者: judyyai    时间: 2014-9-19 08:38
想看隱藏回覆
作者: gt.adan    时间: 2014-9-19 14:50
Francis 发表于 2014-2-8 21:24
裝配體直觀功能的確不錯,但是會連同“封套”及“不包括在材料明細表中”的零件都一併計算,又沒有計算到“ ...

悶大午安。
阿丹按教程操做了幾次,裝配中所有的零件都新增了「用於組合件的數量」屬性欄位。
唯獨從零件庫中調用的項目無法新增。。。
但是您在3樓的貼圖中,7000C這個項目似乎是從零件庫中直接調用的吧?
是否阿丹操做過程忽略了什麼?請悶大不吝指導~


作者: gt.adan    时间: 2014-9-19 16:34
[attach]1207227[/attach]

作者: 水流花開    时间: 2014-9-24 14:12
牛人啊,顶





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3