最近在帮几个刚入行的硬件工程师处理投板前的文件问题发现一个特别集中的痛点原理图画得顺PCB也布完了一到导出Gerber这一步就开始各种翻车。漏层、漏钻孔文件、单位精度不对、丝印镜像最后被工厂客服一句文件不全请重新提供打回来来回折腾浪费一两天。AD21Altium Designer 21的Gerber导出功能其实做得很成熟选项虽多但逻辑清晰关键是你得知道每个参数是干什么的、为什么这么设。这篇文章把我从AD9一路用到AD21攒下来的Gerber导出经验完整梳理一遍从原理认知到实操步骤到验证避坑照着走基本一次过。1. Gerber文件不是导出一张图那么简单先搞清楚打样厂到底要什么1.1 为什么不能直接把.PcbDoc丢给工厂先说个新手最爱问的问题我把整个工程文件发过去不行吗答案是不行原因有两层。第一层是兼容性每个EDA软件甚至不同版本保存的工程格式各不相同工厂不可能把你用的每一个软件都装一遍。第二层更关键PCB工程文件里除了制造信息还混着大量工厂根本用不上的东西——设计规则、网络表、封装库的绝对路径、临时标注层、未布线的飞线残留。工厂的光绘设备不认识这些它们只认一种东西标准的矢量图形文件。Gerber就是这种标准格式。它把PCB按层拆解每一层导出一组独立的坐标图形比如顶层铜箔长什么样、阻焊开窗开在哪里、丝印印在什么位置。工厂拿到后直接用这些文件去曝光、蚀刻、阻焊、丝印。所以说导出Gerber的本质是把你的设计意图翻译成工厂设备能直接执行的制造指令。这一步做得好不好直接决定了板子能不能按你的想法被造出来。1.2 一套完整Gerber数据包里到底该有哪些文件以AD21默认导出为例常见的文件扩展名和用途对应关系如下文件作用典型扩展名具体内容顶层铜箔.GTL顶层走线、焊盘、铺铜、测试点底层铜箔.GBL底层走线、焊盘、铺铜顶层阻焊.GTS顶层需开出阻焊窗的位置底层阻焊.GBS底层开窗位置顶层丝印.GTO顶层位号、极性、丝印标记底层丝印.GBO底层丝印图形板框.GKO或.GM1板子外形、开槽、V割线钻孔文件.TXT或.DRL所有通孔、过孔的坐标与孔径钻孔示意图.GD1钻孔符号图部分工厂可选这里必须多说一句很多新手以为铜箔层导出来就万事大吉但阻焊层和丝印层出错同样致命。阻焊层没导好焊盘上盖了油贴片时上不了锡整板报废底层丝印镜像产线对位全乱修都难修。所以别看文件多每一层都有它不可替代的作用。另外提一下AD21里还可以选择导出Gerber X2格式它是老RS-274X的升级版多带了一些元数据但部分工厂的老设备不一定兼容默认情况下我建议还是用经典的RS-274X最稳。2. 导出前的图层与DRC准备这一步省了后面全是坑2.1 图层规划决定你在导出界面里勾什么很多人一上来就直接点Gerber Files开始配置结果面对一长串图层列表时彻底懵了。其实图层规划应该在画板阶段就做好最基础的一条板框必须单独画在一个明确的机械层上。AD的默认模板里Mechanical 1层通常是板框专用层Keep-Out层也可以承载外形信息但我的习惯是把板框放在Mechanical 1Keep-Out层用来约束布线范围两者不要混用。原因很实际导出Gerber时Layers页签里有一个Board Outline选项勾上它之后AD会自动把板框层的数据映射到光绘文件中。如果你的板框线和Keep-Out线混在一起导出时就容易把多余的约束线也带进去工厂拿到的外形就多了几条莫名其妙的线轻则DFM检查报警重则外形直接做错。画板时就把图层职责分清楚导出时才不用靠一个个勾选硬凑。2.2 先跑一遍完整DRC再谈导出我见过太多人DRC报了几十个错误还照样导出投板然后板子回来一堆低级问题——间距违规导致细线被蚀断未连接的过孔导致部分网络开路。Gerber导出只是把你的PCB图形原样输出它不会帮你修正设计错误。所以在导出之前务必执行一次完整的DRC检查。操作路径是Design → Board Rules Check在弹出的对话框里勾选全部检查项点击Run DRC。重点看这几类Clearance间距、Short-Circuit短路、Un-Routed Net未布完的网络、Width线宽。如果报错数量是零或者所有error你都能明确说明这是故意保留的再去导出Gerber。这一步花五分钟能省下后面跟工厂扯皮的几个小时。还有一种常见情况板框没有闭合。DRC里有一个Board Outline检查如果板框有断点AD会提示。闭合的板框是Gerber导出的基本前提因为工厂的铣刀路径要求轮廓必须是完整的封闭曲线开放曲线会导致外形切割出错。3. AD21里Gerber导出的完整参数设置照着抄就行3.1 从菜单进入Gerber Setup对话框在AD21中路径是File → Fabrication Outputs → Gerber Files。点开后是一个多页签的对话框General、Formats、Layers、Drill Drawing、Apertures、Advanced。很多新手看到这六个页签就慌其实每个页签只负责一件事按顺序过一遍就行。下面我按最常见的双层板、板厚1.6mm、普通工艺需求来给一套可直接用的配置。3.2 General和Formats页签单位与精度怎么选General页签里最重要的是Units和Format。UnitsInches还是Millimeters必须跟你平时画板的单位习惯一致。如果板子是用mm画的导出就选Millimeters用mil画的就选Inches。最忌讳的是画板用mm、导出选Inches这样所有尺寸都会按错误的换算关系输出工厂做出来的板子尺寸完全不对。Format这是精度的核心参数格式类似2:3、2:4、2:5意思分别是整数位数:小数位数。2:4表示最多两位整数、四位小数。选mm时2:4的小数分辨率是0.0001mm已经完全满足常规制版精度选Inches时2:4的分辨率是0.0001英寸约2.54μm也够用。如果板上有高密度BGA的细间距走线保险起见选2:5。Formats页签里选择RS-274X老标准但兼容性最好并确保勾选了Embedded apertures (RS-274X)——这个选项会把光圈数据直接嵌入Gerber文件里工厂不需要另外找光圈表。新手最容易翻车的就是裁掉这个勾导致工厂读取文件时找不到光圈定义整个图形解析失败。提示如果你不确定自己的板子尺寸会不会超过两位整数能表达的范围选mm时最大99.99mm以上就需要3位整数可以先看下PCB原点位置和板子坐标范围。大尺寸板子可以选择3:3或3:4这种格式别死守着2:4。3.3 Layers页签勾选哪些层Layers页签是勾选要输出的铜箔层、阻焊层、丝印层等。以双层板为例至少勾选Top Layer和Bottom Layer铜箔Top Solder和Bottom Solder阻焊开窗Top Overlay和Bottom Overlay丝印左侧列表里有一列Plot复选框勾上就代表这一层会输出。右侧还有一个Mirror列默认都不要勾。底层的丝印不需要镜像因为AD导出时已经自动处理了底层视角如果你手动勾了Mirror出来的Gerber就是反的丝印全镜像。对于多层板把中间层对应的信号层也勾上内电层Power/GND层如果是负片设计导出设置稍有不同工厂需要的是负片格式的光绘这和正片信号层的处理逻辑不一样。新手如果用到内电层建议在AD的帮助文档里确认负片导出的配置不要套用信号层参数。如果你把板框放在Mechanical 1层在这个页签右上角找到Board Outline复选框勾选后AD会自动把Mechanical 1的板框线带入输出。同理如果有V割线、开槽线也要确保对应机械层已被包含在输出范围内。3.4 Drill Drawing和Apertures页签Drill Drawing页签负责生成钻孔示意图也就是那个带钻孔符号的层这里一般保持默认就能用。重点还是看Apertures页签里面有Embedded apertures (RS-274X)再次确认它是勾选状态。光圈数据嵌入后每个焊盘和走线宽度都会被精确记录在Gerber文件中工厂不需要额外猜光圈尺寸。Advanced页签里Film side保持NormalPlot mode保持Positive。这两个参数如果调反Gerber的感光胶面会反转做出来的铜箔正好是原来的互补图形等于整板报废。没有特殊原因Advanced页签里的东西全部默认即可。3.5 生成文件与目录结构所有页签设置完成后点击OKAD会开始生成Gerber并把文件自动放到工程目录下的Project Outputs文件夹里。如果你之前生成过AD会弹窗询问是否覆盖。生成完毕后你会看到一组以.GTL、.GBL、.GTS等结尾的文件这就是铜箔、阻焊、丝印的光绘文件。需要提醒的是这一步生成的只是图形文件钻孔文件还没出来。很多人以为Gerber组就足够了实际上NC Drill必须单独导出这是下一节的重点。4. NC Drill钻孔文件为什么总是有人漏掉它4.1 钻孔文件是独立于Gerber的另一套标准Gerber解决的是每一层图形长什么样的问题而钻孔文件解决的是孔的位置和大小的问题。两者是平行的两套数据不能互相替代。AD21里导出钻孔文件的路径是File → Fabrication Outputs → NC Drill Files。钻孔文件采用的是Excellon格式本质是一个文本文件每一行记录一个孔的坐标和所用钻头尺寸。工厂的CNC钻孔机直接读取这个文件来定位钻孔。如果没有钻孔文件再完整的Gerber图形也没用——工厂不知道孔打在哪里、打多大过孔和插件孔全都会缺失。4.2 NC Drill Setup参数详解点击NC Drill Files后会弹出一个设置对话框参数不多但每个都关键Units和Gerber的单位保持一致。Gerber选了Millimeters这里也必须选Millimeters否则孔位坐标会整体偏移板子回来后元件全部插不进去。Format同样保持和Gerber一致的精度。推荐2:4或2:5。精度低于2:4时部分小孔径过孔的坐标会被四舍五入到错误位置高密度板上尤其危险。前导零/后导零处理对话框里有Suppress leading zeros之类的选项默认值是AD推荐的一般不需要改动。正规打样厂都能自动识别这两种零处理方式但如果你碰到要求严格的工厂按它们提供的钻孔说明选择即可。设置完成后点击OKAD会生成钻孔文件同样输出到Project Outputs文件夹。自此你的数据包里就有了Gerber光绘文件NC Drill钻孔文件可以打包发给工厂了。4.3 钻孔文件里的隐藏坑有几个钻孔相关的坑我周围同事基本都踩过。第一是槽孔Slot Hole问题。普通圆孔在钻孔文件中就是一行坐标和孔径但长条形的槽孔如果设计时用的是Slot Hole属性AD21在导出NC Drill时通常能正确处理但前提是你的孔属性定义正确。如果槽孔被画成了两条圆孔相连钻孔文件里就只会有一堆圆孔槽形铣削信息缺失工厂大概率会电话来问。第二是盲埋孔。如果你做的是HDI板盲孔和埋孔需要额外的叠层信息部分情况下还要单独提供背钻文件。这类板子建议直接跟工厂确认它们需要的文件清单不要想当然地套普通双面板的流程。第三是单位不一致。最常见的情况是Gerber用mm钻孔文件却用了Inch或者反过来。AD会记住你上次的设置如果之前做过别的项目改了单位这次没注意就导出两个文件单位不一致孔位就全偏了。每次导出前养成先看一眼Units的习惯。5. 用CAMtastic验证Gerber投板前最后一道防线5.1 在AD21里直接打开并叠加查看AD21自带一个CAMtastic编辑器专门用来查看和校验Gerber文件。在工程里新建一个CAM文件File → New → CAM Document然后File → Import把刚才导出的所有Gerber文件和钻孔文件全部导入。这样你就能在同一个界面里看到所有层叠加在一起的效果像查看一张完整的PCB设计图一样。导入后第一件事是检查图层对齐。把钻孔层和Top Layer叠加显示随机挑几个过孔和插件孔确认钻孔坐标和焊盘中心是否重合。如果所有孔都偏了同一个方向基本就是钻孔文件的单位或原点设置有问题如果只有个别孔偏那可能是封装库孔位绘制错误回到原理图库和封装库修正。5.2 逐层核对关键信息然后是逐层检查。关闭所有层只开Top Copper确认走线和焊盘图形完整打开Top Solder检查开窗是否只覆盖了需要焊接的焊盘和测试点有没有多开的开窗导致铜箔裸露打开Top Overlay确认丝印位号没有跑到焊盘上、没有压到走线密集区。还有一个最容易被忽略的板框层的封闭性。在CAMtastic里单独显示板框层放大检查四个角和圆弧过渡处是否有缺口。开放轮廓在图形上很难一眼看出来但工厂的铣切程序会出问题。一般CAM查看器里都会有检查开放轮廓的功能AD的CAMtastic在Analyze菜单下有相关检查项跑一下能自动报告。5.3 常见错误排查对照表下面是我整理的一份高频问题对照表投板前如果自查出了异常可以直接对照处理问题现象可能原因解决办法工厂说缺板框层导出时没勾Board Outline或对应机械层回到Layers页签勾选Board Outline焊盘上被盖油阻焊层没导出或开窗尺寸不对确认.GTS/.GBS已生成检查阻焊开窗规则丝印镜像底层Overlay误勾了Mirror取消所有Mirror勾选孔位整体偏移Gerber与NC Drill单位不一致统一单位后再导出小孔径丢失钻孔精度选太低如2:3改为2:4或2:5图形解析失败光圈数据未嵌入勾选Embedded apertures (RS-274X)板框有开放轮廓画板框时线条未闭合在CAMtastic里检查并修复5.4 外部工具可作二次校验除了AD内置的CAMtastic现在很多打样厂官网都提供在线的Gerber预览和DFM检查工具把打包好的Gerber文件传上去系统会自动帮你查看各层图形、检测间距和钻孔对齐情况。这一步相当于让工厂提前帮你做了一遍检查能在付款前发现大部分问题。建议养成习惯每次投板前先用自己的CAM工具查一遍再丢到工厂的在线预览工具里看一遍双保险。6. 这些年我被工厂退回Gerber后总结的教训6.1 单位不统一是最贵的教训有一次做一块四层板画图全程用mm导出Gerber时顺手选了Inches钻孔文件也选了Inches当时觉得反正两个文件单位一致就行但工厂默认按mm处理图形看板框的时候没注意单位最后做出来的板子尺寸全线缩水到原来的1/25.4板子拿回来第一眼还以为是玩具模型。从那以后我养成了一个习惯导出之前先看PCB面板右下角的单位显示再对照Gerber Setup对话框里的Units确保两者一致。6.2 输出文件夹的命名和打包建议AD的默认输出目录是Project Outputs文件多了以后很容易和别的项目混在一起。我现在的做法是每次投板前新建一个以型号_版本_日期命名的文件夹比如MCU_MAIN_V2.3_20250115把Gerber和钻孔文件全部复制进去再附一个简单的说明.txt写清楚板子层数、板厚、表面工艺、铜厚要求。然后把整个文件夹压缩成zip发给工厂。这样做的好处是工厂收到的数据包自带背景信息不用反复沟通确认自己下次需要复投时翻文件夹就能找到对应版本的完整数据。6.3 用OutputJob把整套流程固定下来如果你需要反复导出同一个工程的不同版本强烈建议用一次Output Job。在AD21里新建一个Output Job文件File → New → Output Job在Fabrication Outputs里添加Gerber和NC Drill把前面讲的所有参数设置一次然后保存。之后每次改完板子只需要打开这个OutJob文件点击Generate Content按钮AD就会按你保存的参数自动生成全套Gerber和钻孔文件。这个习惯特别适合产品迭代阶段的频繁打样它把每次都手动配置一遍参数变成了一键生成也从根本上杜绝了这次参数和上次不一致的问题。我自己的项目从AD17开始就全面切到OutJob工作流三年下来没再因为参数配置问题被工厂退回一次。6.4 最后一个实用小技巧导出完成后别急着关电脑。把生成的Gerber和钻孔文件用CAM工具重新导入一次对照PCB原图随机抽查几个元件的位置、几个过孔的坐标确认图形和设计一致。这个过程只要几分钟但它能拦住绝大多数低级错误。记住工厂是不会替你做设计意图层面检查的你给什么文件它就按什么文件做最后的板子对不对责任全在你自己。