Allegro导出Gerber文件:从零到一次成功的实战全解析
你有没有遇到过这样的情况?
辛辛苦苦画完一块4层板,走线完美、电源干净、EMC也优化到位,结果一发工厂——“贵司提供的Gerber缺内电层”、“阻焊开窗异常导致短路风险”……回板直接报废,周期拖了三周。
问题出在哪?
往往不是设计本身,而是最后一步:Allegro导出Gerber文件的设置出了纰漏。
在PCB设计流程中,这看似简单的“点几下鼠标”的操作,实则藏着无数坑。一个参数不对,就可能让前面几十小时的努力付诸东流。而Cadence Allegro作为高端Layout工具,其Artwork系统功能强大但逻辑复杂,稍有不慎就会踩雷。
本文不讲套话,不堆术语,只用最直白的语言+实战视角,带你手把手走完Allegro导出Gerber的完整链路。无论你是刚上手的新手,还是想查漏补缺的老工程师,都能在这里找到你需要的答案。
为什么Gerber这么重要?
先说清楚一件事:Gerber不是“输出格式”,它是制造语言。
PCB厂的CAM工程师不会打开你的.brd文件,他们只看Gerber。你画的每一条线、每一个焊盘、每一处开窗,都必须通过Gerber准确无误地传达出去。一旦信息丢失或错位,轻则贴片困难,重则整批板子变废铁。
目前行业通用的是RS-274X 扩展Gerber标准,它支持嵌入Aperture表(D-code),无需额外提供光圈文件,兼容性好,是当前主流选择。
而Allegro中的Gerber生成模块叫做Artwork Generator,它的核心任务就是把你在PCB Editor里看到的设计,翻译成工厂能读懂的“图纸”。
出错高发区:这些坑你踩过几个?
在正式开始前,先看看常见的“翻车现场”:
- 阻焊层明明打了勾,导出来却没内容 → 忘记开启SOLDERMASK subclass
- 内层GND平面导出后全是实心 → 没设Negative模式
- 工厂反馈坐标原点偏移 → 原点选成了Design而不是Board Outline
- 文件打不开,提示“invalid format” → 单位和精度不匹配(比如用了5:6但设备只认4:4)
这些问题,90%都可以通过一套标准化流程避免。接下来我们就一步步来构建这个流程。
第一步:出发前检查清单
别急着点“Manufacture → Artwork”,先把底子打好。
✅ 必须确认的事项:
- DRC已清空:所有布线规则检查通过。
- 元件已锁定:防止误动。
- 板框已定义:路径为
Board Geometry → Outline,这是后续原点设定的基础。 - 层叠结构正确:打开
Setup → Cross-section确认L1~L4顺序无误。 - 丝印方向统一:建议全部朝上或右,避免反向文字。
- 阻焊扩展值已设:进入
Setup → Subclass → Assign,给SOLDERMASK_TOP/BOTTOM设置合理的Expansion(通常4~6mil)。 - 隐藏辅助图层:关闭Testpoint、Ratsnest、Via Tag等非必要显示项。
小技巧:使用
View → View All查看所有层状态,再手动关闭无关subclass。
第二步:启动Artwork控制台
打开Allegro PCB Editor,依次点击菜单栏:
Manufacture → Artwork弹出窗口叫Artwork Control Form—— 这是你本次旅程的主控台。
第三步:全局参数设置(General Parameters)
点击左上角的General Parameters按钮,配置以下关键选项:
| 参数 | 推荐设置 | 说明 |
|---|---|---|
| Drawing size | Custom | 宽高略大于板框即可,如10x8 inch |
| Coordinate origin | Lower left | 强烈建议设为Board左下角,与多数工厂一致 |
| Unit | Inches | 行业默认单位;若用mm,则需调整精度 |
| Format | 4:4 | 整数4位,小数4位,兼顾精度与兼容性 |
| Leading/Trailing zero suppression | Trailing | 删除尾部零,减少文件体积 |
| Grid reference | Off | 不输出网格线 |
| Symbol refnum text height | 100 mils | 保证位号清晰可读 |
⚠️ 注意:如果你的项目明确要求毫米制,应选择
Format: 5:3或5:4,否则可能导致舍入误差。
第四步:图层映射(Film Control)——核心环节
点击Film Control进入图层绑定界面。这才是真正的“灵魂操作”。
每个“Film”对应一个输出文件,你要告诉Allegro:“哪些设计层合在一起,输出成哪一个Gerber”。
如何添加新Film?
- 右键空白区域 → Add → New Film
- 输入名称,例如
GERBER_TOP - 双击该Film进入Layer Set配置
典型Film配置方案(适用于4层板)
1. 顶层信号层(Top Layer)
- Film Name:
GERBER_TOP - Layers Included:
ETCH/TOP(走线)PIN/TOP(焊盘)VIA/PAD(通孔主体)VIA/XNET(过孔连接)
✔️ 提示:不要遗漏VIA类图层,否则过孔会缺失。
2. 底层信号层(Bottom Layer)
- Film Name:
GERBER_BOTTOM - Layers Included:
ETCH/BOTTOMPIN/BOTTOMVIA/PADVIA/XNET
3. 顶层阻焊层(Solder Mask Top)
- Film Name:
SM_TOP - Layers Included:
SOLDERMASK/TOP- Mode: Negative(负片)
🔍 为什么要用负片?因为阻焊层大部分是覆盖的,只有焊盘处需要“开窗”。负片只需描述“去掉的部分”,数据量小、效率高、不易出错。
4. 底层阻焊层(Solder Mask Bottom)
- Film Name:
SM_BOTTOM - Layers Included:
SOLDERMASK/BOTTOM- Mode: Negative
5. 顶层丝印层(Silkscreen Top)
- Film Name:
SS_TOP - Layers Included:
SILKSCREEN/TOPREF_DES/YELLOW(位号)COMPONENT/YELLOW(器件框)
❗ 警告:千万不要包含BOTTOM层的内容!否则丝印会镜像错误。
6. 内电层(Power/Ground Plane)
以L2 GND层为例:
-Film Name:GND_PLANE
-Layer:ETCH/INNER2
-Mode: Negative
-Include Additional Layers:
-ANTI_PAD/INNER2
-THERMAL_RELIEF/INNER2
✅ 关键点:Allegro能自动识别Split/Mixed Plane,并生成正确的热风焊盘和隔离环。前提是Layer Type必须设为“Plane”。
7. 钻孔图(Drill Legend)
- Film Name:
DRILL_LEGEND - Layers Included:
MANUFACTURING/DRILL_LEGENDMANUFACTURING/NC_LEGEND
第五步:光圈表管理(Aperture List)
回到主界面,点击Aperture List。
选择:
- [x]Auto Generate(自动生成D-code)
- 最小/最大尺寸可留空
- 点击Generate
✔️ 建议勾选“Embed Apertures in Gerber Files”,将Aperture表直接写入每个Gerber头部,提升兼容性。
这样即使你不单独发送.apt文件,工厂也能正确解析图形。
第六步:输出路径与预览
切换到Output标签页:
- Directory:指定输出目录,建议新建
Gerber_Output文件夹 - Prefix:可加项目前缀,如
PRJ001_ - 勾选:
- [x] Embed Apertures in Gerber Files
- [x] Create Map File (.map)
点击View Plot,逐层查看图形是否完整、有无断线或缺失。
重点关注:
- 电源层是否有孤岛?
- 阻焊开窗是否对准焊盘?
- 丝印是否压到测试点?
发现问题立即返回修改,不要等到导出后再返工。
第七步:生成Gerber文件
确认无误后,点击Create Artwork开始输出。
等待进度条完成,你会在目标目录看到以下文件:
PRJ001_GERBER_TOP.gbr PRJ001_GERBER_BOTTOM.gbr PRJ001_SM_TOP.gbr PRJ001_SM_BOTTOM.gbr PRJ001_SS_TOP.gbr PRJ001_GND_PLANE.gbr PRJ001_VCC_PLANE.gbr PRJ001_DRILL_LEGEND.gbr job.log film.map output.art ← 当前配置备份,可用于下次复用💡 提示:
.art文件可以保存为团队模板,实现输出一致性。
第八步:钻孔文件导出(Excellon格式)
Gerber只管“面”,钻孔要单独处理。
路径:
Manufacture → NC → NC Parameters设置如下:
-Unit: Inch
-Format: 2:4(整数2位,小数4位)
-Output Type: Drill + Route
- 勾选:
- [x] Generate Report (.rep)
- [x] Mirror Y Axis(如需镜像底层钻孔)
点击NC Drill生成.drl和.rep文件。
📌 建议同时输出
.dxf钻孔图供核对。
实战案例:某工业控制器4层板
项目需求:
- 层叠结构:L1信号 / L2 GND / L3 VCC / L4信号
- 输出格式:RS-274X + Excellon
- 单位:inch, 4:4
- 包含位号、极性标识、阻焊负片
按照上述流程操作后,共生成:
- 8个Gerber文件(含两层阻焊、两层丝印、两层信号、两个内电层)
- 1个.drl钻孔文件
- 1份.map对照表
内部使用GC-Prevue加载验证,各层对齐良好,电源完整,开窗准确。提交后一次性通过工厂审核,首板功能正常。
常见问题与应对策略
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 阻焊开窗过大或缺失 | Soldermask Expansion未设置 | 在Subclass中统一设为5mil |
| 丝印压焊盘 | 文字太靠近焊盘 | 使用Display → Show Ratsnest辅助判断间距 |
| 负片无法识别 | 未启用Negative模式 | 在Film Control中勾选Mode: Negative |
| 坐标原点偏移 | 原点设错 | 统一设为Lower left (Board Geometry) |
| 文件打不开 | 格式不符或Aperture未嵌入 | 检查是否启用Embedded Aperture,优先输出RS-274X |
高阶技巧:如何做到又快又稳?
1. 创建企业级输出模板
将标准配置保存为.art文件,纳入公司Design Kit(DDK),新人入职直接调用,避免“各自为政”。
2. 使用Skill脚本自动化
对于批量项目,可用Allegro Skill语言编写一键导出脚本:
; 自动化导出Gerber脚本 axlCmdWatchState(nil) artWork = axlArtWorkGet() ; 设置通用参数 axlArtWorkSetOptions(artWork ?generalParam ?format '(4 4) ?unit 'inch ?zero 'trailing ?origin 'lowerleft) ; 生成Artwork axlArtWorkGenerate(artWork) printf("✅ Gerber files generated successfully!\n")保存为.il文件,在Allegro中运行即可自动完成设置与输出。
3. 输出前后双重验证
- 第一道关:Allegro内置Viewer预览
- 第二道关:导入第三方工具(如CAM350、GC-Prevue)交叉比对
- 重点核查项:
- 电源层完整性(有无断裂)
- 阻焊开窗匹配度
- 钻孔与焊盘对齐情况
- 极性标识是否存在
4. 命名规范建议
统一命名规则,便于管理和追溯:
[Project]_[LayerType]_[Function].gbr 示例: MPU9600_GERBER_TOP.gbr MPU9600_SM_BOTTOM.gbr MPU9600_GND_PLANE.gbr写在最后:别让最后一公里毁了全程
我们常说“细节决定成败”,在PCB设计中,Gerber导出就是那个决定性的细节。
它不像高速布线那样炫技,也不像电源分割那样考验理论功底,但它却是连接虚拟设计与物理世界的桥梁。桥塌了,一切都归零。
掌握这套经过实战验证的Allegro导出流程,不仅能让你少走弯路,更能建立起专业工程师应有的严谨作风。
下次当你准备点击“Create Artwork”时,请记住:
每一次导出,都是对设计成果的郑重交付。
如果你也在使用Allegro做复杂板卡设计,欢迎在评论区分享你的输出经验和踩过的坑,我们一起打造更可靠的硬件交付体系。