Allegro输出Gerber全流程:从Artwork配置到钻孔文件的实用指南

发布时间:2026/10/6 12:00:40
Allegro输出Gerber全流程:从Artwork配置到钻孔文件的实用指南
做PCB设计这几年我见过太多画板子画得漂亮、一到出Gerber就翻车的案例。Gerber文件说白了就是把设计转换成工厂能直接用来生产的光绘数据这一步如果搞不定前面所有布线、仿真、DRC的功夫可能全都白费。Allegro作为Cadence家族的主力PCB设计工具出Gerber的流程和AD、Pads差异不小尤其是Artwork控制表单、钻孔文件NC Drill这两块第一次用的人十有八九会卡住。这篇文章就围绕Allegro的Gerber输出全流程来写从前期准备、参数设置、实操步骤到问题排查把我平时项目里踩过的坑和验证过的标准做法都整理出来。无论你是刚学Allegro的新人还是从AD或Pads转过来、正在搜“allegro转pads”“allegro导出dxf”这类问题的朋友都可以把这篇当一份能直接照做的作业模板。光绘、丝印、阻焊、钻孔、外形每一类输出文件我都会交代清楚配置思路。1. 为什么Gerber输出是PCB设计的“最后一公里”1.1 大多数人都在这一关掉链子原理图有ERC布局布线有DRC设计阶段哪怕出了问题基本都能在设计环境里被拦下来。但Gerber文件一旦输出设计工具就“放手”了后面无论是工厂端的CAM软件还是光绘机都只认数据不认人。我看到太多工程师在Allegro界面里看一切正常结果把Gerber导到CAM350里一打开要么缺铜皮、要么钻孔偏移、要么丝印叠得乱七八糟。这里面的核心原因是Allegro的Gerber输出本质上是一个“分层拍照”的过程。它不像AD那样每层对应一个输出文件那么直观而是通过Artwork控制表单来定义“底片Film”每个Film可以包含多个显示图层的组合还能设置正片、负片属性。这个机制很强大但也意味着你必须先理解底片的概念否则很容易漏层、叠错层或者把动态铜皮输出成只剩轮廓的状态。另一个高频翻车点是钻孔文件。Gerber文件本身只描述铜箔、丝印、阻焊这些平面图形孔的物理位置和直径大小是另一套数据也就是NC Drill钻孔文件。Allegro输出了Gerber却忘了钻孔文件或者钻孔格式和Gerber精度设置不一致这类问题我见过不止一次。工厂拿到数据后如果钻孔文件和Gerber对不上轻则反复确认重则直接报废一批板子。所以我的建议是把Gerber输出当成一个独立的“交付环节”来对待而不是点几个按钮的机械操作。交付的是一套能被工厂完整解析、生产、装配的“图纸语言”多花十分钟核对能省掉后面几天的沟通成本。1.2 输出前必须完成的检查清单先放一张我每次出Gerber前都会过的检查清单。不是走形式每一条背后都有对应的真实教训。检查项具体怎么做翻车后果板框完整性检查Board Outline是否闭合有没有多余线段工厂无法正确成形板子外形直接错DRC状态至少保证关键网络无未解决DRC短路、间距异常会在生产中暴露网络连通性用Reports检查所有网络是否全部连上开路板子直接报废丝印整理位号是否缩进板框、是否互相重叠丝印看不清贴片对位困难铜皮/铺铜状态动态铜皮是否填充更新为最新出Gerber时铜皮缺失或只剩轮廓钻孔对位孔符号、钻孔图信息是否完整工厂无法识别孔位置需反复确认这条清单看着简单但每一条我都实打实吃过亏。拿动态铜皮举例Allegro界面上显示是正常的但如果你改动过布线或者规则动态Shape没有重新填充一生成Artwork就会报错或输出异常。这类问题不是靠目视检查能发现的必须在输出前主动更新Shape数据。还有人喜欢把板框从DXF导入省是省了但导入后的线条可能不在同一个图层上也可能单位没换算对。Allegro里的图层概念比CAD严格得多导入DXF后一定要花时间整理图层和单位不然到出Gerber那步板框经常莫名消失或跑到十万八千里外。这也是为什么我在正式讲输出步骤之前先强调一遍“设计数据本身要干净”。2. 出Gerber前要先搞懂这三个概念2.1 Artwork控制表单到底在管什么Allegro里出光绘的核心入口是Artwork控制表单。很多人第一次打开这个表单会懵因为它里面不是简简单单的“层选一下”而是要定义一堆Film。每个Film相当于一张虚拟底片你可以把设计里的多个图层卷到一个Film里比如把Etch、Pin、Via Class合并成一个Top光绘。为什么要这么设计因为制造端的光绘文件需要把同一层信息聚合在一起比如顶层铜箔它既包含布线走线也包含器件焊盘和过孔焊盘如果分开输出三个文件工厂反而难处理。Allegro把“逻辑图层”和“输出Film”分开给了工程师更强的控制力代价就是学习曲线稍微陡一点。常规的Artwork设置里还有一个容易被忽略的选项叫“Undefined line width”未定义线宽。Gerber格式要求所有图形都必须有确定线宽但设计里可能存在零宽度线条或者特殊图形如果不给一个兜底值输出时这些内容会被丢掉或者报错。我习惯设成0.15mm或者6mil具体根据板子的最小线宽来定至少保证不会因为线宽为零导致数据丢失。2.2 钻孔文件的参数认知钻孔文件在Allegro里不是和Gerber一起出的而是走另一套NC输出流程。最常用的是Excellon格式它记录每个钻孔的坐标和直径本质是给钻孔机看的数控代码。很多人把它和钻孔图Drill Drawing搞混实际上工厂需要的是两类东西NC Drill数据文件以及带孔符号、刀径表的钻孔图。NC Drill文件的核心参数包括整数位和小数位精度、单位、是否压缩前导零等。比如设计单位是mm输出格式选3:3意思就是整数3位、小数3位精度到0.001mm。如果设计单位是inch一般用2:4精度到0.0001英寸。这个精度必须和Gerber保持一致否则工厂对位时会出现零点几毫米的偏差。还有一点如果你板子里有异形孔、长圆孔或铣削槽单纯出NC Drill不够还要走NC Route输出铣削路径数据。我见过有人只出了NC Drill就交差了结果工厂追问“槽怎么加工”来回折腾好几个工作日。2.3 单位、精度、格式三个容易埋雷的设置单位不一致是跨工具协作的重灾区。Allegro默认支持mm和mil两种单位但同一个项目里原理图、PCB、DXF导入文件可能来源不同单位一旦混乱所有坐标都会错位。我们项目里有个不成文的规定从项目启动第一天就锁定单位沟通、命名、标注全用同一个单位绝不在中途切换。精度设置同样关键。Gerber的X、Y坐标保留几位小数直接决定了光绘机的对位精度。精度设得太低圆弧、焊盘边缘会出现台阶感加工出来容易有毛刺设得太高文件体积变大部分老式光绘机还不支持。对于绝大多数PCBmm单位下用3:3已经足够高密度板子建议3:4但不能低于3:2。格式方面现在主流工厂都认RS-274X也就是我们常说的Extended Gerber。它把光圈Aperture定义内嵌在文件里不再依赖单独的Aperture表极大减少了传输出错的概率。老的RS-274D还需要额外传D码表现在基本被淘汰了。我强烈建议所有项目统一用RS-274X别再跟工厂问“要不要加光圈表”这种问题。3. 实操全流程一步步输出Gerber与钻孔文件下面这组流程我按Allegro 17.2/17.4的菜单路径来写其他版本菜单名称略有出入但核心表单和设置逻辑是一样的。3.1 配置Artwork Film第一步打开Manufacture菜单下的Artwork控制表单。如果这个菜单项找不到直接在Command栏敲artwork也能呼出。打开后第一件事不是急着建Film而是先点右边General Parameters区域的Parameters按钮把全局参数确认一遍。全局参数里最关键的是Output Format选RS274X。接着确认Output Units和Precision比如mm单位、3:3精度。还要检查Suppress Unconnected Pads选项这个选项一般用于负片层正片不用勾。下面说Film层配置。新建Film的方式是右键点击表单左侧的Film列表添加一个新Film比如命名成TOP。然后在右侧Available Films里勾选TOP Film需要包含的图层。以常见的双面板为例各层Film的典型配置可以参照下表Film名称包含图层极性TOPETCH/TOP、PIN/TOP、VIA CLASS/TOP正片BOTTOMETCH/BOTTOM、PIN/BOTTOM、VIA CLASS/BOTTOM正片SOLDERMASK_TOPSOLDERMASK/TOP、BOARD GEOMETRY/OUTLINE正片SOLDERMASK_BOTTOMSOLDERMASK/BOTTOM、BOARD GEOMETRY/OUTLINE正片PASTEMASK_TOPPASTEMASK/TOP正片PASTEMASK_BOTTOMPASTEMASK/BOTTOM正片SILKSCREEN_TOPSILKSCREEN/TOP、REF DES/SILKSCREEN_TOP、BOARD GEOMETRY/OUTLINE正片SILKSCREEN_BOTTOMSILKSCREEN/BOTTOM、REF DES/SILKSCREEN_BOTTOM、BOARD GEOMETRY/OUTLINE正片OUTLINEBOARD GEOMETRY/OUTLINE、DIMENSION正片具体图层名称和你建封装、建板框时用的Class和Subclass有关不同公司规范会不一样。关键原则是铜层Film要把Etch、Pin、Via三类都包含进去否则焊盘和过孔会缺失丝印Film要包含位号文字对应的Text层阻焊层输出之前要和工厂确认是正片还是负片默认走正片就行。建好Film后一定要把每个Film的Undefined Line Width设置好我前面说了一般给0.15mm。然后逐个检查Plot Mode是不是Positive如果你做的是负片内电层才需要单独设置Negative。检查完毕保存表单这一步就完成了。3.2 生成光绘文件Film配置好之后回到Artwork控制表单主界面。点击左侧Film列表下方的Select All按钮把所有Film选中。设置输出路径建议按单板建一个专属文件夹里面按“Gerber”“Drill”“PDF”等子目录分类别把所有文件堆在一起。点击Generate按钮Allegro会在后台逐个生成光绘。如果配置有误日志窗口会报错最常见的是“Film not found”和“Shape boundary not found”。前者说明Film里图层名配错了后者说明铜皮Shape没填充好。按我之前说的先执行Update Shapes刷新一下再重新生成。还有个小细节需要养成习惯生成完光绘后回原图看一眼。Allegro出Gerber不会自动退出操作状态但有时候会改变部分显示设置。有些老版本在生成过程中会把所有层显示关掉你看着黑屏以为是死机了其实只是显示问题。遇到这种情况按所有层显示的快捷键或者重新打开Color/Drawing Visibility面板即可。3.3 设置并生成NC Drill钻孔文件钻孔文件是另一条线但必须在同一个“交付包”里。点击Manufacture菜单下的NC子菜单先打开NC Parameters表单或者按上面的顺序在NC Drill对话框里直接点Parameters按钮。质量控制点如下Format格式选Excellon格式大多数工厂都支持具体选Standard还是Enhanced按工厂要求没特别要求就选Enhanced。Numeric Format按单位设置精度mm用3:3inch用2:4。Output File设置文件名和输出目录和Gerber/Brill目录分开。Zero Suppression建议关闭自动压缩即选None或者根据工厂要求设置。压缩前导零能减小文件体积但也会引入坐标理解偏差除非工厂明确要求否则别自找麻烦。参数确认后点Manufacture - NC - NC Drill选择要输出的钻孔文件。Allegro会生成一个.drl或.tap后缀的文件里面是每个孔的坐标和直径。如果你的板子上有异形槽继续执行Manufacture - NC - NC Route把铣削路径也导出来。这里特别提醒NC Drill生成之前如果板子上有盲埋孔要确认孔的类型和层对关系。常规通孔只要一组NC Drill数据但盲埋孔要按孔所在的层叠结构分别输出不然工厂不知道这些孔从哪层钻到哪层。遇到复杂叠层时我会先在钻孔文件里核对孔类型列表确保每类孔都对应正确的层对。3.4 生成钻孔图与刀径表很多工程师只记得出NC Drill数据却忘了钻孔图但工厂拿到一块板子时需要看到孔的分布位置和对应的符号表。Allegro里通过Manufacture - NC - NC Legend生成钻孔图例。执行NC Legend后需要选择一个放置钻孔图例的图层。我习惯放到Manufacturing类的NC_LEGEND子层然后用Move命令把它挪到板框外合适的空位上。钻孔图一旦放下去就会生成一个孔符号表包含每种孔径、对应的符号、数量、电镀状态等关键信息。这个钻孔图最好再导出一份PDF作为交付包的附件。如果NC Legend没有正常生成最常见原因是板框外没有足够的放置空间或者当前显示的子层没有打开。先把所有层打开把图例放进去后续再单独出PDF。钻孔图上还有一个容易忽略的信息是“镀通孔”与“非镀通孔”的区分。NC Drill文件只记录孔的机械属性电镀状态由钻孔图上的标注说明。多检查一眼能避免工厂把你该镀铜的孔做成非镀通孔。3.5 IPC网表输出可选但推荐如果你准备让工厂做飞针测试或者后续需要做可测试性分析强烈建议一并导出IPC-D-356网表。在Allegro里走File - Export菜单找到IPC-D-356选项设置输出路径后生成。这个文件记录的是所有网络的连接关系、元件焊盘坐标和孔的网络归属工厂拿到它可以和Gerber做网络对比很多开路短路问题在加工前就能被查出来。我个人的标准交付包通常包含这些内容Gerber光绘文件、NC Drill钻孔文件、NC Route铣削文件如果有异形孔、钻孔图PDF、IPC网表、以及一份板厂生产要求的说明文档。把这些准备齐全后发给任何一家工厂都能快速进入生产评审。4. 常见问题与排查技巧实录4.1 光绘缺线、缺铜铜皮只剩轮廓这是Allegro用户问得最多的问题之一热搜词里也挂着“allegro铜皮只有轮廓”。出现这个情况绝大多数是动态铜皮没有填充刷新。你在屏幕上看Shape是实的但Artwork输出时读到的可能只是Shape边界。解决方案也很简单在输出前执行一次Shape填充刷新老版本叫Update Shapes新版本里也保留了类似功能把设计里所有动态Shape重新生成一遍。如果刷新之后还是只剩轮廓那要检查Film的极性设置。负片模式下Shape显示逻辑和正片相反很多人把正片的Film误设成了Negative导致铜皮区域被“抠掉”。记住你做的这种常规信号层一律用Positive负片只用于内电层分割。还有一个隐蔽问题是Shape边界有微小的自相交或断点这在屏幕上几乎看不出来但在Gerber生成时会报“Shape boundary not found”。排查时把Shape边界以矢量形式放大检查或者重建Shape通常能解决。4.2 钻孔文件与Gerber对不上钻孔文件本身坐标没错但对不上Gerber十有八九是单位和精度不一致。比如Gerber用了3:3的mm精度NC Drill用了2:4英寸精度两边坐标本身都对但格式不同导致工厂CAM导入时自动按各自的单位处理一叠加就错位。这类问题最好的排查方法是把Gerber和NC Drill同时导入CAM350然后在同一坐标系下开启叠加显示。正常情况下焊盘中心要和钻孔符号的中心重合偏差大于0.05mm就要警惕。我每次做完这套检查才会正式发板能拦截掉超过八成的人为失误。还有一类问题是孔位偏移但形状对这种往往是Allegro里的原点没有和Gerber的原点统一。设计文件的原点设置、Artwork的Film Offset设置、NC Drill的原点设置三处必须保持一致。我习惯把原点统一放在板框左下角所有输出都用同一个原点能省很多心智负担。4.3 丝印层输出异常或文字丢失丝印层在Gerber里最常见的坑是文字没显示出来或者文字挤压在一起。首先要确认Film里包含的是哪一个Text层Allegro的位号文字默认在REF DES/SILKSCREEN_TOP但很多人习惯手动画一些公司LOGO或警示文字在BOARD GEOMETRY/SILKSCREEN_TOP。如果你Film只勾了其中一个层另一部分就会丢。其次检查字体类型。Allegro支持矢量字体和TrueType字体出Gerber时矢量字体是最稳的因为TrueType字体输出后容易产生大量短线段或乱码。尤其涉及中文时很多工厂对TrueType的中文支持不友好我最稳妥的做法是所有板上文字一律用矢量字体/Stroke类型中文先转成线宽图形再输出。还有个小技巧Gerber输出前用Color/Drawing Visibility单独看一下丝印层把被大铜皮盖住或者被板框切掉一半的位号挪开。Gerber里不会给你自动排忧解难所有显示问题都会原样传到工厂。4.4 板框在Gerber中缺失板框丢失通常分两种情况。一种是板框线条根本不在BOARD GEOMETRY/OUTLINE层比如从DXF导入时线条被放到了别的Class或Subclass。这种问题要回到图层管理里把板框线条重新移动或复制到标准Outlin层再重新生成Film。另一种情况是板框线条的线宽为零导出时被Undefined Line Width设定兜底但如果兜底值设成了0板框就会整个消失。所以我之前强调Undefined Line Width一定要设一个非零的保险值。同时出Gerber前用软件自带的功能检查板框闭合没有闭合的半开放线条在光绘里很容易出现缺口。如果你习惯板框用DIMENSION层标注尺寸信息建议单独把DIMENSION层加到OUTLINE Film里。制造端经常需要看板材外形尺寸标注这能省掉工厂一遍遍打电话问“板子长宽到底是多少”的时间。4.5 交付前最后的核对方法文件全部生成后我在发板前会做一个“三件套”核对。所谓三件套就是Gerber、钻孔文件、钻孔图这三类数据互相印证Gerber里焊盘的形状数量要和钻孔文件里的孔数量对应钻孔图的符号表要和NC Drill里的孔径种类一致。这个核对如果只靠肉眼在Allegro里看效率太低我建议直接导入到CAM350或者类似CAM工具里做比对。在CAM工具里我会逐层查看重点关注阻焊开窗是否覆盖焊盘、丝印是否压到焊盘、铜皮和板框边缘间距是否足够。这些在Allegro设计里可能已经通过DRC查过但换到制造视角再看一遍总能发现一些设计规则之外的实际问题。比如阻焊开窗太小工厂加工偏差一起来焊盘边缘就容易露出阻焊料。确定无误后再打包成ZIP附带一页PDF版的钻孔图和装配图。整套文件命名要清晰比如“板名_Layer_版本号_日期”别用类似“final2”这种让人猜的名字。工厂收到规范的交付包往往也会更愿意认真配合你的生产。根据我个人这几年出Gerber的经验最大的心得其实就一句话把交付文件当成给工厂的“施工图”来敬畏而不是把出Gerber当成设计完成后的收尾彩蛋。每次多花十分钟做一次CAM层面的交叉验证你能省下的是整个项目周期里反复确认、返工、报废的时间成本。这套流程我已经在无数项目里验证过按这个顺序走你的板子至少不会在“最后一公里”出幺蛾子。