探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值

本文为原创文章,未经本人同意禁止转载。

需要的原始文件:pads格式的pcb文件,BOM文件。

使用到的工具:pads layout, word,excel。

前几天偶然听到几个朋友有这样的需求,但是苦于网上没有合适的方法教程,只能人工一个一个核对元件添加,在如今的信息时代,电脑作为强大而实用工具,相信没人愿意这样做这样的重复、繁琐、工作量大的操作。

虽然我平时没有遇到过这样的情景,也没有这样的需求,但是本着热于助人的精神,我还是开始积极思考,很快有了初步思路——从网表文件入手。 经过实际操作,确实可行,现整理出来分享给大家。

基于之前对pads  layout软件使用的理解,发现里面是有很多规律的,生成的一些文档也很规范,容易理解,善于发现,就能找到突破口。

这里以pads9.5版本为例,更高版本的pads软件各位可以举一反三尝试一下,不确定高版本能否通用。

打开一个pads layout的 pcb文件作为实例,如下图可以看到,元件C1是没有 “值 ” 这一参数的 。虽然手动可以添加,但是元件数量多的时候工作量将变得非常大。 

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第1张图片

核心操作如下:

1,打开文件,输出  “报告”

点击软件界面左上角  “文件”  菜单,选择此菜单下的  “报告”  选项 ,如下图

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第2张图片            探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第3张图片

 

注意选择的版本,和导出的报告文件的路径。至于为什么选择这个版本,只因为之前用orcad软件导出asc网表到pads的时候,打开网表都是第一行都是:    !PADS-POWERPCB-V3.0-MILS! ………………

之所以选择这个版本纯属因为眼熟,其他版本没有验证过,大家可以自行尝试。

2,修改 “report.rep” 文件,用 pads的 eco对比  生成  eco  文件

找到刚刚导出的报告文件 并打开,会发现这和我们使用orcad导出的网表文件没啥两样,格式一模一样,这正是我想要的。

在元件封装后面加上对应的元件值,然后将此文件后缀由原来的 .rep  改为 .asc ,这样就可以作为网表文件导入layout了,打开asc文件(以文本方式打开)并编辑,这里先给C1添加一个元件值 22pF,试验是否可行,添加后保存asc文件,导入pads。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第4张图片

但是pads layout导入asc遇到 元件位号一样的情况下是会跳过的,不会把我新增的元件值更新到元件属性中,此路不通。

根据经验,eco文件是可以强行替换更改layout里的pcb文件的相关属性的,这里打算使用eco来更新pcb文件,但是eco从哪里来?   ——可以从pcb文件和asc网表对比得来,具体操作如下。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第5张图片           探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第6张图片

 

注意图中文件是之前生成的 报告  文件,我将后缀改为  .asc啦,这样才能对比。

不过对比之后会发现 找不到差异,这是因为   对比  的参数没设置好,按照如下设置,就能找到差异了。

主要是要勾上 红圈 中那一项,至于其他的  对比类型选择哪一个,说实话我不清楚,但是我试过,都可以对比成功并找到差异。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第7张图片

3,利用生成的eco文件,导入pcb中更新元件值。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第8张图片

在弹出的对话框,选择eco文件类型,文件名选择 刚刚对比生成的eco文件名,一般是这个pcb文件的文件名。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第9张图片

提示是否保留旧文件时要选择   是   ,导入之后就会发现,元件值出现了。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第10张图片

 但是这才一个元件啊,并且比手动添加单个元件值更复杂。没错,教程还没完呢。

所谓磨刀不误砍材工,之所以绕这么大个圈是为了方便步骤2的修改添加元件值的操作,因为第二部中生成的report.rep文件里面的网表格式是很规整的,这种数据具有可操作性,利用excel软件可以方便的查找匹配到bom中对应的元件值。

具体如下:

2-1   复制report.rep文件中的元件和封装,不用复制后面的网表信息,这里只复制10个为例。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第11张图片

2-2   然后粘贴到word中,使用文字转换为表格功能,将其转换为表格

