从设计到制造:AD23中精准导出Gerber文件的实战指南
你有没有遇到过这样的情况?
PCB板子打样回来,发现丝印镜像了、焊盘没开窗、钻孔位置偏移……一查原因,竟是Gerber输出配置出了问题。明明在Altium Designer里看得好好的,怎么交给工厂就“变味”了?
这背后,往往不是设计能力的问题,而是对Gerber输出流程理解不够深入——尤其是那些看似“默认就行”的设置项,稍有疏忽就会埋下隐患。
本文基于Altium Designer 23版本,结合多年量产项目经验,带你手把手走完从PCB完成到文件交付的最后一步。不讲套话,只讲工程师真正需要知道的关键细节:为什么这么设、不这么设会怎样、工厂到底怎么看你的文件。
Gerber不只是“导出”,它是设计意图的翻译器
很多人把导出Gerber当成一个“点击按钮”的收尾动作,但实际上,它是一次设计语言向制造语言的转换过程。
什么是Gerber?别再把它当图片看了
Gerber文件(准确说是RS-274X 扩展格式)是一种二维矢量指令集,告诉光绘机:“在哪里画线、打孔、露铜”。它不包含电气连接信息,也不记录3D结构,但却是PCB加工厂最核心的输入依据。
举个例子:你在AD里画了一个0805电阻的焊盘,Gerber要传达的是:
- 这个焊盘的位置(X/Y坐标)
- 形状和尺寸(圆形还是矩形?多大?)
- 是否需要阻焊开窗(即是否露铜)
- 周围是否有丝印标注
这些信息会被拆解成一系列G-code命令和D-code绘图码,最终生成.GTL(顶层铜皮)、.GTS(顶层阻焊)等文件。
⚠️ 注意:必须使用RS-274X格式!老式的RS-274D需要额外附带 aperture 文件,极易出错,已被行业淘汰。
为什么说Gerber是“负片逻辑”?尤其看阻焊层
这是新手最容易踩坑的地方之一。
对于阻焊层(Solder Mask),比如顶层的.GTS文件,它是负片(Negative Polarity):
- 白色区域 = 没有绿油 = 露铜(用于焊接)
- 黑色区域 = 覆盖绿油 = 绝缘保护
而丝印层(Silkscreen)和铜层则是正片:白=有图形,黑=无。
如果你看到Gerber Viewer里整个板子都是白的,别慌——很可能你正在看的是阻焊层,而且所有焊盘都正确开窗了!
AD23推荐路径:用 Fabrication Outputs,别再进CAMtastic
Altium Designer 提供两种方式导出Gerber:
- 传统方式:通过 CAMtastic Editor 导入并手动处理
- 现代方式:使用
File → Fabrication Outputs模块
我们强烈推荐后者。为什么?
因为Fabrication Outputs 是面向制造流程的集成化输出系统,支持一键生成全套生产文件,并能与 Output Job 模板绑定,实现团队标准化作业。
关键设置项逐条解析:每个都不能“默认”
进入File → Fabrication Outputs → Gerber Setup后,你会看到一堆参数。下面我们挑最关键的几个讲透:
✅ Format: 选 2:5,不是 2:4 或 3:3
这表示整数位:小数位。2:5 表示最多两位整数、五位小数(单位英寸),精度达 0.00001” ≈ 0.254μm,满足绝大多数高密度板需求。
很多国产厂设备仍以 2:5 为基准,若设成 2:4 可能导致末尾舍入误差,引发微小偏移。
✅ Units: 推荐 Inches,慎用 mm
虽然公制看着舒服,但全球主流PCB设备(尤其是曝光机、钻床)普遍采用Inches作为内部处理单位。即使你选mm,AD也会转换为Inches再输出,反而增加一次转换风险。
除非你的合作工厂明确要求mm格式,否则统一用Inches + 2:5最稳妥。
✅ Leading Zero Suppression: 选 Leading
即去掉前导零,如.12345而非0.12345。这种格式更紧凑,兼容性更好,也是Ucamco官方推荐做法。
Trailing(去尾零)容易造成歧义,例如.1和.10000可能被误判为不同数值。
✅ Plot Layers: 别漏层!也别多层!
常见需输出的层包括:
| 层类型 | 对应文件后缀 | 是否必选 |
|---|---|---|
| Top Layer | .GTL | ✅ 必须 |
| Bottom Layer | .GBL | ✅ 必须 |
| Top Solder Mask | .GTS | ✅ 必须 |
| Bottom Solder Mask | .GBS | ✅ 必须 |
| Top Silkscreen | .GTO | ✅ 建议 |
| Bottom Silkscreen | .GBO | ✅ 如有底面贴装 |
| Top Paste Mask | .GTP | ✅ SMT专用 |
| Bottom Paste Mask | .GBP | ✅ 如有底面贴装 |
| Mechanical 1 (Board Outline) | .GM1 | ✅ 必须定义板框 |
⚠️ 特别注意:
- 不要勾选“Mirror Layers”!否则丝印会镜像,贴片时无法识别。
- “Include Unconnected Mid-Layer Pads”建议勾上,特别是BGA下方测试点或散热过孔,防止遗漏。
✅ Aperture: 必须选 Embedded (RS-274X)
确保D-code(绘图代码)内嵌在文件中,而不是依赖外部文件。这是RS-274X的核心优势之一,避免因缺失aperture表导致图形错乱。
钻孔文件怎么出?PTH和NPTH必须分开!
钻孔文件(NC Drill)描述所有通孔、盲埋孔的位置与尺寸,通常以 Excellon 格式输出(.TXT为主文件)。
进入File → Fabrication Outputs → NC Drill Drawing进行设置。
核心要点:单位和格式必须与Gerber一致!
- Units: Inches(同Gerber)
- Format: 2:5(必须一致!否则钻孔偏移)
- Zero Justification: Leading(去前导零)
如果不一致,哪怕只差一位小数,都会导致钻孔整体偏移0.1mm以上,足以让QFP引脚短路。
PTH vs NPTH:工厂靠这个决定要不要电镀
- Plated Through Hole (PTH):金属化孔,用于信号连接或电源过孔
- Non-Plated Through Hole (NPTH):非电镀孔,常用于螺丝孔、定位柱、散热孔
在AD中,Pad的属性决定了其是否为NPTH:
🔧 正确操作:
1. 选中目标焊盘(Pad)
2. 在属性面板中找到Plating字段
3. 设置为None (Non-Plated)
否则,工厂会按默认流程对所有孔进行沉铜处理,导致螺丝孔内壁导电、阻抗异常等问题。
✅ 推荐设置:
- 勾选Generate Separate Files for PTH and NPTH
- 输出两个独立文件:PTH.TXT和NPTH.TXT
这样工厂可以分步加工,避免工艺冲突。
阻焊控制:别让“默认扩展”毁了你的BGA
阻焊开窗大小直接影响焊接质量。默认情况下,AD会对每个表面焊盘做一定范围的阻焊扩展(Solder Mask Expansion),通常是±4mil(0.1mm)。
但对于细间距器件(如0.4mm pitch BGA、QFN封装),这个值太大了,可能导致相邻焊盘之间的绿油桥断裂,甚至引起短路。
如何精细化控制?
有两种方法:
方法一:全局调整(适用于大多数情况)
进入Design → Rules… → Manufacturing → Solder Mask Expansion
修改规则值,例如设为±2mil或0mil(紧贴焊盘边缘)
小贴士:对于大焊盘(如电源引脚),可保持稍大扩展以防虚焊;精细部分单独处理。
方法二:局部排除(高级用法)
使用规则优先级机制,为特定封装或网络设置不同的扩展值。
例如:
Rule Name: "BGA_SolderMask_Tight" Object Kind: Pad Full Query: HasComponent('U1') && IsInNet('DDR_DATA*') Expansion: 0mil这样就能实现“整体宽松、局部严格”的策略。
丝印避让:别压焊盘,也别让人看不懂
丝印层(Silkscreen)的作用是辅助装配与维修,但它不能干扰焊接区域。
AD自带防护机制
启用以下规则可自动避开危险区域:
Design → Rules… → Placement → Silkscreen Over Component Pads
设置 Clearance ≥ 0.2mm(约8mil),防止丝印覆盖焊盘,在回流焊时脱落污染锡膏。
同时建议:
- 文字高度 ≥ 1mm
- 线宽 ≥ 0.15mm
- 避免在高频走线下方放置密集丝印(可能影响阻抗)
双面贴装板怎么办?
如果两面都有元件,务必保证每面的丝印都在本层面朝上方向可读。必要时手动旋转文字,避免倒置。
可以在机械层添加注释:“TOP SIDE UP”、“BOTTOM TEXT ROTATED 180°”等提示。
完整输出流程 checklist(建议收藏)
以下是我们在实际项目中使用的标准流程,确保一次成功:
- ✅ 完成最终DRC检查,确认无未布线、间距违规
- ✅ 检查所有封装极性标记(二极管、电解电容、IC方向)
- ✅ 在 Layer Stack Manager 中确认叠层结构与板厚
- ✅ 使用 Mechanical Layer 1 定义精确板框(Keep-Out Layer 不够可靠)
- ✅ 进入
Fabrication Outputs → Gerber Setup
- 设为 Inches, 2:5, Leading Zero
- 嵌入Aperture
- 勾选所有必要层,取消Mirror - ✅ 输出 NC Drill 文件,分离 PTH/NPTH
- ✅ 生成辅助文件:
- Pick and Place File(贴片坐标)
- Assembly Drawing(装配图)
- Test Point Report(如有ICT需求) - ✅ 打包所有文件为 ZIP,命名规范如:
ProjectName_REV1_Gerbers.zip - ✅ 用 GC-Prevue 或 ViewMate 打开检查每一层:
- 层别是否对应?
- 阻焊开窗是否合理?
- 钻孔数量与位置是否匹配? - ✅ 发送前与PCB厂确认:板材、铜厚、阻抗、表面处理等工艺参数
常见问题与“救命”排查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 工厂说缺Top Layer | 输出时未勾选GTL | 回到Plot Layers重新检查 |
| 丝印全是镜像的 | 错误启用了Mirror Layers | 重新输出,关闭该选项 |
| 阻焊开窗太大 | 默认扩展值过高 | 修改Solder Mask Expansion规则 |
| 钻孔整体偏移0.1mm | 单位或格式不一致(如Gerber用2:5,Drill用2:4) | 统一为Inches + 2:5 |
| 螺丝孔被电镀了 | Pad未设为Non-Plated | 修改Pad属性并重新输出NPTH文件 |
| BGA区域焊盘连在一起 | 阻焊桥太窄或绿油溢出 | 缩小Solder Mask Expansion至0~2mil |
高阶技巧:用Output Job模板提升团队效率
如果你参与的是团队项目或多版本迭代,强烈建议创建一个Output Job 文件(*.OutJob)。
它可以:
- 保存完整的输出配置(Gerber、Drill、Assembly、PickPlace等)
- 支持一键批量输出
- 可纳入版本控制系统(Git/SVN),实现设计一致性
操作步骤:
1.File → New → Output Job File
2. 添加各阶段输出任务
3. 配置参数并保存为公司标准模板,如Standard_PCB_Output.OutJob
下次新项目直接复用,再也不怕“上次是怎么设的?”这种灵魂拷问。
写在最后:工具会变,底层逻辑不变
Altium Designer 正在不断进化,未来可能会加入AI自动检查、云端协同评审等功能,但有一点不会改变:
懂工艺的工程师,永远比只会点按钮的人更有话语权。
Gerber输出看似只是“导出文件”,实则是设计闭环的最后一道关卡。每一个参数背后,都有它的工程意义;每一次顺利投产,都是对细节把控的回报。
掌握这套方法,不仅是为了少返工、省时间,更是为了建立起从图纸到实物的完整掌控力。
如果你正在准备第一次打样,或者想优化团队的设计交付流程,不妨按照本文流程走一遍。你会发现,原来“一次成功”并没有那么难。
欢迎在评论区分享你的Gerber踩坑经历,我们一起排雷!