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

标题: 【原创】批量修改名称和文档自定义属性[第二版] [打印本页]

作者: tg000057    时间: 2023-2-25 15:57
标题: 【原创】批量修改名称和文档自定义属性[第二版]
'原贴在这里
'其特点是反向操作,不用execl来控制solidworks,而是把execl当作是修改草稿。
'此版更新修改名称不具有图名分离功能,


'1.获取当前装配体所有部件的名称和其自定义属性到表格当中。
' 获取包含当前装配体,可选是否遍历子装配体;
' 属性项最多为96项,多出自动省略;
' 表属性值和评估不是相同字串时,评估值写到表格的注释中。


'2.在表格当中修改名称或属性值,可反写到文档当中。
' 修改名称时,文档有工程图的,也一并修改工程图名称。
' 表格不能增减行数,不能增减ABCDE的5列,
' 属性标题可重新填写,只更新填有值的属性,可选是否删除无值的属性项。
' 整理好属性后,不必保存表格,写入数据完毕后自动删除表格文件。





补充的内容 (2023-2-27 16:07):
2023-02-27,更新版本,更新内容在下方!

补充的内容 (2023-3-3 09:00):
此贴内所有附件均是首发测试版,存在一定的bug,可能会因为软件版本,电脑配置等因素而导致功能不全,甚至不能用,下载需慎重考虑

批量改名 整理属性.zip

