1. 从一块被工厂退回的板子说起如果你画过PCB大概率经历过这个场景板子设计完DRC全绿3D预览看着也挺顺眼于是你打开Altium Designer点开File → Fabrication Outputs → Gerber Files一路Next导出打包发给板厂。然后第二天收到一封邮件“您的压缩包里缺少阻焊层文件请重新提供。”或者更让人崩溃的“您的钻孔文件格式不对我们无法解析。”你打开自己导出的文件夹一看里面躺着几十个文件后缀名五花八门——.GTL、.GBL、.GTO、.GTS、.GTP、.GKO、.GD1、.GG1、.GBS、.GTS……你盯着这些缩写心里只有一个念头这都什么跟什么这不是你一个人的问题。Gerber文件的后缀名体系是历史遗留产物它源自上世纪六七十年代的光绘机Photoplotter时代每个后缀对应的是光绘机不同“光圈”或“层”的编号。Altium Designer在导出Gerber时默认会按照RS-274X标准生成一套文件但它的命名规则并不是“所见即所得”的很多工程师第一次导出时都是一头雾水。这篇文章要做的就是把这套命名体系彻底拆开讲清楚。我会从Gerber文件的基本原理讲起逐个解释AD导出的每一个后缀名对应的是PCB的哪一层、为什么这样命名、导出时哪些设置容易踩坑、以及如何用一份自查清单确保你发给板厂的文件一次通过。无论你用的是AD 09、AD 17、AD 19还是最新的AD 24这套命名逻辑都是一脉相承的。提示本文讨论的是RS-274X格式的Gerber文件这是目前绝大多数板厂接受的格式。如果你用的是Gerber X2或X3后缀名规则会有所不同但AD默认导出的仍是RS-274X。2. Gerber后缀名的命名逻辑为什么是.GTL而不是.TOP2.1 光绘机时代留下的“遗产”要理解Gerber后缀名得先知道Gerber文件到底是什么。简单说Gerber文件是一种矢量图形格式它告诉光绘机“在哪里画线、在哪里曝光、在哪里钻孔”。一块PCB有多个层——顶层铜、底层铜、顶层阻焊、底层阻焊、顶层丝印、底层丝印、钻孔层等等——每一层都需要一个独立的Gerber文件。在早期的光绘机系统中每一层被分配一个编号光绘机操作员根据编号来加载对应的胶片或曝光参数。后来这套编号逐渐演变成了文件扩展名的约定。比如GTL Gerber Top Layer顶层铜GBL Gerber Bottom Layer底层铜GTO Gerber Top Overlay顶层丝印GTS Gerber Top Solder顶层阻焊GTP Gerber Top Paste顶层锡膏GKO Gerber Keep Out禁止布线层你会发现这些后缀名其实是“G 层缩写”的组合。G代表Gerber后面的字母代表具体的层。这个命名规则不是Altium发明的而是整个PCB行业通用的约定PADS、Allegro、KiCad等软件导出Gerber时也遵循类似的规则。2.2 AD导出Gerber时的默认命名规则Altium Designer在导出Gerber时默认使用“扩展名”模式来命名文件。你可以在Gerber Setup对话框的“Layers”选项卡中看到每个层对应的文件名。AD会根据层的类型自动分配后缀名但有时候也会出现一些“意外”的命名比如.GD1、.GG1这种带数字的后缀。这些带数字的后缀通常出现在钻孔层或机械层的导出中。比如.GD1 Gerber Drill 1第一组钻孔文件.GG1 Gerber Guide 1第一组引导孔文件.GBS Gerber Bottom Solder底层阻焊但有时也用于底层锡膏这里要特别注意不同版本的AD在命名上可能有细微差异。比如AD 09和AD 24在导出钻孔文件时默认的后缀名可能不同。但核心逻辑是一致的后缀名对应的是层的功能而不是层的物理位置。2.3 为什么板厂能看懂这些后缀名你可能会问板厂是怎么知道.GTL就是顶层铜的答案很简单行业约定。绝大多数板厂在收到Gerber压缩包后会先用CAM软件如Genesis 2000、CAM350自动识别文件类型。这些软件内置了后缀名映射表能够根据后缀名自动将文件分配到对应的层。但这里有一个坑如果你的后缀名不符合约定板厂可能需要手动分配层。比如你把顶层铜命名为“TopCopper.gbr”板厂也能处理但需要人工干预增加了出错概率和沟通成本。所以保持默认的后缀名是最稳妥的做法。注意有些板厂会要求你把所有Gerber文件合并成一个“.gbr”文件或者要求使用特定的命名规则。在导出前最好先看一下板厂官网的“工艺能力”或“下单须知”页面确认他们接受的格式。3. 逐个拆解AD导出的每一个后缀名到底对应哪一层3.1 铜层相关后缀GTL、GBL、G1、G2……铜层是PCB的核心负责导电。AD在导出铜层时会根据你设置的层数生成对应的文件。对于双层板通常只有GTL和GBL对于多层板还会有内层铜的Gerber文件。后缀名对应层说明.GTLTop Layer顶层铜信号层.GBLBottom Layer底层铜信号层.G1Internal Plane 1内层1通常是电源层或地层.G2Internal Plane 2内层2.G3Internal Plane 3内层3.GP1Internal Plane 1有些版本用GP表示内层这里有一个容易混淆的点内层铜的后缀名在不同AD版本中可能不同。在AD 09中内层可能被命名为.G1、.G2在AD 19及以后可能被命名为.GP1、.GP2。但无论哪种命名板厂都能识别因为他们在CAM软件中会看到层的顺序和类型。实操建议如果你不确定内层的后缀名可以在Gerber Setup对话框中点击“Layers”选项卡查看每个层对应的“File Name”列。AD会显示完整的文件名你可以据此确认。3.2 阻焊层相关后缀GTS、GBS、GTP、GBP阻焊层Solder Mask是PCB上覆盖在铜箔上的绿色或其他颜色绝缘层它决定了哪些地方需要露出铜箔比如焊盘。AD导出阻焊层时会生成顶层阻焊和底层阻焊两个文件。后缀名对应层说明.GTSTop Solder Mask顶层阻焊负片输出.GBSBottom Solder Mask底层阻焊负片输出.GTPTop Paste Mask顶层锡膏用于SMT钢网.GBPBottom Paste Mask底层锡膏这里要重点解释负片输出的概念。阻焊层的Gerber文件是“负片”——也就是说文件中有图形的地方是没有阻焊的即需要露铜的地方没有图形的地方是有阻焊的。这和铜层的“正片”逻辑正好相反。很多新手第一次导出阻焊层时看到文件里只有焊盘图形以为导错了其实这是正常的。锡膏层Paste Mask和阻焊层类似但它是用于制作SMT钢网的。锡膏层的图形通常比焊盘略小这是为了控制锡膏量。如果你不做SMT可以忽略这两个文件。提示有些板厂会要求你把阻焊层和锡膏层分开打包或者要求提供“阻焊开窗”的单独文件。在导出前最好确认一下板厂的具体要求。3.3 丝印层相关后缀GTO、GBO丝印层Silkscreen是PCB上印白色文字和图形的那一层用于标注元件位号、极性、版本号等信息。AD导出丝印层时会生成顶层丝印和底层丝印两个文件。后缀名对应层说明.GTOTop Overlay顶层丝印.GBOBottom Overlay底层丝印丝印层的导出有一个常见坑如果丝印压到了焊盘板厂可能会在制造时去掉压焊盘的部分。这是因为丝印是油墨印刷的如果印在焊盘上会影响焊接。所以在导出丝印层之前最好用AD的“Design Rule Check”检查一下丝印与焊盘的重叠情况。实操建议在AD中你可以通过“Design → Rules → Manufacturing → Silkscreen Over Component Pads”规则来检查丝印是否压焊盘。如果违反规则AD会报错你可以据此调整丝印位置。3.4 机械层与禁止布线层GKO、GM1、GM2……机械层Mechanical Layer用于定义PCB的物理轮廓、尺寸标注、装配说明等。AD允许你使用多个机械层每个机械层都可以导出为独立的Gerber文件。后缀名对应层说明.GKOKeep Out Layer禁止布线层定义PCB边界.GM1Mechanical Layer 1机械层1通常是板框.GM2Mechanical Layer 2机械层2可能是尺寸标注.GM3Mechanical Layer 3机械层3可能是装配图禁止布线层Keep Out Layer是一个特殊的层它定义了PCB的物理边界和禁止布线的区域。在导出Gerber时AD通常会把Keep Out Layer导出为.GKO文件。板厂会根据这个文件来切割PCB外形。机械层的导出需要特别注意不是所有机械层都需要导出。通常只需要导出板框所在的机械层比如GM1和可能用到的尺寸标注层。如果你导出了所有机械层板厂可能会困惑于哪个才是真正的板框。实操建议在Gerber Setup对话框中只勾选你需要的机械层。通常建议勾选“Mechanical 1”作为板框层其他机械层根据实际需要选择。3.5 钻孔文件GD1、GG1、DRL、TXT钻孔文件是Gerber文件中比较特殊的一类因为它不是用光绘机绘制的而是用数控钻床钻孔的。AD在导出钻孔文件时会生成两种格式Gerber格式和NC Drill格式。后缀名对应层说明.GD1Gerber Drill 1第一组钻孔Gerber格式.GG1Gerber Guide 1第一组引导孔Gerber格式.DRLNC DrillNC钻孔文件最常用.TXTNC Drill Text钻孔文本文件包含孔径信息NC Drill格式是目前最常用的钻孔文件格式它包含钻孔的位置、孔径和工具编号。AD在导出NC Drill时会生成一个.DRL文件和一个.TXT文件。.TXT文件是钻孔报告列出了每个孔径对应的工具编号和数量。Gerber格式的钻孔文件.GD1、.GG1现在用得比较少因为它的精度和兼容性不如NC Drill。但有些老式板厂可能仍然接受这种格式。实操建议在导出钻孔文件时建议同时导出NC Drill格式和Gerber格式让板厂自己选择。在AD中你可以通过“File → Fabrication Outputs → NC Drill Files”来导出NC Drill通过“Gerber Files”对话框中的“Drill Drawing”层来导出Gerber格式的钻孔文件。注意钻孔文件的单位设置非常重要。AD默认使用“Inches”或“Millimeters”你需要和板厂确认他们接受的单位。如果单位设置错误钻孔位置会完全偏移。4. 导出Gerber时的关键设置那些让你少走弯路的选项4.1 单位与格式为什么你的钻孔总是偏在Gerber Setup对话框中有一个“Format”选项它决定了Gerber文件的坐标格式。AD默认使用“2:4”格式即整数部分2位小数部分4位单位是Inches。但很多板厂更习惯“4:4”格式或“3:5”格式。为什么格式这么重要因为Gerber文件中的坐标是整数光绘机需要根据格式来解析小数点的位置。如果格式设置错误图形会放大或缩小甚至完全错位。实操建议在导出Gerber之前先和板厂确认他们接受的格式。如果没有特殊要求建议使用以下设置单位Millimeters格式4:4整数4位小数4位零抑制Leading zeros suppressed这样设置的好处是精度足够高0.0001mm而且兼容性好。4.2 层选择哪些层必须导出哪些可以忽略在Gerber Setup对话框的“Layers”选项卡中你会看到AD列出了所有可导出的层。对于一块典型的双层板你需要导出的层包括Top Layer.GTLBottom Layer.GBLTop Overlay.GTOBottom Overlay.GBOTop Solder.GTSBottom Solder.GBSKeep Out Layer.GKOMechanical 1.GM1板框Drill Drawing钻孔图可以忽略的层Top Paste.GTP和Bottom Paste.GBP如果你不做SMT可以忽略其他机械层除非板厂要求否则不需要导出Internal Plane如果是双层板没有内层实操建议在导出前先右键点击“Layers”列表选择“All Off”关闭所有层然后逐个勾选你需要的层。这样可以避免导出不必要的文件减少板厂的处理时间。4.3 钻孔文件的导出细节别让孔径对不上钻孔文件的导出有两个关键设置单位和格式。在NC Drill Setup对话框中你需要设置单位Millimeters或Inches格式2:4或4:4零抑制Leading zeros suppressed钻孔原点Absolute或Relative钻孔原点是一个容易被忽略的设置。如果你选择“Relative”钻孔位置会相对于你设置的某个参考点如果你选择“Absolute”钻孔位置会相对于PCB的原点。大多数板厂要求使用“Absolute”原点。实操建议在导出钻孔文件之前先在PCB编辑器中设置好原点Edit → Origin → Set通常设置在板框的左下角。然后导出时选择“Absolute”原点这样钻孔位置就和Gerber文件中的坐标一致了。4.4 文件命名与打包让板厂一眼看懂导出Gerber后你会得到一堆文件。如何命名和打包这些文件直接影响板厂的处理效率。命名建议使用默认的后缀名不要随意更改如果板厂要求特定的命名规则按照他们的要求来在文件名中包含版本号和日期比如“MyBoard_V1.2_20250101.GTL”打包建议将所有Gerber文件放在一个文件夹中将文件夹压缩为ZIP格式不要用RAR有些板厂不支持在压缩包中包含一个README.txt文件说明板子的层数、尺寸、板厚、铜厚、阻焊颜色等信息实操建议在AD中你可以使用“File → Fabrication Outputs → Gerber Files”导出Gerber然后使用“File → Fabrication Outputs → NC Drill Files”导出钻孔文件。导出后手动将文件整理到一个文件夹中再压缩。5. 自查清单发给板厂前的最后一道防线5.1 文件完整性检查在发给板厂之前用以下清单逐项检查检查项检查内容常见问题铜层是否包含.GTL和.GBL忘记导出底层铜阻焊层是否包含.GTS和.GBS忘记导出阻焊层丝印层是否包含.GTO和.GBO丝印压焊盘板框层是否包含.GKO或.GM1板框不闭合钻孔文件是否包含.DRL和.TXT钻孔单位错误文件数量是否与层数匹配多导或漏导板框不闭合是一个常见问题。如果板框没有完全闭合板厂无法切割PCB外形。在AD中你可以使用“Design → Board Shape → Define from selected objects”来确保板框闭合。5.2 用CAM软件预览最直观的验证方式如果你有条件建议用CAM350或Genesis 2000等软件预览一下Gerber文件。这些软件可以模拟板厂的处理过程帮你发现潜在问题。免费替代方案你可以使用“Gerber Viewer”在线工具如PCBWay的在线Gerber查看器来预览文件。上传你的Gerber压缩包查看每一层的图形是否正确。实操建议在预览时重点检查以下内容铜层是否有断线或短路阻焊层是否覆盖了需要露铜的焊盘丝印层是否清晰可读钻孔位置是否与焊盘对齐5.3 与板厂沟通的注意事项即使你做了所有检查有时候板厂还是会提出一些问题。以下是一些常见的沟通场景板厂说“缺少阻焊层”检查你是否导出了.GTS和.GBS文件板厂说“钻孔文件格式不对”检查钻孔文件的单位和格式是否与板厂要求一致板厂说“板框不清晰”检查.GKO或.GM1文件是否包含完整的板框板厂说“丝印压焊盘”检查丝印层是否与焊盘重叠必要时调整丝印位置实操建议在第一次与某家板厂合作时建议先发一个小批量订单测试。如果板厂反馈了问题记录下来下次导出时避免同样的错误。提示有些板厂提供“Gerber文件检查”服务他们会帮你检查文件是否完整、是否有潜在问题。在下单前可以询问板厂是否提供这项服务。6. 那些年我踩过的Gerber导出坑6.1 钻孔文件单位错误导致整板报废这是我早期做PCB时踩过的一个大坑。当时我导出了Gerber文件也导出了钻孔文件但钻孔文件的单位设置成了Inches而Gerber文件的单位是Millimeters。结果板厂按照Inches来钻孔所有孔的位置都偏了整板报废。教训在导出钻孔文件时一定要确认单位与Gerber文件一致。最好在导出前先在AD中设置好默认单位Preferences → PCB Editor → General → Unit然后导出时选择相同的单位。6.2 阻焊层负片逻辑搞反另一个坑是阻焊层的负片逻辑。我第一次导出阻焊层时看到文件里只有焊盘的图形以为导错了于是手动在阻焊层上画了整板的图形。结果板厂收到文件后发现阻焊层覆盖了整个板子焊盘完全被阻焊覆盖无法焊接。教训阻焊层的Gerber文件是负片文件中有图形的地方是没有阻焊的。不要手动修改阻焊层的图形保持AD导出的原始状态即可。6.3 机械层导出过多导致板厂困惑有一次我导出了所有机械层包括尺寸标注、装配说明等。板厂收到文件后问我哪个才是真正的板框。我这才意识到导出过多机械层会让板厂困惑。教训只导出必要的机械层通常只需要板框所在的机械层。其他机械层可以在导出前关闭。6.4 文件命名不规范导致板厂手动分配层有一次我为了“清晰”把Gerber文件重命名为“TopCopper.gbr”、“BottomCopper.gbr”等。结果板厂收到文件后无法自动识别层类型需要手动分配。这不仅增加了板厂的工作量也增加了出错概率。教训保持默认的后缀名不要随意更改。如果板厂有特殊要求按照他们的要求来。6.5 忘记导出钻孔图导致无法确认孔径有一次我导出了Gerber文件和钻孔文件但忘记导出钻孔图Drill Drawing。板厂收到文件后无法确认每个孔径对应的工具编号需要我重新提供。教训钻孔图Drill Drawing是一个重要的辅助文件它列出了每个孔径的符号和工具编号。在导出Gerber时记得勾选“Drill Drawing”层。7. 进阶技巧如何让Gerber导出更高效7.1 使用Output Job文件一键导出如果你经常需要导出Gerber文件建议使用AD的“Output Job”功能。你可以创建一个Output Job文件配置好所有导出设置然后一键生成所有Gerber文件和钻孔文件。操作步骤在Projects面板中右键点击项目选择“Add New to Project → Output Job File”在Output Job编辑器中添加“Gerber Files”和“NC Drill Files”输出配置每个输出的层、单位、格式等设置点击“Generate”按钮一键生成所有文件好处Output Job文件可以保存和复用避免每次导出时重复设置。对于经常做PCB的工程师来说这是一个非常实用的功能。7.2 使用脚本批量导出如果你需要导出多个项目的Gerber文件可以使用AD的脚本功能。AD支持DelphiScript、VBScript等脚本语言你可以编写脚本来自动化导出过程。示例脚本DelphiScript// 这是一个简单的DelphiScript示例用于导出当前PCB的Gerber文件 Procedure ExportGerber; Begin // 打开Gerber Setup对话框 ResetParameters; AddStringParameter(Action, Export); AddStringParameter(FileType, Gerber); RunProcess(PCB:GerberSetup); // 导出NC Drill文件 ResetParameters; AddStringParameter(Action, Export); AddStringParameter(FileType, NC Drill); RunProcess(PCB:NC Drill); End;注意脚本的具体语法可能因AD版本而异建议参考AD的官方文档或社区论坛。7.3 使用模板减少重复设置如果你经常做类似的项目可以创建一个Gerber导出模板。在Gerber Setup对话框中配置好所有设置后点击“Save As”保存为模板文件.ini格式。下次导出时点击“Load”加载模板即可。好处模板可以确保每次导出的设置一致避免因设置不同导致的错误。8. 关于Gerber后缀名我的个人经验总结说了这么多其实核心就一句话Gerber后缀名是行业约定不是AD随意发明的。理解每个后缀名对应的层是每个PCB工程师的基本功。我在实际工作中发现很多新手工程师之所以在Gerber导出上反复踩坑根本原因不是技术难度高而是缺乏对Gerber文件本质的理解。他们把Gerber文件当成“黑盒”只知道点“导出”不知道导出的文件到底代表什么。一旦理解了每个后缀名的含义很多问题就迎刃而解了。最后再分享一个小技巧如果你不确定某个后缀名对应哪一层可以在AD的Gerber Setup对话框中将鼠标悬停在层名称上AD会显示一个提示框告诉你该层的完整名称和对应的文件名。这个功能在AD 19及以后的版本中都有非常实用。另外如果你经常和不同的板厂合作建议建立一个“板厂要求”文档记录每家板厂对Gerber文件的具体要求如单位、格式、命名规则等。这样下次合作时直接查阅文档即可不用每次都去问。