武威市网站建设_网站建设公司_无障碍设计_seo优化
2026/1/6 9:58:12 网站建设 项目流程

从设计到制造:Allegro中一套真正“拿得出手”的Gerber输出配置实战指南

在硬件工程师的职业生涯里,最怕听到的一句话不是“功能不对”,而是——
“你们给的板子文件有问题,钻孔和线路对不上。”

更扎心的是,这问题往往出现在你信心满满地把PCB送去打样之后。工厂一封邮件发来截图:焊盘偏了、阻焊开窗太大、底层丝印全是镜像……轻则返工延误进度,重则整批报废。

而这一切的源头,很可能只是你在Cadence Allegro里点了几下“Artwork”设置时,漏掉了一个关键选项。

今天我们就来聊点实在的:如何用Allegro输出一套让厂家看了直呼“标准”的Gerber文件?不讲虚的,不堆术语,只说那些真正影响生产的细节配置,帮你避开90%以上的交付雷区。


Gerber到底是什么?别再把它当“导出图片”了

很多新手会误以为Gerber就是PCB各层的“截图”或“打印稿”。错。
Gerber是制造指令,是机器能读懂的语言。

它告诉光绘机:“在这块区域镀铜,在那里留个洞,这个圆圈要露铜,那段线不能上绿油。”每一个坐标、每一条路径,都直接决定最终电路板能不能做出来、做得准不准。

目前行业通用的是RS-274X 扩展格式,它的优势在于:
✅ 支持内嵌Aperture(图形模板)
✅ 无需额外提供.apt文件
✅ 层属性完整,支持正负片混合输出

所以你在Allegro里导出时,第一件事就是确认勾上了这一项:

✅ Embedded Apertures (RS274X)

否则系统会拆分出独立的aperture文件,一旦传输遗漏或命名错误,工厂根本无法正确解析。


单位与精度:微米级偏差的罪魁祸首

你以为差0.001mm没关系?可你知道大多数PCB厂的Gerber解析能力上限是多少吗?

答案是:6:5 英寸精度—— 即整数6位,小数5位(相当于0.00001 inch ≈ 0.254μm)。听起来很细,但如果你设成5:4或者用了毫米单位没对齐,舍入误差就会累积,导致整体图形偏移。

推荐设置:

参数建议值
UnitInches
Format6:5
Zero SuppressionLeading

为什么不用mm?因为绝大多数欧美设备和国产高端产线仍以inch为默认单位,尤其是钻孔系统。两边单位不一致,坐标原点哪怕差一丝,也足以让BGA焊盘失准。

🛠 实战提示:在Manufacturing > Artwork进入控制表单前,先检查菜单底部的状态栏是否显示INCH / 6:5,如果不是,请手动修改全局设置。


层怎么映射?别让GND层变成Top信号层

这是最常见的低级错误之一:明明画的是内电层,结果Gerber里输出成了普通走线层。

原因很简单——你在Artwork Control里搞错了Film的来源类型。

正确做法如下:

1. 顶层/底层信号层(正片)
Layer Name: TopLayer Source Type: Signal Subclass: All Polarity: Positive
2. 内层电源/地平面(负片)
Layer Name: L2_GND Source Type: Plane Subclass: Default Polarity: Negative ✔ Preserve Orphan Shapes

重点来了:必须勾选“Preserve Orphan Shapes”!

否则,那些用于调试测试的孤立焊盘(比如一个单独的地过孔),会被当成“浮动铜皮”清除掉。等你拿到板子才发现某个地网络不通,查了半天发现是Gerber自己“优化”掉了……

3. 阻焊层(Solder Mask)

这里有个坑很多人踩过:直接把PIN层复制过去当阻焊开窗。

结果呢?绿油把焊盘盖住了,或者开窗比焊盘还大一圈,回流焊时容易连锡。

正确的做法是使用Contraction(收缩)模式

Layer Name: TOP_SOLDERMASK Source Type: Package Geometry Elements: Pin, Shape, Line, Text ✔ Apply Contraction = 4 mils (即 -4)

什么意思?就是每个焊盘自动缩小4mil半径,这样开窗比实际焊盘小8mil直径,既保证上锡空间,又防止溢出短路。

⚠️ 注意:不同工艺略有差异,常规FR4板推荐-4mil;如果是HASL热风整平,可以适当放宽至-3.5mil;沉金板更精细,建议-4.5mil。

4. 丝印层(Silkscreen)

底层丝印文字镜像是正常的!

很多人看到Bottom Silkscreen里的字反着写就慌了:“是不是设置错了?”
不是。PCB制作时,底层丝印是从底面往上印的,所以必须镜像才能从正面看清。

判断标准很简单:
- Top层文字:左 → 右(正常阅读)
- Bottom层文字:右 ← 左(镜像状态)

只要方向符合这个规律,就没问题。

5. 板框与机械层

强烈建议单独建一个Film专门输出板框:

Film Name: BOARD_OUTLINE Source Type: Mechanical Subclass: 1 Only include lines on this layer

不要把尺寸标注、装配说明也混进来。Mechanical 1只放外轮廓线,清晰明了,方便厂家识别V-cut、铣槽路径。

其他用途分配建议:
- Mechanical 2:装配指引(如元件投影区)
- Mechanical 13:尺寸标注
- Mechanical 20:禁布区高亮


钻孔文件必须同步!坐标偏移八成出在这儿

Gerber管图形,NC Drill管钻孔。两者若原点不一致、单位不同步,就会出现“孔不在焊盘中心”的经典事故。

NC Drill 输出要点:

进入Manufacturing > NC Drill后,务必检查以下参数:

