贴片坐标文件(CPL):字段、旋转角与 BOM 核对清单

投 SMT 前核对贴片坐标文件(CPL/centroid):原点、几何中心 vs Pin1 坐标、零度基准、底面镜像与 BOM DNP 规则。

贴片坐标文件(CPL):字段、旋转角与 BOM 核对清单

从 EDA 导出贴片文件——也叫 CPL(Component Placement List)、centroid 文件或 XYR / .pos 文件——却不与当前 BOM 版本和装配图对账,是 NPI 组装挂起和极性件贴反最常见的原因之一。一个能被 SMT 编程软件正常导入的 CSV,照样可能把整个连接器贴偏(库原点放在 Pin 1 而非封装体中心)、把二极管和 IC 转 180°、或把标了 DNP(不贴装)的元件装上去。

元件采购与替代料审批属于 PCBA 物料清单(BOM)的范畴,而 CPL 管的是物理贴装坐标、正反面归属与吸嘴旋转角。放行前核对 CPL,需要锁定七点坐标契约,并同时做集合级 BOM 对账和视觉叠加检查。

顶视贴装核对图:原点(0,0)、贴装的 R1/R2、极性二极管 D1 负极朝向、排除的 C3 DNP

1. 七点坐标与方向契约

SMT 贴片机不读原理图符号——它驱动真空吸嘴到达相对板基准点的数值 (X, Y) 偏移,再把吸嘴相对元件编带口袋方向旋转 θ 度。导出贴片文件前(如 KiCad 9.0 的 File → Fabrication Outputs → Component Placement,或 Altium 的 Generates Pick and Place Files),核对这七项:

CPL 参数 导出必须明确的约定 常见工程错误 投板前核查
1. 参考原点 (0,0) 统一基准(通常板轮廓左下角,或专用 Drill/Place File Origin),与 Gerber/钻孔文件一致 CPL 用页面绝对原点而 Gerber 用辅助钻孔原点,全板元件整体偏移 把 CPL 质心叠加到顶/底锡膏层 Gerber 上,核对基准点坐标(FID1–FID3)
2. 单位与精度 明确 mm(推荐,保留 3–4 位小数)或 mil/inch 表头 单位未标注或取整,使 0.35--0.40 mm 间距 BGA 和 0201 偏离中心 核对最大 (X, Y) 值与物理板轮廓尺寸一致
3. 质心参考点 元件体几何中心(吸嘴拾取的重心),不是 Pin 1 连接器、屏蔽罩、DPAK/SOT 自定义封装原点留在 Pin 1,导致吸嘴拾取失败或偏离焊盘 在锡膏层质心叠加图上逐一目检不对称连接器、电感、多针排针
4. 正反面(Top/Bottom) 明确的面别标志(Top/Bottom 或 T/B),或分面文件 底面去耦电容或插件件被错标成 Top 顶/底元件数量与顶/底锡膏层开口数对账
5. 底面 X 约定 明确底面 X 坐标是俯视穿透板子看还是水平镜像(Negate bottom X) CAD 已镜像导出,工程师又在 Excel 里手动取负一次,整个底面被翻转 用一个不对称偏心底面元件对照底面锡膏 Gerber 视图核对
6. 旋转角(θ) 从库零度方向到贴装方向的逆时针角度(0°--360°) 库封装按 90° 或 180° 绘制,与 IPC-7351 / EIA-481 编带标准不一致,极性件反贴 拿装配图上的 Pin 1 / 负极标记,对照实际封装逐个核对
7. 贴装范围与 DNP 明确 DNP/DNI 封装、基准点、测试点是从 CPL 剔除还是在状态列标记 CAD 把不贴装封装也导进 CPL——Exclude from position files 或 DNP 过滤没勾 把展开 BOM 的 Fit 位号集合与 CPL 位号集合做对账

2. 对账实战:一次抓出三种经典 CPL 错误

下载我们的自包含对账练习包,看集合核对如何与视觉极性验证配合。示例板 TRAIN-C / Variant A(30.0 × 13.0 mm,仅顶面 SMT,原点左下角,DNP 从 CPL 剔除,二极管 D1 约定 0° 时负极标记朝左):

