1. 为什么Gerber后缀让人一头雾水?——从工厂拒收板子说起
你有没有遇到过这种情况:辛辛苦苦在Altium Designer 20里画完PCB,导出一堆带“.gbr”“.gtl”“.gbl”“.gts”“.gbs”“.gko”后缀的文件,打包发给板厂,结果对方回一句:“文件不全,缺内层铜皮和钻孔图,重发。”你打开文件夹一看——好家伙,二十多个文件,名字像密码本:ProjectName.GTL、ProjectName.GBL、ProjectName.GTS、ProjectName.GBS、ProjectName.GKO、ProjectName.TXT……连哪个是顶层丝印、哪个是底层阻焊都分不清,更别说确认是否包含了所有必需层。这不是个别现象,而是90%以上AD新手在第一次对接PCB工厂时踩过的坑。核心问题不在软件操作,而在于对Gerber文件本质的理解断层:它不是“导出一个文件”,而是按制造工序拆解成一套可执行的物理指令集。Gerber(RS-274X格式)本质上是一套二维矢量绘图语言,告诉光绘机“在什么位置、用多宽的线、画什么形状”,每层文件对应PCB制造中一道独立工序——顶层铜箔蚀刻、底层铜箔蚀刻、顶层阻焊开窗、底层阻焊开窗、顶层丝印字符、底层丝印字符、板框轮廓、钻孔定位、钻孔数据……它们彼此独立,又必须严格匹配。后缀名就是这道工序的“工单编号”。.GTL不是“随便起的缩写”,而是Gerber Top Layer的行业硬编码;.GKO不是“系统自动生成的乱码”,而是Gerber Keep-Out Layer(禁止布线区)的唯一标识。理解这一点,你就明白为什么板厂会拒收——他们不是在挑刺,而是在核对“施工图纸包”是否完整。我做过三年PCB工程支持,见过太多因后缀误判导致的打样失败:有人把.GTS(顶层阻焊)当成.GTL(顶层铜)发过去,结果板厂直接按阻焊图蚀刻铜皮,做出来全是断线;有人漏掉.GKO,板厂按默认板框切割,边缘器件直接被切掉一半。所以,这篇内容不讲“怎么点按钮”,而是带你穿透AD20导出界面,看清每个后缀背后的真实物理意义、制造环节、校验逻辑和常见陷阱。无论你是刚学AD20的新手,还是用AD14/AD18/AD21/AD24/AD25的老手,只要还在用Gerber对接工厂,这套逻辑就通用。接下来,我会用工厂产线视角,一层层拆解AD20导出设置里的每一个开关、每一个命名规则、每一个勾选项背后的“为什么”。
2. Gerber文件的本质与AD20导出逻辑拆解
2.1 Gerber不是文件格式,而是制造语言
很多人把Gerber当成类似PDF或JPEG的“通用文件格式”,这是根本性误解。Gerber(RS-274X)是一种面向PCB光绘机的专用指令语言,诞生于1960年代,至今仍是全球PCB制造业的事实标准。它的设计初衷非常朴素:让一台机械光绘机(类似老式投影仪+机械臂)能精准复现设计师的图形。因此,Gerber文件不包含任何“智能”信息——没有网络表、没有元器件属性、没有3D模型,只有最原始的几何指令:X100000Y200000D1*(移动到坐标)、X150000Y200000D2*(画线)、X150000Y250000D3*(打点)。这种极简设计恰恰是它能统治行业半世纪的原因:稳定、无歧义、硬件兼容性无敌。当你在AD20里点击“Fabrication Outputs → Gerber Files”,软件做的不是“保存图片”,而是将你的PCB设计数据,按制造工序逐层翻译成这套机械指令。每一层(Top Layer、Bottom Layer、Top Solder Mask…)都被单独编译,生成一个独立的.gbr文件。这个过程叫“光绘数据生成”,不是“导出”,而是“翻译”。这也是为什么不同EDA软件(AD、Allegro、PADS)导出的Gerber文件,板厂都能无缝处理——因为最终落地的都是同一套RS-274X指令。
提示:RS-274X是当前唯一被板厂广泛接受的Gerber标准。旧版RS-274D(需外挂Aperture文件)已淘汰,AD20默认不支持。务必确认导出设置中“Gerber Format”为“RS-274X”。
2.2 AD20导出界面的三大核心模块解析
AD20的Gerber导出对话框(File → Fabrication Outputs → Gerber Files)表面看是几个勾选项,实则暗含三层逻辑:
第一层:层映射(Layers & Devices)
这是最易被忽略却最关键的部分。它定义了“哪一层设计数据,翻译成哪一道制造工序”。例如:
Top Layer→.GTL(顶层铜箔)Bottom Layer→.GBL(底层铜箔)Top Overlay→.GTO(顶层丝印)Bottom Overlay→.GBO(底层丝印)Top Solder Mask→.GTS(顶层阻焊)Bottom Solder Mask→.GBS(底层阻焊)Mechanical 1→.GKO(板框/禁止区)
这里的关键陷阱是:AD20默认不会自动勾选所有必要层。比如Mechanical 1(通常放板框)默认不勾选,如果你没手动勾上,.GKO文件就不存在,板厂只能按默认尺寸切割。再比如,很多新手只勾了Top Layer和Bottom Layer,却漏掉Top Solder Mask和Bottom Solder Mask,结果做出来的板子焊盘全被绿油盖住,无法焊接。
第二层:输出配置(Options)
控制翻译过程的“语法细节”:
Units: 必须选Inches或Millimeters,且必须与你的PCB设计单位一致。混用会导致坐标偏移(比如设计用mm,导出选inch,所有图形缩小25.4倍)。Format:2:6(两位整数+六位小数)是工业标准,精度足够(0.000001 inch ≈ 0.025μm),比3:6更常用。Mirror Layers: 仅对Bottom Layer有效。勾选后,.GBL文件内容会水平镜像——这是为了匹配光绘机底片朝上的物理特性。必须勾选,否则底层铜箔图形会左右颠倒。Use Protel Filename Extensions: 勾选后,文件名后缀按行业惯例(.GTL、.GBL等);不勾选则用.gbr统一后缀,但板厂无法识别各层功能。
第三层:高级设置(Advanced)
影响文件结构和兼容性:
Embedded Apertures: RS-274X标准要求,必须勾选。它把光绘机所需的“线宽模板”(Aperture)直接嵌入文件,无需额外文件。Include Netlist Info: 生成.TXT网表文件,用于板厂做短路/断路检查。非强制,但强烈建议勾选。Create Separate Drill Files: 决定钻孔数据是否独立成文件(.DRL+.TXT)。必须勾选,因为钻孔是独立工序,需单独编程。
2.3 为什么ODB++正在取代Gerber?但你仍需精通它
ODB++是新一代PCB数据交换格式,由Valor(现属Siemens)开发。它把所有层、钻孔、网表、BOM、叠层信息打包成一个压缩文件夹,支持3D视图、电气验证、DFM分析。听起来完美?但现实是:全球95%以上的中小批量PCB工厂,仍只认Gerber。原因很实际:Gerber文件小(几MB)、解析快(光绘机固件直接支持)、历史兼容性好(老设备也能跑)。ODB++需要专用软件解析,对小厂成本高。所以,即使AD20支持ODB++导出(File → Fabrication Outputs → ODB++ Files),你发给嘉立创、捷配、华强北工厂,他们大概率会说:“请提供Gerber文件”。这不是技术落后,而是产业链的惯性选择。掌握Gerber,就是掌握PCB制造的“普通话”。ODB++是未来,但Gerber是现在——而且未来十年内,它仍是工程师与工厂沟通的底层协议。
3. 各层Gerber文件详解:从后缀到物理用途
3.1 铜箔层:电路的“血管”——GTL、GBL、G1、G2…
铜箔层是PCB的电气核心,对应PCB的导电走线和焊盘。AD20中,它由Top Layer、Bottom Layer及内层(如MidLayer 1)生成。
.GTL(Gerber Top Layer):顶层铜箔。包含所有顶层走线、顶层焊盘、顶层过孔环。注意:过孔(Via)在.GTL中只显示其顶层环(Annular Ring),内层连接靠其他层文件定义。.GBL(Gerber Bottom Layer):底层铜箔。同理,包含底层走线、焊盘、过孔底层环。.G1、.G2…(Gerber Inner Layer 1, 2…):多层板内层铜箔。AD20中,MidLayer 1导出为.G1,MidLayer 2为.G2,以此类推。命名规则固定,不可更改。
关键参数与校验:
铜箔层文件必须包含完整的“正片”(Positive Image)图形。即:白色区域为铜皮,黑色为蚀刻掉的部分。板厂用此图制作曝光底片,紫外光照射后,底片透明处(对应铜皮)使干膜硬化,显影后保留铜皮。
实操心得:导出后,用免费Gerber查看器(如GC-Prevue、CAM350 Viewer)打开
.GTL,放大焊盘边缘。如果看到锯齿状边缘(Aliasing),说明导出精度不够(Format太低),需调高小数位数(如2:6→2:7)。我曾因2:5精度导致0.1mm细线断裂,重打三块板才定位到这个问题。
3.2 阻焊层:焊盘的“防护服”——GTS、GBS、G1S、G2S…
阻焊层(Solder Mask)是覆盖在铜箔上的绿色(或其他颜色)油墨,作用是防止焊接时焊锡短路相邻焊盘,并保护铜皮不被氧化。它必须精确开窗,露出焊盘和过孔。
.GTS(Gerber Top Solder Mask):顶层阻焊。图形是“负片”(Negative Image):黑色区域为开窗(露出铜皮),白色为覆盖(涂绿油)。.GBS(Gerber Bottom Solder Mask):底层阻焊。同理。.G1S、.G2S…:内层阻焊(多层板内层不需阻焊,此文件极少用)。
关键参数与校验:
阻焊开窗尺寸必须比焊盘大0.05~0.1mm(俗称“阻焊扩展”)。AD20中,该值在Design → Rules → Manufacturing → Solder Mask Expansion中设置。默认0.102mm(4mil)是安全值。导出后,在查看器中叠加.GTL和.GTS:.GTS的黑色开窗应完全覆盖.GTL的焊盘,且边缘留有均匀间隙。若开窗太小,焊盘被绿油盖住,无法上锡;若太大,绿油离焊盘太远,易起泡脱落。
注意:阻焊层常被误认为“丝印层”。丝印(Overlay)是白字,阻焊是绿油开窗,二者功能、材料、工序完全不同。混淆会导致工厂按丝印图做阻焊,后果严重。
3.3 丝印层:电路的“说明书”——GTO、GBO、G1O、G2O…
丝印层(Silk Screen / Overlay)是印在阻焊层上的白色(或黄色、黑色)字符和线条,用于标注元件位号(R1、C5)、极性标记(二极管阴极线)、测试点、公司Logo等,纯属装配和维修参考,无电气功能。
.GTO(Gerber Top Overlay):顶层丝印。.GBO(Gerber Bottom Overlay):底层丝印。.G1O、.G2O…:内层丝印(极少用)。
关键参数与校验:
丝印必须避开所有焊盘和阻焊开窗区域,否则印刷时油墨会污染焊盘。AD20中,通过Design → Rules → Manufacturing → Silk Screen Over Component Pads设置最小间距(默认10mil/0.254mm)。导出后,在查看器中叠加.GTL和.GTO:.GTO的字符线条不能压在.GTL的焊盘上。尤其注意电解电容、LED的极性标记,必须清晰指向正确方向。
3.4 板框与禁止区:PCB的“身份证”——GKO、GM1、GM2…
板框(Board Outline)定义PCB的物理外形和切割路径,禁止区(Keep-Out)定义不可布线/不可放置器件的区域(如安装孔周围、散热区)。它们共同决定PCB的最终尺寸和结构。
.GKO(Gerber Keep-Out Layer):最常用。AD20中,通常将板框画在Mechanical 1层,并勾选此层导出。.GKO文件必须是闭合的、无交叉的多段线(Polyline),且线宽为0(仅定义路径)。.GM1、.GM2…(Gerber Mechanical 1, 2…):其他机械层。如Mechanical 2放V-Cut槽,Mechanical 3放邮票孔,对应.GM2、.GM3。
关键参数与校验:
板框线必须闭合!这是工厂最常退回的原因。用AD20的Tools → Convert → Convert Selected Primitives to Polygon将板框转为实心多边形,再用Design → Board Shape → Define from Selected Objects重新定义板形,可确保闭合。导出后,在查看器中检查.GKO:应是一个完整的、无缺口的轮廓线。若工厂按此图切割,缺口处会直接崩边。
3.5 钻孔文件:PCB的“骨骼”——TXT、DRL、XLN…
钻孔是PCB制造中独立且关键的工序,需单独生成钻孔数据文件。它不包含在Gerber层中,而是配套文件。
.TXT(NC Drill File):数控钻孔指令文件,ASCII文本格式。包含钻孔坐标(X,Y)、孔径(Tool Number)、孔类型(PTH/NPTH)。.DRL(Drill Drawing):钻孔图,Gerber格式,供人工核对。显示所有钻孔位置和大小。.XLN(Drill Report):钻孔报表,列出每种孔径的数量、位置范围等。
关键参数与校验:
AD20中,Create Separate Drill Files必须勾选,且Drill Drawing需指定层(通常选Mechanical 1)。.TXT文件中的孔径单位必须与设计一致(mm/inch)。导出后,用文本编辑器打开.TXT,检查首行是否有M48(程序开始)和M30(程序结束),中间是否有T01C0.3(1号刀具,直径0.3mm)等有效指令。若出现T00或空行,说明钻孔定义有误。
4. Altium Designer 20导出全流程实操与避坑指南
4.1 准备工作:设计检查与层规划
导出前,必须完成三项基础检查,否则后续全是无用功:
- 确认设计单位:
Design → Board Options,检查Units(Inches/mm)并记录。导出时Options中的Units必须与此一致。 - 检查板框完整性:切换到
Mechanical 1层,用View → Board Insight → Board Shape确认板形已正确定义。若未定义,用Design → Board Shape → Redefine Board Shape沿板框线重绘。 - 验证层使用规范:
- 铜箔层:
Top Layer、Bottom Layer、MidLayer X必须有实际走线/焊盘。 - 阻焊层:
Top Solder Mask、Bottom Solder Mask必须启用(Design → Layer Stack Manager中确认)。 - 丝印层:
Top Overlay、Bottom Overlay必须有位号标注(Tools → Annotation → Annotate)。 - 机械层:
Mechanical 1放板框,Mechanical 2放V-Cut(如有),Mechanical 3放安装孔(如有)。
- 铜箔层:
实操心得:我习惯在
PCB Library中建一个“Checklist”元件,放在板边空白处,用Top Overlay层写“GTL OK? GTS OK? GKO OK?”,每次导出前打钩确认。看似笨,但避免了90%的漏层错误。
4.2 标准导出步骤:从点击到打包
以下为AD20中零失误的标准流程(以双面板为例):
- 打开导出对话框:
File → Fabrication Outputs → Gerber Files。 - 设置层映射(Layers & Devices):
- 勾选
Plot Layers下的Used On(自动勾选所有已用层)或手动勾选:Top Layer→.GTLBottom Layer→.GBLTop Solder Mask→.GTSBottom Solder Mask→.GBSTop Overlay→.GTOBottom Overlay→.GBOMechanical 1→.GKO(板框)Multi-Layer→.GML(过孔层,可选,用于检查过孔分布)
Plot Components:不勾选(丝印已包含位号)。
- 勾选
- 设置输出选项(Options):
Units: 选Inches(若设计用inch)或Millimeters(若设计用mm)。Format:2:6(推荐,精度0.000001 inch)。Mirror Layers:仅勾选Bottom Layer(其他层勿勾)。Use Protel Filename Extensions:必须勾选(生成.GTL等标准后缀)。
- 设置高级选项(Advanced):
Embedded Apertures: 勾选。Include Netlist Info: 勾选(生成.TXT网表)。Create Separate Drill Files:必须勾选。Drill Drawing: 选Mechanical 1(板框层)。
- 确认输出路径与命名:
Output Directory: 设为独立文件夹(如Project_Gerber_20240501)。Filename: 默认ProjectName即可,AD20会自动添加后缀。
- 生成文件:点击
OK。等待进度条结束(通常<30秒)。 - 打包发送:将整个输出文件夹压缩为
.zip,文件名注明版本(如Project_V2.1_Gerber.zip)。
4.3 关键参数计算与设置详解
AD20中部分参数需手动计算,而非盲目套用默认值:
阻焊扩展(Solder Mask Expansion):
计算公式:Expansion = (焊盘直径 - 阻焊开窗直径) / 2。
安全值:0.102mm(4mil)适用于大多数0402~1206封装。
特殊情况:BGA焊盘需加大至0.15mm(6mil),防止绿油塞孔;0201超小封装需减小至0.076mm(3mil),避免开窗过大导致绿油剥离。
设置路径:Design → Rules → Manufacturing → Solder Mask Expansion。丝印间距(Silk to Solder Mask):
丝印字符必须离阻焊开窗边缘≥0.1mm(4mil),否则印刷时油墨会溢出到焊盘上。
设置路径:Design → Rules → Manufacturing → Silk Screen Over Solder Mask。钻孔补偿(Drill Oversize):
金属化孔(PTH)需比设计孔径大0.1~0.15mm,补偿电镀铜厚。
非金属化孔(NPTH)按设计孔径,不补偿。
AD20中,该值在Design → Rules → Manufacturing → Hole Size中设置,但导出时不自动应用,需在.TXT文件中手动修改(不推荐新手操作),或在工厂下单时备注。
4.4 文件校验:用免费工具做工厂级检查
导出后,绝不能直接发给工厂。必须用专业工具校验:
- 下载GC-Prevue(免费):官网搜索即可,支持Windows。
- 加载所有Gerber文件:
- 打开GC-Prevue →
File → Load Gerber/Drill→ 选择所有.gbr、.drl、.txt文件。
- 打开GC-Prevue →
- 层叠检查(Critical):
- 在
Layers窗口,勾选.GTL、.GTS、.GTO、.GKO。 - 按
F9切换层叠模式,观察:.GTS黑色开窗是否完全覆盖.GTL焊盘?.GTO字符是否避开.GTS开窗?.GKO板框是否闭合且居中?
- 在
- 钻孔检查:
- 加载
.DRL文件,与.GTL叠加,确认所有过孔、焊盘孔均有对应钻孔。 - 打开
.TXT,用Ctrl+F搜索T01,确认第一个钻孔指令存在。
- 加载
- 导出PDF报告:
File → Export → PDF,生成带图层说明的PDF,作为交付附件。
实操心得:我坚持“三遍校验法”:第一遍用GC-Prevue查层叠,第二遍用文本编辑器查
.TXT钻孔文件,第三遍用手机拍照发给同事远程复核。一次疏忽省下的10分钟,可能换来三天改板时间。
5. 常见问题与排查技巧实录
5.1 典型问题速查表
| 问题现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 工厂拒收:“缺内层文件” | 多层板未勾选MidLayer X | 在Layers & Devices中检查Used On列表,确认所有MidLayer已勾选 | 手动勾选对应MidLayer,重新导出 |
| 板子做出来焊盘被绿油盖住 | .GTS/.GBS未勾选,或阻焊扩展为负值 | 用GC-Prevue加载.GTL和.GTS,检查开窗是否覆盖焊盘 | 检查Solder Mask Expansion规则,设为正值(0.102mm) |
| 底层文字左右颠倒 | Mirror Layers未勾选Bottom Layer | 查看.GBL文件,对比设计图,确认图形是否镜像 | 在Options中勾选Bottom Layer的Mirror Layers |
| 钻孔位置偏移0.5mm | 导出Units与设计单位不一致 | 检查Design → Board Options的Units,对比导出Options的Units | 统一单位(均设为Millimeters) |
| 板厂反馈“板框不闭合” | Mechanical 1层板框线未闭合 | 在AD20中,用View → Board Insight → Board Shape检查板形 | 用Design → Board Shape → Redefine Board Shape重绘闭合板框 |
5.2 独家避坑技巧:那些文档里不会写的细节
- “隐藏层”陷阱:AD20中,
Top Paste(钢网层)和Bottom Paste(钢网层)默认不勾选,因为钢网文件(Stencil)通常由板厂根据阻焊层自动生成。但如果你做BGA或精细间距器件,需手动勾选并发送给SMT贴片厂。此时后缀为.GTP/.GBP,非.GTS/.GBS。 - “拼版”文件命名:若需拼版(Panelization),不要在AD20中直接拼。先导出单板Gerber,再用专门的拼版软件(如Cam350、PCB Panelizer)处理。AD20拼版功能生成的
.GKO文件常含多余线段,易被工厂误读。 - “热风枪拆模块”的真相:问题中提到“大的电源模块如何从PCB上拆下来”,这与Gerber无关,但根源在此——若
.GTS阻焊开窗过大,焊盘周围绿油附着力弱,热风枪加热时模块易连带撕下铜皮。解决方案:在Solder Mask Expansion中将电源模块焊盘的扩展值设为0(即不开窗),仅靠焊盘本身定义开窗。 - “反激式开关电源PCB”的特殊要求:高频变压器区域需加大阻焊扩展(0.15mm),并禁用丝印(避免字符干扰磁场),在
Rules中为该区域设置局部规则。 - “嘉立创EDA画PCB教程”的兼容性提醒:嘉立创EDA导出Gerber后缀与AD20一致(
.GTL等),但其默认单位为mm,且Mirror Layers逻辑不同。跨平台协作时,务必统一单位并手动校验底层镜像。
5.3 工厂沟通话术:如何高效解决问题
当工厂反馈问题时,避免说“我不知道,你看着办”。用工程师语言精准沟通:
- 问题描述模板:
“AD20导出,设计单位:mm,Gerber Format:2:6,已勾选.GTL/.GBL/.GTS/.GBS/.GTO/.GBO/.GKO/.TXT。问题:[具体现象]。附件:GC-Prevue截图(标注问题区域)、.GTL和.GTS文件片段。” - 拒绝模糊反馈:
若工厂说“文件有问题”,立即追问:“请明确指出是哪一层文件缺失?或是某层图形异常?能否提供报错日志或截图?” - 版本管理铁律:
每次修改设计后,必须更新Gerber文件夹名称(如Project_V2.2_Gerber),并在邮件中注明“此为最新版,覆盖V2.1”。我曾因未改名,工厂用旧版文件生产,导致整批报废。
6. 从Gerber到量产:一个真实项目的全流程复盘
去年我负责一款工业传感器主控板(6层板,含高速ADC和CAN总线),全程用AD20导出Gerber。分享其中一次关键迭代的教训:
初始版本(V1.0):
- 问题:工厂反馈“内层铜皮蚀刻不全,部分走线残留”。
- 排查:用GC-Prevue加载
.G1和.G2,发现内层MidLayer 1的铺铜(Polygon Pour)未勾选Remove Dead Copper,导致大面积死铜被误认为走线。 - 解决:在
Design → Rules → Plane → Polygon Connect Style中,为内层铺铜设置Relief Connect,并勾选Remove Dead Copper。重新导出.G1/.G2。
优化版本(V1.3):
- 新增需求:在板边加装4个M3安装孔,需沉头。
- 操作:在
Mechanical 2层画4个直径3.2mm的圆(沉头孔),在Mechanical 3层画4个直径6mm的圆(沉头槽)。导出时勾选Mechanical 2→.GM2,Mechanical 3→.GM3。 - 工厂反馈:
.GM2文件中孔位坐标正确,但.GM3沉头槽未被识别。 - 根本原因:
.GM3是机械层,非钻孔层,工厂需人工识别。解决方案:在.GKO板框文件中,用Line工具在沉头槽位置画虚线,并在.GTO丝印层标注“COUNTERSINK φ6mm”。
量产版本(V2.0):
- 最终检查清单:
.GTL/.GBL/.G1/.G2/.G3/.G4(6层全勾).GTS/.GBS(阻焊,扩展0.127mm).GTO/.GBO(丝印,避开焊盘0.254mm).GKO(板框,闭合).GM2(安装孔).TXT/.DRL(钻孔,含PTH/NPTH区分)- GC-Prevue层叠检查通过
- PDF校验报告签字存档
这次经历让我彻底明白:Gerber导出不是终点,而是设计与制造协同的起点。每一个后缀,都是工程师与工厂之间的一份契约。看懂它,才能真正掌控PCB从图纸到实物的全过程。