设置项推荐值说明
UnitsInches必须与Gerber一致
Format2:5小数点后5位,兼容性最好
Zero SuppressionLeading去除前导零
Tool OriginOff (Absolute)使用绝对坐标
Route Path自定义路径/output/drl/

然后点击 Generate,生成两个核心文件:
-.drl:钻孔数据(Excellon格式)
-.drldrw:钻孔图(供人工核对)

同时记得勾选:
- ✔ Generate N/C Drill Legend
- ✔ Draw Symbol at Each Location

这样才能让厂家一眼看出哪个符号对应多大孔径。


怎么验证你导出的文件没问题?

别指望工厂帮你查错。他们只会说:“文件异常,请重新提交。”

你要做的,是在发出之前自己先看一遍。

推荐工具:GC-Prevue(免费且强大)

下载地址:https://www.graphicode.com/free-viewer/

操作流程:
1. 把所有.art文件拖进去
2. 加载.drl钻孔文件
3. 切换Layer View,叠加Top Layer + Drill
4. 放大BGA区域,观察孔是否居中于焊盘

重点关注:
- 是否有缺层?(特别是内电层)
- 阻焊开窗是否过大?
- 底层丝印是否镜像正确?
- 非金属化孔有没有被误标记为镀通孔?

如果一切正常,再打包交付也不迟。


老手都在用的自动化技巧:Skill脚本一键输出

每次都要手动点十几层?项目多了难免漏掉一两项。

我们团队的做法是:写一个标准Skill脚本,固化输出模板。

; gerber_export_standard.il axlCmdWatchState(nil) printf("▶ 开始执行标准化Gerber输出...\n") dd = axlGetDatabase() artCfg = dd~>artwork axlSetArtworkConfig(artCfg) ; 全局设置 axlArtworkSetUnit('inch) axlArtworkSetPrecision(6 5) axlArtworkEmbedApertures(t) ; Top Layer (正片) topFilm = axlAddFilm("TOP_CU") axlAddToFilm(topFilm 'signal 'all t) axlSetFilmPolarity(topFilm 'positive) ; L2 GND Plane (负片) gndFilm = axlAddFilm("L2_GND") axlAddToFilm(gndFilm 'plane t) axlSetFilmPolarity(gndFilm 'negative) axlFilmPreserveOrphans(gndFilm t) ; 保留孤岛 ; Soldermask Top smTop = axlAddFilm("TOP_SM") axlAddToFilm(smTop 'packagegeometry 'pin t) axlAddToFilm(smTop 'shape t) axlSetFilmContraction(smTop 4) ; 收缩4mil ; Silkscreen Top ssTop = axlAddFilm("TOP_SS") axlAddToFilm(ssTop 'text t) axlAddToFilm(ssTop 'line t) axlAddToFilm(ssTop 'arc t) ; Board Outline outline = axlAddFilm("OUTLINE") axlAddToFilm(outline 'mechanical 1 t) ; 输出路径 outputDir = "/proj/release/gerber_v1.2/" axlArtworkOut(outputDir) printf("✅ Gerber输出完成:%s\n", outputDir)

把这个脚本放在公司共享库中,新人拿到就能用,极大降低人为失误率。

💡 提示:运行前确保当前.brd已保存,且层名与脚本一致。


交付清单:别忘了这些“附加材料”

一份完整的生产交付包,不只是Gerber+钻孔文件。我们通常还会附上:

📦 gerber_package_v1.2/ ├── TOP_CU.art → 顶层线路 ├── BOT_CU.art → 底层线路 ├── L2_GND.art → 内电层(负片) ├── TOP_SM.art → 顶层阻焊 ├── BOT_SM.art → 底层阻焊 ├── TOP_SS.art → 顶层丝印 ├── BOT_SS.art → 底层丝印 ├── OUTLINE.art → 板框 ├── pcb.drl → 钻孔数据 ├── pcb.rep → 钻孔报表 ├── stackup.pdf → 层叠结构图 ├── readme.txt → 特殊要求说明 └── impedance.xlsx → 阻抗控制参数(如有)

其中readme.txt至关重要,内容示例:

项目名称:PowerBoard_V1.2 投板日期:2025-04-05 层数:6层板 板材:IT-180A,Tg=180℃ 表面处理:沉金(ENIG) 特殊工艺: - L3/L4为背钻层,需控深钻 - 差分阻抗 100Ω±10%,参考层L2/L5 - 所有非金属化孔需做掏空处理 联系人:张工,phone: 138xxxx1234

有了这份文档,CAM工程师一看就懂,沟通成本大幅下降。


最后几句掏心窝的话

做过这么多年硬件,我发现一个规律:
越是经验丰富的工程师,越重视输出环节的细节。

因为他们知道,一次成功的投板,不仅仅靠完美的布局布线,更依赖于最后一步——把设计意图毫无损耗地传递出去。

而Gerber输出,正是这场“信息接力赛”的最后一棒。

你现在花十分钟认真检查一下Film设置,可能就避免了两周后的紧急改版。

与其事后救火,不如事前防患。

下次当你准备点击“Generate Artwork”时,不妨停下来问自己几个问题:

  • 我的单位和精度设对了吗?
  • 内电层真的输出成负片了吗?
  • 阻焊收缩量加了吗?
  • 孤立焊盘会被删掉吗?
  • 钻孔和Gerber坐标统一了吗?

只要把这些细节都答清楚了,你的文件,就已经超过80%的同行了。


如果你也在用Allegro做复杂板卡设计,欢迎留言交流你们的输出规范。也许下一次更新,我会把你们的经验也加进来。

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

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

立即咨询