(57.43 KB, 下载次数: 209 售价: 15 金币


作者: tg000057    时间: 2023-2-25 15:59
测试版,欢迎点评!
作者: asdfe12321    时间: 2023-2-25 16:05
很不错,顶一下!
作者: starine    时间: 2023-2-25 16:10
SolidWorks机械工程师网,顶一下。
作者: 384432485    时间: 2023-2-25 17:27
楼主辛苦了!
作者: jines5    时间: 2023-2-25 18:45
感谢分享,楼主辛苦啦,我试用一下
作者: toshj1    时间: 2023-2-25 19:09
感谢分享。
作者: jines5    时间: 2023-2-25 20:05
楼主辛苦啦!我在使用中感觉有一些建议,如果楼主有兴趣可以尝试一下。
建议一:就是在excel文档中修改了属性后,在返写属性到SW的时候做两上个动作:1、在SW中清除装配体包含子零件的所有自定义属性(可选)。2、重新读取改后excel文档中相应零件的自定义属性返写到SW,达到所有零件自定义属性名称一致,属性个数相等,这样自定义属性比较简洁一致。
建议二:如果有部分零件不需要修改自定义属性,就把这一行删除,返写到SW时有零件名就修改没有就跳过。
建议三:如果在前五列后面增加一列略省图最好啦,冻结前6列,修改时有略省图就知道是哪个零件,使用会很方便。
读取SW属性或是其他内容,vba编程中如果使用数组和字典或是数组和字典嵌套,速度可能要快很多。
作者: tg000057    时间: 2023-2-25 20:59
jines5 发表于 2023-2-25 20:05
楼主辛苦啦!我在使用中感觉有一些建议,如果楼主有兴趣可以尝试一下。
建议一:就是在excel文档中修改了 ...

代码是开源的,你可以根据自己的想法试修改一下,这样后面再有什么想法都可以自己再次更新,代码里面有些没有注释的,你可以回复问。建议一,直接修改里面的一两行代码就行了,建议二、三,要改一下逻辑顺序。
作者: jines5    时间: 2023-2-25 22:11
tg000057 发表于 2023-2-25 20:59
代码是开源的,你可以根据自己的想法试修改一下,这样后面再有什么想法都可以自己再次更新,代码里面有些 ...

建议一要改哪两行代码啊?其中有一些逻辑我还没有理顺,要理顺可能会花点时间,最近有点忙。
作者: tg000057    时间: 2023-2-27 16:05
'1.反向操作,不用execl来控制solidworks,而是把execl当作是修改草稿。


'2.获取当前装配体所有部件的名称和其自定义属性到表格当中修改。
' 获取包含当前装配体,可选是否遍历子装配体;
' 获取属性项最多为95项,多出自动省略;
' 表属性值和评估不是相同字串时,评估值写到表格的注释中。


'3.在表格当中修改好名称和属性值,点击“数据写入”可反写到文档当中。
' 修改名称时,文档有工程图的,也一并修改工程图名称。
' 表格第三行以下的删除整行,或删除B列内容,数据写入时即可跳过对此行文档的修改,不进行任何操作,B列空格10行,则终止向下索检文档。
' 不能删减A-I的9列,注意A-G内容进行修改,其余列的可以增减,属性标题可重新填写,但标题索检只到CZ列。
' 可选是否全部删除属性后再填写,可选是否只更新填有值的属性,
' 整理好属性后,不必保存表格,写入数据完毕后自动删除表格文件。




'4.此版更新修改名称具有图名分离功能,分隔符为空格。
' 文件名1.2,和新文件名1.2是图名分离操作,分隔符为空格,新文件名1.2不写入属性项中,
' 新改名后要同时进行图名分离的,请在“数据写入”前用execl操作,把新文件名1.2引到对应的属性项中。


'5.此版更新,增加部件简图,为上色简图。




批量改名 属性整理.zip

(73.13 KB, 下载次数: 115 售价: 15 金币


作者: lxr8833661    时间: 2023-2-27 16:35
2020版SolidWorks点击宏报错!已调完引用,希望楼主能解决!

2.png

1.jpg

作者: tg000057    时间: 2023-2-27 16:44
lxr8833661 发表于 2023-2-27 16:35
2020版SolidWorks点击宏报错!已调完引用,希望楼主能解决!

报错提示?
作者: lxr8833661    时间: 2023-2-27 16:53
tg000057 发表于 2023-2-27 16:44
报错提示?

是的报错了
作者: tg000057    时间: 2023-2-27 17:05
lxr8833661 发表于 2023-2-27 16:35
2020版SolidWorks点击宏报错!已调完引用,希望楼主能解决!

1.如果是增加宏按钮来运行的话,就按下图那样。
2.如果是直接用宏工具栏的”运行宏“来启动的话,就把:Sub set_part()
改成Public Function set_part()
sub  BatchFolder()
Public Function BatchFolder()
,
,
因为一直都在编辑页运行,或者用启动器启动运行,没有考虑多个进程的识别。


001.png

作者: quanshouzhu    时间: 2023-2-27 17:32
打开报错,引用全部都有

报错

报错

作者: tg000057    时间: 2023-2-27 17:43
quanshouzhu 发表于 2023-2-27 17:32
打开报错,引用全部都有

看楼上。15楼的
作者: quanshouzhu    时间: 2023-2-27 17:45
tg000057 发表于 2023-2-27 17:43
看楼上。15楼的
可以了












作者: tg000057    时间: 2023-2-27 17:56
quanshouzhu 发表于 2023-2-27 17:45
结果都是一样的,没有任何反应

打开编辑代码页面,找到最上面那一行   sub main(),然后用鼠标点击这一行,再点击上面的播放运行按钮,或者按F8单步运行,执行下去然后再看会在哪里,出现什么问题。
作者: quanshouzhu    时间: 2023-2-27 18:12
tg000057 发表于 2023-2-27 17:56
打开编辑代码页面,找到最上面那一行   sub main(),然后用鼠标点击这一行,再点击上面的播放运行按钮 ...

谢谢,鼠标停留在sub main,可以正常运行,速度非常块!给你一个大大的赞!
作者: tg000057    时间: 2023-2-27 18:16
quanshouzhu 发表于 2023-2-27 18:12
谢谢,鼠标停留在sub main,可以正常运行,速度非常块!给你一个大大的赞!

能运行就好,那你就好好看一下15楼说的方法,不然你不可能每次运行都去先点击mani那一行再运行吧。
作者: quanshouzhu    时间: 2023-2-27 18:18
tg000057 发表于 2023-2-27 17:56
打开编辑代码页面,找到最上面那一行   sub main(),然后用鼠标点击这一行,再点击上面的播放运行按钮 ...

能否设定只读取指定几个属性?很多没用的属性不需要读出来
作者: tg000057    时间: 2023-2-27 18:30
quanshouzhu 发表于 2023-2-27 18:18
能否设定只读取指定几个属性?很多没用的属性不需要读出来

代码开源,自行修改吧!
作者: lxr8833661    时间: 2023-2-28 09:13
tg000057 发表于 2023-2-27 17:05
1.如果是增加宏按钮来运行的话,就按下图那样。
2.如果是直接用宏工具栏的”运行宏“来启动的话,就把: ...

按照图片这个方式确实能运行了,不过还会报错如图片所示

1.jpg

作者: tg000057    时间: 2023-2-28 09:27
lxr8833661 发表于 2023-2-28 09:13
按照图片这个方式确实能运行了,不过还会报错如图片所示

你这个应该是execl版本的问题了,把这4行删除不要就行了,删除后表格的图片不会跟随单元格变动而已,
最大的影响是删除行时,图片还在,并重叠在另一张下面,
反正表格是临时草稿式的,注意一点就行了!

作者: 懒懒的高贵    时间: 2023-2-28 09:48
很不错,顶一下!
作者: jines5    时间: 2023-2-28 16:39
楼主,发现一个问题,就是有很多零件时,处理很慢,后来看了一下,原因是在每读取一个属性写在Excel表中,都要设置表格格式,有多少单元格就要设置多少。建议可以把读取的属性值储存在数组或是字典中,然后一次性写入Excel表中,然后统一设置表格格式,这样可以提升数倍时间。
作者: tg000057    时间: 2023-2-28 20:14
jines5 发表于 2023-2-28 16:39
楼主,发现一个问题,就是有很多零件时,处理很慢,后来看了一下,原因是在每读取一个属性写在Excel表中, ...

现在这个做法,1,是直观,获取一个写一个,2,是简图,简图是先存为外部文件、再插入表格,然后删除。所以才一个个的来,一秒出4-5个,我感觉这可以了。
如果按你说的那样,1,在获取属性的时候,时间不知道长短,但solidwrks只在转圈,表格也可能没出来,我们不完全确定它在工作,2.同样是简图,如果是获取属性一样,先全部存为外部文件,再全部一起插入表格,然后统统删除,这样好像不敢确定它这个稳定性,,,
这样几百个件下来,也快不了一分半分钟吧。



作者: Kbisi123    时间: 2023-3-1 09:47
这是为什么,但是并没有重名啊

微信截图_20230301094602.png

作者: jines5    时间: 2023-3-1 11:06
tg000057 发表于 2023-2-28 20:14
现在这个做法,1,是直观,获取一个写一个,2,是简图,简图是先存为外部文件、再插入表格,然后删除。所 ...

好的,还有改名有点问题,工程图改了,零件图部分改不了。
还有一个建议能否增加一列改材料。
作者: iloveSolidWorks    时间: 2023-3-2 13:41
反反复复下载了好几个版本,试了又试,按照回帖解决了一部分问题,但最后还是显示有重名文件。附图如下。

Snipaste_2023-03-02_13-40-44.jpg

Snipaste_2023-03-02_13-40-25.jpg

作者: tg000057    时间: 2023-3-2 14:28
iloveSolidWorks 发表于 2023-3-2 13:41
反反复复下载了好几个版本,试了又试,按照回帖解决了一部分问题,但最后还是显示有重名文件。附图如下。

确定一下,软件是不是打开了已重名的文档(不管此文档是不是存在同一个文件夹内的),再者同一个文件夹,是不是已有重名的文档(不管此文档是否已打开),以上两种情况会导致重名失败,如果还是不行,那请说出sw版本和打包上传测试重名失败的文档。
作者: iloveSolidWorks    时间: 2023-3-2 19:11
tg000057 发表于 2023-3-2 14:28
确定一下,软件是不是打开了已重名的文档(不管此文档是不是存在同一个文件夹内的),再者同一个文件夹, ...

我的SolidWorks版本是2018。不是你说的同名文件的情况,我单独用了几个文件做测试的。每次都显示部件有重名。文件夹内就四个零件和一个装配体。
目前遇到的问题有:
1:宏引用是2022,显示丢失,我自己重新引用的2018.
2:《   xlWs.Shapes.Range(Array("Picture 1")).Select '选择所有图片,设定大小位置跟随单元格 》这段代码不能用,我给他改成注释不运行了。
作者: iloveSolidWorks    时间: 2023-3-2 20:03
tg000057  2023-3-2 14:28
У ...


作者: UDF998    时间: 2023-3-2 21:18
SolidWorks机械工程师网,顶一下。
作者: iloveSolidWorks    时间: 2023-3-2 22:56
iloveSolidWorks 发表于 2023-3-2 19:11
我的SolidWorks版本是2018。不是你说的同名文件的情况,我单独用了几个文件做测试的。每次都显示部件有重 ...

1:下班用家中电脑SolidWorks2020测试了一下,可以正常使用。但2018就是无法重命名,总是显示有同名文件,不知道是什么问题。
作者: iloveSolidWorks    时间: 2023-3-2 22:58
iloveSolidWorks 发表于 2023-3-2 22:56
1:下班用家中电脑SolidWorks2020测试了一下,可以正常使用。但2018就是无法重命名,总是显示有同名文件 ...

2:宏获取的是自定义属性,能不能获取激活的配置属性?
作者: iloveSolidWorks    时间: 2023-3-2 22:58
iloveSolidWorks 发表于 2023-3-2 22:58
2:宏获取的是自定义属性,能不能获取激活的配置属性?

3:能否按照楼上其他网友所言,提高运行的速度。
作者: tg000057    时间: 2023-3-3 08:54
iloveSolidWorks 发表于 2023-3-2 22:58
3:能否按照楼上其他网友所言,提高运行的速度。

由第一点可知,这个api不支持sw2018版的,因为代码是在sw2019版基础上面写的,没有去查验api支持到哪里。第2、3的话,満足不了了,像版主所言,一自己动手,二找人定制。

作者: Kbisi123    时间: 2023-3-4 14:36
iloveSolidWorks 发表于 2023-3-2 22:56
1:下班用家中电脑SolidWorks2020测试了一下,可以正常使用。但2018就是无法重命名,总是显示有同名文件 ...

2o17一样,也提示同名文件
作者: geliang112055    时间: 2023-3-4 19:25
楼主辛苦了!
作者: 皮卡超人    时间: 2023-3-4 22:13
15个金币,可我
只有13个
作者: wangzhaoge0363    时间: 2023-3-9 13:26
感谢分享,楼主加油
作者: Jiajun_16888    时间: 2023-4-28 23:12
我们繁体系统  文件夹一不注意简体就会报错 能不能帮忙改下
作者: 念心nx    时间: 2023-4-29 21:37
下载下来看看,应该会有用!
作者: my511725147    时间: 2023-5-1 13:50
感谢楼主分享,很不错!
作者: zhufuqqwen    时间: 2023-5-8 20:49
试试好不好用
作者: lystar    时间: 2023-5-10 15:56
这个看着不错,下来试试
作者: jimmy8005    时间: 2023-5-12 20:00
SW机械工程师网,找到组织了!
作者: yyy924    时间: 2023-5-31 10:38
楼主辛苦了!
作者: linshun    时间: 2023-7-4 18:34
写的不错,很实用,给楼主点赞
作者: FMVPcurry30    时间: 2023-7-19 09:07
感谢楼主分享,很不错!
作者: 沉默的人    时间: 2023-8-5 13:44
感谢楼主分享,很不错!
作者: 1732434178    时间: 2023-8-5 16:41
厉害了,学习了
作者: wode3100    时间: 2023-9-12 14:10
感谢分享,好好学习
作者: lxc811347897    时间: 2023-9-18 05:59
感谢楼主分享
作者: doszmw    时间: 2023-9-18 12:55
感谢楼主分享,很不错!
作者: 随遇而安9528    时间: 2023-9-22 18:14
SolidWorks机械工程师网,顶一下。
作者: 随遇而安9528    时间: 2023-9-22 18:15
SolidWorks机械工程师网牛
作者: 54butterfly    时间: 2023-11-19 20:51
至少给个说明页面吧。
作者: richiwei    时间: 2023-12-25 22:35
感谢楼主分享,很不错!
作者: a305367    时间: 2024-3-12 21:58
楼主太有才了,膜拜中……
作者: 123133    时间: 2024-3-30 10:55
SW机械工程师网,找到组织了!
作者: nishuihanjian    时间: 2024-4-6 19:34
对于测试版来说很贵了




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