武威市网站建设_网站建设公司_全栈开发者_seo优化
2026/1/18 2:36:58 网站建设 项目流程

AD导出Gerber文件实战:避开钻孔与叠层不匹配的“坑”

在PCB设计这条路上,你有没有经历过这样的时刻?

板子寄回来了——焊盘上的过孔偏了半个身位,内层信号没连通,或者更离谱的是,盲孔居然穿透到了底层。返工一拖就是两周,项目进度直接“爆表”。

别急,这些问题90%都出在一个看似不起眼、实则致命的环节:Gerber和钻孔文件导出时,钻孔层与叠层未正确匹配

尤其是在使用Altium Designer(AD)进行多层板或HDI设计时,很多工程师按部就班点了“生成制造文件”,却忽略了关键设置,结果把错误数据交给了工厂。而这些错误,在打样回来之前根本无法察觉。

今天我们就来彻底讲清楚:如何用Altium Designer正确导出Gerber和钻孔文件,确保每一根钻孔精准落在该去的地方。这不是一份简单的操作指南,而是一套经过实战验证的完整流程,帮你绕开那些让无数人栽跟头的陷阱。


为什么你的钻孔总是“偏心”?真相藏在这三个地方

先说一个残酷的事实:
即使你在PCB编辑器里看到Via完美居中于焊盘,只要输出设置不对,加工厂拿到的数据依然可能让钻孔“飞出去几毫米”。

这不是夸张。我们曾遇到一批六层板,顶层BGA下方的盲孔整体偏移约0.15mm,导致焊接后阻抗异常。排查一周才发现——Gerber用的是Leading Zero Suppression,而钻孔文件却是Trailing

就这么一个小选项,毁了一整批板。

问题根源通常集中在以下三点:

  1. 单位与格式不一致:Gerber是2:4英寸,钻孔却是3:3公制?
  2. 零抑制方式错配:一个去头零,一个去尾零,坐标解析直接错乱。
  3. Drill Pair未定义或映射错误:盲埋孔被当成通孔处理,层间连接全乱套。

所以,真正的“AD导出Gerber教程”,不是点几个按钮那么简单,而是要理解每一步背后的逻辑。


Gerber文件到底是什么?别再把它当“图片”看了

很多人误以为Gerber就是PCB各层的“截图”,其实不然。

它是一个精密的二维矢量指令集

Gerber(RS-274X格式)本质上是一种描述图形坐标的文本协议。它记录了:
- 每一段走线的起点终点
- 焊盘的形状与尺寸
- 覆铜区域的轮廓
- 阻焊开窗的位置

但它不包含三维信息,也不告诉你这个孔是从哪层打到哪层——这部分,靠的是另一个独立文件:NC Drill

这也是为什么我们必须同时导出两套文件,并保证它们“语言相通”。

常见层命名对照表(IPC-350标准推荐)

层名称文件后缀说明
Top Layer.GTL顶层线路
Bottom Layer.GBL底层线路
Top Solder Mask.GTS顶层绿油开窗
Bottom Solder Mask.GBS底层绿油开窗
Top Silkscreen.GTO顶层丝印
Internal Plane 1.G1内电层1(如GND)
Paste Mask Top.GTP顶层钢网

✅ 小贴士:有些厂商要求.GP1表示钢网,注意提前确认命名规则,避免沟通成本。


钻孔文件(NC Drill)才是连接层间的“桥梁”

如果说Gerber画的是“地图”,那NC Drill就是“施工队”的行动指令。

它通过一系列X/Y坐标+刀具编号(T01, T02…),告诉CNC钻机:“在这里打一个直径0.3mm的孔”。

但重点来了:普通通孔容易处理,可一旦涉及盲孔、埋孔、槽孔,就必须依赖正确的Drill Pair映射

否则,系统会默认所有孔都是Top→Bottom,哪怕你设了From-To为Top→L2,也会被忽略!

典型Excellon钻孔文件片段解析

M48 INCH,TZ FMAT,2 T01C0.3048 T02C0.4064 % G90 T01 X0008700Y0012500 X0009500Y0012500 T02 X0010000Y0013000 M30

逐行解读:
-M48:程序开始标志
-INCH,TZ:单位为英寸,尾部零抑制(Trailing Zero)
-T01C0.3048:第1号钻头,直径0.3048mm ≈ 12mil
-G90:绝对坐标模式
-X...Y...:具体钻孔位置

⚠️ 关键警告:如果Gerber用的是LZ(Leading Zero),而这里是TZ,那么X0008700会被解析成X87.00而非X0.8700,造成严重偏移!


Layer Stack Manager:你的叠层“指挥中心”

路径:Design → Layer Stack Manager

这是整个PCB物理结构的“总控台”。你以为只是换个层数?错了。

它决定了:
- 信号层、电源层的实际顺序
- 板材类型(FR-4、Rogers等)、介电厚度
- 更重要的是——盲埋孔的起止层定义

举个例子:

你画了一个从Top到L2的盲孔,但如果Layer Stack中没有定义对应的Drill Pair,AD就不会为它生成独立的钻孔数据。最终,Fab厂只会按通孔处理,把你精心设计的HDI结构变成“假盲孔”。

正确配置示例(6层HDI板)

Layer NameTypeMaterialThickness (mm)Copper (oz)
TopSignalCu-1
L2PlanePrepreg0.11
L3SignalCore0.21
L4SignalPrepreg0.11
L5PlanePrepreg0.11
BottomSignalCu-1

在此基础上,必须手动添加两个Drill Pair:
-Top – L2(用于盲孔)
-L3 – L4(用于埋孔)

然后回到Via属性中,将对应类型的Via设置为“From: Top, To: L2”,并与该Pair关联。

