AD导出Gerber与钻孔文件:如何一次做对,避免制板返工?
你有没有遇到过这样的情况?
PCB设计明明在Altium Designer里看起来完美无瑕,发给厂家后却收到反馈:“丝印反了”、“孔位偏移0.1mm”、“缺钻孔文件”。更糟的是,工厂已经开始生产,结果整单报废——不仅耽误时间,还烧掉几千甚至上万的成本。
问题根源往往不在设计本身,而在于生产文件输出环节的疏漏或不规范。尤其是Gerber 文件与钻孔文件(NC Drill)未能同步、配置混乱,是导致这类事故最常见的原因。
今天我们就来彻底讲清楚:如何在 Altium Designer 中正确、高效、可复用地完成Gerber 与钻孔文件的同步输出,确保从设计到制造“零偏差”。
为什么必须同步输出?一个真实案例
上周有位工程师朋友找我求助:他做的四层板,顶层丝印上的元件标号全都镜像翻转了。他反复检查AD里的设置,确认没勾选“Mirror”,但导出的 Gerber 就是反的。
排查后发现,问题出在两个地方:
1. 他在不同时间分别导出了 Gerber 和钻孔文件;
2. 第二次导出时修改了原点位置,但忘记重新生成 Gerber。
结果就是:钻孔以新原点为准,而铜皮和丝印仍基于旧原点——层间错位虽小,却足以让贴片机定位失败。
这正是我们强调“同步输出、统一管理”的意义所在:不是能不能做出来的问题,而是能不能每次都稳定、可重复地做对。
Gerber 文件怎么生成?别再靠“经验主义”了
很多老手都说:“打开 Fabrication Outputs → 点几下 → 输出就行。”
但如果你不清楚每一步背后的逻辑,迟早会踩坑。
✅ 必须使用 RS-274X 格式
这是现代 PCB 制造的标准,支持内嵌 aperture 表(D-code),无需额外提供.apr文件。如果选成 RS-274D,还得手动打包 aperture 文件,极易遗漏。
设置路径:
Gerber Setup → General → Format →选择 [RS-274X]
✅ 单位与精度要匹配行业习惯
推荐设置为:
-单位:Inches
-格式精度:2:5(即整数2位,小数5位)
为什么不用 mm?因为绝大多数国产和国际大厂的 CAM 系统默认处理 inch 数据,尤其是高密度板,微米级误差可能来自单位转换舍入。
比如1.27mm = 0.05in,但如果用 2:4 的精度,就会变成0.0499in,差了 0.025mm —— 足够让你的焊盘偏心!
⚠️ 关键提示:Gerber 和 Drill 文件的单位必须一致!否则叠加时会出现系统性偏移。
✅ 层映射不能想当然
很多人以为“Top Layer 对应 Top Copper”就完事了,其实还需要关注以下几点:
| AD 层名 | 建议输出名称 | 是否镜像 |
|---|---|---|
| Top Layer | xxx_TopCopper.gbr | 否 |
| Bottom Layer | xxx_BotCopper.gbr | 是(底层自然镜像) |
| Top Solder Mask | xxx_TopSolder.gbr | 否 |
| Bottom Solder Mask | xxx_BotSolder.gbr | 是 |
| Top Silkscreen | xxx_TopSilk.gbr | 否 |
| Bottom Silkscreen | xxx_BotSilk.gbr | 是 |
注意:Bottom 层的所有图形在输出时都会自动镜像,这是物理现实决定的——阻焊和丝印都在板子背面。
✅ 关闭无关机械层
AD 支持多达32个Mechanical层,但并不是所有都要输出。例如用于结构标注的Mechanical 13,若误开启输出,会被当作可加工图形处理,可能导致误刻线或遮光。
建议做法:
- 在Layers选项卡中只勾选实际参与生产的层;
- 或者命名规范如Mechanical 1 - Board Outline,便于识别。
钻孔文件怎么配?别让“小孔”毁了大局
钻孔文件(NC Drill)虽然只是一个.drl文本文件,但它控制的是 CNC 钻床的动作指令。一旦出错,轻则通孔不通,重则断钻头、破板子。
✅ 使用 Excellon 格式,启用刀具信息嵌入
设置要点:
- 格式:Excellon
- 单位:Inches(与Gerber一致)
- 格式精度:2:4(足够,不必过度)
- 勾选:✔️ Generate drill drawing
- 勾选:✔️ Embed tool information in file
“Embed tool info” 很关键!如果不勾选,
.drl文件只会写坐标,不会包含刀具表(T1=0.3mm, T2=0.5mm…),工厂需要手动匹配,容易配错。
✅ 分开输出 PTH 与 NPTH(强烈建议)
虽然可以合并输出,但建议分两个文件导出:
-xxx_Drill_PTH.drl
-xxx_Drill_NPTH.drl
这样加工厂能清晰区分工艺流程:
- PTH 孔需沉铜电镀;
- NPTH 孔直接钻完即可,节省成本。
操作方式:在 Drill Setup 中切换不同的 Hole Types 组合,分别输出。
✅ 盲埋孔必须启用 Layer Pairs
如果你做的是多层板并用了盲孔(Blind Via)或埋孔(Buried Via),一定要确认:
- 已正确定义 Layer Pairs(Design » Layer Stack Manager » Internal Layer Pairs)
- 在 Drill Setup 中启用了 Use Layer Pairs
否则系统无法判断某个孔是否只穿透特定层,可能错误扩展为通孔,造成短路风险。
核心秘诀:用 Output Job 实现一键同步输出
这才是本文最值得你记住的部分。
不要再用“先点Gerber → 再点Drill”的碎片化操作了。真正的高手都用.OutJob文件统一调度所有生产输出任务。
什么是 Output Job?
简单说,.OutJob是一个“发布任务清单”,你可以把它想象成一份打包发布的脚本模板。它能:
- 把 Gerber、Drill、装配图、BOM 等全部整合在一起;
- 统一设置输出路径;
- 一次性点击生成所有文件;
- 支持团队共享,保证每个人输出标准一致。
推荐操作流程(实战版)
- 打开你的
.PcbDoc文件; - 菜单栏 →
File » New » Output Job File; - 双击新建的
.OutJob文件进入编辑界面; - 在左侧添加任务:
- 添加 → Fabrication Outputs → Gerber Files
- 添加 → Fabrication Outputs → NC Drill Files - 分别双击这两个任务,进入详细设置页面:
- 确保单位、精度、层映射等参数已按上述标准配置好; - 右键任一任务 → Set Output Directory → 设定统一输出目录,例如:
./Output/ProductionData/20250405_REV1/ - (可选)添加验证步骤:Add Validation → Run DRC / Compare to Project
- 最后点击顶部绿色按钮:Generate Content
✅ 此时,系统会自动依次执行所有任务,并将文件归类存放。整个过程无需人工干预,杜绝遗漏。
💡 高级技巧:可以把这个
.OutJob文件保存为模板,命名为PCB_Fab_Template.OutJob,下次新建项目直接复制使用。
常见问题避坑指南(附解决方案)
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 丝印层反了 | 底层丝印未开启镜像 | 检查 Bottom Silkscreen 输出时是否自动镜像 |
| 钻孔图没有尺寸标注 | Legend 未生成 | 在 Drill Setup 中勾选 “Generate legend” |
| 孔径显示异常(太大或虚圈) | Aperture 未嵌入或格式错误 | 确保 Gerber 使用 RS-274X 并 Embedded Aperture |
| 文件命名混乱难查找 | 默认命名太长或含特殊字符 | 自定义输出名称,如ProjectName_LayerPurpose.gbr |
| 多次输出版本混杂 | 没有版本标识 | 在输出目录中加入日期+版本号,如/REV1_20250405/ |
提升可靠性的四个实战建议
输出后必做预览验证
下载免费工具 GC-Prevue 或 ViewMate ,导入 Gerber + Drill 文件,叠加查看是否对齐。特别是 BGA 区域、电源层花焊盘,一眼就能看出问题。打包前加 ReadMe.txt
内容示例:PCB Name: PowerModule_V1.2 Revision: REV1 Date: 2025-04-05 Layers: 4-Layer (FR4, 1.6mm) Special Notes: - All PTH holes plated - Impedance controlled on L2/L3 - Keep-out zone near U1 for heat dissipation压缩成 ZIP 再发送
不要直接发一堆.gbr和.drl文件。打包成PowerModule_REV1.zip,整洁又专业。提前对接工厂要求
不同厂家可能有细微差异:
- 是否需要背钻文件?
- 是否接受 IPC-356 测试网表?
- 是否要求单独输出 Route 边框?
提前索要他们的File Submission Checklist,按需调整输出项。
进阶玩法:用脚本实现自动化输出(适合批量项目)
如果你负责多个类似项目,可以用 DelphiScript 编写自动化输出脚本,绑定到菜单或快捷键。
// AutoGenerateFabricationFiles.DelphiScript procedure Run; var OutJob : IOutputJobObject; begin OutJob := Project.OutputJobObject; if Assigned(OutJob) then begin OutJob.SetActive('Gerber', True); OutJob.SetActive('NC Drill', True); OutJob.SetOutputDirectory('.\Output\Fab_' + DateTimeToStr(Now)); OutJob.Execute; ShowMessage('✅ 生产文件已生成!'); end else begin ShowMessage('❌ 未找到 .OutJob 文件,请先创建!'); end; end.使用前提:已在项目中配置好
.OutJob文件,并命名为默认激活任务。
写在最后:把“输出”当成设计的一部分
很多工程师觉得,“画完板子就结束了”,其实不然。
PCB设计的终点不是布完线,而是成功量产。而生产文件的规范输出,正是连接这两者的桥梁。
掌握Gerber 与钻孔文件的同步输出技巧,不只是学会几个菜单操作,更是建立起一种工程思维:
→ 标准化
→ 可复现
→ 防错机制
当你能把每一次发布都做到“一次做对”,你就不再是普通的设计员,而是真正意义上的硬件工程师。
下次导出之前,不妨问自己一句:
“这些文件,能让陌生人拿去顺利打板吗?”
如果答案是肯定的,那你就真的过关了。
📌互动话题:你在导出 Gerber 时踩过哪些坑?欢迎留言分享,我们一起避雷!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考