做四层板光绘,很多人卡在不是画不出来,而是最后导出 Gerber 那一下怎么勾选都感觉不对。尤其是 Allegro 16.6 这套经典界面,跟后来的 17.x、22.x 长得不一样,网上很多教程又只讲单层板或两层板,一到四层板的内电层、分割层、负片这些概念就含糊了。我这些年用 Allegro 16.6 出过不少四层板的光绘,从消费类小板到稍微复杂一点的电源板都碰过,今天就把每一层到底该勾哪些选项、为什么这么勾、以及踩过的坑一次性说清楚。
1. 为什么四层板光绘总在“最后一公里”翻车
1.1 光绘文件到底是个啥
光绘文件,也就是 Gerber 文件,本质上是把 PCB 设计里的物理层数据转换成板厂生产设备能识别的矢量图形文件。它不需要携带 Allegro 工程里的任何规则、网络、元件库信息,只需要告诉板厂:哪个位置有铜、哪个位置开窗、哪个位置印字、哪里要钻孔。从这个角度来看,光绘导出是否正确,直接决定了板厂拿到的“图纸”跟你的设计意图是不是一致。
四层板比两层板多出的复杂性,在于多了两个内层,而这两个内层通常又是整片铜皮做电源和地。这意味着光绘文件里不光是走线,还包括大面积的铜箔、内层分割线、散热焊盘(Thermal Relief)这些东西。老手知道,内层一旦搞错,不是短路就是电源层被割断,而且这些错误在实物板子回来之前很难肉眼发现。
1.2 四层板的标准层叠与文件构成
常见的四层板层叠是这样的:
| 层号 | 名称 | 常规用途 |
|---|---|---|
| L1 | Top 顶层 | 元件面、信号走线 |
| L2 | Internal1 内层1 | 通常做 GND 地层 |
| L3 | Internal2 内层2 | 通常做 Power 电源层 |
| L4 | Bottom 底层 | 焊接面、信号走线 |
对应到光绘文件,一套完整的四层板 Gerber 至少包含以下几类底片(Film):
- 顶层走线层(ETCH/Top)
- 底层走线层(ETCH/Bottom)
- 内层走线层(ETCH/Internal1、ETCH/Internal2)
- 顶层丝印层(Silkscreen Top)
- 底层丝印层(Silkscreen Bottom)
- 顶层阻焊层(Solder Mask Top)
- 底层阻焊层(Solder Mask Bottom)
- 顶层助焊层/钢网层(Paste Mask Top)
- 底层助焊层/钢网层(Paste Mask Bottom)
- 钻孔文件(Drill File)和钻孔图例(Drill Legend)
很多新手以为出了走线层铜箔就完事,等到板厂电话打过来问“你们钻孔文件呢”才反应过来。实际上钻孔文件是板厂做层间连接和成型的基础,少一个文件整套光绘就不完整。
1.3 那些“我以为我懂了”的误区
先列几个常见的认知偏差,后面会详细展开:
- 误以为内层永远用负片。其实正片负片都能做,只是 16.6 里负片的勾选逻辑和正片完全不同。
- 误以为阻焊层勾得越多越好。阻焊层勾了 VIA 等于过孔开窗,如果你想要过孔盖油,这里就不能勾 VIA。
- 误以为丝印层只勾文字层。如果元件位号放在 Ref Des 子层而你没勾,出来的丝印会缺一堆位号,板厂贴片时对位会非常痛苦。
- 误以为 Gerber 文件能自动包含钻孔图例。钻孔图例是单独生成的,要单独操作。
2. 出光绘前这些准备工作不做,后面全白搭
2.1 单位、格式和坐标精度先统一
打开 Allegro 16.6,先别急着进 Artwork 面板,建议先确认设计文件的单位和精度设置。在 Setup -> Design Parameter Editor 里可以查看当前单位,常见的是 mil 或 mm。我个人习惯在画板阶段用 mil,但到出光绘时,只要板厂不特殊要求,输出统一用英制 2:5 格式(即整数 2 位、小数 5 位)。为什么是 2:5?因为四层板再大也很少超过 99.99 英寸,2 位整数够用,5 位小数对应 0.00001 英寸分辨率,约等于 0.25 微米,远远超过 PCB 制造精度要求,坐标不会因为截断而产生偏差。
Gerber 格式方面,16.6 默认支持 RS-274X,也叫 Gerber 274X。这种格式把 D 码(光圈)直接内嵌在文件里,板厂读取时不依赖单独的 Aperture 文件,是当前最通用的格式。如果你碰到老旧的板厂还要 RS-274D,那才需要额外输出 Aperture 文件,但在 2025 年的今天几乎不用考虑。我出光绘一律选 RS-274X,省心。
2.2 Artwork 面板的正确打开方式
在 Allegro 16.6 中,出光绘的命令路径是 Manufacturing -> Artwork,快捷键有时候也可以自己绑定。打开之后会看到一个 Film Control 对话框,里面分几个标签页:Film Control、General Parameters、Aperture、View Plot 等。
Film Control 是核心操作区,左侧是已经定义的 Film 列表,右侧是当前选中 Film 包含的 Subclass 元素列表。通俗理解,Film 是一张“底片”,而 Subclass 是这张底片上的“内容图层”。比如 TOP 这个 Film,可以包含 ETCH/Top、PIN/Top、VIA/Top 这些 Subclass,每勾选一个,就代表这张底片上要输出对应内容。
General Parameters 里要确认几个关键项:
- Device type:选 RS-274-X
- Format:整数位 2、小数位 5(英制)
- Output directory:指定光绘输出目录
- Suppress leading zeros / trailing zeros:通常用默认,或者跟板厂沟通
2.3 Film 与 Subclass 的关系搞不清,后面必乱
很多人第一次打开 Artwork 面板,看到左边一长串 Film 名字,右边一堆 Subclass,一下子就懵了。这里用一个生活类比:Film 就像一张白纸,Subclass 就是你要往这张白纸上盖的印章。你可以把“顶层铜”这个印章盖上去,也可以把“顶层丝印”这个印章盖上去。一张纸上可以盖多个印章,但每个印章对应一个 Subclass。
四层板至少要定义以下几张 Film:TOP、BOTTOM、INT_GND、INT_VCC、SILK_TOP、SILK_BOTTOM、SM_TOP、SM_BOTTOM、PASTE_TOP、PASTE_BOTTOM。名字可以自己起,但建议起得一眼能看懂,输出文件时不会混乱。
3. 四层板各层光绘文件逐层勾选详解
这一部分是核心中的核心。我把每层光绘的勾选项、Film 类型、常用线宽建议统一整理成表,然后逐层说明。
3.1 顶层与底层走线层
顶层和底层的勾选逻辑一样,四层板中一般作为信号层。在 Artwork 面板新建 Film 名为 TOP,然后选中 Subclass 列表中的:
- ETCH/Top
- PIN/Top
- VIA/Top
Film Type 选 Positive。这三个勾上之后,顶层所有的走线、铺铜、焊盘、过孔都会输出到 TOP 光绘里。有人会额外勾选 TEXT/Top,但我个人建议不要把 TEXT 混进走线层,板子上的文字信息应该归丝印层管,否则光绘文件里会出现莫名其妙的文字残影,CAM 里检查时容易干扰视线。
底层 BOTTOM 同样勾 ETCH/Bottom、PIN/Bottom、VIA/Bottom,Film Type 为 Positive。
操作提示:在 Elements 列表里,PIN 代表元器件焊盘,VIA 代表过孔,ETCH 代表走线和铜箔。如果你发现某些焊盘在光绘里没显示,十有八九是 PIN 没勾。如果过孔没显示,多半是 VIA 没勾。这两个是走线层能否输出完整的关键。
3.2 内层1内层2:正片负片的巨大分歧
四层板的两个内层,通常一个做 GND,一个做 POWER。这里有一个绕不开的问题:用正片还是负片。
在 Allegro 里,正片(Positive)就是你看到的铜就是铜,往哪铺铜哪就有铜。负片(Negative)则是翻转逻辑:你看到的铜是空,没有东西的地方反而保留铜。负片的优点是做整片地平面时数据量小、生成快,而且铜皮边缘不容易出现碎铜。缺点是视觉不直观,新手很容易搞反。
先说负片的勾选。假如 INT_GND 层使用负片设计,Film Type 选 Negative,Elements 要勾:
- PIN/Internal1
- VIA/Internal1
- ETCH/Internal1
- ANTI ETCH/Internal1(也就是反铺铜层的分割线)
这里最关键的是 ANTI ETCH。内层用负片做电源分割时,你会用 Anti Etch 线把整片铜划分成几个区域,这些 Anti Etch 线会被“蚀刻”掉,形成绝缘隔离带。如果不勾 ANTI ETCH,分割线就不会出现在光绘里,结果整个内层就是一整片大铜皮,GND 和 VCC 直接短路。这是四层板出光绘最严重的事故之一,我在早期项目里踩过,板子回来后才发现。
如果是正片的内层,Film Type 选 Positive,Elements 勾 PIN/Internal1、VIA/Internal1、ETCH/Internal1 即可。正片的优点是所见即所得,分割线就是你画的禁布区域,铜皮由 Shape 铺铜生成。坏处是文件尺寸大,而且在大面积铜皮边缘有可能出现细微的锯齿或孤铜,对板厂 CAM 处理要求略高。
那么四层板到底选正片还是负片?我的实践建议是:如果你对 Allegro 负片已经很熟,内层电源地分割推荐负片,干净利落;如果你刚开始接触四层板,或者团队里没人会检查负片光绘,那就老老实实正片。正片出问题更容易在 CAM 里看出来。
还有一个细节:如果是负片内层,Film Control 下方有一个 Undefined line width 参数,我建议把 Anti Etch 相关线宽单独设到 8mil 或 10mil,不要用默认的 6mil。因为负片内层的隔离带宽度跟 Anti Etch 线的实际线宽直接相关,如果线宽只有 4mil、6mil,最后做出来的绝缘间距可能不够,高压板尤其危险。
3.3 丝印层:顶层和底层
丝印层很多人以为只勾 TEXT 就够了,其实不对。Allegro 16.6 里,元件位号(Ref Des)通常放在 Ref Des/Silkscreen_Top 这个 Subclass,而公司logo、板名、版本号这些放在 Board Geometry/Silkscreen_Top。所以丝印层正确的勾选方式是:
- Ref Des/Silkscreen_Top
- Board Geometry/Silkscreen_Top
- 可能需要 Board Geometry/Outline(板框)
TEXT 这个 Subclass 在丝印层也建议勾上,但不一定所有 TEXT 都需要。我的习惯是丝印层只勾 Ref Des 和 Board Geometry 的 Silkscreen 子层,外加 Outline,这样输出的丝印层干净、清晰,不会有乱七八糟的文字混进来。
底层丝印同理,对应 Ref Des/Silkscreen_Bottom 和 Board Geometry/Silkscreen_Bottom。不过很多四层板底层不放元件,底层丝印可以简化,甚至不输出。我一般底层有元件才输出底层丝印,否则直接省略,板厂也少处理一层。
丝印层千万不要勾 PIN、VIA、ETCH。一旦勾了,焊盘、过孔、走线边缘的残影会跟着丝印一起出来,板子上印出来的符号会糊成一团。
3.4 阻焊层:焊盘开窗与过孔盖油的开关
阻焊层(Solder Mask)决定了板上哪些地方不覆盖绿油。在 Allegro 16.6 里,阻焊层的 Film 通常这样设:
- Film Type:Positive
- Elements:PIN/Top、VIA/Top、ETCH/Top(针对顶层阻焊)
这里有个非常容易踩的坑:VIA 到底勾不勾。
如果你的板子要求过孔开窗,也就是过孔不盖油,露铜方便测试或散热,那么阻焊层就要勾上 VIA。如果要求过孔盖油,那阻焊层就不要勾 VIA。很多板厂的默认工艺是过孔盖油,而 Allegro 16.6 的阻焊光绘默认输出里如果包含 VIA,板厂会认为你要开窗,最终回来的板子过孔全部露铜,既难看又容易在过孔处积灰。反过来,如果你确实要过孔开窗却忘了勾 VIA,板厂按普通工艺处理,过孔就全盖油了,想飞线测试就麻烦。
我的习惯是在设计阶段把每个网络的过孔属性统一设置好,然后在阻焊光绘里只勾 PIN 和 ETCH,VIA 不勾,让板厂统一按“过孔盖油”处理。如果个别过孔要开窗,我会在系统里单独加 Solder Mask 开窗标识,而不是全局勾 VIA。这样可控性最好。
ETCH 在阻焊层里的含义也值得说一下。Allegro 会把阻焊开窗作为图形的“挖空区域”输出,ETCH 类对象在这里往往代表那些由铜箔形状自动生成的阻焊扩展区。从 CAM 预览看,阻焊层的图形通常是焊盘形状外扩一定数值的“空窗”,中间是镂空,外面是绿油。所以阻焊层勾 ETCH 并不会把你的整块铺铜都开窗,放心勾。
3.5 助焊层/钢网层:千万别把 VIA 勾进去
助焊层(Paste Mask)是给 SMT 贴片做钢网用的,只有需要刷锡膏的焊盘才需要出现在这层里。四层板的助焊层设置非常简单:
- Paste Mask/Top:勾 PIN/Top 即可
- Paste Mask/Bottom:勾 PIN/Bottom 即可
不建议勾 VIA。过孔不需要刷锡膏,如果助焊层里带了 VIA,钢网会在过孔位置开孔,贴片时锡膏会从过孔流到背面,轻则虚焊,重则连锡短路。同样不建议勾 ETCH,大面积铜皮不需要刷锡,除非你做了特殊的散热焊盘开窗设计。
另外很多人在做 QFN、BGA 这类封装时,会在 Pastemask 子层画自定义的钢网开孔形状。如果你用了这类自定义开孔,光绘里要确保对应的 Pastemask 子层被勾选进去,否则钢网开孔会缺失,贴片时焊接不良率会直线上升。
3.6 钻孔文件与钻孔图例
钻孔文件不在 Artwork 面板里生成,而是在 Manufacturing -> NC -> NC Drill。这一步经常被忽略,但板厂没有钻孔文件根本无法生产。四层板如果是普通通孔设计,只需要生成一个通孔钻孔文件;如果有盲埋孔,比如从 Layer1 到 Layer2 的盲孔,就需要分别设置不同的 NC Drill 输出。
NC Drill 里几个关键设置:
- File Format:一般选 Excellion 格式,单位与光绘一致,建议用英制
- Numeric Format:2:5 或者 3:3,跟光绘的坐标格式保持同步
- Output directory:建议和 Gerber 输出到同一个目录
钻孔图例(Drill Legend)我也建议输出,它展示的是板上不同孔径的符号对照表,板厂做钻孔程序时需要参考。路径是 Manufacturing -> NC -> Drill Legend,选择输出位置一般是 Manufacturing 相关子层,设置好之后会生成一个带表格和符号的图形。
到这里一套基本的光绘文件就齐了。整理一下交付目录里应该有这些文件:
| 序号 | 文件类别 | 说明 |
|---|---|---|
| 1 | *.art / *.ger 文件 | 各层光绘,包括走线层、内层、丝印、阻焊、助焊 |
| 2 | *.drl 文件 | 钻孔数据 |
| 3 | Drill Legend | 钻孔图例 |
| 4 | Aperture 文件 | 如果板厂要求才附上 |
有些板厂还会要求一个 Readme 或 Stackup 说明,写明层叠厚度、铜厚、板材、表面处理等信息。这些虽然不是 Gerber 文件的一部分,但一起打包发过去能省掉很多沟通成本。
4. 实操:从 Artwork 面板到最终生成 Gerber 的完整流程
4.1 General Parameters 参数推荐
进入 Artwork 面板后,先点 General Parameters 标签页,按下面的参数设置:
- Device Type:RS-274-X
- Format:整数位 2,小数位 5(英制)
- Output Directory:例如 .\gerber,这样生成的文件统一放在工作目录下的 gerber 文件夹
- Suppress leading zeros:我一般保持默认,不开
- Suppress trailing zeros:我一般保持默认,不开
为什么 2:5 这么重要?因为格式选错了,板厂读出来的坐标要么比例不对,要么精度不够。实际项目里我遇到过板厂反馈坐标超出范围,最后发现就是整数位设成了 1 位,板子尺寸超过 9.9999 英寸之后坐标就爆了。普通四层板用 2:5 基本不会出问题。
Undefined line width 我一般设 6mil,也就是 0.15mm。这个值影响所有没有明确线宽的对象在光绘里的默认宽度。比如你画的板框线、丝印线如果没有指定宽度,出光绘时就统一按这个宽度输出。6mil 是一个折中值,太细了后面 CAM 加工可能断线,太粗了又影响精度。
4.2 逐个添加 Film 并设置 Elements
回到 Film Control 标签页,左侧点击右键,新建 Film,并把需要输出的 Subclass 添加进去。以四层板为例,我通常创建的 Film 清单如下:
- TOP:ETCH/Top + PIN/Top + VIA/Top,Positive
- BOTTOM:ETCH/Bottom + PIN/Bottom + VIA/Bottom,Positive
- INT_GND:ETCH/Internal1 + PIN/Internal1 + VIA/Internal1 + ANTI ETCH/Internal1,Negative 或 Positive
- INT_PWR:ETCH/Internal2 + PIN/Internal2 + VIA/Internal2 + ANTI ETCH/Internal2,Negative 或 Positive
- SILK_TOP:Ref Des/Silkscreen_Top + Board Geometry/Silkscreen_Top + Board Geometry/Outline,Positive
- SILK_BOTTOM:Ref Des/Silkscreen_Bottom + Board Geometry/Silkscreen_Bottom + Board Geometry/Outline,Positive
- SM_TOP:Soldermask/Top + PIN/Top + VIA/Top + ETCH/Top,Positive
- SM_BOTTOM:Soldermask/Bottom + PIN/Bottom + VIA/Bottom + ETCH/Bottom,Positive
- PASTE_TOP:Pastemask/Top + PIN/Top,Positive
- PASTE_BOTTOM:Pastemask/Bottom + PIN/Bottom,Positive
设置完每个 Film 后,建议先点一下 Update(刷新),让系统重新计算当前 PCB 数据。有些版本在修改 Subclass 后不会自动刷新,一定要手动更新,否则你改了等于没改。
4.3 生成钻孔文件与钻孔图例
画完光绘后,到 Manufacturing -> NC -> NC Drill,选择输出路径和格式,点 Drilling 生成 .drl 文件。如果板上有盲埋孔,注意在 Tool 列表中确认每个钻孔层对都正确。四层板最常见的只有通孔(Top-Bottom),那就只有一个钻孔文件。
然后再去 Manufacturing -> NC -> Drill Legend,位置一般选 Board Geometry/Outline 或 Manufacturing/Drill Legend,生成钻孔图例。生成的图例是一张表格,里面标注了每个孔径的符号、数量和尺寸。我建议把这张表格放到光绘文件的 SILK_TOP 或者单独一个钻孔图例层,一起交给板厂,方便他们核对。
4.4 生成后如何快速自查
Allegro 16.6 的 Artwork 面板里自带 View Plot 功能,点开之后可以逐个查看每个 Film 的预览图。我会重点看这几处:
- TOP/BOTTOM 走线是否完整,有无缺失线段
- INT_GND、INT_PWR 的分割区域是否跟设计一致,负片下尤其要注意 Anti Etch 的位置
- SM_TOP 上焊盘周围的阻焊开窗是否均匀、过孔是否按预期开窗或盖油
- SILK_TOP 上位号是否齐全
更稳妥的做法是再用 CAM350 把生成的 Gerber 全部导入,叠层检查一下。CAM350 能直观显示每一层的对齐关系,如果内层分割线和外层过孔位置有冲突,一眼就能看出来。我出完光绘后必跑一遍 CAM350,确认无误再发板。
5. 我踩过的坑与排查笔记
5.1 光绘文件生成后打开是空的
有一次我生成的光绘文件丢进 CAM350 打开,TOP 层什么图形都没有,但 Allegro 里明明有走线。排查下来发现,问题出在 Artwork 面板里 TOP 这个 Film 的 Subclass 列表根本没有勾选 ETCH/Top。新建 Film 时系统默认是空的,勾选 Subclass 之后还必须点 Update 生效。如果哪一层光绘是空白的,优先检查 Film 的 Elements 是否勾对、是否点了 Update。
另外,如果输出目录里夹杂着旧文件,也可能误判为“新生成的文件是空的”。所以输出前清理目录也很重要。
5.2 内层分割没有生效
这是我在负片内层上踩过最狠的坑。画四层板时,内层 GND 和 VCC 分割用 Anti Etch 线画好,光绘里也勾了 ANTI ETCH,但发出去的板子回来发现内层整片连在一起,电源和地短路。后来查到原因:Anti Etch 线画在了错误的 Subclass 上。Allegro 里 Anti Etch 分很多层,比如 ANTI ETCH/All、ANTI ETCH/Top、ANTI ETCH/Bottom、ANTI ETCH/Internal1 等。内层分割必须画在 ANTI ETCH/Internal1 上,光绘底片里也要勾选对应 Internal1 的 ANTI ETCH。如果你画在了 All 层,有时候能生效,但如果光绘只勾了 Internal1 的 Anti Etch,就可能漏掉。
负片内层还有一个容易忽略的点:Anti Etch 线的线宽要足够覆盖绝缘带宽度。比如你要 20mil 的隔离间距,那 Anti Etch 线宽就得 20mil 左右,不是画一根 6mil 的线就能隔离出 20mil 的间距。光绘里线宽直接参与图形运算,这一点跟正片里画 keepout 不一样。
5.3 过孔全部盖油了或全部开窗了,都不是我要的
这个问题在阻焊层设置里最容易出现。如果你在 SM_TOP 里勾了 VIA,所有过孔都会开窗;不勾,所有过孔都盖油。但很多时候我们想要的是:普通过孔盖油,部分测试点过孔开窗。这种需求靠光绘层全局勾选是做不到的,正确做法是在 Allegro 里给特殊过孔添加 Solder Mask 开窗属性,然后在光绘中不勾 VIA,只让那些有开窗标识的孔通过其他方式呈现。
我自己的习惯是:设计阶段就把所有需要开窗的过孔统一放到一个特定网络或一个特定封装里,然后在阻焊层里单独处理。如果你已经出了 Gerber 才发现过孔开窗不对,不要硬着头皮去板厂,直接回头改设计再重新出光绘,改文件之间来回替换远比重新出一次更累。
5.4 板厂反馈“文件读不出来”
有一阵子我出的光绘文件板厂老是说读不了,后来发现是坐标格式不统一:光绘文件用了英制 2:5,但钻孔文件用了公制 3:3。不同格式混在一起,板厂导入时如果自动识别失败,整批文件就乱套了。所以重要的事情说三遍:单位统一、格式统一、输出目录统一。
还有一次是文件名带中文,某些板厂的老旧 CAM 系统解析不了,直接报错。从那以后我所有光绘文件名一律用英文字母和下划线,不用中文、不加空格。
5.5 丝印层元件位号缺失
一次发板前用 CAM350 检查,发现底层丝印上一个电阻位号都没有。后来查到原因:那个电阻放在底层,位号放在 Ref Des/Silkscreen_Bottom,但我在 SILK_BOTTOM 这个 Film 里只勾了 Board Geometry/Silkscreen_Bottom,没有勾 Ref Des/Silkscreen_Bottom。把 Ref Des 勾上,重新 Update 再出光绘,位号就出来了。
所以检查丝印层时,一定确认 Ref Des 和 Board Geometry 两个来源都处理到位,尤其是底层丝印这种容易忽略的层。
5.6 漏掉钻孔图例
钻孔图例不是板厂加工必不可少的文件吗?严格说,如果钻孔文件格式清晰,板厂也能做,但很多板厂的流程里会要求必须有 Drill Legend,方便他们核对孔径和数量。漏了钻孔图例,轻则板厂打电话找你补,重则影响交期。最好在打包清单里固定加一个“钻孔图例”核对项。
6. 最后分享一个小经验
实际项目里我会在 PCB 设计完成之后,专门花半小时把光绘流程跑一遍,包括 DBDoctor 检查、Artwork 逐层设置、NC Drill 生成、CAM350 复查,全部确认没问题才归档发板。这一步不能省。Allegro 16.6 是一款非常稳的软件,光绘功能这么多年没怎么大变,但越是界面简洁越容易在细节上疏忽。四层板的光绘设置其实没有多高深,核心就是三层逻辑:走线层管铜,阻焊层管开窗,丝印层管标识;内层多考虑一个正负片和分割线;钻孔文件永远不要忘。按这套思路走下来,发出去的板子基本不会因为光绘问题被打回来。