
板子画完、DRC 跑完、电源平面也铺好了眼看着要点发出去了板厂回一句外形没闭合请重新提供光绘——这种事我遇到过不止一次。在 Allegro 里做光绘文件导出真正难的地方从来不是点哪个按钮而是你必须清楚设计数据库里的ETCH/TOP、PIN/SOLDERMASK_TOP、BOARD GEOMETRY/OUTLINE这些内部层名最终会被翻译成板厂 CAM 工程师手里那张图纸上的哪一笔。翻译错了或者漏翻译了你在软件里看到的那块漂亮板子到了工厂就可能是另一块板。这篇内容面向所有用 Cadence Allegro 出图的人刚上手、第一次独立把板子送出去的新人以及做了几年但一直靠抄前辈的 film 设置、说不清每一格参数为什么这么填的老手。我会把光绘导出的完整链路拆开讲——从 Film 的层配置、Artwork 参数窗口里那几行关键数字到 NC Drill 的对齐、板框和阻焊的处理再到交付前怎么自查、打样回来出了偏差怎么往回倒推。所有参数都会给出常用值和理由你可以直接照着填也可以拿它去跟板厂对质。1. 一套能下单的光绘文件到底由哪些东西组成很多人的认知里导光绘就等于在 Artwork 窗口里点一下 Create Artwork然后拿到一摞.art文件。这个理解只对了三分之一。板厂拿到你的资料后要完成三件事做出图形、钻出孔、铣出外形。这三件事对应的是三组不同的文件各自有各自的参数体系彼此还必须严格对齐。任何一个环节的单位或精度跟另外两个对不上板子做出来就是废的。1.1 Gerber、钻孔、铣槽、网络表四类交付物各管什么先把交付物清单列清楚这是后面所有设置的落脚点。交付物生成方式管什么是否必备GerberRS-274XManufacture → Artwork每层一个文件线路、阻焊、钢网、丝印、外形等所有图形必备钻孔文件ExcellonManufacture → NC → NC Drill所有圆孔的孔径、位置、镀通属性必备铣槽文件NC RouteManufacture → NC → NC Route异形槽、板边铣削路径有槽孔/异形边才需要IPC-D-356 网络表Manufacture → Testprep飞针测试用的网络点位批量生产、测试要求高时提供这里面最容易出问题的是前两项之间的格式耦合。Gerber 和钻孔文件是两套完全独立的输出引擎Artwork 窗口里你选了英制 2:5NC Parameters 里如果顺手留了个公制 3:3板厂把两份文件叠在一起的时候焊盘和孔就会整体错开——错开量还不是固定的随坐标线性放大板子越大偏得越离谱。注意导出前先把设计单位定下来中途不要改。Setup → Design Parameters → Design里的 User Units 一旦从 mil 切到 mm所有 Film 和 NC 参数都得重新核一遍这是最容易被忽略的连带影响。1.2 我导出了 Gerber和板厂能直接开工之间的距离还有一个常见的认知误区认为.art文件生成成功、日志里没有报错就等于资料没问题。Allegro 的 photoplot 日志只报告它能检测到的错误比如光圈超出限制、零宽度线、找不到的 subclass。至于板框有没有闭合丝印有没有压到焊盘阻焊开窗够不够大这些工艺层面的问题它一个字都不会提。所以实际操作里光绘导出的后半程永远是人工复核。行业里通行的做法是导出后把所有层丢进一个 Gerber 查看器比如常用的免费查看工具或者公司里的 CAM350逐层叠加看一遍重点看外形闭合情况、钻孔与焊盘对位、阻焊开窗形态。这一步花十分钟能省掉一次打样周期。2. Film 的层配置把设计数据库里的层名翻译成板厂认的图纸Artwork Control Form 里的 Film 列表本质上是一份翻译字典。左边是你设计库里的层右边是板厂要的那张图。这份字典配一次可以长期复用但配错一次后面每一版都跟着错。2.1 一张层对照表设计里的 subclass 到板厂图纸下面这张表是我自己项目里常用的最小集四层板和六层板都适用正片工艺。你可以直接对着它核对现有 Film 设置。Film 名称需要加入的 subclass说明TOPETCH/TOP、PIN/TOP、VIA CLASS/TOP顶层线路含走线、焊盘、过孔盘BOTTOMETCH/BOTTOM、PIN/BOTTOM、VIA CLASS/BOTTOM底层线路SOLDERMASK_TOPPIN/SOLDERMASK_TOP、VIA CLASS/SOLDERMASK_TOP、PACKAGE GEOMETRY/SOLDERMASK_TOP顶层阻焊开窗SOLDERMASK_BOTTOM同上切换到 BOTTOM底层阻焊开窗PASTEMASK_TOPPIN/PASTEMASK_TOP、PACKAGE GEOMETRY/PASTEMASK_TOP顶层钢网无贴片工艺可省略SILKSCREEN_TOPBOARD GEOMETRY/SILKSCREEN_TOP、PACKAGE GEOMETRY/SILKSCREEN_TOP、REF DES/SILKSCREEN_TOP顶层字符必须带位号SILKSCREEN_BOTTOM同上切换到 BOTTOM底层字符OUTLINEBOARD GEOMETRY/OUTLINE板框单独一层别混进别的 Film内层电源和地平面如果是负片工艺还要额外处理ANTI ETCH和THERMAL相关 subclass这个后面单独讲。2.2 正片还是负片什么时候才真的需要 NegativeAllegro 的每张 Film 都可以独立设置 Plot Mode 为 Positive 或 Negative。早些年用负片做内层平面非常流行因为 Gerber 文件小、生成快。但现在主流做法是能正片就正片。原因很实在负片意味着你画的是孔洞其余全是铜。板厂 CAM 工程师需要额外做一次反相处理反相过程中任何一处不该有的线、任何一个漏掉的 anti-etch都会变成实际的短路或开路而且这类问题在 Gerber 查看器里看着挺正常很难肉眼发现。设计师这边也一样负片层的视觉效果和正片相反改完板子自己都容易看糊。除非你们的叠层和工艺已经固定成负片流程、且有成熟的复核规范否则强烈建议全部走正片Shape用动态铜填充输出体积大一点但心里踏实。2.3 命名习惯和加层顺序让 CAM 工程师少打两次电话Film 的名字不是随便起的它直接决定了输出文件名。行业里比较通用的命名是全部大写加下划线比如TOP、SOLDERMASK_TOP也有些团队用GTL、GTS、GTO这类 Protel 时代沿用的后缀。这两种都行关键是整份资料保持一致并且让你的说明文档能对上号。加层的顺序也有讲究。Allegro 的 Film 列表是按添加顺序排列的把线路层放在最前面、阻焊钢网中间、丝印外形最后生成文件时的日志更易读。另外提醒一句BOARD GEOMETRY/OUTLINE只加到 OUTLINE 这一张 Film 里就够了。有些团队喜欢在每一层都带一圈外形线做对位参考这需要板厂主动删除一旦漏删外形线就会变成阻焊层上的一条开窗或者丝印上的一条粗线。3. Artwork 参数窗口单位、精度、容差这三件事决定成败Film 配好只是把料备齐了真正决定能不能被正确解析的是 Artwork Control Form 里的 General Parameters。这个窗口里的每一个输入框背后都对应着 CAM 端的一次解析动作。3.1 Device Type 与 FormatRS-274X 和 2:5 / 3:5 的来历Device Type 一律选 Gerber RS274X。原因在于 RS-274X 是自带光圈表的格式——每一层的圆盘、方盘、椭圆盘尺寸都写在文件内部CAM 软件打开就能直接还原。早期还有一种 Gerber 6x00 格式它需要额外配套一个光圈描述文件aperture report文件一多就容易丢丢了之后钻孔和焊盘对不上所以现在已经基本淘汰。Format整数位小数位决定的是坐标能表达多少位小数也就是理论分辨率。常见搭配是英制2:5最大可表达 99.99999 英寸分辨率 0.00001 英寸约 0.00025mm公制3:5最大可表达 999.99999 毫米分辨率 0.00001mm这两种都能满足绝大多数板子的需求。要注意的是这个 Format 是跟着输出单位走的如果设计单位是 mil就选 2:5如果设计单位是 mm就选 3:5。混着填的后果就是前面提到的整体缩放 25.4 倍。至于 Offset除非你的板子在 Allegro 数据库里离原点特别远比如 X 坐标已经上万 mil否则保持 0:0 就行有些老版本的 CAM 软件对超大坐标支持不好这种情况下可以用相对原点或者给一个负偏移但一定要在说明文档里写清楚。3.2 Undefined Line Width 与 Suppress Unconnected Pads两个必须手动设的选项这两个选项几乎是新手翻车的重灾区。Undefined Line Width设计里如果存在线宽为 0 的线段比如某些以 0 宽度画的轮廓线Allegro 不知道要画多粗就会在这里取值。常规填 5mil或者 0.127mm对应 0.127mm 的线宽。这个值不能填 0否则输出可能出现无法加工的细线也不要填太大否则原本是示意性的轮廓线会变成一条粗线尤其在丝印层上很致命。Suppress Unconnected Pads勾上之后Allegro 会把这层里没有连接网络的孤立焊盘直接不输出。这个选项主要对正片的内层和走线层有意义。内层平面用正片填充的时候一些过孔在某一层其实没有电气连接如果不勾选这些焊盘会原样出现在该层铜箔上形成无意义的孤立铜块既影响阻抗也浪费铜。建议内层正片层全部勾选表层通常不需要表层焊盘基本都有连接。至于Full Contact Thermal Reliefs勾上表示热风焊盘按全连接处理一般不动它Vector Based Pad Behavior和绘图相关的选项除非做的是高频或特殊阻抗板默认值即可。3.3 生成后的 art_param.txt出事时唯一能自证的东西点完 Create Artwork输出目录里除了那一摞图形文件还会多出两个不起眼的文本文件一个是参数记录逐层记下了这次导出用的格式、单位、偏移、容差另一个是 photoplot 日志记录了生成过程中的告警和错误。这两个文件的价值在于排错。当板厂说你这层精度不对你可以直接打开参数记录文件核对当某层图形缺失日志里通常会留一行提示。我自己的习惯是把这两个文件连同 Gerber 一起打包发出去CAM 工程师有疑问可以自己查省一轮来回沟通。4. 钻孔文件NC Drill 和 NC Route 的参数必须和 Gerber 严格对齐钻孔是另一套完全独立的输出流程菜单位于 Manufacture → NC 下面。它和 Gerber 之间唯一的纽带就是单位 格式这个纽带一旦断了前面的所有工作都白做。4.1 NC Parameters 里的格式、单位与 Excellon 头信息打开 NC Parameters要确认的几项Output Units必须和 Artwork 的 Output Units 完全一致英制就都英制公制就都公制。Format钻孔文件常用 2:4 或 2:5。注意它和 Gerber 的 Format 不必数值相同但单位必须相同否则坐标的绝对值就会错。稳妥做法是两边都用同样的位数减少沟通成本。Enhanced Excellon format建议勾选。勾上之后文件头部会写明单位、格式、刀具表CAM 软件能自动识别不勾的话有些老软件需要人工指定单位很容易被猜错。前导零/后导零抑制跟随板厂的通用约定即可关键是头部信息要能自解释。输出文件通常以项目的 brd 文件名加.drl后缀命名。生成后同样会有一个参数记录文件和一个日志文件用于回溯。4.2 槽孔、盲埋孔与镀通/非镀通的分文件处理几类特殊孔要单独说椭圆孔和异形槽这类孔在 NC Drill 里是出不来的因为钻孔引擎只处理圆形刀具。正确的做法是在BOARD GEOMETRY/NCROUTE或团队约定的铣槽层上用线画出槽的路径然后用 Manufacture → NC → NC Route 输出独立的铣槽文件并在说明文档里注明该文件为槽孔路径请按线宽铣削。镀通孔与非镀通孔安装孔、定位孔通常是非镀通的电气过孔是镀通的。如果两者混在一个文件里板厂按全镀通处理安装孔内壁就会挂铜装配时可能出现短路。规范做法是分开输出并在文件名或说明里标清楚。盲埋孔必须按孔跨越的层分别输出并且要在说明文档里写清每一组孔的起止层光靠文件名板厂是猜不出来的。4.3 钻孔表要不要放进光绘钻孔表Drill Legend菜单在 Manufacture → NC → Drill Legend生成的是一个孔径—数量—刀具号的表格图形通常放在MANUFACTURING/NCLEGEND这个 subclass 上。我的建议是不要放进交付的光绘里。板厂是直接从钻孔文件读刀具信息的钻孔表对他们没有意义反而会多一层图形干扰。它的价值在于给你自己看——检查孔径种类是不是太多、有没有奇怪的孔径、孔数对不对。如果确实要随板提供就单独做一张 Film不要混进 DRILL 或者丝印层里。5. 板边、阻焊、钢网、字符四类最容易被漏掉的外围层线路层和钻孔是主角但真正让板子不能用的往往是配角。这四类层每一类都有各自的坑而且都是那种导出时不报错、打样回来才炸的类型。5.1 板框必须闭合而且必须放在正确的层板框是板厂铣外形和拼板的依据要求有两个放在BOARD GEOMETRY/OUTLINE首尾闭合、无自交。常见错误是把板框画在DESIGN_OUTLINE或者随便一个PACKAGE GEOMETRY层上。Allegro 里很多层都允许你画线画上去也看不出问题但 Film 里如果没包含那一层板厂拿到的外形就是空的只能按 Gerber 文件的最大范围去切做出来尺寸要么大一圈要么小一圈。判断闭合的方法在设计里用 Display 命令高亮 Outline 层放大到每个角看有没有断口或者干脆在 CAM 查看器里看闭合的轮廓围出来是一整片有断口的会出现明显缺口。5.2 阻焊开窗差 2mil可能就是连锡和露铜的区别阻焊开窗的尺寸不是在 Film 里设的而是在焊盘定义padstack里设的——SOLDERMASK_TOP相对于焊盘通常单边放大 2mil 到 4mil0.05mm 到 0.1mm。密脚器件、细间距 QFN 用 2mil 比较稳普通通孔器件放到 4mil 也没问题。导出时要确认的是阻焊层的 Film 里有没有加入PACKAGE GEOMETRY/SOLDERMASK_TOP。有些设计会在封装里额外画阻焊图形如果 Film 里没包含这个 subclass这些图形就丢了表现出来就是某几个器件焊盘不开窗锡膏根本印不上去。反过来的情况也常见开窗过大相邻焊盘之间的阻焊桥被吃掉回流焊时容易连锡。这些问题在 Allegro 里都看不出来需要在 CAM 查看器里把线路层和阻焊层叠加看阻焊桥的剩余宽度。5.3 丝印的取舍位号压焊盘该不该挪丝印层的 Film 里必须包含REF DES/SILKSCREEN_TOP这是位号的来源。BOARD GEOMETRY/SILKSCREEN_TOP管的是板级的丝印文字和图形PACKAGE GEOMETRY/SILKSCREEN_TOP管的是器件轮廓和极性标记。丝印最大的坑是压焊盘。位号或者器件轮廓压到焊盘上丝印油墨会印在焊盘表面影响可焊性。严格来说应该在导出前用 Allegro 的检查工具或者人工扫一遍把压盘的位号挪开或者缩小。另外提醒两点经验值丝印线宽建议不小于 5mil0.127mm字符高度建议不小于 25mil0.6mm低于这个尺寸印刷出来基本糊成一团如果某块区域实在挤不下宁可删掉那个位号也不要压盘因为几乎所有板厂都会主动删掉压盘的丝印删完之后你的板子上就没有位号了装配和维修都难受。6. 从检查到打包一条能跑通的实操链路前面讲的是每一项该设成什么样这一节把它们串成一条完整的时间线。如果你的项目比较急可以直接按这个顺序走。6.1 导出前的五项自查这五件事每次导出前花五分钟做一遍能挡掉八成返工单位统一设计单位、Artwork Output Units、NC Output Units 三者一致。板框闭合BOARD GEOMETRY/OUTLINE首尾相接无重叠自交。Film 齐全线路、阻焊、丝印、外形都有对应 Film没有遗漏内层正片层勾上 Suppress Unconnected Pads。丝印检查位号没有压到焊盘极性标记齐全。孤立对象清理板外的孤立走线、孤立过孔、游离的丝印线能在设计里删掉的就删掉别指望板厂帮你清。6.2 导出后的目录长什么样Export 完成后输出目录通常会是这样文件名示意PCB_PROJ/ ├── PCB_PROJ.brd # 原始设计文件 ├── TOP.art # 顶层线路 ├── BOTTOM.art # 底层线路 ├── SOLDERMASK_TOP.art # 顶层阻焊 ├── SOLDERMASK_BOTTOM.art ├── PASTEMASK_TOP.art # 顶层钢网 ├── SILKSCREEN_TOP.art # 顶层字符 ├── SILKSCREEN_BOTTOM.art ├── OUTLINE.art # 板框外形 ├── PCB_PROJ.drl # 钻孔文件 ├── art_param.txt # 光绘参数记录 ├── photoplot.log # 光绘生成日志 └── nc_param.txt # 钻孔参数记录拿到这堆文件后先做一件事用文本编辑器打开任意一个.art文件看开头有没有参数定义块、结尾有没有结束指令M02。RS-274X 是纯文本格式前面一段是光圈定义和单位声明中间是坐标指令最后以M02收尾。如果文件开头就是一堆坐标、没有任何参数块说明你选的格式不对输出的是老式格式需要退回重新配置。6.3 用 Script 录制把整套配置复用到下一个项目Film 配置和参数设置是保存在 brd 文件里的换一个项目就得重新配一遍这是纯体力活。我的解决办法是用 Allegro 自带的脚本录制功能File → Script → Start起个名字然后把整套 Artwork 配置、NC 参数设置、生成动作完整做一遍再Stop。生成的脚本文件保存下来下次新项目直接File → Script → Play跑一遍几秒钟就把一套标准配置灌进去了。配合一个快捷键会更顺手。在你个人环境目录下的 env 文件里加一行funckey q artwork之后按q就能直接拉起 Artwork 窗口不用每次去菜单里翻。6.4 交付打包一个 ZIP 加一份说明打包这件事看着简单实际上是沟通成本的关键。我习惯把一个项目的交付整理成一个压缩包 一份纯文本说明压缩包里放所有 Gerber、钻孔、铣槽文件文件名保持和 Film 名一致说明文档里写清楚层数、叠层顺序、板厚、铜厚、表面处理工艺、最小线宽和最小孔径、阻抗要求、槽孔和特殊孔的处理说明、Gerber 和钻孔各自的单位和格式。尤其是最后一句话——把单位和格式写进说明文档。板厂一天处理几百个订单他们不会去猜你的格式一位 CAM 工程师猜错一次你的板子就废一批。7. 打样回来才发现的偏差六个典型现象和排查链路最后这一节是我自己踩过的坑按现象—排查—根因的顺序整理遇到问题可以顺着往回倒推。7.1 整块板尺寸差了 25.4 倍这是最经典、也最容易识别的错误。25.4 正好是英寸和毫米的换算系数所以出现这个倍数关系一定是单位不匹配。排查路径先看 Artwork 的 Output Units再看 NC Parameters 的 Output Units最后问板厂那边的 CAM 导入设置里把单位设成了什么。三处只要有任意两处不一致就会出现这个现象。补救办法是重新导出不要试图让板厂缩放一下就完了因为缩放过程中原点位置可能会偏移板子上所有孔位都会跟着动。7.2 钻孔和焊盘对不齐孔越靠板边偏得越多如果偏差量随着坐标线性放大说明是格式/精度问题。检查 Artwork 的 Format 和 NC Drill 的 Format 是不是位数不一致——比如一边是 2:5、一边是 2:4CAM 软件按其中一方的格式去解析另一方的坐标就会出现这种原点附近还行、越远越偏的症状。如果偏差量是固定的整体平移那多半是原点不一致。检查 Artwork 里的 Drawing Origin 设的是绝对还是相对以及有没有填 Offset。7.3 内层出现孤立铜块或者负片层莫名其妙的短路内层孤立焊盘检查Suppress Unconnected Pads有没有勾。如果确定勾了还有孤立铜那就去看看是不是有孤立过孔或者孤岛铜皮本身没清理。负片层的短路问题绝大多数出在 anti-etch 上。负片是除我之外全是铜任何一处没画 anti-etch 的地方都会变成实实在在的铜把本不该连的网络连起来。这也是我前面建议全部走正片的原因——正片逻辑直观你能看见的就是实际存在的。7.4 外形被切掉一角或者槽孔根本没做出来外形问题先看板框闭合和所属层。闭合的轮廓被切一角通常是板框上有一个自交的折角CAM 软件按自交点的路径去铣就把角切掉了。槽孔没做出来基本都是路径问题——槽是在 NC Drill 里画成椭圆孔了而钻孔引擎只认圆刀。重新在铣槽层画路径用 NC Route 单独输出一次。7.5 阻焊层开窗过大或过小开窗过小表现为焊盘只露出一小圈锡膏印不上去或者上锡不良开窗过大表现为相邻焊盘之间的阻焊桥消失回流后连锡。这两类问题都要回到 padstack 里核对SOLDERMASK_TOP的尺寸。另外还要确认阻焊 Film 里包含了PACKAGE GEOMETRY/SOLDERMASK_TOP有些封装在这一层补画了阻焊图形漏掉的话表现就是个别焊盘没开窗。7.6 位号全部消失位号在成品板上一个都找不到通常是两个原因之一一是导出时丝印 Film 里漏了REF DES/SILKSCREEN_TOP二是位号虽然导出了但全部压在焊盘上被板厂按惯例删掉了。前者在设计里用 Display 命令单独点亮 REF DES 层看会不会和 Film 里配的 subclass 对上后者在导出前就要处理把压盘的位号挪开。这也是为什么我一直强调丝印检查要放在导出之前做——等板子回来再发现就只能返工重做了。我自己现在的习惯是导出光绘之后不急着打包先用免费查看器把所有层叠着扫一遍重点看三个地方外形闭合、钻孔与焊盘对位、阻焊开窗形态。这三处看完没问题剩下的通常都是小问题。另外每一版资料我都会保留导出目录不删等板子回来对不上账的时候art_param.txt和photoplot.log就是唯一的证据链能直接告诉你是哪一版、哪一项参数出了问题。