ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Cadence Allegro PCB光绘输出顺序与Gerber避坑指南

Cadence Allegro PCB光绘输出顺序与Gerber避坑指南 上周五临下班前板厂工艺那边发来一张截图底层丝印的字全是反的问我是不是把 BOTTOM 面的光绘忘了勾镜像。那一刻我盯着屏幕愣了三秒——Cadence Allegro 的 gerber 输出这件事流程上就那么几步但真正能让人翻车的从来不是会不会点按钮而是先后顺序和那些默认值。这篇文章就把我在 Cadence 17.4 上反复出板、被工厂挑刺、被自己坑过之后沉淀下来的那套 PCB 光绘输出顺序和注意点完整地摊开讲一遍。不管你用的是 Allegro 17.4 还是更早的 16.6PCB 制板文件gerber/光绘的底层逻辑是一样的区别只在菜单位置。我把这套东西拆成六块出图前的设计收尾、输出顺序背后的时序逻辑、Artwork 里的 Film 列表怎么建、General Parameters 的参数怎么定、钻孔与槽孔文件怎么出、最后出一遍图和打包交付。每一块都对应真实会出问题的地方看完你应该能一次出对不用像当年的我一样来回返工三遍。1. 出光绘之前先把设计冻住那些不做就一定后悔的收尾动作很多人把出光绘理解成打开 Artwork 面板点一下 Create这是最大的误解。artwork 只是把设计数据库里的图形按层导出数据库里是什么样导出来就是什么样。所以出图前那十几分钟的设计收尾决定了你后面要不要重来。1.1 DRC、连通性与铜皮别让最后一版 Shape 没填充先说最硬的一条铜皮必须重新填充。动态铜在 Allegro 里是惰性的你改了一条走线、挪了一个过孔它不会立刻重算。出图前请依次执行 Shape Fill或全局 Smooth把动态铜按最新规则重算一遍。我见过最典型的事故是工程师改完最后一版走线直接出图结果导出的是上一版铜皮的轮廓工厂做出来整块地层跟走线短路。这种错误 DRC 未必报因为数据库里的连通关系是按逻辑判断的不是按填充后的实际几何。然后是 DRC。用 Tools Quick Reports 里的 Design Rules Check Report或者直接看 Display Status 面板。关注的顺序是Unrouted connections 必须是 0DRC errors 里跟 Etch线路间距、线宽、Soldermask、Silkscreen 相关的错误要清零。有些错误是历史遗留的、你确认可以接受的比如某些机械孔的间距警告那就在出图记录里写清楚别留给自己一个以后再说。我的习惯是把 DRC 报告另存一份放进交付包工厂那边有时候会问。接着跑一遍 Tools Database Check。这个动作很多人省但它能把你从文件莫名其妙打不开、光绘莫名少一层里救出来。数据库有轻微损坏时Allegro 界面上一切正常导出的 gerber 却可能缺图元而且是静默失败。跑一次 database check几秒钟的事。提示收尾动作做完之后设计状态就冻住了。后面任何一步修改哪怕只是挪一个丝印位号都必须回到第一步重新走完整个流程不能只补出某一层。1.2 原点与单位一个让底层坐标变负数的低级错误设计原点的位置是很多人从来没关心过、但板厂经常要问的东西。Allegro 默认原点可能在图纸中间导出后坐标会出现负数。绝大多数 CAM 软件能处理负坐标但总有一部分老设备的解析器会崩或者坐标偏移量算错。标准做法很简单用 Setup Change Drawing Origin把原点放到板框左下角或者你希望的基准点然后确认整块板的所有元素坐标都是正数。顺带把单位统一Setup Design Parameters 里确认设计单位是毫米还是密尔并且和后面 General Parameters 里的输出单位对上。单位错位导致的后果不是文件坏了而是尺寸整体缩放 25.4 倍这种错误在打样阶段往往首件就报废。还有板框。确认 Board Geometry/Outline 是闭合的、没有任何多余线段板框之外的杂物辅助线、测试用的临时图形要么删掉要么挪进不出图的层。我一般会在出图前把所有无关图层关掉用 Display Color 把即将输出的层逐层打开看一眼肉眼扫一遍比什么工具都可靠。1.3 丝印与位号光绘里最容易缺胳膊少腿的部分丝印出问题的方式特别多我列几个高频的。第一是位号被漏掉。位号在 Allegro 里可能放在 REF DES/SILKSCREEN_TOP也可能放在 PACKAGE GEOMETRY/SILKSCREEN_TOP取决于你们封装库怎么建的。如果你只往 film 里加了 PACKAGE GEOMETRY 那一层位号就全没了。出图前用 Display Color 打开丝印相关 subclass 一个个确认。第二是 TrueType 字体。Allegro 支持 TrueType 文本但这类文本在光绘输出时会被转成大量细线段或者填充图形处理文件体积暴涨个别情况还会出现字形粘连。我的建议是板上的丝印文字统一用矢量笔画字体或者出图前把 TrueType 文本转掉。特别是公司 LOGO很多是导入的矢量线本身就正常反而是一堆小位号用了 TrueType。第三是丝印压焊盘。丝印压在开窗上会影响可焊性工厂会打电话让你改。这个可以在 Analysis Modes 里把丝印相关的 DRC 规则打开让软件替你查。第四是文字太细。丝印线宽低于 0.15mm6mil在很多工厂会被判为印不出来出图前最好统一把小于这个值的丝印线改粗。这一条严格说是工艺约束不是工具问题但每年都有新人栽在这里。2. 钻孔表为什么必须排在 Gerber 前面输出顺序的底层逻辑标题里问的是顺序那这里就把顺序这件事讲透。我把常规顺序列一下然后解释每一步为什么要排在这个位置。顺序动作产出关键理由0设计收尾铜皮填充、DRC、dbdoctor、原点单位冻结的设计数据库后面所有输出都依赖它1生成钻孔表 Drill Legend钻孔符号与表格图形写在 manufacturing 层它是图形要参与光绘输出2配置并创建 Artwork各层 .art 文件包含钻孔表所在的那一层3输出 NC Drill.drl 钻孔文件依赖最终设计状态4输出 NC Route.rou 槽孔文件依赖 NC 参数文件5输出 IPC-356 / 坐标文件.ipc / place_txt.txt依赖最终网络与器件位置6自检与打包交付压缩包前面所有产物的集合2.1 Drill Legend 生成的是图形不是文件这是最容易被误解的一点。钻孔表Drill Legend在很多人的认知里是我要出的一个文件其实它是往设计数据库的 Manufacturing 层里画一堆图形——每个孔径对应一个符号再加上一张说明表格。既然它是图形它就必须在光绘输出之前生成否则你导出的那一层里根本没有钻孔表。所以先出 Gerber 再补钻孔表这个顺序是错的你会得到一份没有钻孔说明的机械图。正确顺序是先生成钻孔表再去 Artwork 里把它对应的 film 导出来。那为什么不干脆放到最后因为钻孔表一旦生成会在设计里新增图形元素。如果你先出了线路层再生成钻孔表虽然线路层不受影响钻孔表在 manufacturing 层和 etch 层不重叠但一旦你发现钻孔表位置不对要挪动、或者要换符号形状就得回去重新确认所有图层容易乱。一步到位最省事。2.2 一个典型的时序错误先出 Gerber 后补钻孔表我真实踩过这个坑。当时设计改到最后一版赶时间先跑了 Artwork导出了十来个 .art 文件然后才想起来钻孔表没生成。生成完钻孔表我重新导出了机械图那一层心想只补一层应该没问题。结果打包交出去工厂回复说机械图里的钻孔符号和钻孔文件里的刀具号对不上——因为我在生成钻孔表之后又动过几个过孔的孔径但钻孔文件是在那之前出的。这个事故的本质不是顺序错了而是任何一次改动之后要全量重出。顺序本身只是个骨架真正约束你的是数据一致性。2.3 设计改动之后的全量重出原则我把这条当成铁律只要设计数据库发生了变化无论多小所有导出产物全部作废重出。不要试图只重出受影响的那一层因为你很难准确判断哪些层受影响。改了一个过孔孔径看上去只影响钻孔文件实际上如果这个过孔在负片层上、或者它参与了铜皮避让那内层的光绘也变了。操作上我建议用一个干脆的办法每次出图前把工程目录下 artwork 文件夹里旧文件清空或者整个文件夹删掉重生成这样你一眼就能看出哪些文件是这一版新出的不会拿错。同时给每一版出图建一个带日期和版本号的独立目录比如gerber_v1.3_20250610。这个习惯救过我很多次尤其是当工厂说你这版和上一版不一样的时候你能立刻调出来对比。3. Artwork 面板逐项拆解Film 列表怎么建、怎么排序打开 Manufacture Artwork看到的就是 Artwork Control Form。17.4 的这个窗口和 16.6 相比布局更清爽但核心还是那几个页签Film Control、General Parameters、Aperture List。这一节只说 Film Control参数留到下一节。3.1 Film 命名与叠层一一对应Film 列表就是你要输出的所有层。命名建议直接跟叠层顺序挂钩让人一眼看懂。我常用的一套命名TOP顶层线路L2_GND、L3_SIG、L4_PWR内层名字跟 Cross-section 里的层名一致BOTTOM底层线路SOLDERMASK_TOP / SOLDERMASK_BOTTOMPASTEMASK_TOP / PASTEMASK_BOTTOMSILKSCREEN_TOP / SILKSCREEN_BOTTOMOUTLINE板框DRILL钻孔图含钻孔表和板框17.4 的 Film Control 面板上有个按叠层自动生成基础 film 的功能能帮你把线路层快速铺出来。但它只解决线路层阻焊、钢网、丝印、板框这些还得手动补。我第一次用的时候以为它能一键搞定结果导出的包里没有阻焊层工厂直接退回来。3.2 每个 Film 要加的 Subclass 清单这是最需要抄作业的部分。下面这张表是我目前用的版本实际使用时请结合你们封装库的层命名习惯微调Film需要添加的 SubclassNegativeMirrorTOPETCH/TOP否否BOTTOMETCH/BOTTOM否是内层ETCH/对应层名否正片否SOLDERMASK_TOPPIN/SOLDERMASK_TOP、PACKAGE GEOMETRY/SOLDERMASK_TOP是否SOLDERMASK_BOTTOMPIN/SOLDERMASK_BOTTOM、PACKAGE GEOMETRY/SOLDERMASK_BOTTOM是是PASTEMASK_TOPPIN/PASTEMASK_TOP、PACKAGE GEOMETRY/PASTEMASK_TOP否否PASTEMASK_BOTTOMPIN/PASTEMASK_BOTTOM、PACKAGE GEOMETRY/PASTEMASK_BOTTOM否是SILKSCREEN_TOPBOARD GEOMETRY/SILKSCREEN_TOP、PACKAGE GEOMETRY/SILKSCREEN_TOP、REF DES/SILKSCREEN_TOP否否SILKSCREEN_BOTTOM同上换成 BOTTOM否是OUTLINEBOARD GEOMETRY/OUTLINE否否DRILLBOARD GEOMETRY/OUTLINE、MANUFACTURING/NCLEGEND-1-*否否几个要点解释一下。内层用正片还是负片取决于你的设计习惯绝大多数现代设计内层也用正片输出只有整层平面用负片的老做法才会勾 Negative。阻焊层用负片是行业主流因为阻焊本质上就是除了开窗以外都盖油负片表达最直接但一定要跟你的板厂确认他们的默认处理方式。板框层别忘了加进每个需要看边界的图里。很多工厂会要求线路层也带上板框方便他们定位。这一点问一句就能确认。3.3 Negative、Mirror 与 Film size三个最容易翻车的勾选项Negative 的坑在于一个 film 一旦勾了负片它的输出逻辑就完全反过来了输出的是整个 film 区域减去图形。这时候 film 的尺寸就成了致命因素——如果 film 边界刚好卡在板框上负片输出后板边会被切掉一圈。所以负片层的 film 尺寸一定要留足余量宁可大一点。Mirror 的坑就是我开头遇到的那个。底层相关的所有 filmBOTTOM、SOLDERMASK_BOTTOM、PASTEMASK_BOTTOM、SILKSCREEN_BOTTOM都要勾 Mirror让图形从底面观察视角输出。漏勾的后果就是丝印反字、底层线路方向错。这个错误在 CAM 里叠图时很容易发现但如果你不做叠图检查就等着工厂退单。Film size 有个细节光绘控制窗口里与 film 尺寸相关的那个按实际内容范围限定 film 大小的选项正片层勾上通常没问题负片层勾上就要格外小心因为实际内容范围有可能比板框小导致输出被裁。我的做法是负片层一律不依赖自动范围手动给一个足够大的尺寸并且把所有需要的东西都确认在范围内。3.4 Undefined line width 与 Suppress unconnected padsUndefined line width 是给线宽为 0 的线段兜底的。Allegro 里有些图形元素尤其是从别的格式导入的、或者手工画的辅助线线宽是 0光绘输出时必须给一个替代值否则要么报错要么被丢弃。这个值我一般设成 5mil0.127mm或 6mil和你设计里最细的丝印线宽保持一致的量级。如果设成 0那些元素就真的消失了这也是丝印莫名少了一块的常见原因之一。Suppress unconnected pads 这个选项要谨慎。它的作用是抑制未连接的焊盘在负片层里能减小文件、避免误判但在正片层上乱勾可能把该保留的焊盘去掉。除非你很清楚自己在做什么否则保持不勾或者只在明确需要的内层负片上单独设置。Shape bounding box 一般不勾勾了会给铜皮加外框工厂看到会疑惑。4. General Parameters 里的参数怎么定格式、精度、零抑制与单位General Parameters 这一页决定的是文件格式层面的东西一旦设错整个包都得重出。它的重要性其实高于 Film 列表因为 Film 列表错了你能一眼看出来参数错了可能要到工厂才暴露。4.1 RS-274X 还是 RS-274D现在没人用 RS-274D 了一律 RS-274X。原因是 RS-274X 把光圈定义aperture直接写在文件里是一个自包含的文件RS-274D 需要额外一个光圈表文件多一个环节就多一次出错机会。如果你们公司和某个老工厂有特殊约定那就按他们的来但默认选 X。4.2 整数位与小数位怎么选光绘输出的坐标精度是两个数字决定的整数位和小数位。选的原则是整数位够放下最大坐标小数位够表达最小线宽。走英制时常见取 2.4即整数 2 位最大 99 英寸足够任何板子、小数 4 位精度 0.0001 英寸相当于 0.1mil。走公制时常见取 3.4 或 3.5整数 3 位能放下 999mm小数 4 位就是 0.1 微米小数 5 位是 0.01 微米。精度不是越高越好。小数位每加一位坐标数字就多一位文件体积会明显增长一块复杂板子的 gerber 包可能从几兆变到几十兆。而且绝大多数工厂的 CAM 处理能力到 0.1 微米就封顶了再高的精度他们也会截断。我的习惯是公制 4 位小数够用且体积可控。4.3 零抑制与绝对/相对坐标零抑制这个词新手听着吓人其实就是坐标数字里那些没意义的 0 要不要写出来。比如坐标 12.3补全到 5 位小数是 12.30000零抑制的做法是省略前面的 0 还是后面的 0。RS-274X 的通用约定是抑制前导零Leading zeros、使用绝对坐标Absolute。Allegro 里就按这个设除非板厂明确要求别的。绝对坐标和相对坐标的区别是绝对坐标每个点都写完整位置相对坐标只写和上一个点的偏移量。相对坐标必须靠设备上的增量解析才能用现代 CAM 一律用绝对。这个选项绝大多数人一辈子都不用改但要知道它在哪。4.4 Min line width 和 Draw missing pad apertureMin line width最小线宽影响的是光绘输出时的描边处理。设得太大会让细线被强制描粗设得太小则可能漏掉极细线。一般给一个比你设计里最细线宽略小一点的值就行比如设计最细 4mil这里给 3mil 或者干脆 0 让它不干预。Draw missing pad aperture 这个选项我强烈建议勾上。它的作用是当某个焊盘的孔径光圈没有定义时用绘制的方式把它画出来而不是直接丢弃。不勾的话那些没有光圈定义的焊盘会静默消失光绘文件里就少了一堆焊盘。这种错误在 CAM 里做叠图时能看出来但如果你没做叠图检查就是打样回来发现焊盘没了。一个勾选框省一次报废没有理由不勾。5. NC Drill 与 NC Route钻孔文件、槽孔文件的实际操作与坑Gerber 出完接下来就是钻孔和槽孔。这两步经常被当成顺手点一下但它们的参数也需要认真对待尤其是孔的格式和单位。5.1 NC Drill 参数设置与 Excellon 格式钻孔输出在 Manufacture NC NC Drill。核心参数有这么几个输出单位跟你的设计单位保持一致公制就公制、坐标格式跟光绘的精度逻辑一样公制建议 3.4 或 3.5保证孔位精度、绝对坐标、零抑制方式。有一个选项值得特别提生成带文件头的增强格式Enhanced Excellon format。勾选后钻孔文件会带上标准的文件头刀具定义那一段结构更规范工厂的 CAM 系统识别起来更省事。不勾的话生成的是更裸的格式虽然也能用但容易在导入环节被要求能不能给带头的。我一般勾上到目前为止没遇到工厂抱怨。另外提醒一句NC Drill 的输出结果里包含一份刀具表也就是每个孔径对应几号刀。这份表必须和钻孔表Drill Legend上印的符号、和你在说明文档里写的一致。三处不一致工厂就要问你。我通常直接把钻孔文件里的刀具表复制进交付说明。5.2 槽孔与 NC Route 的顺序依赖板上如果有非圆形的孔比如长条形的定位槽、Type-C 连接器的椭圆固定孔它们不会被 NC Drill 处理需要用 NC Route 单独输出槽孔文件。这两个工具共用一套 NC 参数文件所以顺序上我建议先跑 NC Drill再跑 NC Route。如果反过来有时候参数文件的默认值会被槽孔那一步覆盖导致钻孔文件的格式变了你自己却不知道。生成完之后交付包里的槽孔文件要单独说明。很多打样工厂默认只处理 .drl看到 .rou 会来问你在说明文档里提前写清楚板上有槽孔见 .rou 文件能省一轮沟通。5.3 钻孔文件自检孔径表、刀具号、数量钻孔文件出来之后我会做一个快速自检把文件用文本编辑器打开没错钻孔文件是可以直接看的文本扫一眼文件头的刀具定义看看孔径数量和数值是不是和设计预期一致。比如设计里有 0.2、0.3、0.5、3.2 四种孔文件里就应该是四把刀。如果冒出五六把说明设计里有你没注意到的孔径回去查一下。然后核对孔数。一个简单的方法是用 Tools Reports 统计过孔数量和钻孔文件里的坐标行数对一遍。数量对得上基本就没问题。这一步比想象中有用尤其是那种从别人手里接过来的设计里面可能藏着孔径定义很奇怪的过孔。注意钻孔文件里的孔径公差、最小孔径能不能做属于工艺问题。0.15mm 以下的机械钻孔很多工厂做不了或者要加价出图前确认一遍工艺能力比出完图再改要快得多。6. 出完之后的自检链路用 CAM 工具把文件倒着看一遍光绘和钻孔都出来了这时候最忌讳的就是直接打包发走。我自己有一套固定的自检链路大概十分钟能拦下九成以上的低级错误。6.1 photoplot.log 与 artwork 目录里都生成了什么Artwork 输出完成后工程目录下会有一个 artwork 文件夹17.4 默认就是这么组织的里面除了各层的 .art 文件还会有一个 photoplot.log 或者类似的日志文件。这个日志一定要看。正常情况下它应该只有信息提示如果里面有 error 或者 warning逐条查。我碰到过的日志报错包括某个 film 里的 subclass 不存在层名写错了、光圈定义数量超限、有元素无法解析。前两种都是配置问题改完重新出图就行。养成看一眼日志的习惯比等到工厂反馈再回头查要快得多。6.2 叠图检查层与层之间的对位自检的核心动作是叠图。用 CAM 工具哪怕是免费的 gerber 查看器也行把所有层叠加在一起从顶视图看一遍然后逐层开关对比。重点检查这几件事阻焊开窗和焊盘是否对齐开窗是不是比焊盘略大这是正常的行业里通常单边大 0.05mm 左右。钢网层和焊盘是否一一对应有没有多出来的或者缺失的。丝印有没有压到开窗上。钻孔符号和实际孔位是否重合。板框是不是闭合的、四角有没有缺口。叠图还有一个很重要的作用是验证镜像。把底层翻过来看如果丝印是反的说明 Mirror 漏勾了这时候改还来得及。6.3 常见异常速查表现象最可能的原因处理方式某层文件大小明显偏小Film 里的 subclass 加错了或没加全检查该 film 的 subclass 列表丝印文字变成一团使用了 TrueType 字体转成矢量字体后重出细线在光绘里消失Undefined line width 设为 0改成 5mil 或 6mil 后重出焊盘少了几个未勾选 Draw missing pad aperture勾选后重出底层丝印为反字底层 film 漏勾 Mirror勾上 Mirror 重出板边缺一圈铜负片层 film 尺寸不足手动放大 film 尺寸后重出尺寸整体不对输出单位和设计单位不一致统一单位后重出这张表我基本是刻在脑子里了出图的时候对着扫一遍效率很高。7. 交付给板厂文件命名、目录结构与说明文档最后一块说交付。出图出得好交付乱七八糟一样会耽误时间。7.1 一套能直接过的打包目录我现在固定的目录结构是这样的一个以板名_版本_日期命名的文件夹里面分三个子文件夹——gerber所有 .art 文件、drill.drl 和 .rou、docs说明文档、钻孔表截图、叠层信息。然后把整个文件夹压缩成一个 zip。不把所有文件混在一个层级里是因为工厂的 CAM 工程师每天处理几十个包结构清晰能显著减少他给你打电话的概率。文件命名上我建议 gerber 的文件名和 film 名保持一致别在导出后再手工改名。改名的风险是改错而 film 名本来就已经是你可以控制的。如果工厂有他们要求的命名规范比如 .GTL/.GBL 那一套就在导出后统一批量改并且改完再核一遍层数别漏。7.2 readme 里该写什么说明文档别写太长但下面这些信息必须有板子的层数、叠层顺序、每层的用途信号层还是平面层。板厚、铜厚、表面处理、阻焊颜色这些工艺参数。板框尺寸和原点位置。钻孔文件里的孔径清单最小孔径是多少。有没有槽孔对应的文件是哪个。各层 gerber 文件和层的对应关系。如果有特殊要求比如某块区域不允许铺铜、某个孔需要特殊的加工方式单独列出来。这份文档我一般写成纯文本或者简单的表格一页以内。写清楚这些基本一次过。7.3 IPC-356 与坐标文件要不要一起给IPC-356 是给飞针测试用的网表文件在 Manufacture 相关的测试准备功能里生成。要不要给取决于板厂做批量、需要电气测试的一般会要纯打样不一定。我的做法是默认生成放在包里然后说明文档里写明IPC-356 文件供测试使用如不需要可忽略。坐标文件贴片用的器件位置文件通过 File Export Placement 导出注意导出前确认设计单位和原点是不是你想要的因为坐标文件里的坐标是跟着设计走的。很多贴片厂用的是另一套原点约定导出前问一句他们想要什么原点能省一次返工。7.4 我个人的几条经验出图这件事我做了很多年最后沉淀下来最有用的一条经验是把它当成一个固定流程而不是一堆独立操作。每次出图从设计收尾到打包按同样的顺序走一遍中间不要跳步不要觉得这次简单就不用检查了。真正让人返工的从来不是难的地方而是你觉得自己已经熟练、于是省掉的那一步。第二条经验是留一份出图记录。我习惯在每次打包的时候顺手写一行日期、版本、改了什么、出了哪些文件。听上去很琐碎但当你三个月后要复现某一版、或者要跟工厂对账的时候这一行字价值极高。第三条是参数配置的复用。Artwork 里的 film 列表和 General Parameters 是可以导出成模板、在新设计里导入的。把一套调好的配置存下来以后新项目直接导入省掉大量重复劳动也避免手抖改错参数。这个功能很多人不知道用过一次就回不去了。最后再分享一个小技巧出完图之后把整个 gerber 包用 CAM 工具重新导入一次看看能不能正常打开、层数对不对。这个动作相当于反向验证——如果导入时报错或者缺层说明包本身有问题。花两分钟比等工厂回复快得多。
返回列表