之前,小编发过这么一篇文章,介绍了如何通过二次开发的方式,利用宏代码,一键将Product导出为Excel格式的BOM(含层级关系)
【双dan福利】你们心心念念的导出BOM插件
今天这篇文章,我们反过来,聊一聊如何根据一个已有的Excel格式的BOM清单(包含层级关系),在CATIA里一键搭建出对应的装配树。
先来看一下最终的效果:
然后我们来介绍原理:
简单概括,就一句话:逐行读取信息并新建。
那么这里就有两个问题需要考虑:
对于每一行的新建动作,要建在哪个Product下?
新建Part还是Product?
我们先把BOM表的格式摆在这:
从这个表,可以读出以下信息:
第3行开始有零件信息,且第三行作为根节点;
第1列为序号;
第2-7列为层级信息;
第8列为数量信息;
第9列为零件的件号。
基于上述内容,我们可以大致描述出以下的规则:
可以根据当前行的装配等级lv_c于下一行的装配等级lv_n对比,如果lv_n=lv_c+1,也就是当前行有子级,那么可以确定当前行作为Product添加;否则作为Part添加;
每次添加Product后,都记录一下当前行的装配层级深度(如第3级),并把此深度的父级Product设置为此Product(如prd_f),这样可以确保它下面的子节点都添加到prd_f下面,而不是其他3级子总成的下面;
每次不管添加part还是product,都有两种情况:一种是新实例,一种是已存在该实例(有同part number),需要区分一下新建实例还是添加已有实例;
添加完节点后,如果数量n大于1,需要循环添加剩余n-1个实例。
或者,看这个流程图要更清晰一些!
所以,接下里的工作就简单了,只需要把上面流程图的内容翻译成宏代码,就可以我们文章开头动图的功能啦!
But,在付费下载前,请您务必阅读以下说明!!!
本案例及代码,仅作学习研究交流用,请确保自己能看得懂并理解其中的代码(代码中有必要的注释),不推荐用于实际工作,也不包含修改、售后及答疑服务!
分享的文件内容为包含宏的Excel文件,请确保自己会打开并查看其中的代码(其实就是打开excel,按Alt+F11)。