
Cadence Allegro 的 PCB 光绘层叠Artwork Film添加是我带过的新人翻车最多的一步。画板阶段啥问题没有一到出 Gerber 就各种缺层、跑位、负片反了甚至整个文件打不开。说穿了不是操作有多难而是很多人没搞懂光绘层叠到底在干什么。这篇文章我把原理、配置、坑位串成一条完整流程讲清楚。不管是刚开始学 Allegro 出光绘文件还是被板厂退回过几次的老手按这个思路走基本能一次把光绘层叠配对。1. 光绘层叠到底是什么Allegro 出图体系里的“底片”逻辑1.1 一个 Film 就是一张底片数据与底片的映射关系Allegro 的数据库和 Gerber 数据模型根本不是一个东西。Allegro 里一块 PCB 上的铜皮、走线、过孔焊盘、丝印、阻焊开窗全部按 Class.Subclass 的方式散落在不同层里。比如顶层走线放在 ETCH/TOP板框放在 BOARD GEOMETRY/OUTLINE位号文字放在 REF DES/SILKSCREEN_TOP而阻焊开窗又跟 PIN、VIA 这两个 Class 以及 BOARD GEOMETRY/SOLDERMASK_TOP 都有关系。Gerber 文件本身是逐层曝光用的数据每一张底片只能表达“一层内容”。光绘层叠就是在这两者之间做映射把 Allegro 里分散的多个 Subclass按你的需求叠进同一个 Film 里最终输出成一个 .art 文件。你可以把 Film 想象成相机里的底片你在上边叠了哪几个图层最后洗出来的照片就只有那几样东西。所以光绘层叠配错了画板数据再完整也白搭因为板厂拿到的 Gerber 里根本没有你要表达的东西。那为什么不能直接把整板倒出来因为 Gerber 是二维的每一层只有一组数据而 Allegro 里的物理信息是三维层叠关系。板厂做板子时需要把每一层单独曝光、单独蚀刻、单独印刷所以你必须替它把每一层“拆开”再按工艺要求组合好。这就是光绘层叠存在的意义。1.2 正片与负片电源平面为什么总喜欢用负片很多人看到 Artwork 对话框里的 Positive / Negative 就发怵。其实理解方式很简单正片就是“见光的地方是铜”你画了多少铜光绘出来就有多少铜负片正好反过来“见光的地方是没铜的”大面积的背景区域全是铜。正片最直观走线层、丝印层、阻焊层、钢网层全都用正片几乎没有争议。问题出在内电层也就是电源层和地层这种整块都是铜的平面层。如果电源平面用正片出你得把整块 copper 全部填充成图形数据文件体积大而且光绘时那些“隔离盘”“热焊盘”的处理会很啰嗦。用负片就舒服多了整板默认全是铜你只需要把要隔离的地方比如焊盘周围的 anti-pad画出来底片上一挖空剩下的自然就是铜。文件小、处理快传统流程里电源层用负片几乎是标准做法。但负片有个前提Allegro 的层叠定义Cross-section里该层必须被正确设为 Plane 类型并且 Padstack 里要定义好 Thermal Relief 和 Anti-Pad。否则你出的负片要么隔离焊盘消失要么整层铜连成一片。我个人建议如果你刚开始接触或者对负片设置没把握内电层也可以直接用正片输出格式大一点没关系至少结果直观不容易出“玄学”问题。1.3 常规板型至少要准备哪些 Film一张配置表以最常见的四层板为例一套完整的投板 Gerber光绘层叠里至少要建这么几个 FilmFilm 名称包含的核心 Subclass底片类型TOPETCH/TOP、PIN、VIA、BOARD GEOMETRY/OUTLINEPositiveGNDETCH/GND、PIN、VIA、BOARD GEOMETRY/OUTLINE按层叠属性选PWRETCH/PWR、PIN、VIA、BOARD GEOMETRY/OUTLINE按层叠属性选BOTTOMETCH/BOTTOM、PIN、VIA、BOARD GEOMETRY/OUTLINEPositiveSILK_TOPBOARD GEOMETRY/SILKSCREEN_TOP、REF DES/SILKSCREEN_TOP、BOARD GEOMETRY/OUTLINEPositiveSILK_BOTTOMBOARD GEOMETRY/SILKSCREEN_BOTTOM、REF DES/SILKSCREEN_BOTTOM、BOARD GEOMETRY/OUTLINEPositiveSOLD_TOPBOARD GEOMETRY/SOLDERMASK_TOP、PIN、VIA、BOARD GEOMETRY/OUTLINEPositiveSOLD_BOTTOMBOARD GEOMETRY/SOLDERMASK_BOTTOM、PIN、VIA、BOARD GEOMETRY/OUTLINEPositivePAST_TOPBOARD GEOMETRY/PASTEMASK_TOP、PIN、BOARD GEOMETRY/OUTLINEPositivePAST_BOTTOMBOARD GEOMETRY/PASTEMASK_BOTTOM、PIN、BOARD GEOMETRY/OUTLINEPositiveDRILLMANUFACTURING/NCDRILL_LEGEND、MANUFACTURING/NCDRILL_FIGURE、BOARD GEOMETRY/OUTLINEPositive这里只列了必须项实际项目可能还要加阻抗层、拼板工艺边、Mark 点、V-cut 槽等额外内容。但核心逻辑不变你想让板厂在哪张底片上看到什么就把对应的 Subclass 勾进那个 Film。每次都对照这个表检查一遍基本不会漏层。2. 配置光绘层叠前的准备层叠结构、光绘格式与精度2.1 先确认 Cross-section 里的层叠定义和 Plane Type很多新手一上来直接打开 Artwork 对话框结果发现 Film 怎么加都不对或者生成出来的负片奇奇怪怪。原因大多是没先检查层的属性。Allegro 里每个物理层的“身份”是在 Setup - Cross-section 里定义的哪一层是走线层哪一层是平面层平面层是正片还是负片都在这里说了算。实际操作时先打开 Cross-section 对话框从上到下把层名过一遍。尤其注意 GND、PWR 这类内电层的 Type 列是 Conductor 还是 Plane。如果它被设成了 Plane后面 Artwork 里对应 Film 的底片类型就要选 Negative如果设成 Conductor那你就老老实实用 Positive。这两者一旦对不上光绘出来的东西要么铜皮乱飞要么隔离消失。另外如果模板里内电层名字不是 GND/PWR而是 VCC、AGND 这种也没关系你只要认清层叠顺序和属性即可。还有一个容易忽略的点装完 Cadence 后不同版本默认的原点、单位和层名模板可能不同。比如有的模板把外形放在 BOARD GEOMETRY/OUTLINE有的放在 BOARD GEOMETRY/DESIGN_OUTLINE。你在配置 Film 之前用颜色管理器把每一层打开看一眼清楚自己板子里实际有哪些 Subclass再去做映射就不会“凭空添加”一个其实不存在的数据层。2.2 RS-274X 还是 Gerber X2光绘格式怎么选Artwork 对话框的 General Parameters 页签里第一项就是 Device type。默认通常能选 Gerber RS-274X这是最通用的扩展 Gerber 格式自带 D 码Aperture定义不需要额外附 D 码文件。绝大多数板厂、CAM350、Valor 都能直接识别是行业里的“普通话”。Gerber X2 则是在 RS-274X 基础上加了文件属性、层叠信息、文件类型标识等内容方便新型 EDA 工具和自动化工厂做智能识别。如果你合作的板厂明确说支持 Gerber X2那你可以在 Device type 里选 X2能带上更多元信息但如果你不确定或者板厂是那种老工艺就用 RS-274X最保险。别在这上面整花活。我见过有人图新鲜选了 X2结果板厂老版本 CAM 打不开来回折腾半天。格式这种东西讲究“双方都认”不是越新越好。另外选 Gerber RS-274X 之后还要注意下面的 Plot mode 和 Aperture 选项保持默认即可除非你真的很清楚自己在改什么。2.3 单位与精度和板厂对不上就等着返工这是光绘配置里最不起眼但最容易出事的一项。Artwork General Parameters 里有两个地方必须和板厂约定一致一是单位二是格式精度。常见组合是单位选 Inches格式选 3:5。意思是整数部分最多 3 位、小数部分 5 位可以表达 0.00001 英寸的分辨率也就是 0.254 微米完全满足普通 PCB 精度需求。也有板厂习惯用 Millimeters 配 3:3 或 3:4。这些没有绝对的对错关键是你在 Artwork 里设置的单位、精度要和你在 NC Drill 里设置的保持一致并且板厂下单说明里写什么你就用什么。单位精度不对带来的后果很直接Gerber 导入 CAM350 后图形尺寸整体偏移或缩放甚至板子外形差出几毫米。这种问题基本只能重新出图解决非常浪费时间。我的习惯是开新项目第一件事就是把 Artwork 和 NC Drill 的单位、格式全部固定好存成模板以后所有板子都按同一套参数出避免“这块板用 3:5那块板用 2:4”导致自己都记混。3. Allegro 光绘层叠添加实操从 Artwork 对话框到 Gerber 落地3.1 打开 Manufacture - Artwork 并添加第一个 Film实操部分开始。在 Allegro PCB Editor 里打开你的 .brd 文件点击菜单栏 Manufacture - Artwork弹出 Artwork Control Form 对话框。默认停在 Film Control 标签页左侧是 Film 列表中间是 Subclasses 列表右侧和下边是当前 Film 的参数选项。如果你是从模板带过来的旧配置左侧可能已经有几个 Film如果是空白就从头建。在左侧 Film 区域点鼠标右键选择 Add输入新 Film 的名字比如 TOP回车确认。此时左侧列表多出一个 TOP 项同时中间 Subclasses 列表里所有数据层前面的复选框都是空的。你需要先选中左侧的 TOP 这项再去中间勾选该 Film 要包含的 Subclass。这里特别容易出错有人勾了半天结果当前的 Film 还是另一个等于全勾到别的层上去了。养成习惯改哪个 Film 就先把哪个 Film 选中。3.2 逐层添加 Film 的 Subclass 勾选清单四层板为例下面按四层板一步步把每个 Film 的勾选内容讲一遍。虽然每个项目的层名可能略有差异但思路通用。先建 TOP。选中 TOP 这个 Film在 Subclasses 列表里勾选 ETCH/TOP、PIN、VIA以及 BOARD GEOMETRY/OUTLINE。很多模板里还有 BOARD GEOMETRY/DESIGN_OUTLINE如果你的外形是放在那里的就一起勾上。PIN 和 VIA 一定不能漏否则顶层焊盘、过孔在 Gerber 里全都不显示板厂根本没法给你做连接。接着建 GND 和 PWR。这两个 Film 的内容取决于 2.1 节里 Cross-section 的层叠属性。如果 GND 层是 Plane 且设为 Negative这个 Film 里就勾选 ETCH/GND、PIN、VIA、BOARD GEOMETRY/OUTLINE底片类型选 Negative。之所以要勾 PIN 和 VIA是因为负片虽然默认全铜但焊盘周围的隔离盘、热焊盘是靠 PIN 和 VIA 的 Padstack 数据生成的不勾它们负片就只有一大块铜没有焊盘开口。如果该层是 Positive 平面那就跟 TOP 一样处理底片类型选 Positive。然后建 BOTTOM。类比重建 BOTTOM勾选 ETCH/BOTTOM、PIN、VIA、BOARD GEOMETRY/OUTLINE底片类型选 Positive。丝印层 SILK_TOP 和 SILK_BOTTOM 是新手重灾区。SILK_TOP 至少要勾 BOARD GEOMETRY/SILKSCREEN_TOP 和 REF DES/SILKSCREEN_TOP。前者是手动画的丝印图形后者是自动丝印生成的位号文字。很多人的 Gerber 里看不到位号就是因为只勾了 BOARD GEOMETRY/SILKSCREEN_TOP漏了 REF DES/SILKSCREEN_TOP。如果板子上有制造标注比如版本号、UL 标记也放在 BOARD GEOMETRY 的对应 Subclass 里确保你画的丝印内容都被勾上。阻焊层 SOLD_TOP 和 SOLD_BOTTOM勾选 BOARD GEOMETRY/SOLDERMASK_TOP或 BOTTOM、PIN、VIA、BOARD GEOMETRY/OUTLINE。阻焊开窗的口径不是你在 SOLDERMASK 层里画出来的而是根据 PIN 和 VIA 的 Padstack结合外扩规则自动生成的。如果你需要额外开窗比如散热焊盘底部大面积裸露就在 BOARD GEOMETRY/SOLDERMASK_TOP 里画 shape再把它勾进这个 Film。钢网层 PAST_TOP 和 PAST_BOTTOM勾选 BOARD GEOMETRY/PASTEMASK_TOP或 BOTTOM、PIN、BOARD GEOMETRY/OUTLINE。这里要注意钢网层尽量不要加 VIA因为正常工艺不会给过孔开钢网口除非你有特殊设计。钻孔层 DRILL先执行 Manufacture - NC - NC Drill Legend 生成钻孔图再回到 Artwork 里建 DRILL 这个 Film勾选 MANUFACTURING/NCDRILL_LEGEND、MANUFACTURING/NCDRILL_FIGURE、BOARD GEOMETRY/OUTLINE。这一步会在 Gerber 里生成一张带孔符图例的钻孔示意图方便板厂和你在 CAM 里核对孔信息。3.3 Film 参数底片类型、Undefined Line Width、Shape Fill每个 Film 除了勾选 Subclass还要设置几个关键参数。在 Artwork Control Form 里当你选中某个 Film下方或右侧会出现该 Film 的选项区域。第一是 Plot mode也就是底片类型。按 1.2 节的原则走线层、丝印、阻焊、钢网选 Positive内电层如果是 Plane Negative选 Negative。第二是 Undefined line width这个值绝对不能设为 0。它表示当 Allegro 数据里有线宽为 0 的线条或图形时光绘输出统一用一个默认线宽替代。设成 0 的话光绘机会报警甚至直接丢掉这些线条。一般设 6mil0.15mm配合常规工艺能力足够。第三是 Shape fill 选项。Allegro 里有 Orthogonal 和 Rounded 等选择。Orthogonal 是直角填充Rounded 是圆头填充。我个人的习惯是用 Rounded它对焊盘和铜皮的衔接更平滑光绘机处理起来也稳定。如果你发现某家板厂对 Rounded 支持不好再改回 Orthogonal 即可。这些参数不复杂但是一致性很重要同一个项目里不要一会儿改这个一会儿改那个否则不同版本出的 Gerber 差异会让人抓狂。3.4 General Parameters 设置输出格式、单位、Enhanced Pads左边 Film 配置完之后切到 General Parameters 标签页。这里主要设置的是整个光绘输出的大环境。Device type 按 2.2 节选 Gerber RS-274XOutput units 选 Inches 或 Millimeters与 NC Drill 保持一致Format 选 3:5 这类精度组合。Enhanced filled pads 默认要勾选它会让焊盘以填充形式输出而不会过度依赖光绘机的 Flash 命令兼容性更好。Suppress unconnected pads 这个选项值得多说一句。它的作用是在正片输出时把没连接网络的孤立焊盘抑制掉减小文件体积。对多层板内层的悬空焊盘来说这个开关常常是钩上的。但你要清楚一旦勾上某些本来用于测试点或机械固定的独立焊盘也可能被去掉所以不是所有板子都适合。我最稳的方法是不勾让数据尽量完整反正文件大一点无所谓板厂处理起来也不慢。负片层时这个选项不生效不用费心。底部还有 Max aperture 之类保持默认 999 即可。所有参数设好后再回到 Film Control 标签页确保每个要输出的 Film 前面的复选框都勾选。千万别漏勾 Film否则点了生成某些层根本没出来你还不知道。3.5 先出钻孔图和 NC Drill别漏了投板必需文件再强调一遍光绘层叠管的是 Gerber 文件NC Drill 钻孔文件是另一套流程但两者必须同时存在。很多新手把 Artwork 搞定了结果忘了出 .drl板厂打电话来问“钻孔文件呢”才发现漏了。流程是先做钻孔图例Manufacture - NC - NC Drill Legend弹出对话框让你选图例存放的 Subclass一般默认放到 MANUFACTURING/NCDRILL_LEGEND 和 NCDRILL_FIGURE。生成之后Artwork 里的 DRILL Film 才有内容可输出。再执行 Manufacture - NC - NC Drill打开钻孔输出对话框。这里设置 Output File 路径、Excellon 格式、单位、精度。注意NC Drill 的单位、精度必须和 Artwork 里设的一致否则板厂定位孔会偏。如果你有盲埋孔还要在 NC Drill 对话框里检查每一组 Drill 的层对设置不能只出一份简单的通孔文件。板厂一般需要 PTH 和 NPTH 分开出或者按它的下单要求勾选对应选项。3.6 生成光绘文件输出目录与文件命名所有 Film 配置和 General Parameters 设好后在 Artwork Control Form 的 Output Dir 里填输出目录。可以直接输入绝对路径比如 D:/project/gerber也可以用相对路径比如 ./gerber这样文件会生成在 .brd 文件所在目录的 gerber 子目录里。建议每次出图前手动清空这个目录防止上一次的旧文件混进来。确认无误后点击 Create Artwork 按钮。Allegro 会逐个 Film 生成 .art 文件比如 TOP.art、GND.art、BOTTOM.art。同时你之前也生成了 .drl 钻孔文件。到这一步光绘层叠的“添加”工作已经完成但真正考验人的是验证这里放到下一节细说。文件命名也值得统一。不要出现“最终版_v2”这种名字。我习惯用层名直接命名TOP、GND、PWR、BOTTOM、SILK_TOP、SILK_BOTTOM、SOLD_TOP、SOLD_BOTTOM、PAST_TOP、PAST_BOTTOM、DRILL再加一个 DRILL.drl。简洁明确板厂一眼就懂自己也省心。4. 光绘层叠的常见问题与排查技巧实录4.1 Gerber 打开后缺铜皮、丢线这是最常见的一种问题。现象是 CAM350 里导入所有 Gerber 后发现某一层只有焊盘没有走线或者走线断断续续。原因一般有三个第一Film 里没勾对应 ETCH 层第二Undefined line width 设成了 0导致零宽线被丢弃第三光绘输出时选错了 Plot mode正片层被设成了 Negative。排查顺序也很固定先回到 Artwork Control Form选中出问题的 Film看 Subclasses 列表里 ETCH 层有没有勾上再看 Undefined line width 是不是 0最后看 Plot mode。大多数情况在这三个地方就能找到答案。如果数据里确实有极细的 0 宽线建议回到设计里把线宽改规范而不要完全依赖光绘层叠的默认值兜底因为你不知道板厂那边用什么规则解释。4.2 负片电源层隔离焊盘消失负片层出现问题比如电源层的过孔周围没有隔离空隙整层铜把焊盘全部连在一起通常有两条线索。一是 Cross-section 里该层被设成了 Positive但 Film 的 Plot mode 选了 Negative二是 Padstack 里没有正确设置 Thermal Relief 和 Anti-Pad。第一种情况直接把 Film 的底片类型改成 Positive或者把 Cross-section 的层属性改成 Plane Negative让两者一致。第二种情况去 Padstack Editor 里检查对应过孔和焊盘的 Thermal Relief、Anti-Pad 定义缺失就把它们补上并确保这些符号在光绘时能映射到正确的 Flash 上。如果实在不想折腾负片最粗暴有效的办法是整个内电层改用 Positive 输出。文件大一点没关系但所有隔离盘、热焊盘都是实打实的图形不会再出现“看着正常实际短路”的负片灵异事件。4.3 丝印位号缺失或乱码丝印层缺位号十有八九是漏勾了 REF DES/SILKSCREEN_TOP 或 REF DES/SILKSCREEN_BOTTOM。特别是在使用 Auto Silk 功能后Allegro 会把位号放到 REF DES 这个 Class 下而不是传统的 BOARD GEOMETRY/SILKSCREEN_TOP。你勾了后者手动画的丝印有但自动位号全丢。乱码问题则多出在中文丝印上。Allegro 默认矢量字体对中文支持很差直接打中文字符很容易出来一堆方块或者乱码。如果你必须在板子上放中文标识要么把文字转换成线段图形要么在导入时用带轮廓的字体并转成填充线条要么干脆用英文。板厂不会帮你改丝印内容这个坑只能自己提前避。4.4 钻孔文件与光绘数据对不上钻孔和光绘对不上最常见的现象是 CAM350 里钻层和线路层原点错位或者钻孔尺寸明显异常。大概率是 NC Drill 的单位、精度和 Artwork 里不一致。比如 Artwork 用 3:5 的英寸NC Drill 用 2:4 的毫米CAM 导进来自然对不齐。还有一种情况是只顾着出 .drl忽略了钻孔图例 DRILL Film。其实 DRILL Film 里的孔符号表是给人和 CAM 做目检用的你可以在 CAM350 里把每一层都叠出来看孔符是否落在对应焊盘中心。养成每次出完光绘后立即检查钻孔文件的好习惯不要等板厂反馈。4.5 用 CAM350 快速验收 Gerber出完光绘我强烈建议用 CAM350 做一次完整导入检查。打开 CAM350选择 File - Import - Auto Import然后选中你的 Gerber 文件目录。CAM350 会自动识别同目录下的所有光绘文件并按文件名归类导入。导入后主要看几个方面第一每一层是否有内容Top 层有没有走线丝印层有没有位号第二板框 OUTLINE 是否出现在每一层保证每张底片都有外形定位第三电源层隔离是否完整有没有不该有的短路第四钻孔文件是否能和焊盘对上。如果 CAM350 里一切正常基本可以放心发板。没有 CAM350 的话也可以用免费的 gerbv 或 Allegro 自带工具但 CAM350 在行业里是事实标准建议还是装一个。4.6 常见问题速查表现象可能原因处理方法光绘文件缺铜皮Film 漏勾 ETCH 层回到 Artwork 勾上对应 ETCH Subclass细线丢失Undefined line width 为 0设为 6mil 或 0.15mm负片层整片连铜层属性和 Film 底片类型不一致统一 Cross-section 和 Plot mode负片隔离焊盘消失Padstack 缺少 Thermal Relief / Anti-Pad在 Padstack Editor 中补全位号缺失漏勾 REF DES/SILKSCREEN_TOP勾选 REF DES 相关 Subclass中文丝印乱码矢量字体不支持中文转图形轮廓或改英文钻孔偏移NC Drill 单位精度与 Artwork 不一致统一单位和 Format钻孔图空白未生成 NC Drill Legend先生成 Legend 再出 DRILL Film打开 Gerber 尺寸异常单位或格式设置错误与板厂确认后重新输出5. 让光绘层叠一次到位的个人习惯5.1 固定 Film 模板与项目命名规范Allegro 的 Artwork 配置是可以复用的。你可以把一个做好且验证过的 .brd 文件里的 Film 配置保存下来或者把它作为公司模板项目的一部分。以后开新板直接拷贝模板工程只要层叠结构一样光绘层叠基本不用重配。如果你会写 Allegro Skill也可以把整套“添加 Film 勾选 Subclass 设置参数 一键输出”写成脚本注册成命令。网上能找到不少一键出 Gerber 的 Skill但我建议哪怕用了现成脚本也要自己把每一项配置看明白否则出了问题根本不知道脚本在干什么。不会写 Skill 也没关系把 1.3 节那张配置表打印出来每次出图照着勾效果一样。5.2 投板前最后检查清单最后分享一份我自己的检查清单每回发板前过一遍用来挡住低级错误Cross-section 层叠顺序和 Plane Type 是否正确内电层正负片与 Film 是否一致。所有 Film 是否都包含外形 OUTLINE保证每层可定位。丝印 Film 是否包含 REF DES位号有没有被自动丝印放到别的 Subclass。阻焊 Film 是否包含 PIN、VIA开窗规则是否满足过孔盖油要求。Undefined line width 是否非 0通常 6mil。Artwork 与 NC Drill 的单位、精度是否一致和板厂下单要求是否一致。NC Drill Legend 是否已生成DRILL Film 是否有内容。CAM350 自动导入后逐层目检完毕没有缺层、错位、短路。输出目录已清空重新生成避免混入旧文件。这套流程看起来啰嗦但真能省下跟板厂扯皮的时间。一个人如果每次都靠“运气”出 Gerber总有一天会被坑一次把流程固定下来光绘层叠就再也不是事。多说一句我的体会光绘层叠添加本身并不神秘它就是把 Allegro 数据翻译成板厂能认的 Gerber。难点在于反复验证、保持一致。每回出图前清空目录、用同一个模板、在 CAM350 里过一眼这五分钟花得非常值。希望这篇东西能让你少走几次冤枉路。