第一步:用 BOM 核对来料 CPL(cpl-bad.csv)

bom.csv 里三个 SMT 件标 Fit(R1、R2、D1),一个电容标 DNP(C3)。把来料 cpl-bad.csv 与 assembly-drawing.svg 对照,会查出三种如果不修必然导致装配失败的错误:

cpl-bad.csv 中发现的问题 错误类型 CAD 流程里怎么产生的 cpl-good.csv 中的修法
R2 整个缺失(只有 R1、D1、C3) 漏掉应贴元件(missing:R2) 封装在库属性里误勾了 "Exclude from position files" 或 "Virtual/Mechanical" 取消排除标记,恢复 R2 于 (14, 8), Top, 0°
C3 出现在 (22, 8), Top, 0° DNP 被误纳入(unexpected:C3) 设计师在自定义文本字段写了 DNP,而非 CAD 原生 DNP 属性;或导出时没开 "Exclude DNP footprints" 启用原生 DNP 排除过滤,把 C3 移出贴装集合
D1 的 Rotation_deg = 180((18, 8) 处) 极性反贴(orientation:D1) 库封装 0° 时负极画在右侧,与装配图"0° = 负极朝左"的契约相反 旋转角改回 0°(cpl-good.csv),实物负极位置对照丝印/装配图复核

第二步:跑验证脚本并理解它的边界

在资产目录运行 python verify.py,会把两份 CPL 与期望贴装集合({R1, R2, D1})比对,检查重复位号行,并验证 D1 的方向契约:

{"file": "cpl-bad.csv", "errors": ["missing:R2", "unexpected:C3", "orientation:D1"], "count": 3}
{"file": "cpl-good.csv", "errors": [], "count": 0}

注意集合对账与几何验证之间的工程边界:

  • 脚本比对 BOM 和 CPL 两张表,能立刻抓住漏位号(R2)、多出 DNP 位号(C3) 和重复行(记得先把合并 BOM 行如 R1, R2, R5 展开成单个位号再对账,别拿原始表行数比)。
  • 但表格脚本不可能知道 180° 对 D1 是反的——必须先由人或 CAM 光学系统从装配图、Gerber 铜/膏层和元件手册建立物理方向规则。

3. 为什么光有 (X, Y) 坐标确立不了方向

即使元件的 (X, Y) 质心正好落在两个铜焊盘正中,90° 或 180° 的旋转错误在三个独立参照对齐之前是看不见的:

  1. 元件手册与 EIA-481 编带标准: 规定实物元件在料带口袋内相对送料孔的摆放方向(拾取角 0°)。
  2. CAD 封装库的零度方向(0°): IPC-7351 下,零度可按 Level A(IC 的 Pin 1 在左上、二极管负极朝左)或 Level B(Pin 1 在左下);第三方库(SnapEDA、Ultra Librarian、SamacSys 或历史自建库)常常在同一块板上混用两套约定。
  3. 装配图的极性标记: 在元件体外轮廓上给出清晰标记——Pin 1 圆点、二极管负极杠(|◀)、极性电容 +、连接器定位缺口——画在不被元件本体遮住的位置,贴装后 AOI 才检得到。

表格修改的经验法则: 不要在 Excel 里给整列旋转角统一加 +90° 或 +180°——除非你清楚组装厂的 SMT 编程软件(Valor、Unicam、Fuji Flexa、Yamaha YSUP 等)如何把 CAD 库的 0° 映射到飞达料带方向。正确做法是在装配图上把极性和不对称件族——二极管、LED、钽/电解电容、BGA/QFN/QFP、SOT-23/SOT-89、指向性传感器/麦克风——标出来,并要求做首件目检(FAI)叠加签核。

4. CPL 导入系统性异常的诊断

组装厂在 CAM 预检中把你的 CPL 叠加到 Gerber 锡膏层时,视觉异常形态直接指向根因:

