1. 项目概述从PCB文件到Gerber文件的必要性作为一名在硬件行业摸爬滚打了十多年的工程师我经手过的PCB设计项目少说也有上百个。从最初直接把.pcbdoc文件打包发给板厂到后来被板厂工程师一个电话打回来问“你这层丝印到底要不要保留”再到如今形成了一套标准化的Gerber文件输出流程这中间踩过的坑、交过的学费让我深刻理解了一个道理把PCB设计文件直接发给板厂就像把源代码直接交给印刷厂去印书中间充满了不可控的风险和误解。Gerber文件就是硬件工程师与PCB制造厂之间那道至关重要的“工程图纸”。它用一种板厂设备光绘机能无歧义理解的标准化语言精确描述了你的电路板每一层铜箔的形状、每一个钻孔的位置、每一处阻焊和丝印的布局。为什么必须多这一步“转换”呢核心原因在于“信息降噪”和“权责清晰”。你的PCB设计文件里包含了大量对制造无用的信息比如元器件的3D模型、网络标签、设计规则检查的标记、甚至是你随手画的笔记。这些信息对板厂工程师来说是干扰可能导致他错误理解你的意图。更关键的是不同EDA软件Protel DXP, Altium Designer, KiCad, Allegro的版本差异、封装库的细微差别都可能在板厂的软件环境中产生意想不到的渲染结果。你自己生成Gerber就等于在交付前做了最终渲染和校对确保板厂看到的就是你屏幕上最终确认的样子。举个例子我早年就吃过亏。在一个四层板项目中我在内电层Internal Plane用铺铜的方式做了电源分割但在PCB图中为了清晰用了不同颜色的虚线表示分割线。结果板厂师傅可能没理解或者他们的CAM软件处理铺铜边缘的算法有差异做出来的板子电源和地之间出现了微短路一整批板子全部报废。如果当时我导出了Gerber在Gerber视图里内电层就是纯粹的、无歧义的几何图形这种误解根本不会发生。所以生成Gerber不是“多此一举”而是工程师把控产品质量、明确制造责任的关键一步。2. Gerber文件核心原理与Protel DXP图层体系解析2.1 Gerber文件的本质光绘机的指令集要玩转Gerber输出首先得明白Gerber到底是什么。你可以把它想象成一台超级精密的“数控雕刻机”光绘机的G代码。这台机器的工作就是在一张巨大的感光菲林胶片上用光线“画”出电路板的图形。Gerber文件里的每一行代码基本都在指挥三件事移动到哪里X,Y坐标、用哪把“刀”光圈Aperture、“刀”是落下曝光还是抬起不曝光。这里就引出了两个关键格式RS-274-D和RS-274-X。老式的RS-274-D格式Gerber文件只包含图形轨迹和光圈代码比如D10而光圈的具体形状是圆形、方形还是异形和尺寸则保存在另一个单独的D码文件Aperture List里。这就像给了机床一套动作指令但刀具手册得另外找。这种方式容易出错万一D码文件丢失或与Gerber文件不匹配整个图形就全乱了。而我们现在普遍使用的RS-274-X格式则聪明地把D码信息直接嵌入到了Gerber文件头部。一个文件包含所有信息大大降低了传输和处理的错误率。在Protel DXP中我们务必选择生成RS-274-X格式。2.2 深入理解Protel DXP的图层“全家桶”Protel DXP以及其后续版本Altium Designer的图层管理器Design - Board Layers Colors是生成正确Gerber的指挥中心。必须对每一类图层的用途了如指掌输出时才能有的放矢。1. 信号层Signal Layers这是电路的“血肉”包括Top Layer顶层、Bottom Layer底层和Mid Layer 1…中间层。这些层上是你用导线Track和填充Fill画出的实际电气连接铜皮。输出Gerber时每一层信号层都会对应生成一个独立的.GTL顶层、.GBL底层、.G1/.G2…内层文件。2. 丝印层Silkscreen Layers包括Top Overlay和Bottom Overlay。这是板的“脸面”印着元器件的轮廓、标号如R1, C2, U3和其他标识。一个关键经验务必在输出前检查丝印是否与焊盘重叠是否放在了阻焊开窗上。重叠的丝印在制造时会被抹掉导致字符残缺。我习惯在输出Gerber前专门将视图切换到只显示丝印层和焊盘层仔细检查一遍。3. 阻焊层Solder Mask Layers包括Top Solder和Bottom Solder。这是板的“防晒霜”或“绿油层”。它的作用恰恰与它的名字“Solder”相反阻止焊锡附着。在Gerber文件中阻焊层上显示的图形表示的是要开窗、不涂绿油、允许焊接的地方即焊盘和可能需要焊接的过孔。所以阻焊层文件.GTS,.GBS看起来像是焊盘的“负片”或“镂空”版。重要注意事项阻焊层通常需要比实际焊盘外扩一定的尺寸如2-4mil以确保焊盘边缘能被完全暴露出来这个扩展值可以在输出设置中调整。4. 锡膏层Paste Mask Layers包括Top Paste和Bottom Paste。这个层只针对表贴器件SMD用于制作刷锡膏的钢网。它和阻焊层不同锡膏层定义的开口通常略小于或等于实际焊盘尺寸以防止锡膏过多导致焊接短路。这个文件.GTP,.GBP是给SMT贴片厂用的PCB板厂通常不需要。5. 机械层Mechanical Layers与禁止布线层Keep-Out Layer这是定义板子物理轮廓和禁区的地方。板子的外形、开槽、镂空、螺丝孔位置都应该画在某一层或几层机械层上。Keep-Out Layer是一个特殊的层它定义了布线的禁区通常也用来辅助定义板框。最佳实践我强烈建议使用一层机械层例如Mechanical 1专门且唯一地绘制板子的最终外形边框Board Outline并在输出Gerber时将该层包含在“板框层”或单独输出。混乱的板框定义是导致板子形状错误的最常见原因。6. 钻孔层Drill Layers这是Gerber数据中独立但又至关重要的一部分通常生成两个文件钻孔图Drill Drawing,.GD1和钻孔表Drill Guide,.GG1以及一个包含所有钻孔坐标和尺寸的数控钻孔文件NC Drill Files, 后缀如.TXT或.DRL。钻孔图在菲林上以符号标示不同孔径钻孔的位置钻孔表则是图例。而NC Drill文件才是驱动钻孔机的真指令。3. Protel DXP生成Gerber文件的完整实操流程3.1 输出前的终极检查清单在点击“File - Fabrication Outputs - Gerber Files”之前请务必完成以下检查这能避免90%的返工DRC设计规则检查全绿通过确保没有未连接的网络、间距错误、短路等致命问题。铺铜Polygon Pour完全重铺Rebuild确保所有动态铺铜都已更新到最新状态没有残留的“死铜”或错误的连接。板框Board Outline清晰唯一确认板框由闭合的线条在机械层上构成且没有重复或断点。层叠结构Layer Stack Manager核对特别是多层板确认介质厚度、铜厚是否正确。这虽然不影响Gerber图形但影响板厂报价和生产。原点Origin设置建议将板子的左下角或某个定位孔设置为绝对原点Edit - Origin - Set。这能让生成的Gerber坐标更整洁便于后续CAM工程师处理。3.2 分步详解Gerber输出设置打开Gerber设置对话框后我们会看到多个标签页下面逐一拆解关键设置1. General通用标签页单位Units选择Inches英寸。这是PCB行业尤其是北美和国内多数板厂最通用的单位能最大程度避免兼容性问题。格式Format这是精度设置。2:5表示整数部分占2位小数部分占5位即分辨率达到0.00001英寸0.01 mil。2:4则是0.0001英寸0.1 mil。对于绝大多数消费电子和工控板2:4的精度0.1 mil已完全足够且文件尺寸更小。只有极高密度的HDI板可能需要2:5。我的经验是与板厂确认他们支持的格式通常2:4是安全选择。2. Layers图层标签页这是核心区域决定输出哪些层。点击Plot Layers下拉按钮选择Used On这样会自动勾画所有在当前设计中用到的层。但千万不要直接点OK必须手动复查并调整。必选层所有你用到的Signal LayersTop, Bottom, Mid…Top/Bottom OverlayTop/Bottom Solder。机械/板框层在右侧的Mechanical Layers to Add to All Plots区域勾选你用来定义板框的那一层机械层如Mechanical 1。这会将板框信息添加到每一层Gerber中是确保层间对齐的关键。镜像Mirror问题所有层通常都不要勾选“Mirror”除非板厂有特殊要求极少见。Bottom层的图形软件会自动以正确视角输出。内电层Internal Planes处理对于负片Negative显示的内电层Protel DXP在生成Gerber时会自动处理为正片图形无需特殊操作。3. Drill Drawing钻孔图标签页勾选Drill Drawing Plots下的Drill Drawing和Drill Guide。Drill Drawing Symbols选择Graphic symbols图形符号通常更直观但Size of hole string建议设为2mil避免符号太大重叠。务必在Drill Drawing Plots的Layer Pairs列表中包含所有你板子上存在的钻孔层对如TopLayer-BottomLayer。4. Apertures光圈标签页确保勾选**Embedded apertures (RS274X)**。这是我们之前强调的生成包含D码信息的、更安全的RS-274-X格式的关键。勾选后下方的Use software arcs使用软件圆弧也会被激活并建议勾选它能生成更光滑的圆弧轮廓。5. Advanced高级标签页Leading/Trailing Zeroes前导/后补零选择Suppress leading zeroes抑制前导零。这是更通用的格式。Position on Film胶片上的位置Reference to absolute origin参考绝对原点。Other其他G54 on aperture change通常勾选这是老式光绘机的兼容性指令勾选无妨。全部设置完成后点击OK软件会在当前项目目录下自动生成一个Project Outputs for ...的文件夹里面包含了所有Gerber文件。3.3 输出文件清单与对应关系生成后你会看到一堆扩展名不同的文件。对于一个典型的两层板核心文件包括文件扩展名对应图层说明.GTLTop Layer顶层走线/铜皮.GBLBottom Layer底层走线/铜皮.GTOTop Overlay顶层丝印.GBOBottom Overlay底层丝印.GTSTop Solder Mask顶层阻焊开窗层.GBSBottom Solder Mask底层阻焊开窗层.GML或.GMxMechanical Layer机械/板框层可能多个.GD1Drill Drawing钻孔图表图形化.GG1Drill Guide钻孔图例文本.TXT或.DRLNC Drill File数控钻孔文件最重要重要提示.TXT或.DRL这个钻孔文件必须和Gerber文件一起打包发给板厂。没有它板厂不知道在哪里钻孔、钻多大的孔。4. 输出后的验证与交付避免“最后一公里”翻车文件生成完工作只完成了一半。不经过验证就发出去等于闭着眼睛过马路。4.1 必做的Gerber可视化检查Protel DXP自带一个简单的Gerber查看器CAMtastic但功能较弱。我强烈推荐使用第三方免费且强大的工具GerberView如ViewMate, GC-Prevue或直接使用板厂提供的在线查看工具。导入所有文件将生成的Gerber文件和钻孔文件一起导入查看器。逐层对齐检查关闭所有层只打开顶层丝印.GTO和顶层阻焊.GTS检查丝印是否避开了所有焊盘开窗。再打开顶层走线.GTL检查走线与焊盘关系。板框确认打开机械层.GML确认板子外形、开槽是否正确。钻孔对齐叠加钻孔层.TXT文件会以符号或圆圈显示到所有层上检查每一个孔是否都准确落在了焊盘中心特别是定位孔、螺丝孔。层叠顺序模拟板厂的叠层从顶层阻焊、顶层走线、内层…到底层走线、底层阻焊、底层丝印一层层叠加查看建立立体概念检查有无明显错误。4.2 打包与交付规范检查无误后需要打包发给板厂压缩包命名包含项目名称、版本号、日期如ProjectName_V1.2_Gerber_20231027.zip。包含文件所有.GBR/.GTL等Gerber文件 .TXT/.DRL钻孔文件。必附文档在压缩包内或邮件正文中提供一个简单的说明文档Readme.txt板名XXXX主板 PCB软件Altium Designer 22 (由Protel DXP项目升级) 层数2层 板厚1.6mm 铜厚1oz 表面工艺有铅喷锡 阻焊颜色绿色 丝印颜色白色 最小线宽/线距6/6 mil 最小孔径0.3mm 主要文件说明 .GTL - 顶层线路 .GBL - 底层线路 .GTS - 顶层阻焊 ... (列出所有文件) .TXT - 钻孔文件 特殊说明无铅工艺请做塞孔。沟通确认将Gerber文件和说明发给板厂的客服或工程师后务必要求他们提供一次DFM可制造性设计检查报告。正规的板厂都会做并会反馈潜在问题如焊盘间距不足、孔距板边太近等。这是利用板厂经验为你做最后一道把关的宝贵机会。5. 进阶技巧与多层板特别注意事项5.1 处理特殊设计与Gerber输出技巧泪滴Teardrops如果你在PCB中加了泪滴在Gerber中它会正常呈现。但要注意有些老旧的CAM软件对复杂泪滴的处理可能会有问题如果板子密度不高可以考虑在输出前移除泪滴或者输出后仔细检查泪滴处。负片Negative内电层Protel DXP处理得很好输出为正片Gerber图形。你只需要在图层设置中勾选对应的内电层如Internal Plane 1即可。盲埋孔Blind/Buried Vias对于有盲埋孔的设计钻孔文件的输出至关重要。在NC Drill设置中需要为不同深度的钻孔层对生成独立的钻孔文件如L1-L2.DRL,L2-L3.DRL并在线路图中用不同颜色的钻孔图例区分。务必在说明文档中清晰注明各钻孔文件对应的层。5.2 两层板 vs. 四层板输出清单对比这是一个非常实用的快速核对表文件类型两层板 (2L)四层板 (4L, 典型 顶层/内电1/内电2/底层)说明线路层.GTL,.GBL.GTL,.G1,.G2,.GBL四层板中.G1和.G2对应两个内电层正片图形。丝印层.GTO,.GBO.GTO,.GBO通常只有顶层和底层有丝印。阻焊层.GTS,.GBS.GTS,.GBS同样只有外层需要阻焊。锡膏层.GTP,.GBP.GTP,.GBPSMT贴片用给板厂时可省略但自己应保留。机械/板框层.GML(或.GMx).GML(或.GMx)定义外形一层即可。钻孔图.GD1,.GG1.GD1,.GG1可能包含通孔、盲埋孔符号。钻孔文件.TXT或.DRL.TXT或.DRL对于四层板如果只有通孔一个文件即可若有盲埋孔则需多个。其他可能包含.GKO(Keep-Out)同左如果用了独立的禁止布线层做板框。给四层板工程师的特别提醒内电层.G1,.G2在Gerber里显示的是正片即你看到的有铜区域就是实际保留的铜皮。务必在输出前在这些层的Gerber预览中仔细检查电源分割线Split Line的宽度和隔离带是否足够避免因制造公差导致不同电源网络之间的间隙不足。6. 常见问题排查与实战经验实录即使按照流程操作依然可能遇到各种“妖孽”问题。下面是我总结的“排雷”清单问题1板厂反馈“钻孔文件对不上”或“孔位偏移”。原因排查原点不一致PCB设计中的原点和Gerber/钻孔文件输出的原点不统一。确保在输出Gerber和NC Drill时都使用相同的参考原点强烈建议使用Absolute Origin。单位/格式不匹配Gerber用了英寸2:4钻孔文件不小心用了毫米。在输出NC Drill文件时通过File - Fabrication Outputs - NC Drill Files其Units和Format设置必须与Gerber设置完全一致。解决方案用Gerber查看器同时打开线路层和钻孔文件叠加查看。如果整体偏移就是原点问题如果缩放错误就是单位问题。问题2生成的Gerber文件用查看器打开发现焊盘缺失或变形。原因排查99%是光圈Aperture问题。可能是使用了自定义的非标准焊盘形状而D码未能正确嵌入或识别。解决方案在Protel DXP输出设置中确认已勾选Embedded apertures (RS274X)。尽量避免使用过于复杂或自定义的焊盘。如果必须使用尝试在PCB库中将其分解Explode为标准的线条和圆弧组合。用文本编辑器打开生成的Gerber文件如.GTL查看文件头部是否有完整的%ADD...%这样的D码定义语句。问题3板子做回来发现某些不该露铜的地方比如大块铺铜没有绿油覆盖。原因排查阻焊层Solder Mask设置错误。可能是在阻焊层上错误地放置了填充Fill或线条Line导致这些区域也被识别为需要开窗。解决方案在PCB设计中切换到只显示Top/Bottom Solder层检查是否有除了焊盘和需要焊接的过孔之外的任何图形。确保阻焊层是“纯净”的。问题4丝印字符在板子上变得模糊或残缺。原因排查丝印上焊盘这是最常见原因制造时焊盘上的丝印会被蚀刻掉。丝印线宽太细设计时使用了小于0.15mm6mil的丝印线宽工艺极限可能导致断线。字体问题使用了笔画特别复杂的TrueType字体在光绘时边缘可能不光滑。解决方案输出前进行DRC检查可以设置一条“Silkscreen Over Component Pads”的规则。统一使用等线体Stroke字体并将丝印线宽设置为0.2mm8mil以上。最后的心得生成Gerber不是一个机械的点击操作而是一次对设计的最终审视和交付转换。把它当作产品出厂前的“总装检查”。建立一套自己的检查清单和标准化输出模板能极大提高效率、减少错误。每次发板前花半小时用第三方Gerber查看器过一遍这个时间投资回报率极高能救回可能报废的板子和延误的项目周期。硬件工程师的严谨就体现在这些看似繁琐、实则至关重要的细节里。