Altium Designer多层板Gerber输出实战指南:从配置到交付,一次做对
你有没有遇到过这样的情况?
PCB打样回来,发现丝印全是反的;或者贴片时焊不上——原来是阻焊没开窗;更离谱的是,四层板内电层一片空白,厂家打电话问:“你们这层是故意留空的吗?”
这些问题,90%都出在Gerber文件导出环节。别小看这个“最后一步”,它直接决定了你的设计能不能变成一块能用的板子。
今天我们就来彻底讲清楚:如何在Altium Designer中正确、高效、零失误地输出多层板Gerber文件。不是简单点几下鼠标,而是真正理解每一步背后的逻辑和坑点。
为什么Gerber这么重要?
先说个现实:你在Altium里画得再漂亮,DRC全过,3D视图完美无瑕……只要Gerber出错了,一切归零。
因为工厂只认Gerber。
他们不打开.PcbDoc文件,也不关心你用了哪个版本的AD。他们拿到的是一堆.gbr和.drl文件——这些就是制造机器的“施工图纸”。
而多层板尤其敏感。电源平面用负片表达、盲埋孔需要精确钻孔对齐、细间距BGA的阻焊开窗容不得半点偏差……任何一个细节出错,轻则返工重做,重则整批报废。
所以,Gerber输出不是流程终点,而是一次关键的质量关口。
Gerber到底是什么?别再把它当成“图片”了
很多人误以为Gerber就是PCB各层的“截图”。错得很彻底。
它是一种指令语言
Gerber(准确说是RS-274X格式)本质上是一种二维矢量绘图脚本,由一系列坐标+图形命令组成。比如:
G04 This is a comment* %FSLAX25Y25*% %MOMM*% %ADD10C,0.6*% D10* X100000Y200000D02* X100000Y200000D01*这段代码的意思是:
- 设置格式为2位整数、5位小数
- 单位毫米
- 定义一个直径0.6mm的圆形光圈
- 移动到(100.000, 200.000)
- 开始曝光画线
看到没?这不是图像,是可执行的制造指令流。
为什么必须用RS-274X?
老式Gerber(RS-274D)需要额外附带一个D-code文件说明每个代号代表什么形状,极易丢失或错配。而RS-274X支持内嵌Aperture定义,自包含性强,已成为现代PCB生产的事实标准。
✅ 正确做法:Always use RS-274X.
多层板结构与Gerber输出的关系
我们以最常见的四层板为例:
| 层序 | 名称 | 类型 | 是否需输出Gerber |
|---|---|---|---|
| L1 | Top Signal | 正片 | 是 |
| L2 | Ground Plane | 负片 | 是 |
| L3 | Power Plane | 负片 | 是 |
| L4 | Bottom Signal | 正片 | 是 |
注意关键区别:
-正片层:有铜的地方就画出来。
-负片层:默认全层是铜,只把要切除的部分(如隔离区、过孔环)用“挖空”方式表示。
Altium会自动识别Internal Plane类型的层并以负片形式输出,但前提是设置正确。
出错最多的地方:OutJob配置详解
Altium从十多年前就开始推OutJob机制,但它依然是最容易被忽视或滥用的功能模块。
别再手动导出了!用OutJob才是专业做法
很多工程师还在右键PCB → “Fabrication Outputs” → “Gerber Files”一步步填参数。这种方式的问题在于:
- 配置无法复用
- 容易漏选层
- 参数不一致(比如Gerber用inch,钻孔用mm)
正确的做法是使用Output Job File(*.OutJob),它是项目级的输出任务管理中心。
创建标准OutJob模板(建议收藏)
- 右键项目 → Add New to Project → Output Job File
- 命名为
Fabrication.OutJob - 添加以下任务组:
| 任务类型 | 输出内容 | 输出目标 |
|---|---|---|
| Gerber | 所有电气层、阻焊、丝印等 | Local Folder |
| NC Drill Files | 钻孔数据 | Local Folder |
| Assembly Drawings | 贴片图(Top/Bottom) | |
| Fabrication Drawings | 制造图(含层叠、尺寸标注) | |
| Bill of Materials | BOM表 | CSV / Excel |
这样一套配置可以保存为企业模板,团队统一使用。
关键设置项逐项拆解
进入Gerber输出配置界面后,以下几个选项决定成败。
1. Units & Format:单位和精度
| 设置项 | 推荐值 | 说明 |
|---|---|---|
| Units | Imperial (inch) | 国内绝大多数厂家习惯inch |
| Format | 2:5 | 整数2位,小数5位(即0.00001 inch ≈ 0.254μm) |
| Zero Suppression | Leading | 去掉前导零,符合RS-274X规范 |
⚠️严重警告:如果设成3:3,可能导致坐标溢出或精度不足,尤其是大板或多层对齐时出现偏移!
2. Layer Mapping:层映射必须一一对应
在Layers选项卡中,务必确认以下层都被勾选且命名清晰:
| Altium层名 | 输出文件建议命名 | 极性 |
|---|---|---|
| Top Layer | TOP.gbr | 正片 |
| Bottom Layer | BOT.gbr | 正片 |
| Internal Plane 1 | GND.gbr或IN1.gbr | 负片 |
| Internal Plane 2 | PWR.gbr或IN2.gbr | 负片 |
| Top Solder Mask | TSM.gbr | 负片(开窗为正) |
| Bottom Solder Mask | BSM.gbr | 负片 |
| Top Overlay | TOV.gbr | 正片 |
| Bottom Overlay | BOV.gbr | 正片 |
| Mechanical 1 (Edge) | EDGE.gbr | 正片 |
💡 小技巧:可以用Layer Comment来自定义输出文件名,避免混淆。
3. 特殊处理:负片层怎么不出错?
这是最常翻车的地方。
当你有一层是Internal Plane(例如GND层),Altium默认会以负片方式输出。也就是说:
- 整个区域默认是铜皮;
- 只有Via、Pad周围的隔离环(Clearance)和热风焊盘连接臂(Thermal Relief)被“挖掉”。
但如果你忘了启用某些选项,结果就是——Gerber里啥都没有!
必须检查的三项:
Include power planes✔️
在Advanced Settings中确保勾选此项,否则内部平面会被忽略。Use Route Layer Definitions✔️
确保走线层定义被引用,影响过孔连接判断。Include unconnected mid-layer pads✔️
这个非常关键!对于盲孔/埋孔,即使没有网络连接,也要保留焊盘。不勾选会导致内层焊盘缺失!
钻孔文件同步输出:别让NC Drill拖后腿
Gerber管图形,钻孔靠Excellon格式的NC Drill文件。
在同一OutJob中添加“NC Drill Files”任务,并注意:
- 单位与格式必须与Gerber一致(推荐inch, 2:5)
- Format选择Excellon
- Drill Drawing和Route Drawing分开输出
- 勾选“Generate drill files per hole size”便于查看
输出后你会得到:
-.drl:主钻孔文件
-.rep:报告文件(含孔径统计)
-.txt:钻孔列表(可读性好)
🔍 提示:用Gerber查看器打开.drl文件,叠加在TOP层上检查是否对齐。常见问题如“钻孔偏移0.1mm”往往是单位不一致导致。
实战避坑指南:那些年我们踩过的雷
❌ 问题1:阻焊层没开窗,所有焊盘都被盖住了
现象:贴片时锡膏印不上,测试点也焊不了。
原因分析:
- 全局规则未设置Solder Mask Expansion
- 某些封装中手工设置了“Mask = No”
- Expansion值为负数(常见于复制旧库)
解决方案:
Design → Rules → Manufacturing → Solder Mask → 设置Expansion = 0.1mm(或4mil) → 勾选 "Apply to all rules"然后全局更新所有焊盘。
✅ 补救措施:在Gerber查看器中观察TSM层,正常应看到比焊盘略大的圆形开窗。
❌ 问题2:内电层Gerber一片空白
典型对话:
客服:“你们的IN1层是空的,是要取消这一层吗?”
工程师:“不可能!我明明铺了GND啊!”
真相:你可能犯了这三个错误之一:
- 没有实际铺铜(只画了个polygon但没灌注)
- 输出时未勾选“Include power planes”
- 层类型不是Internal Plane而是普通Mid-Layer
排查步骤:
1. 切换到该层,按Shift+Ctrl+Click选中任意铜皮
2. 查看属性:是否为“Power Plane Object”
3. 如果是普通Polygon,请改为Plane或确保已成功灌注
❌ 问题3:丝印模糊、字体太小、甚至倒置
根源:
- 字高<30mil,低于工艺极限
- 使用了TrueType字体但未转为Primitives
- 错误勾选了“Mirror Layers”
解决办法:
统一设置丝印规则:
text Height ≥ 40mil Stroke Width ≥ 5mil对于文字对象:
- 右键 → Properties → 下拉“Convert to Primitive”
- 或在输出设置中勾选:“Convert true type fonts to gerber primitives”绝对不要勾选“Mirror”,除非你要做焊接底视图
❌ 问题4:钻孔和线路不对齐,BGA周围孔偏了
根本原因:原点偏移或单位混乱。
预防措施:
- 所有输出任务使用相同单位(强烈建议全程用inch)
- 不要手动移动原点(Origin)
在NC Drill设置中选择:
Reference to Absolute Origin输出后用GC-Prevue等工具将.drl叠加在.TOP上,放大检查BGA区域对齐度
输出后的必做动作:审核与打包
你以为点了“Generate”就完事了?远远不够。
第一步:用Gerber查看器全面审查
推荐工具:
-GC-Prevue(免费,功能强)
-Ucamco Viewer(官方出品)
-Altium Designer自带Viewer
检查清单:
| 检查项 | 方法 |
|---|---|
| 所有层是否存在? | 文件数量是否匹配 |
| 板框是否完整闭合? | EDGE层是否连续 |
| 阻焊开窗是否合理? | TSM层对比TOP,看是否覆盖焊盘 |
| 内电层是否为负片表达? | GND层应大面积黑色,仅隔离环为白色 |
| 丝印方向是否正确? | TOV层文字是否镜像? |
| 钻孔是否落在焊盘中心? | .drl叠加在TOP上验证 |
🛠️ 技巧:在GC-Prevue中按颜色区分层,一键切换正负片显示模式。
第二步:规范打包交付
不要直接发一堆.gbr文件!必须结构化压缩。
建议压缩包结构如下:
Project_V1.2_Gerber/ ├── gerber/ │ ├── TOP.gbr │ ├── BOT.gbr │ ├── IN1.gbr │ ├── IN2.gbr │ ├── TSM.gbr │ ├── BSM.gbr │ ├── TOV.gbr │ ├── BOV.gbr │ └── EDGE.gbr ├── drill/ │ ├── drill.drl │ └── drill.rep ├── docs/ │ └── PCB_Specification.pdf └── README.txt其中README.txt内容示例:
项目名称:WiFi_Module_V1.2 层数:4层(L1信号/L2地/L3电源/L4信号) 板厚:1.6mm ±0.1 铜厚:外层1oz,内层1oz 表面处理:ENIG(沉金) 阻焊颜色:绿色 字符颜色:白色 是否阻抗控制:否 特殊要求:无半孔,无镂空,邮票孔已标注 联系人:张工 138xxxx1234最后提醒:别让低级错误毁掉整个项目
- 每次改版都要重新输出Gerber,严禁复用旧文件
- 命名带上版本号和日期,如
Module_V1_20250405.zip - 保留原始输出记录,方便追溯问题责任
- 提前与PCB厂沟通格式要求,有些厂要求加边框标记、侧边写编号等
掌握这套方法,你就不再是“点了导出就祈祷”的新手,而是能掌控全流程的专业硬件工程师。
记住:
好的设计,值得一次成功的生产。
如果你正在准备打样,不妨对照这份清单走一遍。少一次返工,就能节省至少一周时间和几千元成本。
你现在输出的每一个.gbr文件,都在为产品的可靠性投票。认真对待它,产品才会回报你稳定的表现。
📌互动时间:你在Gerber输出时踩过哪些坑?欢迎留言分享,我们一起排雷。