CAM 叠加中的视觉异常 导出/导入侧根因 正确修法
全板元件统一偏移同一 (Δ X, Δ Y) 矢量 CPL 导出原点与 Gerber/钻孔导出原点不一致 用同一个 Drill/Place File Origin 重出 CPL 和 Gerber(或统一对齐板轮廓左下角 + FID1)
元件位置相对 (0,0) 整体放大/缩小 25.4× 或 0.03937× 单位错配(mil vs mm)或导入时套了比例因子 文件头明确单位(mm),按 1:1 重新导入
顶面全对,底面元件左右镜像翻转 CAD Negate bottom X 导出设置与 CAM 底面镜像变换叠加冲突 与 CAM 确认底面坐标要"俯视穿透"还是"X 镜像";只在 CAD 或 CAM 一侧切换一次,不可两边都改
片式件质心正常,连接器/电感偏到 Pin 1 上 库封装参考点建在 Pin 1 而非几何体中心 封装拾取原点移到封装体中心(或由 CAM 把拾取质心吸附到焊盘组外接框中心)
某个 IC 封装族(如所有 SOIC-8)整体转 90° 库封装 0° 竖画,而 SMT 飞达料库按横向 0° 定义 在 SMT 机台料库里按装配图 Pin 1 点校正封装旋转偏移

5. 提交同步的 PCBA 投板包

为避免 NPI 工程问询和元件极性/版本错误,PCB 组装或一站式 PCBA询价包应打包以下同步文件(采购细节另见 BOM 查错指南):

  1. 质心/贴片文件(.csv 或 .pos)或智能 ODB++ / IPC-2581 包: 含 Designator、Mid X (mm)、Mid Y (mm)、Layer/Side(Top/Bottom)、Rotation (deg)、Package/Footprint、Comment/Value。
  2. 带版本与 DNP 列的同步 BOM: BOM 中每个标 Fit 的 SMT 件在 CPL 恰好出现一次;每个 DNP 件清晰标记。
  3. 彩色 PDF 装配图(顶/底视): 标位号、元件轮廓、Pin 1 点、二极管负极杠和 (0,0) 坐标原点。
  4. Gerber 锡膏与铜层(GTP/GBP、GTL/GBL): 供 CAM 自动做质心-膏盘叠加,先于钢网切割和 SMT 程序编制。

HILPCB 的 SMT 贴装与 PCB 组装工程团队对每份来料执行自动 BOM-CPL-Gerber 质心叠加检查——在上任何一颗料之前核对封装体中心、Pin 1/负极极性与元件手册、DNP 排除,再以 3D AOI 和首件检验(FAI)收口。提交报价上传 Gerber、BOM、CPL,完整包通常 2 小时内返回 DFM/DFA 审核。

常见问题

为什么我的 CPL 行数比 BOM 总数量少?

先查 BOM 是否把多个位号合并成一行(如 Qty 4: C1, C2, C3, C4 是 1 行 BOM、4 行 CPL)。再把 BOM 展开成单位号后减去被排除的项:DNP 件、机械件(螺丝、螺柱、散热器)、裸板特征(基准点、测试点、安装孔),以及手工焊接的线束——这些都不走自动贴片机。

DNP(不贴装)元件该不该放进贴片文件?

两种约定都可以,只要一致且明确——不过从机器贴装文件里剔除 DNP(或导出与 BOM 完全一致的 Fitted/DNP 状态列)最稳妥。最危险的错误是在 BOM 备注里随手标 DNP,而 CPL 里它仍是一条正常贴装行、没有任何 DNP 标志。

封装的 Pin 1 原点和贴片质心有什么区别?

建库时工程师有时把 (0,0) 原点放在 Pin 1 方便焊盘坐标计算。但 SMT 吸嘴必须在**几何体中心(重心)**拾取元件,否则高速移动中元件会倾斜掉落。现代 EDA(KiCad、Altium)会按焊盘/丝印框计算中心或使用专用 Component Center 属性导出 CPL——不对称连接器和电感务必人工核对。

用了 Gerber X3 或 ODB++ 还需要单独的 CPL 文件吗?

ODB++、IPC-2581、Gerber X3 都把元件质心、轮廓、Pin 1 和 BOM 属性直接嵌进制造/组装数据集,能大幅减少原点和镜像错配。但即使用 ODB++ 或 IPC-2581,仍应提供受控 BOM(含批准 MPN 和 DNP 版本标记)和 PDF 装配图,用于首件检验时核对二极管/IC 极性。