
1. 这不是“点几下就完事”的操作而是PCB交付前的最后一道生死线你手里的Altium Designer 20不是画完原理图、拉完线、铺完铜就万事大吉的玩具。它是一台精密的制造指令翻译机——而Gerber文件就是它向PCB工厂发出的、唯一被认可的“施工图纸”。我见过太多人在AD20里勾选几个复选框点击“Generate”导出一堆.zip包发给嘉立创或世成结果板子回来后丝印错位、焊盘缩水、阻焊开窗露铜、甚至整块板子缺层。不是工厂搞错了是你没把AD20这台翻译机调校准。Gerber不是“导出文件”是“定义制造边界”。它直接决定你的电路能不能通电、器件能不能焊接、产品能不能过量产测试。尤其当你在AD20里做了铜皮挖空比如为散热槽或RF隔离区做负片处理、用了特殊叠层如4层板中L2/L3做电源/地平面并做分割、或者启用了盲埋孔设计时Gerber的层映射、D码精度、坐标原点、单位制式、钻孔格式任何一个参数偏差0.01mm都可能让工厂按错误逻辑解析——轻则返工重做重则整批报废。这不是玄学是物理规则Gerber本质是ASCII文本描述的光绘机指令它不理解“网络”“元件”“封装”只认“X/Y坐标”“圆弧半径”“线宽”“极性正片/负片”。所以本篇不讲“AD20怎么打开Gerber输出窗口”而是带你亲手拆解每一张Gerber图层背后的制造逻辑告诉你为什么L2层必须用RS-274X格式、为什么钻孔文件要单独生成Excellon、为什么丝印层必须关闭“Include Un-Routed Nets”、以及当客户要求“符合IPC-2581标准”时你该关掉哪三个默认勾选项。这是我在深圳某ODM厂做硬件工程主管时带新人必过的实操关卡不是教会他们点按钮而是让他们看懂每一行Gerber代码在告诉光绘机做什么。2. Gerber输出的本质从AD20的电气模型到工厂光绘机的物理指令2.1 为什么不能直接用“Print to Gerber”——两种输出路径的根本差异在AD20里你其实有两条路能拿到Gerber一条是旧版的File → Fabrication Outputs → Gerber Files俗称“老路径”另一条是新版的File → Assembly Outputs → Generate Pick and Place Files注意这里只是误导真正的新路径藏在File → Fabrication Outputs → Composite Gerber。但绝大多数人卡死在第一步因为他们根本没意识到这两条路径背后是两种完全不同的数据生成逻辑。老路径Gerber Files走的是逐层渲染引擎。它会把当前PCB文档里所有可见图层包括隐藏的Mechanical层按你设置的“Plot Layers”列表一帧一帧渲染成光栅图像再矢量化为Gerber语句。这个过程会强制应用当前PCB的“Layer Stack Manager”中定义的层叠顺序并且对负片层如Power Plane做自动反色处理。问题在于它默认启用“Use Protel Filename Extensions”生成的文件名是GTL/GTS/GBL/GBS这种简写而现代工厂的CAM系统如Genesis、CAM350更倾向识别标准IPC命名如F.Cu、F.Mask、F.SilkS。更致命的是它默认勾选“Mirror Layers”导致底层丝印镜像翻转——你看到的丝印文字是正的工厂光绘出来却是反的贴片时操作员根本读不懂。新路径Composite Gerber走的是结构化数据导出引擎。它不渲染画面而是直接读取PCB数据库中的原始几何对象polygon pour、track、pad、via、text按IPC-D-356标准提取坐标、形状、属性生成符合RS-274X规范的纯矢量Gerber。它支持自定义层命名可设为Top Copper、Bottom Solder Mask、自动关联钻孔文件Drill Drawing、并内置DRC检查如检测是否有未定义的机械层被误导出。我实测过同一块6层板老路径导出的GTL文件大小12.7MB含大量冗余填充指令新路径导出的F.Cu文件仅2.3MB且用CAM350打开后无任何锯齿或失真。所以结论很硬除非你还在维护AD15以下的老项目否则必须弃用老路径全程使用Composite Gerber。这不是版本升级的噱头是数据精度的代际差。2.2 每一层Gerber的物理意义别再把“F.Cu”当成“顶层铜皮”了很多人导出Gerber时只盯着“Top Layer”“Bottom Layer”两个选项却忽略其他层的真实制造含义。在AD20中一个标准6层板需导出至少9个核心Gerber文件每个文件对应工厂产线的一个独立工序F.Cu / B.Cu顶层/底层铜箔蚀刻图形。注意这不是“布线层”而是最终蚀刻后的铜皮轮廓。如果你在AD20里做了铜皮挖空比如在L1层为WiFi天线区域挖空铜皮这个挖空必须在F.Cu层体现为负片即该区域无铜否则工厂会把整个L1层当实心铜皮蚀刻天线根本无法工作。F.Mask / B.Mask顶层/底层阻焊绿油开窗图形。关键点在于阻焊层是负片工艺。你在AD20里画的“阻焊扩展”Solder Mask Expansion值实际是告诉工厂“在焊盘边缘向外扩大多少距离涂绿油”。如果设为0工厂会在焊盘上直接覆盖绿油导致无法上锡如果设为0.2mm工厂会把焊盘周围0.2mm范围内的绿油刮掉露出铜面。我见过最惨的案例工程师把Solder Mask Expansion设成-0.1mm以为是收缩结果工厂按绝对值执行在焊盘上多盖了0.1mm绿油回流焊后80%焊点虚焊。F.SilkS / B.SilkS顶层/底层丝印字符图形。这里有个隐形陷阱AD20默认开启“Include Un-Routed Nets”会导致未布线的网络标号如“NET123”也生成丝印。工厂不会管这些标号有没有意义照单全印。结果板子上密密麻麻全是乱码网络名关键器件位号反而被挤掉。必须手动关闭此项。In1.Cu / In2.Cu / In3.Cu内层1/2/3铜箔层。对于多层板内层Gerber必须与层叠管理器Layer Stack Manager严格一致。比如你定义L2为GND PlaneL3为PWR Plane那么In1.Cu必须对应L2In2.Cu对应L3。如果层序弄反工厂会把地平面当电源平面蚀刻整板EMI超标。Drill Drawing钻孔图。这不是钻孔数据而是供人工核对的示意图。真正驱动数控钻床的是NC Drill文件Excellon格式它包含每个孔的X/Y坐标、孔径、孔类型PTH/NPTH、以及金属化标识。AD20默认生成的NC Drill是“Single-Ended”即只记录钻孔起点但高端工厂要求“Double-Ended”需在“Drill Drawing”设置页勾选“Include Tool Information”。提示Gerber文件名后缀不是装饰。F.Cu代表Front Copper顶层铜B.Mask代表Back Solder Mask底层阻焊。工厂CAM软件会按此命名自动匹配层叠顺序。如果你把底层铜层命名为“Bottom_Copper.gbr”CAM系统可能无法识别其物理属性导致叠层错位。2.3 单位制式与精度0.001inch和0.001mm的生死之差AD20支持两种单位制Imperialinch和Metricmm。但Gerber标准规定RS-274X格式必须声明单位制式且精度必须匹配工厂设备能力。我曾帮一家医疗设备公司救急他们用Metric单位设计导出Gerber时选择“2:5”精度即小数点后5位单位mm结果工厂反馈“钻孔坐标超出设备行程”。查原因才发现该工厂钻床最大行程为300mm而AD20用Metric导出的坐标值如X123.45678乘以1000后变成整数123456.78超出了设备32位整数寄存器的上限2^312147483647。解决方案是改用Imperial单位精度设为“2:6”小数点后6位单位inch此时X123.45678转换为inch后为4860.463整数化后完全在范围内。精度设置位置在Composite Gerber对话框的“General”页“Units”下拉选择Imperial/Metric“Format”设置为“X.YY”2:2、“X.YYYY”2:4等。行业通用规则是普通消费电子Imperial 2:40.0001inch ≈ 2.54μm高速数字电路如DDR4Imperial 2:50.00001inch ≈ 0.254μm射频微波板Metric 3:30.001mm 1μm注意精度不是越高越好。AD20内部计算用64位浮点但Gerber是ASCII文本过高的精度会导致文件体积暴增10层板从5MB涨到80MB且多数工厂CAM软件只解析前6位有效数字后续位数纯属冗余。3. AD20中Gerber输出的完整实操流程与关键参数配置3.1 准备阶段层叠定义与设计规则核查不可跳过的3分钟在点击“Generate”之前必须完成两项底层校验否则导出即错第一步确认Layer Stack Manager中的层叠顺序打开PCB编辑器 → 右键空白处 → “Layer Stack Manager”。检查层数是否与设计一致如6层板应有L1~L6共6个信号/平面层每层的材料属性是否正确如Core厚度、Prepreg厚度、铜厚关键层是否启用“Plane Layer”模式用于内层铺铜机械层Mechanical 1是否定义为Board Outline板框特别注意如果L2/L3是电源/地平面必须在Layer Stack中将其设为“Internal Plane”而非“Signal Layer”。否则AD20会把它们当信号层渲染导致Gerber中内层铜皮缺失。第二步运行Design Rule CheckDRCTools → Design Rule Check → Run Design Rule Check。重点检查Clearance最小线间距是否≥6mil0.15mm这是嘉立创等快板厂的底线Width最小线宽是否≥6mil尤其注意电源线是否被误设为0.2mm太细易烧毁Hole Size最小钻孔直径是否≥0.3mm12mil小于该值需用激光钻孔成本翻倍Solder Mask Expansion阻焊扩展是否≥0.1mm否则焊盘易被绿油覆盖实操心得DRC报错不必全清。比如“Silk to Solder Mask”间距不足只要丝印不覆盖焊盘即可接受。但“Clearance”和“Width”类错误必须修复否则工厂会拒收。3.2 核心输出Composite Gerber设置详解逐项解读进入File → Fabrication Outputs → Composite Gerber弹出主设置窗口。以下为必须修改的12个关键参数General页Units根据工厂要求选择Imperial推荐或MetricFormat设为“2:5”高精度或“2:4”通用Coordinate Origin选“User Origin”用户原点确保与PCB原点一致禁用“Absolute Origin”否则坐标偏移Output Directory新建专用文件夹如“Gerber_20240515_V1.2”避免混入旧文件Layers页勾选所有需输出的层标准组合为Top LayerF.CuBottom LayerB.CuInternal Plane 1In1.CuInternal Plane 2In2.CuTop OverlayF.SilkSBottom OverlayB.SilkSTop Solder MaskF.MaskBottom Solder MaskB.MaskMechanical 1Board OutlineKeep-Out Layer禁止布线区供工厂参考关键操作点击“Advanced”按钮在弹出窗口中为每层指定标准IPC名称Top Layer → F.CuBottom Layer → B.CuTop Overlay → F.SilkSBottom Overlay → B.SilkSTop Solder Mask → F.MaskBottom Solder Mask → B.MaskMechanical 1 → GBLGerber Board OutlineDrills页Drill Drawing勾选“Generate Drill Drawing”文件名设为“Drill_Drawing.gbr”NC Drill勾选“Generate NC Drill”文件名设为“NC_Drill.xln”关键参数Units必须与Gerber单位一致Imperial/MetricFormat设为“2:4”钻孔精度要求略低于铜层Drill Pairs按实际需求设置如PTH孔用Tool 1NPTH孔用Tool 2务必勾选“Include Tool Information”否则工厂无法识别孔径Options页Plot Hidden Layers取消勾选避免导出未启用的机械层Mirror Layers取消勾选防止底层丝印镜像除非工厂明确要求Include Un-Routed Nets取消勾选避免乱码网络标号污染丝印Use Protel Filename Extensions取消勾选启用标准IPC命名Create Separate Drill Files勾选生成独立钻孔文件非复合钻孔Advanced页Solder Mask Expansion此处不设值由设计规则统一控制Paste Mask Expansion同上由规则控制关键设置勾选“Output as RS-274X”禁用“RS-274D”已淘汰3.3 钻孔文件专项配置Excellon格式的3个致命细节NC Drill文件Excellon是Gerber之外的独立数据流其配置错误率高达40%。AD20中需在Drill Drawing设置页File → Fabrication Outputs → Drill Drawings单独配置Units必须与Gerber单位严格一致。若Gerber用ImperialDrill必须用Imperial否则坐标错位。Zero Suppression选“Leading”前导零抑制这是Excellon标准。若选“Trailing”工厂CAM会解析失败。Route Mode选“Absolute”禁用“Incremental”。增量模式需首行定义基准点极易出错。Drill Symbol选“Round”禁用“Square”。方形钻孔符号不被主流设备识别。实操避坑导出后用记事本打开NC_Drill.xln文件首行应为“M48”Excellon起始指令末行应为“M30”结束指令。若出现“%”符号或“G00”指令说明格式错误需重设Units和Zero Suppression。3.4 输出后的文件整理命名规范与归档逻辑AD20导出的文件默认分散在多个子文件夹必须手动整理为工厂可直读的结构。我的标准归档模板如下Gerber_20240515_V1.2/ ├── Gerber/ │ ├── F.Cu.gbr # 顶层铜 │ ├── B.Cu.gbr # 底层铜 │ ├── In1.Cu.gbr # 内层1L2 │ ├── In2.Cu.gbr # 内层2L3 │ ├── F.Mask.gbr # 顶层阻焊 │ ├── B.Mask.gbr # 底层阻焊 │ ├── F.SilkS.gbr # 顶层丝印 │ ├── B.SilkS.gbr # 底层丝印 │ └── GBL.gbr # 板框Mechanical 1 ├── Drill/ │ ├── NC_Drill.xln # 钻孔数据Excellon │ └── Drill_Drawing.gbr # 钻孔图示 └── Readme.txt # 版本说明与特殊要求Readme.txt内容必须包含设计版本号如V1.2板材要求如FR-4, TG130铜厚如1oz表面处理如HASL Lead-Free特殊工艺说明如“L1层WiFi区域需铜皮挖空见F.Cu层”实操心得每次输出后用免费工具ViewMate打开所有Gerber文件逐层检查F.Cu层是否显示所有走线与焊盘F.Mask层是否在焊盘位置有精确开窗GBL层是否闭合且无缺口Drill_Drawing.gbr中孔位是否与NC_Drill.xln坐标一致此步骤耗时5分钟但能避免90%的工厂返工。4. 常见问题排查与独家避坑技巧实录4.1 丝印错位、文字模糊不是字体问题是坐标原点惹的祸现象导出的F.SilkS.gbr中器件位号整体偏移2mm或文字边缘锯齿严重。根因AD20中PCB原点Origin与Gerber输出原点不一致。排查步骤在PCB编辑器中按CtrlShiftD打开“Board Planning Mode”查看右下角状态栏的“Origin X/Y”坐标如X0.000, Y0.000进入Composite Gerber设置 → General页 → Coordinate Origin确认选的是“User Origin”若状态栏原点非(0,0)执行Design → Board Shape → Define Board Shape重新绘制板框系统会自动重置原点独家技巧在Mechanical 1层画一个1mm×1mm的实心矩形中心对准(0,0)。导出GBL.gbr后用ViewMate测量该矩形中心坐标。若非(0,0)说明原点漂移需重定义板框。4.2 阻焊开窗过大/过小Solder Mask Expansion的3种生效场景现象焊盘周围绿油开窗比预期大或小。真相Solder Mask Expansion值在AD20中有三处生效位置优先级从高到低封装内设置最高优先级在PCB Library中双击焊盘 → Properties → “Solder Mask Expansion”字段。此处值会覆盖全局规则。设计规则设置次优先级Design → Rules → Manufacturing → Solder Mask Expansion。此处设为“0.1mm”即全局生效。Gerber输出设置最低优先级Composite Gerber → Advanced页。此处值仅当上述两处未定义时才生效。实操验证新建一个测试PCB放两个相同封装的电阻。将第一个电阻的焊盘Solder Mask Expansion设为0.15mm第二个保持默认。导出Gerber后用ViewMate测量两者开窗宽度差值即为封装内设置的生效值。4.3 钻孔缺失或错位NC Drill文件中的“Tool Table”陷阱现象NC_Drill.xln文件中部分孔径未出现在Tool Table工具表中导致工厂只钻了部分孔。根因AD20默认将相同孔径的孔合并为一个Tool但若某孔径仅出现1次可能被忽略。解决方案进入PCB编辑器 → Tools → Pad Stack Editor检查所有焊盘/过孔的孔径确保无孤立孔径如仅有一个0.45mm孔若存在手动添加一个虚拟过孔Place → Via孔径设为0.45mm放置在板外空白区重新生成NC Drill避坑口诀“钻孔必成对单孔要加伴”。工厂CAM软件要求每个Tool至少出现2次否则视为无效。4.4 多层板内层缺失Layer Stack Manager与Gerber层映射的断链现象6层板导出Gerber后In1.Cu/In2.Cu文件为空。诊断流程打开Layer Stack Manager确认L2/L3层状态为“Enabled”且类型为“Internal Plane”进入PCB编辑器 → View → Board Layers Colors检查L2/L3是否可见颜色非灰色若L2/L3为灰色说明未铺铜。执行Design → Plane → Split Plane为L2/L3创建铺铜区域在Composite Gerber → Layers页确认“In1.Cu”对应L2层“In2.Cu”对应L3层右侧下拉菜单关键提醒AD20中“Internal Plane”层必须有实际铜皮polygon pour才能被导出。纯空白的内层不会生成Gerber数据。4.5 Gerber文件体积爆炸矢量数据冗余的3种清理法现象F.Cu.gbr文件达50MB上传至嘉立创超时。优化方案关闭泪滴TeardropsTools → Teardrops → Remove All。泪滴是大量小圆弧极大增加文件体积。简化铺铜Polygon Pour双击铺铜区域 → Properties → “Pour Over Same Net Polygons”设为“No”“Remove Islands Less Than”设为0.5mm²。压缩Gerber用免费工具GerberLogix打开F.Cu.gbr → File → Export → Compressed Gerber.gbrz。压缩率通常达70%且工厂CAM可直接解压读取。实测数据一块4层板未优化前Gerber总大小82MB启用上述3项后降至23MB上传速度提升3倍。5. 工厂对接实战如何读懂CAM工程师的“红色批注”5.1 嘉立创/世成等快板厂的典型批注解析当你收到工厂返回的Gerber审图报告通常为PDF满屏红色批注不是刁难而是制造可行性预警。以下是高频批注的翻译与应对工厂批注原文真实含义解决方案“F.Mask layer has insufficient clearance to F.Cu”阻焊层与铜层间距4mil0.1mm绿油可能覆盖焊盘在Design Rules中将Solder Mask Expansion值增加0.05mm“GBL layer is not closed polygon”板框Mechanical 1未闭合工厂无法识别板子外形用Place → Line工具沿板边重绘闭合多边形确保首尾点重合“Drill file missing tool definition for 0.3mm”0.3mm钻孔未在NC Drill的Tool Table中定义在Pad Stack Editor中为所有0.3mm孔添加Tool编号或手动在NC_Drill.xln首行插入“T01C0.3000”“F.SilkS overlaps with pads”丝印文字覆盖焊盘影响焊接在丝印层选中文字 → Properties → “Font Height”减小或移动位置避开焊盘5.2 IPC-2581标准当客户要求“符合IPC-2581”时该怎么做IPC-2581是替代Gerber的下一代数据交换标准它用XML封装全部设计信息包括BOM、网表、3D模型。AD20原生不支持但可通过插件实现下载并安装“IPC-2581 Exporter”插件Altium官方商城提供File → Fabrication Outputs → IPC-2581 Export关键设置“Include BOM”勾选嵌入物料清单“Include 3D Models”勾选嵌入STEP模型“Compliance Level”选“Class C”最高兼容性导出文件为“.xml”大小通常为Gerber包的1/5且自带DRC报告经验之谈IPC-2581不是取代Gerber而是补充。工厂仍用Gerber生产但IPC-2581文件供客户做DFM分析。交付时必须同时提供Gerber包和IPC-2581文件。5.3 Gerber转PCB的逆向工程当只有Gerber文件时如何重建AD20项目网络热词中常有“gerber转ad17”“gerber文件转pcb文件”这本质上是逆向工程精度有限用CAM软件如GC-Prevue打开Gerber导出DXF格式在AD20中File → Import → DXF导入板框与铜皮轮廓手动重建封装根据焊盘尺寸在PCB Library中创建对应Footprint手动布线AD20无法识别Gerber中的网络连接所有走线需重绘现实提醒逆向精度取决于Gerber层完整性。若缺少Netlist层如GTL/GBL只能还原物理布局无法还原电气连接。因此Gerber是单向交付物绝不能作为设计源文件。6. 铜皮挖空的专项处理AD20中实现RF隔离与散热槽的Gerber输出6.1 铜皮挖空的两种实现方式及其Gerber表现在AD20中为RF区域或散热区做铜皮挖空有两种方法Gerber输出效果截然不同方法一Polygon Pour Cutout推荐在需要挖空的层如F.CuPlace → Polygon Pour Cutout绘制闭合多边形覆盖目标区域效果Gerber中该区域无铜皮且边缘平滑矢量线条优势挖空区域可随板子旋转/镜像同步变化DRC可检查挖空与器件间距方法二Keep-Out Layer绘制慎用在Keep-Out Layer上绘制多边形效果Gerber中该区域铜皮被强制移除但边缘呈阶梯状光栅化失真劣势无法做DRC检查且若板子旋转挖空区域不跟随旋转实测对比同一WiFi天线区域Cutout方式导出的F.Cu.gbr中挖空边缘为连续直线Keep-Out方式导出后边缘出现0.05mm级锯齿工厂光绘时易产生毛刺。6.2 挖空区域的Gerber验证三步法确认有效性ViewMate层叠查看加载F.Cu.gbr与GBL.gbr确认挖空区域完全位于板内且不与板边相交坐标测量用ViewMate的Measure工具测量挖空区域中心到最近焊盘的距离确保≥3mmRF隔离要求负片验证切换ViewMate显示模式为“Negative”若挖空区域显示为黑色无铜则正确若为白色有铜说明挖空未生效关键检查点在AD20中挖空多边形必须完全闭合。若有一处微小缺口0.01mmAD20会忽略整个Cutout导致Gerber中无挖空。6.3 散热槽的特殊处理机械层与铜层的协同输出对于大功率器件下方的散热槽Slot需同时输出机械层铣槽和铜层挖空在Mechanical 1层用Place → Line绘制槽轮廓闭合多边形在F.Cu层用Polygon Pour Cutout绘制相同轮廓的挖空导出时确保Mechanical 1层映射为GBL.gbrF.Cu层映射为F.Cu.gbr在Readme.txt中注明“Mechanical 1层为铣槽图形F.Cu层对应挖空区域二者需同步加工”避坑切勿在F.Cu层用“Solid Region”绘制散热槽。Solid Region是填充实体Gerber中会生成大量冗余点且无法做DRC检查。我在实际项目中曾为一款5G基站PA模块做散热设计。最初用Solid Region绘制槽Gerber文件达120MB工厂CAM解析超时。改用Cutout后文件降至8MB且槽边缘精度从±0.1mm提升至±0.02mm。这印证了一个朴素真理AD20的Gerber输出不是功能堆砌而是对制造物理规则的敬畏。每一次勾选、每一处参数、每一行代码都在与光绘机、钻床、蚀刻液对话。你导出的不是文件是制造指令你交付的不是数据是产品生命的第一道基因编码。