ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Allegro光绘层叠添加全攻略:从底片逻辑到实战避坑

Allegro光绘层叠添加全攻略:从底片逻辑到实战避坑 做了这么多年PCB Layout回头再看“光绘层叠”这四个字我最大的感受是这玩意儿看着就是个导出设置实际上却是整个出图流程里最容易被轻视、也最能在关键时刻给你“上一课”的环节。早年我负责一块四层板画了两周信心满满地一键出Gerber发给板厂结果对方第二天打电话来问“底片里怎么没有内电层啊”。我当时的反应是不可能我明明画了电源层和地层。后来打开Artwork文件逐个核对才发现光绘层叠Photoplot Stack里压根没把这两个内层加进Film板厂那边自然什么都看不到。那之后我养成了一个习惯无论板子简单还是复杂只要走“出光绘”这条路就一定会把层叠配置从头到尾过一遍。这篇文章我就围绕Allegro里的光绘层叠添加这件事把原理、操作、坑点和验证方法完整聊一遍。内容面向的是已经会用Allegro画板、但还没完全吃透出图环节的工程师也适合刚入门、正被“Film”“Subclass”“D码”这些名词绕晕的同学——看完以后你会觉得这玩意儿并没有想象中那么玄。1. 光绘层叠到底在做什么先搞懂底片逻辑1.1 从物理板子到胶片光绘文件的本质很多人第一次接触“光绘”这个词是在底片相机的年代。PCB的光绘文件本质上也是一张张“透明底片”每一张底片记录一层信息顶层走线是一张底层走线是一张顶层丝印是一张阻焊开窗又是一张。板厂拿到这些底片后通过曝光、显影、蚀刻等工序把图形转移到铜箔和油墨上最终叠出你设计的那块板子。这里的关键点在于你设计文件里的所有图层信息并不是自动对等转换为光绘文件的。Allegro里有个叫“Subclass”的概念类似于一个容器比如说Top层的铜箔走线放在“TOP”这个subclass里顶层阻焊开窗放在“SOLDERMASK_TOP”里。而光绘文件是由Film底片构成的每个Film指定了它要包含哪些Subclass。如果你建了一个叫“TOP”的Film但里面只勾选了“ETCH/TOP”而漏掉了“PIN/TOP”那么过孔焊盘在顶层那部分就不会被画进这张底片里。所以“光绘层叠的添加”说的简单点就是你在Allegro里决定“我这次要输出哪几张底片每张底片分别装哪些图层信息”的过程。这件事发生在PCB Designer里的“Manufacture - Artwork”菜单下面对应的工具叫Artwork Control Form。所有关于底片的新增、删除、编辑、排序、参数设置都集中在这个窗口里完成。1.2 Film、Subclass、D码三者的关系在Allegro里遇到术语容易懵我先用最直白的方式把三个易混的概念摆开Film底片最终生成的一个Gerber文件。你可以把它理解为“一张待曝光的透明胶片”。一张Film可以包含多个图层信息也可以只包含一个图层。Subclass子类你的.brd文件里实际存在的数据层。Allegro图层体系分Class和Subclass两层Class是主类比如ETCH、BOARD GEOMETRY、MANUFACTURINGSubclass是主类下面的子层比如TOP、BOTTOM、SOLDERMASK_TOP。D码D-CodeGerber语言里的“光圈”定义也就是线条、焊盘、填充区的图形尺寸与形状代码。RS-274X格式会自动嵌入D码老式的RS-274D格式则需要单独输出D码文件。三者之间的关系可以这样理解Subclass是仓库里的零件Film是一辆货车D码是货车上贴的标签。你往哪辆车上装哪些零件直接决定了板厂收到的到底是能拼出完整板子的“全家福”还是缺胳膊少腿的“残图”。2. 打开Artwork Control Form每个字段都不是摆设2.1 界面全貌与核心区域在Allegro的命令行输入artwork或者通过菜单“Manufacture - Artwork...”打开Artwork Control Form。这个窗口看起来字段很多但核心就这几个区域Film Control区窗口左侧是你当前所有已定义的Film列表。选中某一个Film右侧会显示这个Film包含的所有Subclass。Subclass选择区这里可以给当前选中的Film添加或移除Subclass。你可以把任何一个Class下的Subclass拖进去也可以只拖某一个Subclass的一部分。Film Options区设置当前Film的Plot mode正片/负片、线宽、镜像、旋转角度等参数。General Parameters区设置输出格式、坐标精度、输出目录、文件名后缀等全局参数。界面上的每一个下拉框和勾选框不是点完就完事儿的。举个例子很多人在“Undefined line width”这一栏填0觉得没有未定义线宽就不会有影响。实际上这个值是给那些没有显式定义宽度的线条比如某些库里的短线或形状兜底用的如果你填0板厂的CAM系统可能会报错甚至默认当成0宽度处理最终导致开路。我的习惯是填6mil既能避免CAM报错又不会为了兜底把不该加粗的线条加粗。2.2 Undefined line width不能乱填的原因刚才提到了Undefined line width这个值在老工程师口中经常被称为“名义线宽”。它的作用是当某个图形元素在D码表里找不到对应的光圈定义时系统就用这个值临时替代。如果你在这个位置填一个特别小的值比如1mil那么即使有个别元素的线宽被兜底了你也很难在最终Gerber里发现异常因为太细了肉眼根本看不清。等你把文件发到板厂产线做曝光的时候才会发现某根线细到无法加工轻则板厂帮你修一版重则直接回退。我见过一个案例一个同事在Artwork里没有对Outline线宽做定义Undefined line width又填了0结果板厂CAM系统自动把板框线宽度解析成了0最后铣出来的板边尺寸差了0.2mm整板报废。这个教训告诉我们Undefined line width填6mil或8mil是一个相对稳妥的工程选择。2.3 正片与负片的选择逻辑正片和负片是光绘里绕不开的概念。正片就是“画什么就显什么”你画了铜箔底片上就是实心图形负片则是“画什么就空什么”你画的图形部分在底片上是透明的其他区域都是实心。在实际设计里信号层、丝印层、阻焊层一般用正片。因为这些层的图形信息密度高且不规则用正片最直观。内电层电源层、地层可以用负片。因为内电层大部分区域都是铜只有少数反焊盘Anti-Pad和热焊盘Thermal Pad位置需要挖空用负片描述“空”比描述“实”更高效。不过我必须强调现在很多设计也选择内电层用正片因为负片虽然文件更小但在Allegro里需要特别小心热焊盘、反焊盘的设置是否正确而且对CAM处理不熟悉的工程师更容易踩坑。如果你刚开始做内层分割建议先保持正片出图等熟悉了再考虑负片优化。3. 动手配置一套标准的光绘层叠3.1 出光绘前的Checklist在做光绘层叠之前先确认以下几件事是否完成DRC检查通过没有未连接的引脚、没有开路、没有间距违规。很多“光绘文件异常”的根因其实不在光绘本身而是设计源文件就存在隐患。层叠结构确认打开“Setup - Cross-section”确认板子的物理层数、每层名称、厚度设置和实际设计意图一致。光绘层叠里添加的Film必须和Cross-section里的层叠一一对应。需要输出的文件列表正常情况下一套完整的交货Gerber至少包含顶层走线、底层走线、所有内层走线/平面、顶层阻焊、底层阻焊、顶层丝印、底层丝印、板框、钻孔文件。这一步的目的是让你在配置Film之前就心中有数我到底要输出几张底片每张底片对应哪一层。3.2 添加Film与分配Subclass的完整步骤下面以一块四层板为例演示从0配置一套光绘层叠的过程。板子的层叠从上到下是TOP信号层、GND内电层、POWER内电层、BOTTOM信号层。第一步打开Artwork Control Form在命令行输入artwork或者通过菜单“Manufacture - Artwork...”打开。如果当前.brd文件还没有任何Film配置窗口左侧的Film列表是空的。第二步添加顶层走线Film点击左上角的“Add”按钮在弹出的对话框里输入Film名称比如“TOP”。在右侧的Subclass列表里把“ETCH/TOP”勾选进去。这里要注意除了“ETCH/TOP”如果顶层有敷铜Copper Pour还要确保“ETCH/TOP”中的铜箔图形被正确包含——实际上所有铜箔图形都在“ETCH/TOP”里不用单独处理。第三步添加内层Film继续点“Add”添加“GND”和“POWER”两个Film。分别勾选“ETCH/GND”和“ETCH/POWER”。如果你在内层还放了分割铜皮、敷铜区或特殊开窗请检查这些图形是否都在对应的ETCH Subclass下。如果有些图形被放到了“BOARD GEOMETRY”或其他Class里比如某些铺铜外框或热焊盘标识你需要把对应Subclass也加进这个Film。第四步添加底层走线Film添加“BOTTOM”勾选“ETCH/BOTTOM”。第五步添加阻焊Film这里要特别注意阻焊层是“开窗”信息不是“铜箔”信息。添加“SOLDERMASK_TOP”把“SOLDERMASK_TOP”这个Subclass拖进Film添加“SOLDERMASK_BOTTOM”把“SOLDERMASK_BOTTOM”拖进Film。检查一下SOLDERMASK_TOP里是否有你画的开窗形状特别是BGA扇出、连接器焊盘等需要开窗的区域。如果阻焊层信息和焊盘不匹配板厂做出来的板子可能出现“绿油盖住焊盘”或“露铜面积过大”的问题。第六步添加丝印Film添加“SILKSCREEN_TOP”把“BOARD GEOMETRY/SILKSCREEN_TOP”和“REF DES/SILKSCREEN_TOP”这两个Subclass都加进去。因为丝印信息往往分成图形和字符两部分存放。同理添加“SILKSCREEN_BOTTOM”把底层的丝印图形和位号字符都加进去。第七步添加板框Film添加“OUTLINE”或“BOARD_OUTLINE”把“BOARD GEOMETRY/OUTLINE”加进去。板框是板厂制作板边、铣削外形的重要依据千万别漏。第八步设置每个Film的参数选中每一个Film在“Film Options”里设置Plot mode根据前面讲的正片/负片逻辑设置。走线层和丝印层用Positive如果内层用负片就选Negative。Undefined line width统一填6mil。Film size这里可以保持默认或者根据你的板子尺寸设置一个比板边大一些的矩形区域。如果你发现Film Size太小时Allegro会提示“Film size is too small”这时候需要适当增大。Suppress unconnected pads建议勾选“All on”。这个选项会隐藏掉那些没有连接网络的孤立焊盘避免在底片上产生孤独的“飞焊盘”。第九步设置全局参数点击窗口底部的“General Parameters”按钮在弹出窗口里设置Device type选择“Gerber RS-274-X”。这是目前板厂最通用的格式D码内嵌不会出现D码文件丢失的问题。Format选择“5:5”。表示坐标整数部分5位、小数部分5位输出精度是0.00001英寸。如果你的板子尺寸特别大比如超过100英寸这基本不可能或者精度要求不高可以用“5:4”但“5:5”是稳妥选择。Output directory设置光绘文件输出目录。这个目录最好是一个独立文件夹建议命名为“gerber”或“output”。注意路径里别带中文不然某些板厂的设备识别不了。Output filename可以给每个Film单独指定文件名也可以保持默认使用Film名称。我习惯用“板名_FILM名”比如“MyBoard_TOP.art”。设置完以后点击“OK”返回主界面最后点击“Select All”选中所有Film再点“Create Artwork”生成光绘文件。3.3 参数配置格式、图纸尺寸与输出路径如果你用的Allegro版本比较老比如16.6上面这些选项的位置可能稍有不同但逻辑一致。还有一个容易被忽略的参数是**“Film Options”里的“Mirror”**。我在这里解释一下底层丝印、底层阻焊这类从板子正面看是“镜像”的图形其实在Allegro的光绘输出里会自动处理不需要手动开Mirror。手动开Mirror反而会导致图形反向板厂做出来全错。这个坑我在刚入行时就踩过交出去的Gerber做回来一版丝印全是反的。输出路径方面我建议为每一个版本的板子单独建一个Gerber文件夹避免后期多次改板时新旧文件混在一起。比如“20240510_V1.2_Gerber”这种带日期和版本的命名既方便自己复盘也方便板厂识别。4. 分层叠加里的匹配规则与隐藏陷阱4.1 内电层负片的反焊盘与热焊盘设置如果你决定内电层用负片有几个与普通正片完全不同的细节需要留意。负片模式下底片上的“实心区域”代表铜而你绘制在“ANTIPAD”和“THERMAL PAD”这些特殊Subclass里的图形会被识别为“挖空区域”。这意味着反焊盘Anti-Pad用于把过孔、插件孔与铜皮隔离的圆形或异形区域。如果反焊盘直径设置过大会削弱铜皮的载流能力设置过小则可能导致焊盘与铜皮短路。热焊盘Thermal Pad用于在焊盘周围铺一圈放射状的铜皮连接既要保证电气连接又要方便焊接散热。在负片下热焊盘图形要画在正确的Subclass里比如“ETCH/GND”对应层的“THERMAL PAD”要单独添加。我见过一个典型的错误工程师在正片模式下习惯了“画一个圆圈就是挖空”换到负片后内电层依然画了个焊盘结果光绘出来的底片上一个实心圆板厂做出来的铜皮上焊盘周围完全没隔离整层内电变成了一大块短路的铜饼。所以如果你对内电层负片的处理还不到火候建议还是用正片来得安全。4.2 阻焊、助焊、丝印层的匹配原则阻焊层匹配的核心原则是阻焊开窗要比焊盘略大但不要大到露出整段走线。通常默认情况下Allegro会在生成阻焊层时自动为每个焊盘生成一个比焊盘大4~6mil的开窗。如果你在库里有手动修改或者对某些特殊焊盘如大电流通孔手工画了开窗形状就需要确保这些手工形状在正确的Subclass里且也被包含进阻焊Film。丝印层的匹配原则是位号字符不要压在焊盘上丝印线宽不要细于板厂工艺下限。很多工程师在Allegro里画了丝印但三维视图里看着没问题就忽略了实际加工可行性。板厂的丝印最小线宽通常在4~5mil如果你用了2mil的丝印线板厂会做不出来或者做出来模糊不清。这个检查和光绘层叠本身无关但会影响你最终交出去的文件质量。4.3 钻孔层与光绘层叠的配合钻孔信息和光绘文件经常放在同一个交付包里但它们不是一回事儿。钻孔文件由“Manufacture - NC - NC Drill”生成通常在Artwork里不需要专门创建Film。但需要注意钻孔文件与光绘文件必须使用同一套原点否则板厂对位时会出现“孔不在焊盘中心”的问题。钻孔图例Drill Legend可以作为一版独立的Film输出但隔离层的钻孔符号一般放在“MANUFACTURING/NCDRILL_LEGEND”这个Subclass里。如果你不需要板厂看图例可以不输出。如果你使用了埋盲孔一定要检查Cross-section里盲孔、埋孔所在的层范围确保这些层在光绘层叠里都被正确添加Film否则做出来的内层孔盘会丢失。5. 实测中常见的报错与排查链路5.1 层叠配置的排查流程不管你是老手还是新手出光绘时都难免遇到报错。我把这些年遇到过的典型报错和排查思路整理成了表格方便你对照报错现象可能原因排查与解决生成的.art文件为0字节Film里没有勾选任何Subclass在Artwork Control Form选中该Film检查右侧Subclass是否为空板框缺失或尺寸不对板框线没有添加到Film确认Film里包含了BOARD GEOMETRY/OUTLINE内层铜皮完全空白内层的ETCH/Subclass没加进去检查Cross-section里的层名与Film勾选的Subclass是否完全一致丝印字符缺失字符在REF DES但没加进Film把REF DES/SILKSCREEN_TOP或BOTTOM加进对应FilmD码未定义警告某个图形没有匹配的D码在Undefined line width填6mil兜底同时查是否有个别线条线宽异常文件能开但板厂说打不开使用了过老的Gerber格式或路径带中文改用Gerber RS-274-X路径改纯英文钻孔与焊盘对不上原点不一致统一设计原点后重新出钻孔和光绘在实际排查时我通常的流程是先在Artwork Control Form里“Select All”然后逐个查看每个Film右侧的Subclass列表看是不是所有该有的层都在。然后再看General Parameters里的输出路径和格式。最后用CAM350之类的工具打开生成的文件逐层检查。5.2 生成后的文件验证方法很多工程师习惯出完光绘就直接打包发板厂从不自己验证。我建议最少花5分钟做一遍自检用CAM350或类似工具导入所有Gerber文件看看板框、走线、丝印、阻焊是否都齐全。把板框层显示为最外层确认所有图形都在板框范围内。检查内层铜皮完整性配合钻孔文件看看孔盘是否和焊盘同心。关注底层图形方向从顶部看底层图形可能与顶层呈镜像关系你要确认这是正常的——因为板厂在制作时会做翻转处理你自己看文件的时候不要被“镜像”误导。有一次我连续出了三版Gerber都没发现一个问题我的钻孔文件居然是旧版本的里面的孔位比当前版本少了一排。就是因为出图太顺手完全没验证。后来我在交付清单里加了一条“务必附上钻孔文件且核对其生成日期”从此再没犯过这种错。6. 我的工程习惯配置模板与二次确认6.1 把常用层叠存成模板省时省力Allegro支持把Artwork配置保存成模板文件。配置好一套光绘层叠后点击Artwork Control Form里的“Save”按钮可以把Film列表存成.art文件。下次新建项目时直接“Load”导入再根据新板子的层叠结构增删Film就行。我的做法是维护了两套模板四层板通用模板包含顶层、内电层、底层、阻焊、丝印、板框、钻孔图例等Film全部用正片出图。六层以上模板在四层板基础上增加内层走线Film同时对部分内电层用负片。模板的价值不仅在于省时间更在于它准确地沉淀了你在实践中踩过坑之后总结出的“正确配置”。每次新项目只要在模板基础上微调就不会漏掉关键的Subclass。6.2 出图前实时核对“三个一致”这里分享一个我非常推荐的最简检查原则叫“三个一致”Film数量一致你设计的物理层数是否与Film数量匹配。比如四层板至少要有4个铜层相关Film顶层、两个内层、底层再加上阻焊、丝印、板框总共不少于7个Film。如果少了一定有问题。Subclass层级一致每个Film里勾选的Subclass是否与该层在Cross-section中的名称一致。Allegro允许你自定义Subclass名称但如果名称不一致光绘时会找不到数据。输出目录与文件命名一致确认所有Film都被输出到同一个文件夹文件名后缀清晰不带空格和中文。建议统一命名规则比如BoardName_TOP.art、BoardName_BOT.art。6.3 出图之后再做“最后一分钟检查”最后分享一个我自己坚持了很久的小习惯。当所有光绘文件和钻孔文件生成完毕、还没发板厂之前我会做的最后一件事是重新打开一遍每个Film的Gerber文件直接肉眼过一遍重点层。重点看顶层有没有断线、少铜、少过孔。底层有没有因为镜像我搞错方向的图形。内电层有没有大面积铜皮丢失或短路的风险。阻焊开窗是不是多开了、漏开了。丝印字符有没有压在焊盘上。这个习惯很笨但确实帮我挽回了好几次因为小失误差点导致的废板。尤其当你连续加班到凌晨、脑袋已经不太清醒的时候这5分钟检查能救你一命。回到开头那个“内电层缺失”的事故。那一次之后我把“Artwork Control Form”当成了整个出图流程里的最高优先级对象任何一个新项目画完板子准备出图第一件事就是打开它把Film和Subclass逐一核对清楚。毕竟画板子画得再漂亮最后生成的光绘文件没法用就一切归零。如果你现在正要给一块新板子出光绘我建议你先别急着点“Create Artwork”把上面提到的层叠配置、正负片选择、输出格式和验证方法都过一遍。出图这件事真的值得多花10分钟。
返回列表