资讯动态

Altium Designer BOM 整理与导出:参数治理、模板配置与交付对账

发布时间:2026/9/29 5:15:28 来源:尧图企业网站定制
画完板子、DRC 跑绿、Gerber 打包发走很多人以为项目就结束了。等采购那边回消息说BOM 里少了两个 0.1uF还有三个料号是空的你才回头翻原理图发现导出的是两天前那版、而且封装列里躺着几个空值。这类返工我干过不止一次后来才明白一件事BOM 不是原理图的副产品它是一份独立的交付物得当成产品来做。这篇就把 Altium Designer 里整理并导出 BOM 这件事完整拆一遍。从元件参数怎么治理、Bill of Materials 对话框里哪几个开关真正决定成败、Excel 模板的字段映射怎么玩、一直到 PCB 侧的 BOM 和坐标文件怎么配套交付。不管你是刚画完第一块两层板的新手还是被贴片厂催过料的老手下面这些操作都能直接照着跑。1. 交付前夜才发现缺料先搞清楚这份 BOM 到底给谁看BOM 这个词在项目里出现的频率极高但真正被认真对待的次数很少。多数人的做法是画完原理图转完 PCB顺手 Reports 里导出一下Excel 打开看一眼位数对不对保存发出去。问题在于看一眼位数对不对这个动作能覆盖的检查项不到实际风险的三成。1.1 采购、贴片厂、维修工程师看的是同一份表关注点完全不同采购拿到 BOM 第一眼看的是料号和数量。他需要知道每一行能不能买到、有没有替代、最小包装量MPQ是多少。你的表里如果只有 Comment比如写着100nF而没有厂牌和料号采购就得拿着封装和容值去猜猜错就是买错。贴片厂SMT拿到 BOM 第一眼看的是位号和封装。他要跟自己的坐标文件Pick and Place做匹配位号对不上就贴不上。他还在意位号的排序方式——按位置排还是按字母排直接影响上料和核对效率。维修工程师或者一年后的你自己看的是描述和版本。R23到底是 10K 还是 4.7K、是 1% 还是 5%、0603 还是 0805这些信息如果只存在于你的脑袋里那这份 BOM 就是废的。所以一份能直接交付的 BOM最少要有这几类字段字段类别典型列名作用标识Designator位号唯一识别贴片厂对坐标用规格Comment、Value、Description人看的规格描述物理Footprint、Package决定焊接和库存数量Quantity采购下单依据溯源Manufacturer、MPN、Supplier、SPN采购下单的直接输入状态Fitted / DNP区分装配与不装配这六类字段里前三类 AD 默认就有后三类必须自己建参数补进去。这就引出了后面第二章要讲的核心工作——元件参数治理。提示不要指望一个 Comment 字段同时承担人能看懂和采购能下单两个职责。Comment 是给人看的MPN 是给系统用的这两个从设计一开始就应该分开。1.2 原理图 BOM 和 PCB BOM 的差别比你想的大AD 里导出 BOM 有两条完全不同的路径一条在原理图编辑器Reports » Bill of Materials一条在 PCB 编辑器Reports » Bill of Materials。新手最容易犯的错是把两条路径当成同一件事的两种入口实际上它们的输出结果可能差很多。原理图侧导出的是设计意图只要原理图上画了哪怕还没转 PCB、哪怕 PCB 上被删了它都会出现在 BOM 里。PCB 侧导出的是实际布局只统计真正放在板子上的元件原理图上画了却没导入的元件不会出现。对比项原理图侧 BOMPCB 侧 BOM数据来源工程编译后的元件数据库当前 PCB 文档中的元件实例是否含未转 PCB 的元件含不含多子件元件的位号显示 U1A、U1B、U1C、U1D通常显示为 U1是否反映变体支持可选变体导出只反映主变体主要用途采购、备料、正式 BOM快速核对板上有哪些料那到底该用哪个我的习惯是正式交付给采购和贴片厂的 BOM一定用原理图侧导出。原因是原理图侧能带变体、能带完整参数、能按图纸筛选而且它的分组逻辑是可控的。PCB 侧的 BOM 更适合自己核对——比如怀疑某个料在转 PCB 的时候掉了PCB 侧导一份出来一比就知道。有一种情况例外如果这块板子是别人给你的 PCB 文件、你没有原理图只有 .PcbDoc那 PCB 侧导出就是唯一选择。这时候要额外注意位号后缀和封装来源的准确性因为 PCB 里的封装信息是直接从封装库实例带的跟原理图的库引用可能已经脱节。1.3 导出之前先 CompileMessage 面板里的红字一个都别放过这一步被跳过的概率极高但它是所有 BOM 问题的源头。AD 是编译驱动的工具元件数据库不是实时同步的而是在你执行编译Project » Compile PCB Project时重建的。如果你改完原理图参数没编译就导出 BOM导出来的很可能是上一次的旧数据。编译之后打开 Message 面板重点看三类消息Duplicate Component Designators位号重复这是 Warning 级别但它是致命的。两个元件都叫 R5BOM 里就会出现两个 R5 行贴片厂直接懵。处理方式是 Tools » Annotation » Annotate Schematics Quietly或者先 Reset Duplicate Schematic Designators 再重新标注。Component has no footprint元件没有封装导出的 BOM 里封装列是空的采购拿到手不知道买 0603 还是 0805。这个要靠 Tools » Footprint Manager 一次性排查面板里可以按封装排序空封装会集中排在前面。Net has no driving source 之类的电气告警跟 BOM 关系不大但编译不干净的时候偶尔会影响元件信息的完整性顺手清掉没坏处。还有一个容易被忽略的新放置的元件默认位号是R?C?U?。如果没执行标注这些问号会原样进 BOM。判断方法很简单导出后在 Excel 里搜一个?就全露出来了。2. 元件参数治理BOM 好不好用八成取决于这一步导出 BOM 这个动作本身只花两分钟真正花时间的是它之前的准备工作。我见过太多项目导出对话框点了十几次、模板改了七八版最后发现问题根本不在导出环节而是元件库里压根没有这些参数。2.1 Comment、Description、LibRef 三者到底谁该放什么AD 里每个元件天然带三个名字类字段很多人分不清它们的职责结果 BOM 里三列内容混在一起。Comment是原理图上显示的那串字也是 BOM 里最常被当作规格列的字段。对电阻电容来说放10K、100nF是合理的对 IC 来说放型号比如STM32F103C8T6也说得过去。LibRefLibrary Reference是元件在库里的符号名。它会自动进 BOM但内容往往是RES-0603这种库内部命名。这一列对采购没意义建议在 BOM 配置里去掉或者把它作为辅助列放在最后。Description是自由文本描述很多人懒得填。但恰恰是这一列在维修和替换的时候最有用。比如一个MOLEX 53398-0471的连接器Comment 是料号Description 写4Pin 1.25mm 立贴座采购和维修都能一眼对上。我的实践是Comment 只放最核心的规格或型号Description 放完整的中文/英文描述LibRef 不进正式 BOM。这样做的好处是 BOM 表头干净每列职责单一后面要按 Comment 分组也不容易出岔子。2.2 用 Parameter Manager 一次性补齐 MPN 和供应商信息一个一个双击元件改参数五十个元件能耗掉一下午。AD 里真正好用的工具是Tools » Parameter Manager在原理图编辑器菜单下它会把整个工程所有元件的所有参数拉成一张大表按行按列随便改。打开之后你会看到几个下拉框上面的 Parameter 下拉可以筛选只显示某一类参数比如只看Manufacturer Part Number下面的 Component 下拉可以限定范围比如只看某个图纸的元件。表格里双击单元格就能编辑改完点 OKAD 会把修改写回所有元件——注意这一步会影响所有被改动的元件操作前最好先存一份备份或者确认在版本控制下。Parameter Manager 还有一个非常实用的功能导出到 Excel 和从 Excel 导入。它的对话框里有 Export 按钮可以把当前参数表导出成 Excel 文件你在 Excel 里用查找替换、VLOOKUP 批量填好 MPN 和供应商信息再 Import 回来。这个过程需要小心两点导出文件不要改动行顺序和元件唯一标识列否则导入时会错位导入前先把工程备份一份因为这是批量写操作没有撤销。提示Parameter Manager 的导入是按元件唯一 ID 参数名匹配的所以你新增一个参数列的时候所有元件都会新增这一列值为空这是正常的。不要手动去删空值删不干净反而容易留下隐患。2.3 批量修改的三种姿势Find Similar Objects、SCH List、Parameter Manager不同场景用不同工具选错了会平白多花几倍时间。Find Similar Objects右键元件 » Find Similar Objects适合改一批同类元件的同一个属性。比如你想把所有 0603 电阻的Tolerance参数统一设成1%就可以先用它筛选出所有Comment以R开头的元件然后在 Properties 面板里一次性修改。注意筛选条件要慎用 Any 和 Same选错范围会误伤全图元件。SCH List 面板适合在一大片元件里逐行核对。它把选中元件的关键属性列成表格支持排序和多列编辑。配合 SCH Filter 面板写过滤表达式比如IsComponent加上参数条件可以快速定位没有填 MPN 的元件这类目标。Parameter Manager适合整体性的参数治理也就是前面说的那种场景——一次性给全工程补齐某一类参数。三者不是互斥的实际项目里我一般是这个顺序先用 SCH Filter 加 SCH List 找出所有缺失参数的元件再用 Find Similar Objects 做小批量修正最后用 Parameter Manager 做全局的 MPN 补齐和导出核对。2.4 多子件元件U1A/U1B在 BOM 里的正确表现这是 BOM 里最隐蔽的一个坑。一颗 LM324 在原理图上会被拆成 U1A、U1B、U1C、U1D 四个门如果库里做成了四个独立元件而不是一个多子件元件的四个 PartBOM 里就会堂堂正正地出现四行 LM324数量各为 1。采购按这个下单你就多买三颗芯片。判断方法很直接看位号有没有 A/B/C/D 后缀。有后缀说明是多子件元件没有后缀的独立元件数量就是真实数量。如果你发现多子件元件的数量算成了 4排查方向有两个一是分组键里混进了跟 Part 相关的字段比如把Designator当成了唯一分组键二是这颗料在库里确实被拆成了四个独立元件需要重新做库。正确的做法是分组键里用Comment或者Manufacturer Part Number让 U1A~U1D 落到同一组里这样 BOM 里位号列会显示成U1A, U1B, U1C, U1D而数量列只算 1。这个规则在下一章的 Group By 里会详细展开。3. Bill of Materials 对话框里那几个真正决定成败的开关打开 Reports » Bill of Materials弹出来的对话框左右两栏看着挺唬人但真正需要动的只有几个地方。剩下的大部分选项默认值就是对的乱动反而出事。3.1 Group By 怎么组合才不会把 0603 和 0805 混在一起对话框上方是分组区默认可能什么都不分也可能已经按Comment分好了。这里的选择直接决定 BOM 有多少行、每行代表什么。先说一个绝对不能用的组合只按 Comment 分组。原因很直接——100nF这个 Comment 在板子上往往同时存在 0402、0603、0805 三种封装版本。只按 Comment 分组这三种会被合并成一行数量加起来是总数位号混在一起。采购按这一行下单买回来的封装对不上贴片厂上不了料。那该怎么组合我的默认方案是Comment Footprint两列分组。这个组合能保证同容值同封装的料合成一行不同封装自动分家。对于绝大多数电阻电容电感这个方案就够了。对 IC 和连接器这类一品一料的器件Comment Footprint也能用但如果你的 Comment 命名不太规范有的写型号有的写功能建议再加一个Manufacturer Part Number作为分组键。加了 MPN 之后分组粒度最细绝不会误合代价是 BOM 行数会多一些——但只要 MPN 填得全行数多不是问题漏料才是问题。分组键加得越多BOM 越保险但也越碎。我的建议是分场景打样阶段用 Comment Footprint 就够了重点是快速看清板上有哪些料量产阶段加上 MPN确保采购下单不出歧义。3.2 Columns 配置与 Quantity 的算法真相对话框右边的列配置区域决定了 BOM 里出现哪些列。这里建议做一次减法把所有默认列看一遍用不到的删掉。LibRef、Physical Designator、Source Designator这类列对采购和贴片厂都没有价值留着只会增加误读概率。重点说 Quantity 这一列它的算法有几种情况需要搞明白。分组后的 Quantity本质上是这一组里有多少个可装配单元。对于普通元件一个位号一颗料Quantity 就是组内元件数。对于多子件元件Quantity 应该是 1因为只有一颗物理芯片但位号列会列出所有子件。如果这里算成了 4回到 2.4 节排查。如果工程里存在 Not Fitted不装配的元件而你又没有把 Fitted 状态加进分组键Quantity 会把不装的也算进去导致多买料。第二种和第三种情况是最常见的数量错误来源。我的处理习惯是永远把 Fitted 状态单独作为一列输出而不是塞进分组键。输出之后在 Excel 里用公式统计真实需求量比如IF(FittedYes, Quantity, 0)这样既保留了不装配元件的完整信息又能得到准确的采购数量。还有一个细节在对话框的 Options 区域有一个Include only components from this sheet只包含当前图纸的元件选项。多图纸工程导出整机 BOM 的时候这个选项绝对不能勾勾了之后你只会得到当前打开那一张图纸的元件。这个坑我踩过导出后行数只有预期的三分之一排了半天以为是编译问题最后发现是这个勾。3.3 虚拟元件、机械件、测试点怎么排除板子上总有一些不是料的东西出现在 BOM 里典型的有几类测试点Test Point位号 TP1、TP2实际是焊盘不需要采购。安装孔、定位柱、Logo 图形这些通常是以机械元件或自由焊盘形式存在如果被做成了原理图元件就会混进 BOM。螺丝孔、屏蔽罩框架这类属于结构件有些公司需要单独一份结构件 BOM和电子料分开。处理方式有三种按场景选第一种是在原理图里就做隔离。给这些虚拟元件加一个专属参数比如BOM_Exclude Yes然后在 BOM 对话框里用过滤条件排除。这种方式最干净缺点是依赖于设计规范。第二种是在 BOM 对话框里临时排除。在列配置里把这类元件的分组行手动去掉有些版本支持取消包含。缺点是每次导出都要重新做一遍无法固化。第三种是在 Excel 里删。导出之后按位号前缀TP、MH、LOGO筛一遍手工删掉。这是最土但最快的方式样机阶段我一直这么干。真正省事的是把第一种做成规范。我在自己的元件库模板里给所有非采购件都预置了BOM_Exclude参数默认值为空需要排除的填Yes。这样一套模板走下来后面的导出环节几乎不用动脑子。3.4 Fitted 与 DNP同一块板子的两种装配状态DNPDo Not Populate不贴装在项目里出现的场景很多做兼容设计的时候同一块 PCB 通过贴不贴某些料来区分型号或者调试阶段想留几个位置先不焊方便后面改。AD 里给元件设置 DNP 有两种方式一是在元件的 Properties 面板里把 Fitted 改成 Not Fitted二是通过变体管理Variant在某个变体下把指定元件设为 Not Fitted。这两者的区别是Properties 里改的是元件本身的属性对所有变体生效变体里改的只影响那个变体。BOM 导出的时候这两种情况都要处理对元件本身 Not Fitted 的Quantity 不应该计入采购数量但位号最好保留在表里加个标记说明。变体里的 Not Fitted只在该变体的 BOM 里体现导另一个变体的时候它又是装配的。实操建议是永远在 BOM 里输出一列 Fitted 状态列名可以叫Fitted或者装配。然后在 Excel 里生成两张表——一张是完整 BOM含不装配项用于技术归档一张是采购 BOM只用装配项数量准确。两张表都从同一个源导出避免版本撕裂。4. 用 Excel 模板把排版工作一次性干掉AD 默认导出的 Excel 是裸数据表头是英文列名列顺序按对话框里的排列没有公司抬头、没有页脚、没有合并单元格。如果每次导出都要手工调整格式那这部分工作应该被模板化。4.1 AD 模板的字段映射机制拆解AD 的 BOM 模板本质上是一个 Excel 文件里面用占位符标出哪些位置该填哪个字段。AD 导出时会扫描模板里的占位符用实际数据替换。占位符的识别机制是Excel 的命名区域Named Range。具体操作是在模板里选中一个单元格然后在 Excel 左上角的名称框里输入字段名比如Designator回车。这个单元格就被命名为Designator。AD 导出时会把 BOM 数据里 Designator 这一列的内容从这一行开始逐行填下去。单元格里同时保留字段名文本比如直接写上Designator一方面是可读性另一方面部分版本的 AD 也会识别单元格内容作为兜底。不同版本的 AD17、19、20、21、23、24在模板解析上有细微差异所以最稳妥的做法是从 AD 自带的模板复制一份改而不是从零新建。AD 自带的 BOM 模板一般在安装目录或公共文档目录下的Templates\BOM Templates\里文件名类似BOM - Default.xlt。找到它复制到你的工程目录或者一个固定的模板目录下再改。4.2 从 AD 自带模板改起一步步做出自己的模板具体步骤我按顺序列一遍都是实打实能跑的找到 AD 自带模板文件复制一份到工程同级的Templates文件夹重命名为BOM-Template-公司名.xlt或.xlsx。用 Excel 打开把第一行改成你想要的中文表头比如位号规格封装数量料号。注意中文表头只是显示文本真正起作用的是单元格的命名区域不要为了改表头把命名删掉。逐列检查命名区域。选中 BOM 数据区的第一行单元格看名称框里是不是Designator、Comment、Footprint这类字段名。缺哪个补哪个多的删掉。设置数据行的格式。比如料号列设为文本格式防止1E10这种被 Excel 当成科学计数法位号列设为自动换行、左对齐。在数据区上方加表头行公司名、项目名、版本、日期这些是静态文本AD 不会动它们。如果想让它们动态可以用 AD 的项目参数比如ProjectName做命名映射但这一步对新手来说可以跳过。保存为.xlt或.xlsx。注意.xltxExcel 2007 之后的模板格式在部分 AD 版本里不识别用.xls系列的兼容性最好。回到 AD 的 Bill of Materials 对话框在底部的 Export With Template 下拉里选择你的模板如果没有点旁边的浏览按钮指定文件路径然后点 Export 导出验证。导出之后打开文件重点验证三件事数据行是否从正确的行开始填充、字段是否落到了正确的列、多行数据是否自动扩展。这三件事过了模板就基本可用。注意模板里的数据区不要预先填满格式化的空行让 AD 按需扩展即可。如果预先填了 100 行边框AD 填了 20 行数据剩下的 80 行空边框也会被保留导出文件看着很怪。4.3 模板导出踩到的几个典型报错与排查模板用起来之后常见的问题其实就那几个我列一张表方便对照排查现象大概率原因处理方式导出后是空白表模板里没有命名区域或命名区域与字段名大小写不一致检查名称框字段名必须与 AD 列名完全一致只有一行数据数据区第一行之外没有可扩展空间或模板被识别成了单行确保数据区下方为空不要有合并单元格中文字段名不识别AD 只认英文内部字段名中文只做显示表头命名区域仍用英文料号列变成1E10Excel 把文本当数字模板里把该列格式设为文本导出的文件打不开模板保存格式与 AD 版本不兼容另存为.xls或.xlsx再试数量列出现小数分组键里有浮点型参数字符串被错误解析检查是否有参数值被写成数字格式这些问题的根子基本都在命名区域和单元格格式两处。我的经验是模板做好之后先导三次验证——一次小批量改几个元件参数再导一次看数据有没有更新、一次大批量用完整的板子导看行数对不对、一次换变体导如果有变体看状态列对不对。三次都过模板才算稳。4.4 不做模板的懒人方案CSV Power Query说实话如果项目节奏特别快、每个项目的 BOM 格式要求还不一样做模板的性价比不高。这时候我更倾向直接导出 CSV 裸数据然后用 Excel 的 Power Query 或者一套固定公式来做整理。基本流程是导出 CSV或者 Excel 裸数据→ 用 Power Query 导入 → 做分组聚合、位号合并、数量求和 → 输出到固定格式的工作表。Power Query 的好处是处理步骤被记录下来了下次换个项目的 CSV只需要改数据源路径点一下刷新所有整理动作自动重跑。位号合并用TEXTJOIN或者 Power Query 的分组依据里的所有行把同一组里的多个位号拼成一个字符串数量用计数行或者求和封装一致性用CONCAT生成匹配键来交叉检查。这套方案对新手更友好的一点是不需要动 AD 的模板机制所有逻辑都在 Excel 里出错了也好排查。5. 从 PCB 侧导出 BOM并和坐标文件一起交付前面说了原理图侧 BOM 是正式交付的主路径但 PCB 侧的输出同样有它的位置——尤其是当你要做板级核对、输出装配文件的时候。5.1 PCB 的 Reports » Bill of Materials 能给你什么在 PCB 编辑器里执行 Reports » Bill of Materials弹出来的对话框和原理图侧的很像但数据源完全不同。它统计的是当前 PCB 文档里实际存在的元件实例包含位号、所在层、封装、位置信息。这个输出的典型用途有三个一是核对跟原理图侧 BOM 比对看有没有元件在转 PCB 的时候掉了二是排查找那些板上不存在的料三是应急只有 PCB 文件没有原理图的时候靠它出 BOM。需要注意的是PCB 侧 BOM 的位号对多子件元件通常会合并成主位号U1 而不是 U1A数量和原理图侧可能对不上。比对的时候要把这个差异考虑进去否则会误以为数量不一致说明出问题了。5.2 位号图与 Pick and Place 坐标文件的配套输出BOM 从来不是单独交付的。给贴片厂的文件包里至少还要包含坐标文件。AD 里对应的功能是File » Assembly Outputs » Generates pick and place files不同版本菜单名可能是 Generates Pick and Place Files。生成的坐标文件一般是 CSV 格式包含这些列Designator、Comment、LayerTop/Bottom、Footprint、Mid X、Mid Y、Rotation。其中几个点需要跟贴片厂确认清楚Rotation 的基准。AD 输出的角度是基于元件封装原点的旋转角而不同贴片机的角度基准不一样有的以元件第一个脚为 0 度有的以带极性标记的一侧为 0 度。这个差异会造成极性器件贴反。第一次合作的厂建议先发一小批样品确认角度。坐标单位。AD 可以输出 mm 或 mil默认常见是 mm。确认清楚否则贴片机会偏得离谱。Mid X / Mid Y 的含义。这是元件中心坐标不是第一个焊盘坐标。有些老式贴片机需要的是引脚坐标需要预处理。Layer 列的写法。Top 和 Bottom 的写法各厂有差异导出前问一下对方习惯的形式。位号图Assembly Drawing则是在 PCB 里输出一层装配图标出每个位号的位置用于人工核对和返修定位。这个通常用 File » Smart PDF 或者 Output Job 里的装配图输出功能来做。5.3 变体Variant项目的 BOM 处理变体这个概念很多画板子的人用了好几年 AD 都没碰过但只要有同一块板两种配置的需求它就绕不开。变体在 Project » Project Options 的 Variants 标签页里定义或者在 Project » Variant Management 里管理。一个变体本质上是一组哪些元件装、哪些不装的规则集合。定义好之后你可以在同一个工程里切换不同变体PCB 视图也会实时反映出不装配的元件通常显示为灰色或带叉。导出 BOM 的时候Bill of Materials 对话框里会有变体选择项可以选主设计无变体、某个具体变体或者所有变体。选所有变体的时候AD 会为每个变体生成一份输出——这在 AD 的 OutJob 里配置起来更顺手可以一次性出全套。变体 BOM 最容易出问题的地方是数量统计。不装配的元件依然会出现在 BOM 里如果数量列没有反映 Fitted 状态采购会按全部数量下单。解决办法还是前面提的输出 Fitted 列在 Excel 里区分算。如果变体数量多建议用 OutJob 配置每个变体单独输出文件命名时带上变体名避免混淆。5.4 用 OutJob 把 BOM 输出固化成一键操作每次手动点 Reports » Bill of Materials、选模板、选路径重复劳动不说还容易忘。AD 的Output Job File.OutJob就是解决这个问题的。流程是这样File » New » Output Job File 新建一个然后在左侧的 Report Outputs 类别里添加一个 Bill of Materials 项。右键这个项可以配置使用哪个模板、输出到什么路径、文件名是什么、用哪个变体。配置完之后可以把它设成某个输出容器比如 Assembly 容器的一部分然后一键 Generate 整个容器。OutJob 真正的价值在于可版本管理。把这个文件跟工程一起提交到版本控制里任何人在任何机器上打开工程生成的 BOM 格式和内容都完全一致。团队协作的时候这一点极其重要——避免我这边导出来是对的你那边导出来怎么少了两行这种扯皮。配置 OutJob 时有两个坑要留心一是输出路径最好用相对路径用绝对路径的话换台电脑就失效二是模板文件最好也放在工程目录下一起纳入版本控制别放在个人电脑的某个角落。6. 交付前的三方对账与几个经典故障排查BOM 导出完别急着发。我给自己定了一个规矩任何一份要发出去的 BOM必须过一遍对账流程。这套流程花不了十分钟但能拦掉九成以上的返工。6.1 数量、位号、封装的三方对账法所谓三方指的是原理图、PCB、BOM 表这三份数据。核对方法是原理图 vs BOM在原理图里按 Comment 统计一遍元件总数跟 BOM 里的数量和比一遍。如果工程不大可以用 SCH List 面板导出所有元件用 Excel 的 COUNTIF 做统计。差异出现就先怀疑分组键和 Fitted 状态。PCB vs BOM用 5.1 节说的 PCB 侧导出功能比对位号集合。原理图有而 PCB 没有的位号说明元件没转过去PCB 有而原理图没有的位号说明 PCB 上有多余的东西可能是手工放的、忘了在原理图上补的。这个检查特别能抓出原理图删了但 PCB 上还在的历史遗留问题。BOM 内部一致性同一个分组的元件封装列必须是唯一的。如果某一行里位号列显示C1, C2, C3, C8而封装列出现了两种不同的封装值说明分组键没加 Footprint。这个直接用 Excel 的分列 去重计数就能查出来。对账这件事工具不重要重要的是养成不核对不发出的习惯。我见过太多因为漏了一颗 0 欧电阻导致整批板子返工的案例那颗电阻本身几毛钱返工的时间成本是几百倍。6.2 CSV 乱码、科学计数法、位号丢失的根因这三个问题各有各的根因处理方式也不一样。CSV 中文乱码AD 导出的 CSV 默认用系统 ANSI 编码简体中文环境下是 GBK而现代 Excel 或者其他工具默认按 UTF-8 打开结果中文全变成问号或者方块。解决办法有两个一是用记事本打开 CSV另存为 UTF-8 编码二是用 Excel 的数据 » 从文本/CSV导入功能手动指定编码为 936GBK。后者更可靠而且可以顺便把每一列的格式指定好。科学计数法位号里出现了类似1E10这样的字符串时Excel 会把它当成浮点数显示成1E10位号就丢了。或者料号里的纯数字串比如某些厂牌的短料号被转成了数字。根本原因是列格式没指定为文本。用从文本/CSV导入的方式在导入向导里把位号和料号两列的格式改成文本问题就解决了。模板方案里则要在模板中预设文本格式。位号丢失导出的 BOM 里位号列比预期少通常是两个原因——多子件元件的位号合并这是正常的不是丢失或者元件本身没有位号位号还是?。排查方法是在 BOM 里搜?和空值找到之后回到原理图重新标注。6.3 一份可以直接照着跑的自检清单把我日常用的检查项列出来你可以直接抄工程已 CompileMessage 面板无 Duplicate Designator 和 Missing Footprint。原理图上没有?位号所有元件已标注。所有元件的 Footprint 非空且与实物封装一致。关键元件IC、连接器、晶振、电感的 MPN 和厂商已填。BOM 对话框里未勾选只包含当前图纸的元件。分组键至少包含 Comment Footprint量产 BOM 加 MPN。输出的列里包含 Fitted 状态。虚拟元件、测试点、机械件已通过BOM_Exclude参数或其他方式排除。模板的命名区域与 AD 字段名完全一致列格式已设为文本。位号图装配图和坐标文件Pick and Place与 BOM 同批次输出版本号一致。导出文件名带项目名、版本号和日期例如项目A_Rev1.2_20240612_BOM.xlsx。这份清单看着长实际操作下来前面几项是设计阶段就该做好的真正在导出环节要花时间的只有最后三四项。把它固化到自己的项目模板里下次新项目开工时直接复用随着项目数量增加边际成本会越来越低。最后说一个我自己踩过最深的坑。有一次给一个小批量项目出 BOM分组键只用了 Comment结果板子上两种封装的 10uF 电容0603 和 0805被合并成了一行数量是两者之和。采购按总数买了 0603贴片厂上料的时候发现数量对不上只能停下来等我重新确认。那次之后我就把分组键必须含 Footprint写进了自己的检查清单里再也没出过类似的事。BOM 这东西出错的代价从来不在导出那两分钟而在事后补救的那几天。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