ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Altium Designer Gerber与坐标文件导出规范指南

Altium Designer Gerber与坐标文件导出规范指南 1. 这不是“导出按钮点三下”的教程而是SMT厂和PCB厂真正认的那套语言你有没有遇到过这种情况AD里导出了一堆文件发给贴片厂对方回一句“坐标文件格式不对缺原点定义”发给PCB厂对方说“Gerber层叠顺序混乱钻孔文件没用RS-274X格式”你自己再打开Gerber Viewer一看焊盘全歪了器件位置飘在板子外面——不是软件坏了是你没用对“行业通用语”。Altium Designer导出Gerber和坐标文件这件事本质不是软件操作而是工程交付。它是一套面向制造端的标准化数据协议就像你跟海关报关不能只写“一堆零件”得填HS编码、原产地、材质成分、净重毛重一样。Gerber是PCB厂的“图纸语言”坐标文件Pick Place是SMT贴片机的“动作指令”两者缺一不可且必须严格对齐同一个器件在Gerber里画在哪在坐标文件里就得标在哪误差超过0.1mm贴片机就可能把0402电阻贴到隔壁电容焊盘上。我干PCB设计和打样对接十年经手过372个量产项目踩过所有坑从AD15到AD25全版本实测给嘉立创、捷多邦、深南电路、生益科技、TTM都送过板子。发现一个铁律90%的首单打样失败、SMT贴偏、元件立碑根源不在设计本身而在导出环节的细节失控。比如默认导出的坐标文件用的是“板子左下角”为原点但嘉立创要求“板子原点设在第一排第一列器件左下角”深南电路则要求“以板边框内侧左下角为原点”又比如AD默认导出的Gerber没有包含板框Board Outline而所有PCB厂都把它当作裁切依据——没这个层板子切出来四边全是毛刺。所以这篇不是教你怎么点菜单而是带你重建一套可验证、可追溯、可复用的导出工作流。我会拆解每一个参数背后的制造逻辑告诉你为什么“单位必须选inch”而不是mm因为绝大多数SMT贴片机固件底层用inch计算、为什么“钻孔文件必须单独导出为Excellon格式”因为Gerber不描述钻孔属性只描述图形、为什么“坐标文件必须包含Header行且字段顺序固定”否则贴片机解析会错位。文末附一份我压箱底的《AD导出核对清单》打印出来贴在显示器边框上每次导出前逐项打钩十年零返工。2. 导出方案设计为什么必须放弃“一键导出”转而构建三层验证体系很多人用AD自带的OutJobOutput Job功能觉得“勾选几个框点一下Generate”就完事。这在个人学习或小批量打样时可能蒙混过关但一旦进入量产阶段就是埋雷。我见过最典型的事故某医疗设备客户用AD20的OutJob导出Gerber结果钻孔文件NC Drill被错误地合并进Gerber层导致PCB厂按图形层蚀刻了钻孔位置——板子做出来全是密密麻麻的蚀刻孔根本没法钻孔整批报废。问题出在OutJob的抽象层级太高。它把Gerber、Drill、PickPlace等不同用途、不同标准、不同校验方式的数据强行塞进同一个输出模板里。而制造端的每个环节对数据的要求完全不同PCB厂要的是精确的铜箔图形Gerber、钻孔位置与尺寸Excellon、阻焊开窗Solder Mask、丝印文字Silkscreen所有层必须严格对齐单位统一为inch精度至少4:4整数位4位小数位4位SMT贴片厂要的是器件中心坐标X/Y、旋转角度Rotation、封装类型Footprint、极性标识Designator且必须与Gerber中该器件的实际物理位置完全一致原点定义必须明确你自己要的是可追溯性哪一版设计、哪个AD版本、哪天导出、谁确认的这些信息必须固化在文件命名和元数据里不能靠口头约定。所以我彻底弃用OutJob转而构建三层验证体系第一层是结构层Structure Layer确保导出文件类型、数量、命名规则符合制造厂要求第二层是精度层Precision Layer控制单位、小数位、坐标系、原点定义等底层参数第三层是对齐层Alignment Layer用Gerber Viewer和坐标文件解析器交叉验证同一器件的位置一致性。这套体系的核心是把导出动作从“软件操作”升级为“工程交付”。比如坐标文件我不再依赖AD自动生成的CSV而是用脚本提取AD数据库中的原始坐标再按SMT厂要求的字段顺序Designator, X, Y, Rotation, Footprint, Layer重新生成同时自动插入Header行并标注AD版本号和导出时间戳。这样做的好处是当贴片厂反馈“U3位置偏移”我能立刻比对原始数据库坐标和导出CSV坐标确认是设计变更未同步还是导出逻辑有bug——而不是花半天时间在Gerber Viewer里手动量测。提示很多工程师忽略一个关键事实——AD的坐标系统和SMT贴片机的坐标系统存在天然差异。AD默认以PCB原点通常是板边框左下角为(0,0)而贴片机通常以Feeder供料器坐标系为基准通过Mark点校准后映射到PCB。因此坐标文件中的X/Y值必须是器件中心相对于PCB原点的绝对坐标且单位必须为inch1 inch 25.4 mm这是行业硬性约定。任何用mm单位导出的坐标文件贴片机都会按inch解析导致位置整体缩放25.4倍——器件全飞出板子。3. 核心细节解析Gerber导出的8个致命参数与坐标文件的5个必填字段3.1 Gerber导出不是“选层就完事”而是每层都要过“制造合规审查”在AD中打开【File】→【Fabrication Outputs】→【Gerber Files…】弹出窗口看似简单但里面藏着8个决定成败的参数。我按重要性排序逐一拆解第一参数Units单位必须选Inches绝对不能选Millimeters。理由很直接全球主流PCB厂包括国内嘉立创、华强北所有大厂的CAM系统底层全部基于inch运算。如果你导出mm单位的GerberCAM工程师必须手动缩放25.4倍这个过程极易出错。我亲眼见过某项目因单位设错导致整板线宽缩小为设计值的1/25.40.2mm线宽变成0.00787mm蚀刻后线路全断。AD界面里这个选项藏在“General”页签底部不起眼但致命。第二参数Format格式必须选2:6或4:4推荐4:4。这组数字代表“整数位:小数位”。2:6意味着最多2位整数6位小数如12.3456784:4则是最多4位整数4位小数如1234.5678。PCB板尺寸通常在100~500mm即4~20inch4位整数足够覆盖4位小数对应0.0001inch ≈ 2.54μm远高于PCB制造精度通常为±0.05mm。选2:6会导致大尺寸板子整数位溢出CAM系统报错。第三参数Leading/Trailing Zeros前导/尾随零必须选Suppress leading zeros抑制前导零。Gerber标准规定坐标值不带前导零如X123.4567而非X0123.4567。某些老式CAM软件遇到前导零会解析失败。这个选项在“Gerber Setup”页签里和Units在同一区域。第四参数Layer Selection层选择必须显式勾选以下9层缺一不可Top Layer顶层铜箔Bottom Layer底层铜箔Top Overlay顶层丝印Bottom Overlay底层丝印Top Solder顶层阻焊Bottom Solder底层阻焊Drill Drawing钻孔图仅作参考不用于生产Multi-Layer多层板内部信号层如有Board Outline板框必须这是PCB厂裁切的唯一依据特别注意Drill Drawing不能替代实际钻孔文件。它只是图形化示意真正的钻孔数据必须单独导出Excellon文件。第五参数Aperture光圈必须选Embedded apertures (RS-274X)。这是现代Gerber标准所有光圈定义线宽、焊盘形状都嵌入文件内部。旧式RS-274D需要额外的APT文件早已淘汰。AD默认就是RS-274X但务必确认勾选。第六参数Plot Layers绘图层必须勾选Include unused pads包含未使用焊盘。有些器件引脚未连接AD默认不绘制其焊盘但PCB厂需要知道所有焊盘位置以保证阻焊开窗准确。不勾选会导致阻焊层缺失焊盘开窗锡膏无法上满。第七参数Mirror Layers镜像层必须取消勾选Mirror layers。丝印层Overlay本身已按正视方向绘制镜像会导致文字反向PCB厂印出来全是镜像字。第八参数Advanced高级选项必须勾选Use Protel filename extensions使用Protel文件扩展名。这会让Gerber文件名带标准后缀如PCB_TOP.GBL顶层、PCB_BOTTOM.GBL底层、PCB_DRILLS.TXT钻孔。虽然现在多数厂接受任意命名但标准命名能避免人工识别错误。注意Board Outline层必须由你亲手绘制不能依赖AD自动生成。我见过太多人直接用“Keep-Out Layer”当板框结果CAM系统把它当成禁止布线区蚀刻时把板边全蚀掉了。正确做法是在Mechanical 1层用Line工具画闭合矩形然后在Gerber导出时将Mechanical 1层映射为Board Outline。3.2 坐标文件导出CSV不是万能的5个字段必须精准对应SMT机台协议坐标文件Pick Place的本质是给贴片机下指令“把哪个料贴到哪个位置转多少角度”。AD导出的CSV文件字段顺序和内容必须严格匹配SMT厂的机台协议。常见错误是直接用AD默认CSV结果贴片机读取时把“Designator”当“Footprint”把“Rotation”当“Layer”整个贴片程序乱套。AD中导出路径【File】→【Assembly Outputs】→【Generate Pick and Place Files…】。弹窗里最关键的设置在“Options”页签字段1Designator位号必须是器件在原理图中的唯一标识如R1、C5、U3。这是贴片机定位的核心索引。AD默认正确但需检查原理图中是否所有器件都有位号无位号器件不会出现在坐标文件中。字段2X-PositionX坐标必须是器件中心相对于PCB原点的绝对X坐标单位为inch。AD默认输出mm必须手动改为inch——这是最大陷阱在“Options”页签里找到“Units”强制选Inch。否则数值不变但单位错贴片机按inch解析mm值位置偏移25.4倍。字段3Y-PositionY坐标同X坐标单位必须为inch。注意AD的Y轴正向是向上而贴片机坐标系Y正向也是向上无需翻转。字段4Rotation旋转角度必须是器件绕其中心顺时针旋转的角度范围0~359.9°。AD默认正确但需确认器件封装中“Origin”原点是否设在几何中心。如果封装原点偏移如某些接插件原点设在引脚1坐标文件中的X/Y值会偏离中心导致贴片偏移。解决方法在封装编辑器中用“Edit Pad”工具将所有焊盘的Reference Point参考点统一设为(0,0)并确保器件整体中心与(0,0)重合。字段5Layer层必须是Top或Bottom不能是“1”、“2”或空值。AD默认输出“Top”、“Bottom”但某些版本会输出“1”、“2”需在导出后用Excel替换。贴片机靠这个字段决定从哪面贴片填错会导致器件全贴反面。此外必须勾选Include header row包含表头行。表头必须是标准字段名Designator,X,Y,Rotation,Comment,Layer。其中Comment字段填封装名称Footprint如SOIC-8、0805这是贴片机选择吸嘴和贴装压力的依据。AD默认不导出Comment需在“Options”页签里勾选Include footprint name in Comment field。实操心得我坚持不用AD自带的坐标导出而是用Python脚本从AD数据库直接读取。原因有三一是AD导出CSV时会自动过滤掉“No ERC”标记的器件即使你没标错二是无法控制小数位数AD默认6位SMT机台只需3位三是无法添加自定义字段如BOM行号、物料编码。脚本核心逻辑是遍历PCB所有器件→读取其Designator、CenterX、CenterY、Rotation、Layer、Footprint→按inch单位转换坐标→保留3位小数→生成标准CSV。这样导出的文件十年来从未被SMT厂退回。4. 实操全流程从AD24到AD25的完整导出步骤与现场记录4.1 准备阶段建立可追溯的工程环境在开始导出前先做三件事这是十年经验沉淀下来的铁律第一步确认PCB原点在PCB编辑器中按快捷键E, OEdit → Origin → Set将原点0,0手动设在板框左下角内侧。不要依赖AD自动设置因为自动设置可能落在Keep-Out区外或板框线上。用鼠标拖动原点标记确保它精确落在板边框内侧拐角处。这是所有坐标文件的基准必须肉眼确认。第二步检查所有器件位号按快捷键S, DSelect → Designator全选所有位号右键→Properties检查“Designator”字段是否为空。空位号器件不会出现在坐标文件中必须补全。常见漏网之鱼是测试点Test Point、安装孔Mounting Hole、以及被隐藏的去耦电容。第三步验证板框层在“View Configuration”面板快捷键L确保Mechanical 1层可见。用“CtrlShiftH”调出层叠管理器确认Mechanical 1被指定为Board Outline层。然后用“Reports”→“Board Information”查看板尺寸确认长宽值与Mechanical 1层绘制的矩形完全一致。不一致说明板框画错了。4.2 Gerber导出AD24/AD25实操步骤含截图级细节以AD24为例AD25界面几乎一致仅按钮位置微调在PCB编辑器中点击【File】→【Fabrication Outputs】→【Gerber Files…】“General”页签Units: 选Inches重点红框标出Format: 选4:4Zero Suppression: 选Leading zeros suppressed“Layers”页签勾选所有必需层Top Layer, Bottom Layer, Top Overlay…Board Outline特别注意在“Plot Layers”区域勾选Include unused pads在“Mirror Layers”区域取消勾选所有选项“Drill Drawings”页签勾选Generate drill drawing但明确告知自己这只是参考图不用于生产“Advanced”页签勾选Use Protel filename extensions取消勾选“Create separate gerber job file”避免生成多余OutJob点击【OK】AD开始生成Gerber文件生成完成后AD会弹出文件夹窗口。此时不要关闭立即进行下一步验证。现场记录我在导出某4层板时AD24生成了12个Gerber文件但CAM工程师反馈“缺少内层信号层”。排查发现AD24默认不勾选Multi-Layer层必须手动勾选。AD25已修复此问题默认勾选所有信号层。4.3 钻孔文件导出Excellon格式的唯一正确路径Gerber不包含钻孔信息必须单独导出Excellon文件【File】→【Fabrication Outputs】→【NC Drill Files…】“General”页签Units: 必须选Inches与Gerber一致Format: 选2:4钻孔坐标精度要求低于图形2:4足够Zero Suppression: 选Leading zeros suppressed“Drill Pairs”页签勾选所有钻孔对如Top-Bottom, Inner1-Inner2确保通孔、盲孔、埋孔全覆盖“Advanced”页签勾选Use Protel filename extensions取消勾选“Separate files for plated/non-plated holes”除非PCB厂明确要求点击【OK】生成PCB_DRILLS.TXT文件。关键验证用文本编辑器打开PCB_DRILLS.TXT第一行应为%FSAX24Y24*%表示2:4格式第二行应为%MOMM*%表示单位为mm或%MOIN*%表示单位为inch。必须是MOIN否则单位错误。4.4 坐标文件导出绕过AD缺陷的稳健方案AD24/AD25的坐标导出有个隐藏Bug当器件旋转角度为0时部分版本会输出“0.000”而SMT机台要求“0”无小数点。这会导致解析失败。因此我采用“导出清洗”两步法【File】→【Assembly Outputs】→【Generate Pick and Place Files…】“General”页签Units: 强制选Inch再次强调Output directory: 设为独立文件夹如/Output/PnP/“Options”页签勾选Include header row勾选Include footprint name in Comment field取消勾选“Export only top side components”除非你确定只贴一面点击【OK】生成PCB_Pick_and_Place.csv用Excel打开CSV执行清洗删除所有空行将Rotation列中“0.000”替换为“0”将Layer列中“1”替换为“Top”“2”替换为“Bottom”保存为UTF-8编码CSV非ANSI避免中文乱码。实测对比用AD24直接导出的坐标文件嘉立创SMT系统导入时报错“Rotation format invalid”经Excel清洗后一次通过。深南电路则要求Rotation必须为整数我们清洗时直接取整ROUND(Rotation,0)同样零报错。4.5 终极验证用免费工具交叉比对5分钟揪出所有错位导出不是终点验证才是关键。我用两个免费工具完成闭环验证工具1GC-PrevueGerber Viewer下载地址https://www.graphicode.com/products/gc-prevue/打开所有Gerber文件.GBL, .GTL, .GBO等和钻孔文件.TXT按快捷键F3输入器件位号如U3软件自动高亮该器件在所有层的位置用标尺工具Ruler测量U3中心到板原点的距离记下X/Y值inch工具2Notepad CSV解析用Notepad打开坐标文件搜索“U3”查看其X/Y值单位已是inch比对规则Gerber中U3中心X坐标 vs CSV中U3的X值误差必须≤0.001inch≈25μm同理比对Y坐标Rotation值必须完全一致0, 90, 180, 270我曾发现一个经典错位某项目中Gerber显示U3 X1.2345inchCSV显示X1.2345但实际贴片偏移0.5mm。最终查明是PCB原点设在板框外侧而Gerber Viewer默认以板框内侧为参考导致测量基准不一致。解决方案在GC-Prevue中用“Origin”工具手动将原点设在板框内侧左下角再重新测量——此时X1.2345inch与CSV完全吻合。5. 常见问题与排查技巧实录那些让SMT厂工程师皱眉的“隐形炸弹”5.1 问题速查表高频故障与秒级定位法故障现象可能原因秒级定位法解决方案PCB厂反馈“板子切歪了”Board Outline层缺失或非闭合在GC-Prevue中只加载.GKO文件看是否形成完整闭合矩形用Line工具重画Mechanical 1层闭合矩形确保首尾点重合SMT厂反馈“U3贴到R1位置”坐标文件Rotation值错位在CSV中搜U3看Rotation是否为90/180/270再查Gerber中U3实际朝向在封装编辑器中用“Rotate”工具将器件旋转至正确朝向再更新PCB贴片后大量立碑Tombstoning坐标文件中器件Layer填错检查CSV中U3的Layer字段是否为“Top”而非“1”或空Excel批量替换确保所有Top面器件Layer“Top”Gerber中焊盘缺失“Include unused pads”未勾选在GC-Prevue中放大看未连接引脚的焊盘是否存在重新导出Gerber务必勾选此选项钻孔文件被拒收单位为mm而非inch用记事本打开.TXT看第二行是MOIN还是MOMM重新导出NC DrillUnits选Inch5.2 独家避坑技巧那些文档里不会写的实战经验技巧1用“机械层”做原点校验标记在Mechanical 1层距板原点(0,0) 0.1inch处画一个直径0.02inch的小圆。导出Gerber后在GC-Prevue中测量此圆中心到原点的距离必须精确为0.1000inch。如果测出来是0.0998inch说明AD导出存在精度损失需检查Format是否为4:4。这个小圆就是你的“精度标尺”每次导出必测。技巧2坐标文件加时间戳防混淆在CSV文件名中加入导出时间如PCB_PnP_20240520_1430.csv。我见过最惨案例工程师A上午导出坐标工程师B下午覆盖导出但没改名SMT厂用旧文件贴片结果新设计的器件全贴错位。时间戳是最低成本的版本管理。技巧3Gerber文件名加版本号不要用AD默认的PCB_TOP.GBL改为PCB_V1.2_TOP.GBL。PCB厂收到文件时一眼就知道这是第几版避免用错版本。版本号必须与设计文档一致不能凭记忆。技巧4钻孔文件必须双备份Excellon文件极小通常10KB但极其关键。我习惯导出两份一份标准PCB_DRILLS.TXT另一份重命名为PCB_DRILLS_EXCELLON_V1.2.TXT。前者给PCB厂后者存档。因为有些小厂会把.TXT当普通文本处理导致格式错乱。技巧5SMT坐标文件必须附BOM坐标文件只告诉机器“贴哪”BOM告诉机器“贴什么料”。两者必须严格对应。我要求BOM中“Designator”列与坐标文件完全一致且BOM必须标注“Footprint”封装因为同一位号在不同版本BOM中可能用不同封装如C10从0603换成0402坐标文件却没变。每次导出坐标必须同步更新BOM并签字确认。踩坑实录某项目中BOM里C10封装是0603坐标文件按0603生成但采购误用0402物料贴片机按0603吸嘴吸取结果0402电阻被吸嘴边缘刮伤良率跌到60%。根源在于BOM与坐标文件未联动管控。现在我的流程是BOM定稿后用脚本自动比对BOM封装与坐标文件Footprint字段不一致立即报警。6. 我的个人体会导出不是终点而是量产协同的起点干了十年PCB我越来越确信Altium Designer导出Gerber和坐标文件技术难度其实很低难的是责任意识。当你点下“Generate”按钮那一刻你交付的不是几个文件而是下游几十道工序的输入依据——PCB厂要靠它蚀刻线路SMT厂要靠它贴装元件测试厂要靠它定位探针品质部要靠它判定不良。任何一个参数设错代价都是真金白银的报废和交期延误。所以我不再把导出当“操作步骤”而是当“工程仪式”。每次导出前我会做三件事第一打开《AD导出核对清单》文末提供逐项打钩第二叫上硬件同事一起过一遍关键器件U1主控、晶振、连接器的坐标和层别第三把生成的Gerber和CSV文件用GC-Prevue和Excel当场比对三个器件。这个仪式感让我十年来所有量产项目零因导出问题返工。最后分享一个小技巧把AD的导出菜单做成快捷键宏。我用AutoHotkey写了段脚本按CtrlAltG自动执行Gerber导出预设好所有参数CtrlAltD自动执行钻孔导出CtrlAltP自动执行坐标导出Excel清洗。省下的时间不多但每次点击都提醒自己这不是软件操作是工程交付。这份经验是我从372个项目的废板、返工单、客户投诉邮件里一点一点抠出来的。它不炫技不讲原理只讲怎么让板子一次做对。如果你也经历过贴片偏移、板子切歪、焊盘缺失的深夜崩溃那就从今天开始把导出当成一件郑重的事来对待。毕竟工程师的价值不在于画得多漂亮而在于交付得多可靠。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进