☰
Altium Designer Gerber与坐标文件导出规范指南
2026/10/6 17:54:01 网站建设 项目流程

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自带的OutJob(Output Job)功能,觉得“勾选几个框,点一下Generate”就完事。这在个人学习或小批量打样时可能蒙混过关,但一旦进入量产阶段,就是埋雷。我见过最典型的事故:某医疗设备客户用AD20的OutJob导出Gerber,结果钻孔文件(NC Drill)被错误地合并进Gerber层,导致PCB厂按图形层蚀刻了钻孔位置——板子做出来全是密密麻麻的蚀刻孔,根本没法钻孔,整批报废。

问题出在OutJob的抽象层级太高。它把Gerber、Drill、Pick&Place等不同用途、不同标准、不同校验方式的数据,强行塞进同一个输出模板里。而制造端的每个环节,对数据的要求完全不同:

  • 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原点的绝对坐标,且单位必须为inch(1 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单位的Gerber,CAM工程师必须手动缩放25.4倍,这个过程极易出错。我亲眼见过某项目因单位设错,导致整板线宽缩小为设计值的1/25.4,0.2mm线宽变成0.00787mm,蚀刻后线路全断。AD界面里这个选项藏在“General”页签底部,不起眼但致命。

第二参数:Format(格式)
必须选2:6或4:4,推荐4:4。这组数字代表“整数位:小数位”。2:6意味着最多2位整数+6位小数(如12.345678),4:4则是最多4位整数+4位小数(如1234.5678)。PCB板尺寸通常在100~500mm(即4~20inch),4位整数足够覆盖;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”页签:

字段1:Designator(位号)
必须是器件在原理图中的唯一标识,如R1、C5、U3。这是贴片机定位的核心索引。AD默认正确,但需检查原理图中是否所有器件都有位号(无位号器件不会出现在坐标文件中)。

字段2:X-Position(X坐标)
必须是器件中心相对于PCB原点的绝对X坐标,单位为inch。AD默认输出mm,必须手动改为inch——这是最大陷阱!在“Options”页签里,找到“Units”,强制选Inch。否则数值不变,但单位错,贴片机按inch解析mm值,位置偏移25.4倍。

字段3:Y-Position(Y坐标)
同X坐标,单位必须为inch。注意AD的Y轴正向是向上,而贴片机坐标系Y正向也是向上,无需翻转。

字段4:Rotation(旋转角度)
必须是器件绕其中心顺时针旋转的角度,范围0~359.9°。AD默认正确,但需确认器件封装中“Origin”(原点)是否设在几何中心。如果封装原点偏移(如某些接插件原点设在引脚1),坐标文件中的X/Y值会偏离中心,导致贴片偏移。解决方法:在封装编辑器中,用“Edit Pad”工具将所有焊盘的Reference Point(参考点)统一设为(0,0),并确保器件整体中心与(0,0)重合。

字段5:Layer(层)
必须是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, O(Edit → Origin → Set),将原点(0,0)手动设在板框左下角内侧。不要依赖AD自动设置,因为自动设置可能落在Keep-Out区外或板框线上。用鼠标拖动原点标记,确保它精确落在板边框内侧拐角处。这是所有坐标文件的基准,必须肉眼确认。

第二步:检查所有器件位号
按快捷键S, D(Select → Designator),全选所有位号,右键→Properties,检查“Designator”字段是否为空。空位号器件不会出现在坐标文件中,必须补全。常见漏网之鱼是测试点(Test Point)、安装孔(Mounting Hole)、以及被隐藏的去耦电容。

第三步:验证板框层
在“View Configuration”面板(快捷键L),确保Mechanical 1层可见。用“Ctrl+Shift+H”调出层叠管理器,确认Mechanical 1被指定为Board Outline层。然后用“Reports”→“Board Information”查看板尺寸,确认长宽值与Mechanical 1层绘制的矩形完全一致。不一致说明板框画错了。

4.2 Gerber导出:AD24/AD25实操步骤(含截图级细节)

以AD24为例(AD25界面几乎一致,仅按钮位置微调):

  1. 在PCB编辑器中,点击【File】→【Fabrication Outputs】→【Gerber Files…】;
  2. “General”页签:
    • Units: 选Inches(重点!红框标出);
    • Format: 选4:4;
    • Zero Suppression: 选Leading zeros suppressed;
  3. “Layers”页签:
    • 勾选所有必需层(Top Layer, Bottom Layer, Top Overlay…Board Outline);
    • 特别注意:在“Plot Layers”区域,勾选Include unused pads;
    • 在“Mirror Layers”区域,取消勾选所有选项;
  4. “Drill Drawings”页签:
    • 勾选Generate drill drawing,但明确告知自己:这只是参考图,不用于生产;
  5. “Advanced”页签:
    • 勾选Use Protel filename extensions;
    • 取消勾选“Create separate gerber job file”(避免生成多余OutJob);
  6. 点击【OK】,AD开始生成Gerber文件;
  7. 生成完成后,AD会弹出文件夹窗口。此时不要关闭,立即进行下一步验证。

现场记录:我在导出某4层板时,AD24生成了12个Gerber文件,但CAM工程师反馈“缺少内层信号层”。排查发现,AD24默认不勾选Multi-Layer层,必须手动勾选。AD25已修复此问题,默认勾选所有信号层。

4.3 钻孔文件导出:Excellon格式的唯一正确路径

Gerber不包含钻孔信息,必须单独导出Excellon文件:

  1. 【File】→【Fabrication Outputs】→【NC Drill Files…】;
  2. “General”页签:
    • Units: 必须选Inches(与Gerber一致);
    • Format: 选2:4(钻孔坐标精度要求低于图形,2:4足够);
    • Zero Suppression: 选Leading zeros suppressed;
  3. “Drill Pairs”页签:
    • 勾选所有钻孔对(如Top-Bottom, Inner1-Inner2),确保通孔、盲孔、埋孔全覆盖;
  4. “Advanced”页签:
    • 勾选Use Protel filename extensions;
    • 取消勾选“Separate files for plated/non-plated holes”(除非PCB厂明确要求);
  5. 点击【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”(无小数点)。这会导致解析失败。因此,我采用“导出+清洗”两步法:

  1. 【File】→【Assembly Outputs】→【Generate Pick and Place Files…】;
  2. “General”页签:
    • Units: 强制选Inch(再次强调!);
    • Output directory: 设为独立文件夹,如/Output/PnP/;
  3. “Options”页签:
    • 勾选Include header row;
    • 勾选Include footprint name in Comment field;
    • 取消勾选“Export only top side components”(除非你确定只贴一面);
  4. 点击【OK】,生成PCB_Pick_and_Place.csv;
  5. 用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分钟揪出所有错位

导出不是终点,验证才是关键。我用两个免费工具完成闭环验证:

工具1:GC-Prevue(Gerber Viewer)
下载地址:https://www.graphicode.com/products/gc-prevue/

  • 打开所有Gerber文件(.GBL, .GTL, .GBO等)和钻孔文件(.TXT);
  • 按快捷键F3,输入器件位号(如U3),软件自动高亮该器件在所有层的位置;
  • 用标尺工具(Ruler)测量U3中心到板原点的距离,记下X/Y值(inch);

工具2:Notepad++ + 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 X=1.2345inch,CSV显示X=1.2345,但实际贴片偏移0.5mm。最终查明,是PCB原点设在板框外侧,而Gerber Viewer默认以板框内侧为参考,导致测量基准不一致。解决方案:在GC-Prevue中,用“Origin”工具手动将原点设在板框内侧左下角,再重新测量——此时X=1.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 Drill,Units选Inch

5.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厂用旧文件贴片,结果新设计的器件全贴错位。时间戳是最低成本的版本管理。

技巧3:Gerber文件名加版本号
不要用AD默认的PCB_TOP.GBL,改为PCB_V1.2_TOP.GBL。PCB厂收到文件时,一眼就知道这是第几版,避免用错版本。版本号必须与设计文档一致,不能凭记忆。

技巧4:钻孔文件必须双备份
Excellon文件极小(通常<10KB),但极其关键。我习惯导出两份:一份标准PCB_DRILLS.TXT,另一份重命名为PCB_DRILLS_EXCELLON_V1.2.TXT。前者给PCB厂,后者存档。因为有些小厂会把.TXT当普通文本处理,导致格式错乱。

技巧5:SMT坐标文件必须附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写了段脚本,按Ctrl+Alt+G自动执行Gerber导出(预设好所有参数),Ctrl+Alt+D自动执行钻孔导出,Ctrl+Alt+P自动执行坐标导出+Excel清洗。省下的时间不多,但每次点击都提醒自己:这不是软件操作,是工程交付。

这份经验,是我从372个项目的废板、返工单、客户投诉邮件里,一点一点抠出来的。它不炫技,不讲原理,只讲怎么让板子一次做对。如果你也经历过贴片偏移、板子切歪、焊盘缺失的深夜崩溃,那就从今天开始,把导出当成一件郑重的事来对待。毕竟,工程师的价值,不在于画得多漂亮,而在于交付得多可靠。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询