✅ 实战经验:建议不同Via类型使用不同网络类或颜色标记,方便后期检查与筛选。


四步搞定精准输出:从设置到验证全流程

不要再凭感觉点了。以下是我们在量产项目中反复验证过的标准化流程。

第一步:统一Gerber输出设置

菜单路径:File → Fabrication Outputs → Gerber Setup

关键配置项:
-Units: Inches(强烈建议)
-Format: 2:5(比2:4更高精度,兼容主流设备)
-Zero Suppression: Leading(LZ,推荐统一使用此项)
-Plot Layers: Used On(自动选中所有实际使用的层)
-Mirror Layers: ❌ 不勾选(尤其丝印层翻转会很麻烦)
-Omit Pullback: ❌ 不勾选(保留完整数据)

点击OK生成.GTL,.GBL,.GTS等文件。

第二步:同步配置NC Drill文件

菜单路径:File → Fabrication Outputs → NC Drill Setup

务必做到“三一致”:
-Units: Inches(必须与Gerber一致!)
-Format: 2:5
-Zero Suppression: Leading(与Gerber相同)
-Hole Origin: Absolute(以PCB原点为基准)
-Enable Map Holes to Layer Pairs: ✔️ 必须勾选!

这一步是盲埋孔能否正确输出的关键。如果不勾选,所有孔都会合并到一个文件中,无法区分层级。

第三步:检查Drill Pair是否生效

进入Layer Stack Manager → Drill Pairs标签页:
- 确认存在Top - Bottom(默认通孔对)
- 新增Top - L2L3 - L4并启用
- 回到PCB界面,右键任一盲孔 → Properties → 查看“From-To”是否匹配

若显示“Unspecified”,说明未绑定,需手动指定。

第四步:用CAM工具做最终验证

导出完还不算完!一定要用专业查看器叠加验证。

推荐工具:
-GC-Prevue(免费、轻量、支持Gerber+DRL)
-Ucamco Viewer(官方出品,最权威)

操作步骤:
1. 打开GC-Prevue
2. 加载所有Gerber文件(GTL, GBL, G2, G5…)
3. 导入.DRL钻孔文件
4. 切换“Composite”视图,观察钻孔是否完全落在焊盘中央
5. 单独打开L3/L4层,确认埋孔是否存在,而盲孔是否消失

✅ 成功的表现:
- 钻孔居中无偏移
- 盲孔仅出现在Top和L2
- 埋孔只在L3和L4之间可见
- 没有多余孔穿透到无关层


六层HDI实战案例:一次成功的投板是怎么炼成的

某工业控制主板需求:
- 6层结构,含高速差分对
- 使用盲孔(Top→L2)、埋孔(L3→L4)、通孔混合布局
- 最小线宽/线距:4/4mil
- 要求阻抗控制±10%

我们的应对策略:

  1. 前期准备
    - 在Layer Stack Manager中明确定义6层结构
    - 添加两个自定义Drill Pair
    - 设置材料参数供阻抗计算使用

  2. 布线阶段
    - 使用“Via Style”预设三种Via类型
    - 绑定快捷键快速切换盲/埋/通孔
    - DRC规则中增加“Minimum Annular Ring”检查

  3. 输出前最后 checklist
    - 运行完整DRC,清除所有Error
    - 确认所有非金属化孔已标记NPTH
    - 输出Gerber和Drill文件
    - 用GC-Prevue验证叠层对齐情况

  4. 交付包组织结构

/Fabrication_Data/ ├── Gerber/ │ ├── PCB_Name.GTL │ ├── PCB_Name.GBL │ ├── PCB_Name.G2 │ └── ... ├── Drill/ │ ├── PCB_Name.DRL │ └── PCB_Name.drd ├── Assembly/ │ └── PCB_Name.PickAndPlace.csv └── readme.txt

readme.txt内容示例:

板名: Control_Board_V2.1 层数: 6层 板厚: 1.6mm ±0.1 表面工艺: ENIG 阻焊颜色: Green 字符颜色: White 特殊要求: - 盲孔: Top -> L2, φ0.15mm - 埋孔: L3 -> L4, φ0.2mm - 所有BGA区域禁止测试点 - 阻抗控制: 差分100Ω ±10%

正是这套严谨流程,让我们实现了连续三次“一次投板成功”。


最容易被忽视的五个“坑点”与破解秘籍

  1. 坑点一:改完板子重新导出,忘了更新Drill文件
    - 🔧 秘籍:养成习惯——每次改版后,先删旧文件夹,再重新生成全套输出。

  2. 坑点二:手动重命名Gerber文件导致顺序错乱
    - 🔧 秘籍:不要随意改名!使用AD默认命名或脚本批量处理。

  3. 坑点三:忘记输出Paste Mask(钢网层)
    - 🔧 秘籍:SMT贴片厂必需要.GTP/.GBP,否则无法做锡膏印刷。

  4. 坑点四:盲孔Via仍设为“Through”类型
    - 🔧 秘籍:务必在Via属性中选择“Blind/Buried”,并指定From-To层。

  5. 坑点五:未启用“Map Holes to Layer Pairs”
    - 🔧 秘籍:这是盲埋孔输出的生命线,必须勾选!


如果你只想记住一件事,那就是:

Gerber和Drill文件必须“说同一种语言”——相同的单位、格式、零抑制方式,再加上正确的Drill Pair映射,才能确保钻孔准确命中目标层。

这不是玄学,是工程细节的积累。

下次当你准备点击“Generate”之前,请停下来问自己:
- 我的Drill Pair设好了吗?
- 单位和零抑制一致吗?
- 是否已经用CAM工具验证过?

少一次侥幸,多一分可靠。毕竟,每一次成功的投板,都不是偶然。

如果你在实现过程中遇到了其他挑战,欢迎在评论区分享讨论。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询