iCAx开思网
标题: AI改进自动分层宏 [打印本页]
作者: panliang9 时间: 前天 10:44
标题: AI改进自动分层宏
本帖最后由 panliang9 于 2026-6-24 10:19 编辑
很多年前版主 @Francis 写的自动分层,用于将图纸里的零件进行自动分层,这个功能对我非常重要,是我在本论坛得到的最重要收获,没有之一。
但是这个程序有一个问题,即是分层很慢,在solidworks2007下还不觉得,到了solidworks2010下四百多个零件,需要接近五分钟才能完成。
我尝试过很多手段,其中最有效的有两条,1、把所有的view 改成render模式,2、把所有的view隐藏 这样的话,分层可以在四十几秒完成。
得到这个程序N多年了,一直在用,虽然慢,但能用。直到AI出现了。
AI (Claude-Opus-4.8) 告诉我:
———————————————————————————————————————————————————
我注意到当前代码的逻辑是:每遍历到一个零件(且类型为Part),就立即执行一次 Select + CreateLayer + ChangeComponentLayer。也就是说391个零件就会触发391次"选择+改层+重绘"操作。
我的优化思路是:先一次性遍历完所有零件,把"同一个层名"对应的所有零部件收集到一起,最后按层批量选择、批量改层(15个层只需15次改层操作,而不是391次)。
——————————————————————————————————————————————————————
下面即是AI给我的代码,以前是四十几秒,现在只需要8秒,分享给大家。
1、解压(resolve)所有轻化的零件
2、建一个隐藏所有零件的display state
3、选中所有的view,进行隐藏(hide)
4、进行缩放移动等操作,把所有的view,都移出窗口,一句话,窗口里都看不见这些view
5、执行该分层程序。
要根据你们的sw版本进行适当改写,应该很简单,丢给AI就可以了。
三百多种,上千个零件,分层时间在八秒左右
[attach]1279200[/attach]
| 欢迎光临 iCAx开思网 (https://www.icax.net/) |
Powered by Discuz! X3.3 |