(word如何将文字转换为表格:https://jingyan.baidu.com/article/d45ad1485d4c9469552b80c9.html)探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第12张图片

 

2-3   转成表格之后再复制到excel格式的BOM文件中,提前将BOM文件使用excel打开,

(这里列出了2种BOM格式,主要是  “一行一个位号”  和   “一行多个位号”  的区别,BOM1的格式容易处理,BOM2的格式处理起来复杂一点,一般orcad导出的BOM都是BOM2的格式,这里先介绍BOM1格式的处理方式,在介绍BOM2格式的处理方式,至于其他格式的BOM请灵活运用。)

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第13张图片探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第14张图片探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第15张图片

2-4   处理BOM表数据,匹配元件值

       步骤2-4-1处理BOM1数据格式, 步骤 2-4-2处理BOM2数据格式

2-4 -1     处理BOM1格式数据的公式

在同一个表格中,使用vlookup函数,可以查找匹配元件对应的元件值。

(vlookup函数的使用:https://jingyan.baidu.com/article/5552ef47e3228b518ffbc91c.html)

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第16张图片

(注意看截图中箭头指向的公式,结合步骤 2-3 中的截图,应该不难理解吧)

2-5   然后将公式扩展到单元格D2到D10,匹配完成之后效果如下,然后在C列加上英文逗号,再将B,C,D这3列的内容合并到一起,在   E1单元格   输入公式    =B1&C1&D1 ,同样将公式扩展E2到E10得到结果。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第17张图片探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第18张图片

 

 

2-6   此时,E列的结果就是我想要的,将这些数据复制到word中,删掉中间B,C,D 3列,然后使用表格转文字功能。

(word2013表格与文字互转:https://jingyan.baidu.com/article/7908e85c74865faf481ad2a2.html

WPS中文本与表格的相互转换:https://jingyan.baidu.com/article/6fb756ec69c126241858fb01.html)

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第19张图片探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第20张图片

 

2-7   转换后就在word中得到了文字内容,把文字复制到  report.rep   文件中对应位置,并保存为asc格式后缀,然后在pads layout里面进行eco对比(ECO对比详细步骤请返回查看前文)。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第21张图片探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第22张图片

2-8   对比完成之后,得到eco文件,再导入eco强制更新元件值到pcb文件中,最后PCB文件中的元件就加上元件值了。

 

以上 2-1 到 2-8 步骤是对于BOM1这种数据格式的处理方法,其实可以发现BOM1和BOM2的格式相比,主要处理差别是在 2-4 步骤 中 匹配公式的不同,

补充   2-4-2

2-4-2   处理BOM2格式数据的公式

(此处用到iferror函数,附iferror讲解说明:https://jingyan.baidu.com/article/36d6ed1f5296f21bce488354.html)

结合数据特性,最终决定使用如下公式(以单元格D1为例):

=IFERROR(IFERROR(VLOOKUP(A1,'BOM2'!A:C,3,FALSE),VLOOKUP("*"&","&A1,'BOM2'!A:C,3,FALSE)),VLOOKUP("*"&A1&","&"*",'BOM2'!A:C,3,FALSE))

公式解释:

VLOOKUP(A1,'BOM2'!A:C,3,FALSE)     查找的是  单个元件位号占据一行的情况下的元件值,和BOM1里面一样

VLOOKUP("*"&A1&","&"*",'BOM2'!A:C,3,FALSE)  查找的是  N个元件位号占据一行的情况下,前N-1个位号的元件值

VLOOKUP("*"&","&A1,'BOM2'!A:C,3,FALSE)     查找的是      N个元件位号占据一行的情况下,最后1个位号的元件值

查找结果如下图,初步验证公式是正确的,但是不排除还有未考虑到的情况。

这里使用的iferror 的多层嵌套,应该有其他更好的公式替代,只不过我不熟悉。

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第23张图片

接下来的步骤和处理BOM1一样,不再赘述。

注意:使用此方法完成之后,最好还是人工核对一遍,因为可能存在考虑不周的情况(主要是bom里面整理的格式有差异),可以通过查看  对比eco  完成后的 差异报告  来检验,如下图:

探索PADS layout高级使用技巧:通过BOM 反标记layout中的 元件值_第24张图片

 

 

 

你可能感兴趣的:(pads,layout,pads,layout,BOM,PCB,VALUE,元件值)