从零搞定Allegro SPB中的Gerber输出:实战全流程拆解
你有没有遇到过这种情况?
辛辛苦苦画完一块六层板,差分走线调得一丝不苟,电源平面分割清晰,DRC全绿——信心满满准备投板。结果工厂回传一句话:“阻焊开窗错位,部分孔缺失”,直接打回来重做。
别急,这锅往往不在你的布线上,而在你对Allegro导出Gerber文件的理解还不够“落地”。很多工程师能画板,却卡在最后一步的光绘输出上,问题频出:层名混乱、负片花盘断裂、钻孔为空……归根结底,是对Artwork Control Form、Film Control和NC Parameters这三大核心模块缺乏系统掌握。
今天,我们就抛开手册式的罗列,用一个真实项目视角,手把手带你从零开始,在Cadence Allegro SPB环境下完成一次完整、可靠、可交付的 Gerber 输出流程。
先搞明白:到底什么是合格的Gerber制造包?
在动手之前,先明确目标:我们最终要交给PCB厂的,不是一个.brd文件,而是一整套标准化的数据集合。这套数据必须能让厂家准确还原你的设计意图。
一套完整的 Gerber 制造包通常包括:
| 类型 | 内容说明 |
|---|---|
| Gerber RS-274X | 每一层的图形信息(信号层、电源层、阻焊、丝印等) |
| Excellon 钻孔文件 | 所有通孔、盲埋孔的位置与尺寸(.drl) |
| 钻孔图(Drill Drawing) | 图形化展示孔位分布及刀具对应关系 |
| 板框文件(Outline) | 定义PCB物理边界 |
| README 或 Notes | 特殊工艺说明(如阻抗控制、背钻要求、表面处理) |
这些文件缺一不可。尤其对于嘉立创、华秋、深南这类主流厂商,上传时若漏掉某一层,轻则返工,重则造成短路或装配失败。
第一步:进入 Artwork 控制台 —— Artwork Control Form 的正确打开方式
路径:Manufacture → Artwork...
这个界面就是整个 Gerber 输出的“总控室”。它不直接决定每一层怎么出,但掌控着全局参数。
关键设置项详解(建议截图对照操作)
| 参数 | 推荐值 | 为什么重要? |
|---|---|---|
| Drawing Units | English (inch) | 国内多数工厂仍以 inch 为主流,避免单位混淆 |
| Format | 2:5 | 整数2位,小数5位,精度足够且兼容性强 |
| Leading/Trailing Suppression | Leading | 去掉前导零,符合 CAM 软件解析习惯 |
| Number of Digits After Decimal Point | 3 | 控制坐标显示精度,不影响实际数据 |
| Negative Film Format | 勾选 | 支持负片输出(用于内电层优化) |
| Boundary Clip | 勾选 | 自动裁剪超出 Board Outline 的图形,防止溢出 |
✅经验提示:如果你的设计是公制体系(mm),也建议在此处切换为 inch 并使用
2:5格式输出。后续可在工厂端统一转换,避免本地和远程解析差异。
点击“General Parameters”设置完成后,下一步才是真正的“分层管理”。
第二步:构建输出层结构 —— Film Control 实战配置
回到主界面,点击“Film Control”按钮,进入每一层的具体绑定环节。
这里的核心逻辑是:每个 film 对应一个输出文件,你可以选择将多个设计层合并输出(Composite),也可以单独输出。
常见 film 分组建议(适用于四层及以上板)
| 输出文件名 | 包含的设计层 | 极性 | 说明 |
|---|---|---|---|
Top_Cu | TOP,tPlace,tRefDes | Positive | 顶层线路+元件标识 |
Bottom_Cu | BOTTOM,bPlace,bRefDes | Positive | 底层线路+标注 |
Inner1,Inner2 | L2,L3等 | Positive | 内部信号层 |
Power_Plane | VCC | Negative | 电源平面(负片) |
Gnd_Plane | GND | Negative | 地平面(负片) |
Top_SolderMask | tSolderMask | Positive | 顶层阻焊开窗 |
Bot_SolderMask | bSolderMask | Positive | 底层阻焊 |
Top_Silkscreen | tSilkScreen | Positive | 顶层丝印 |
Bot_Silkscreen | bSilkScreen | Positive | 底层丝印 |
Outline | Board Geometry > Outline | Positive | 板框轮廓 |
⚠️ 注意事项:
-内电层务必设为 Negative!否则会输出大量填充区域,导致文件巨大且易出错。
-tSolderMask 层不要与其他层合并,必须独立输出,否则会影响钢网制作。
- 若使用背钻或 HDI 结构,需额外添加Backdrill_Top,Microvia_Laser8mil等专用层并单独输出。
如何创建一个 film?
以创建Top_Cu为例:
- 在 Film Control 界面点击Add→ 输入名称
Top_Cu - Type 选择
CONDUCTOR - 点击Add Layer,依次添加:
-TOP(顶层铜皮)
-tPlace(顶层装配标记)
-tRefDes(参考标号) - 极性选择
Positive - 取消勾选
Include Invisible Objects(避免导出调试层)
重复上述步骤,直到所有关键层都被纳入至少一个 film。
第三步:搞定钻孔数据 —— NC Parameters 设置要点
路径:Manufacture → NC → NC Parameters
钻孔文件(Excellon)虽然不是 Gerber,但它是制造包中不可或缺的一环。如果这一步出错,哪怕线路完美也无法成板。
必须检查的关键参数
| 参数 | 推荐设置 | 说明 |
|---|---|---|
| Output Unit | Inch | 与 Gerber 保持一致 |
| Coordinate Format | 2:4或2:5 | 小数位数要匹配 Gerber 设置 |
| Zero Suppression | Leading | 去除前导零,标准做法 |
| Tool Order | By Size Ascending | 按钻头从小到大排序,利于加工效率 |
| Mirror Y Axis | 不勾选 | 否则 Y 轴反转,孔位全错! |
| Generate Tool Table | 勾选 | 输出刀具汇总表,便于核对 |
| Decimal Places | 4 | 保证定位精度 |
输出哪些钻孔文件?
建议分开输出两类:
- Plated Holes (PTH):包含所有金属化孔(过孔、插件焊盘)
- Non-Plated Holes (NPTH):仅非金属化孔(如螺丝孔、定位孔)
可以在Drill Customization中分别定义输出规则,并生成对应的.drl文件。
🔍调试技巧:
如果发现.drl文件为空,先运行Tools → Database Check检查 padstack 是否损坏。常见原因是封装库更新后未同步,导致 via/pad 引用失效。
第四步:一键生成 + 本地验证,闭环不出错
一切就绪后,回到 Artwork 主界面,点击“Generate Artwork”。
Allegro 会根据你配置的 films 和 drill 参数,批量生成以下内容:
GERBER/ ├── Top_Cu.gbr ├── Bottom_Cu.gbr ├── Inner1.gbr ├── Power_Plane.gbr ├── Gnd_Plane.gbr ├── Top_SolderMask.gbr ├── Bot_SolderMask.gbr ├── Top_Silkscreen.gbr ├── Bot_Silkscreen.gbr ├── Outline.gbr └── README.txt DRILL/ ├── all_holes.drl ├── pth.drl ├── npth.drl └── drill_legend.pdf本地验证怎么做?
强烈建议使用GC-Prevue(免费)或CAM350加载全部文件进行预览:
- 导入所有
.gbr文件,按层识别 - 叠加查看各层对齐情况(特别是阻焊与线路)
- 检查负片花盘是否完整,有无断裂
- 查看钻孔层与线路层的孔环(annular ring)是否正常
- 确认板框闭合无缺口
✅避坑指南:
- 若发现阻焊开窗偏移,检查tSolderMask层是否被意外移动原点;
- 若内层无图形,确认该层已加入 film 且 shape 已灌铜(flood);
- 若丝印压焊盘,可在 Allegro 中启用 DRC 规则检查Silk to SMD Clearance。
高阶技巧:用 Tcl 脚本实现自动化输出
对于需要频繁导出的标准项目(如模块板、电源板),完全可以把重复操作写成 Tcl 脚本,一键执行。
# gerber_export.tcl - 自动化导出脚本示例 source [find lecrpath allegro.tcl] # 设置全局格式 set_artwork_format -units english -notation absolute -format {2 5} -suppression leading # 创建顶层film add_film -name "Top_Cu" -type CONDUCTOR add_layer_to_film -film "Top_Cu" -layer "TOP" add_layer_to_film -film "Top_Cu" -layer "tPlace" add_layer_to_film -film "Top_Cu" -layer "tRefDes" # 创建电源负片 add_film -name "Power_Plane" -type PLANE -polarity negative add_layer_to_film -film "Power_Plane" -layer "VCC" # 设置钻孔参数 set_nc_parameter -unit english -coordinate_format "2:5" -zero_suppression leading generate_drill_file -output_file "DRILL/all_holes.drl" # 生成所有artwork generate_artwork -all_films puts "✅ Gerber 输出完成!请前往 GERBER/ 和 DRILL/ 目录检查文件。"保存为.tcl文件后,在 Allegro 命令行输入:
source ./gerber_export.tcl即可全自动完成大部分配置工作。适合团队内部建立统一输出模板。
常见问题速查表(收藏级)
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| Gerber 显示空白 | 层未加入任何 film | 检查 Film Control 是否遗漏 |
| 阻焊开窗偏移 | 原点偏移或层未对齐 | 使用Edit → Move校准原点 |
| 负片花盘断裂 | clearance 不足或 thermal relief 设置错误 | 调整 anti-etch width 或启用 optimized thermal |
| 钻孔文件为空 | padstack 缺失或 database 损坏 | 运行DB Doctor修复 |
| 文件命名乱码 | 使用了中文路径或特殊字符 | 输出路径改为纯英文 |
| Cam软件无法识别 | 格式不匹配(如3:3) | 统一使用2:5+ Leading 抑制 |
最后的 checklist:投板前必做七件事
- ✅ 完成最终 DRC 和 Unrouted Nets 检查
- ✅ 所有有效层均已加入至少一个 film
- ✅ 内电层设置为 Negative 输出
- ✅ 阻焊层独立输出,未与丝印合并
- ✅ 钻孔参数与 Gerber 单位/格式一致
- ✅ 使用 GC-Prevue 叠加验证层对齐
- ✅ 打包为 ZIP,命名规范(如
Project_V1.2_Gerber.zip)
写在最后:输出不是终点,而是协作的开始
掌握Allegro导出Gerber文件的能力,本质上是在训练一种“可制造性思维”——你不仅要画得出,还要让别人做得出来。
随着智能制造的发展,越来越多企业将 Gerber 输出纳入 PLM 流程管理。提前建立标准化的输出模板、Tcl 脚本和 check list,不仅能提升个人效率,更能推动团队工程规范落地。
下次当你准备点击 “Generate Artwork” 时,不妨多问一句:
“这份输出,工厂拿到后能不能零沟通直接开工?”
如果答案是肯定的,那才是真正意义上的“设计闭环”。
如果你正在搭建企业的 PCB 设计输出规范,欢迎留言交流,我们可以一起整理一份通用模板共享社区。