
每个在Cadence Allegro里把PCB画到DRC全绿的人都会在导出时碰到同一个问题钻孔文件到底怎么出才不会被PCB厂打回来我见过最多的返工原因不是布线而是NC Drill参数没设对、槽孔没输出。实际上只要把Allegro 17.4的Manufacture菜单吃透从设置参数到拿到完好的钻孔文件5分钟绰绰有余。这篇文章就沿着实战路径说清楚圆孔怎么出、槽孔怎么搞、发板前怎么检查。先纠正一个常见误区钻孔数据的正式格式叫Excellon并不属于GerberRS-274X/Gerber-X2。我们平时挂在嘴边的“Gerber钻孔文件”其实是两样东西一张是钻孔图表Drill Drawing / NC Legend输出成.art光绘一张是钻带文件NC Drill输出成.drl。如果板子上有长槽、椭圆孔还要再追加一个铣削路径文件NC Route输出成.rou。这篇文章适合正在用Allegro 17.4做板、准备发到PCB厂生产的朋友也特别适合被槽孔折磨过、想一次搞定的工程师。看完之后你可以把“输出钻孔文件”列成一个固定动作每次画完板照做一遍基本不会翻车。1. 输出钻孔文件前的关键准备工作1.1 先搞明白“钻孔文件”和Gerber的关系很多新手会以为Gerber文件就是一切发板时只给厂家一套RS-274X就完事了。实际上PCB厂的生产流程里外形和焊盘靠Gerber孔的位置和大小靠Excellon钻孔文件。Gerber描述的是“面的形状”钻孔文件描述的是“在哪里钻下去”。两个文件缺一不可而且坐标系必须完全对齐否则厂家拿到的就是一板乱孔。在Allegro 17.4里这一套东西拆成了三个动作NC Legend生成钻孔图表NC Drill生成圆孔钻带NC Route生成槽孔铣削路径。我自己习惯把这三个动作统称为“出钻带”。很多项目里板子上的孔少则几十个多则几千个靠人工一个个核对孔径不现实所以Allegro会通过钻孔符号Drill Symbol把不同孔径自动编码再在钻孔图表里生成一张对照表。这个编码和对照就是发板前必须检查的第一道关口。1.2 单位和精度必须先统一否则全是错位Allegro设计文件里的单位设置和最终输出钻孔文件时的单位设置是两回事。设计阶段你可以用Mils也可以用Millimeters这都不影响最终输出。真正关键的是NC Parameters对话框里的Output Units以及整数位/小数位的精度选择。PCB厂收到的钻孔文件如果和Gerber单位不一致轻则坐标偏移重则整板报废。先说明一个最常见的精度概念Excellon格式常在参数里看到类似“2:3”“2:4”“3:3”的写法它表示坐标整数位:小数位的位数。以英寸为单位时2:3代表最大99.999英寸实际精度是0.001英寸1mil0.0254mm2:4代表最大99.9999英寸精度是0.0001英寸也就是0.1mil约2.54um。现在普通PCB精度要求越来越高2:3在某些情况下已经不够用了尤其在板子尺寸较大、坐标值较大的时候小数点后面少一位都可能让过孔位置偏出焊盘。我个人的默认选择是英制单位下用2:4毫米单位下用3:3或3:4。还有一个必须统一的点前导零抑制Leading Zero Suppression。Gerber文件和钻孔文件都要设置同样的处理方式。如果Gerber抑制了前导零钻孔文件却不抑制CAM软件导入后坐标会被放大十倍甚至更多。Allegro的默认选项一般建议选“Leading Zero Suppression”或者“Same as artwork”保证二者同步。这个细节几乎每个月都能在PCB厂的技术沟通群里看到有人提问。1.3 打开设计前先快速检查钻孔符号和孔类型Allegro的钻孔符号机制其实不复杂系统给每个尺寸的孔分配一个编号比如符号1、符号2然后在NC Legend生成的表格里列出编号对应的孔径和数量。如果板子上有100个0.6mm的过孔系统就用同一个符号表示。这个设计目的是节省空间也让厂家钻带更短。实操前我会先执行一遍Manufacture - NC - NC Legend生成一个临时的钻孔图表放在板框外的空余位置。如果图表里的孔类型和数量明显不对比如出现了不认识的超大孔径那就说明封装里混进了错误焊盘或机械孔必须先回原理图/封装库修正。这个临时图表后面可以删掉重新生成不影响最终输出。另外要重点检查是否存在非圆形孔。常见的槽孔无非两种来源一是焊盘或过孔Padstack里定义了Oblong或Rectangle形状的钻孔二是板框层上直接画的异形槽线。前者会出现在NC Drill的孔列表里但厂家加工时大多希望单独收到铣削路径后者则根本不属于钻带而是必须用NC Route输出。如果漏了这一步槽孔到了厂里就会被当成圆孔处理轻则板子尺寸不对重则整板报废。所以在开始输出之前先在板子上用Find工具过滤一下Pin/Via/Mechanical Hole把孔类型过一遍。2. 生成钻孔图与配置NC参数2.1 用NC Legend生成钻孔图表并在光绘中带上操作路径是Manufacture - NC - NC Legend。点击后会弹出NC Legend对话框这里最关键的是选择输出到哪个光绘层Film以及放置位置。通常我会在Artwork里先建立一个专门放钻孔图表的底片比如叫NCDRILL然后再执行NC Legend把生成的表格放到板框外面。放置时要注意钻孔图表格也是一个图形对象如果放得离板框太近后续Gerber拼板时可能被切掉或重叠。我的习惯是放到板框右下角位置和板子保持至少5mm以上的距离。表格里会显示本板用到的所有钻孔符号、孔径、数量还有一个必须重视的“Plated/Non-Plated”区分。金属化孔如过孔、焊盘孔和非金属化孔如定位螺丝孔在厂家那里会被分开处理最好在钻孔图表里一眼能看出区别。在17.4里NC Legend生成的是.art光绘文件它不会自动出现在你要发给厂家的Gerber列表里除非你在Artwork Control Panel中把对应的底片勾选进去。所以我的顺序是先生成所有光绘底片定义再把Drill Legend加到Artwork列表最后一次性输出所有Gerber和钻孔图表。2.2 NC Parameters参数详解2:4、绝对坐标、前导零NC Parameters是整个钻孔输出的核心位置在Manufacture - NC - NC Parameters。这里对话框里几个参数我拆开讲顺便解释为什么这么设。第一个是Output File Format也就是前面说的2:3还是2:4。如果板子最大坐标没有超过100英寸英制2:4一般够用如果板子边缘离原点特别远建议用3:4防止整数位不够导致坐标错误。对大多数常规PCB我直接选英制2:4。第二个是Output Units可选Inches或Millimeters。这里没有标准答案但必须和Gerber保持一致。我的习惯是如果设计文件用的Mils输出用Inches如果设计文件用Millimeters输出也用Millimeters。最怕的是Gerber用mm钻孔却用inch厂里导入CAM时需要换算一换算就容易出边界误差。第三个是Coordinate Type选Absolute不要选Relative/Incremental。相对坐标虽然文件会小一点但一旦前面某个孔出问题后面所有孔全是错的排查极其痛苦。第四个是Zero Suppression最重要必须和光绘一致。建议选Leading Zero Suppression也就是压缩前导零。如果你不确定可以用“Same as Artwork”Allegro会自动读取光绘设置。把这几个参数固定下来之后后续每次出带基本不会因为格式问题被厂家打回。这里还可以存成一个模板老工程师多半会有自己的一套参数组合新人可以直接抄作业。2.3 5分钟提速关键先检查、后出带“5分钟搞定”不是夸张说法前提是你不把时间花在反复试错上。我的提速技巧是先把Design Parameter里的单位和坐标原点固定好再在Allegro里定义一个本地的Skill或者录制一个快捷键把NC Parameters常用配置一键带入。举个例子建立一个简单的Allegro快捷键或alias把Manufacture - NC - NC Drill和NC Route绑到功能键上比如alias $F10 noctrcustom。这样进入菜单的时间可以忽略不计。对经常改版的板子我甚至会把常用的NC Parameters保存成一个配置文件在项目里复制使用。这个动作很基础但能真正把出带时间压缩到几分钟。3. 快速输出NC Drill并用NC Route处理槽孔3.1 5分钟标准流程从NC Drill拿到.drl文件现在进入正式输出环节这是整个流程里最有成就感的一步。我的标准操作如下第一步确认板子的原点位置。Allegro会以当前原点为基准输出所有坐标所以原点最好放在板框左下角或者是厂家约定好的工艺边角落。原点摆得随意厂家对不上Gerber后面全是坑。第二步检查Board Geometry/Outline层是否完整。钻孔文件不需要Outline层但NC Legend放置位置和后续Gerber拼版需要依赖它所以先确认板框封闭、没有断线。第三步运行Manufacture - NC - NC Drill。弹出的NC Drill对话框里左侧会列出所有孔类型和数量右侧是输出目录和文件名。文件名我一般用项目名加后缀比如sw6206_demo.drl。这里要注意勾选“Auto Tool Select”让Allegro按孔径自动指派钻头序号不要手动去乱改否则钻孔图表上的符号和钻带文件里的工具编号对上不上的问题全来了。第四步在运行前点Parameters把上一节说的参数再确认一遍。确认无误后点击Generate/Drill按钮Allegro会在当前目录生成.drl文件和对应的.tap钻头表。界面的Log窗口会显示类似“NC Drill Completed”的提示这时候基本就成功一大半了。第五步回到Manufacture - NC - NC Legend重新生成一次钻孔图表这样图表里的数据才是最终版的。这一步顺手做掉不要等到最后忘记。实际操作时我会把NC Drill和NC Legend这两步固定为连续动作形成一个闭环先出动作后出图。每次改版后只需要重跑一遍新图表会覆盖旧数据精度和命名都不会乱。3.2 槽孔的分类哪些走NC Drill哪些走NC Route这是本文的重点也是大多数人栽跟头的地方。先给一个普适结论圆孔和标准椭圆孔Oblong可以走NC Drill异形槽、长条形槽、板框边上开的豁口必须走NC Route。为什么Excellon钻带的核心是“指定圆心坐标指定刀具直径”圆孔天然适合。而槽孔是刀具沿特定路径铣削出来的结果光有圆心和直径描述不清。虽然Allegro能通过Padstack里的Oblong/Rectangle钻孔定义在钻孔图表中画出一个椭圆符号但很多PCB厂CAM系统在导入Excellon时对非圆形孔的处理并不总是完美。厂家为了保险通常要求槽孔单独提供NC Route文件或DXF辅助图。所以我的经验是如果你只是放了一个Type-C接口的定位脚开的是标准椭圆槽直接把它做成Oblong PadstackNC Drill能输出厂家一般也能加工。但只要你涉及的是板框边上那种长条槽、通风槽、或者接近1mm以上长度的开槽干脆一律补一个NC Route文件。这样做既能保证厂家能加工也能省掉来回确认的沟通成本。3.3 槽孔实操Oblong Padstack与NC Route生成先说Padstack的方式。在Padstack Editor里打开对应焊盘在Drill/Slot Hole区域把Drill hole type改成Oblong设置Drill hole width和Drill hole length。例如要开一个1.0mm宽、3.0mm长的椭圆孔Width填1.0Length填3.0然后保存。这个Padstack在Allegro里会被标记为非圆形孔NC Drill输出时会在钻孔图表上显示为椭圆符号。优点是方便缺点就是前面提到的厂家识别问题。更稳妥的槽孔做法是走NC Route。在Allegro里先确定好槽孔的中心线和边界用Line/Arc画出槽的轮廓。这个轮廓线放在哪一层可以由你自己约定。我的做法是单独建一个机械子层比如Board Geometry/NOTES或者Board Geometry/Route_Info把最终要铣削的路径画出来。注意刀具中心走过的路径和槽的边界不是同一条线槽的实际宽度等于铣刀直径加上路径偏移。对大多数常规槽如果你的线画的是槽中心线宽度就按实际槽宽来定刀具如果你的线画的是槽边界那NC Route参数里就需要设置工具补偿。然后运行Manufacture - NC - NC Route弹出窗口后选择对应的层。参数设定与NC Drill基本一致单位对齐、绝对坐标、前导零处理相同。输出文件名一般用项目名加.rou后缀例如sw6206_demo.rou。生成后Allegro会按照你画的路径生成铣削轨迹你可以在Log里看到生成了几条路径、使用了哪些刀具直径。最后把.rou文件和.drl文件放进同一个发板目录和Gerber一起压缩打包。这里强烈建议如果项目中同时有圆孔和槽孔发板时附一个简单的钻孔说明文档写明“圆孔见.drl槽孔见.rou坐标系原点与Gerber一致”。这个动作看似多余实际能减少厂家审单时间也能避免很多“以为你懂结果你没懂”的误会。3.4 发板目录的文件命名与归档习惯出一套整洁的钻孔文件不只是按下几个按钮这么简单文件命名也是专业度的一部分。我见过不少工程师把drill_1.drl、drill_2.drl一股脑丢进一个文件夹厂家看到一脸懵。建议命名格式统一为项目名_层叠_版本_日期。例如sw6206_16layer_v2.0_20250910.drl连带.rou文件和钻孔图表.art都按同样规则命名。目录结构可以固定成Gerber/ 存放所有光绘包括钻孔图表.artDrill/ 存放NC Drill生成的.drl/.tapRoute/ 存放NC Route生成的.rou/.tap每次出完带压缩为整个项目名.zip发到PCB厂专用对接通道。我在实际项目中遇到的大部分问题其实不是Allegro不会操作而是文件管理混乱导致厂家读错了文件。把目录固定下来返工率能降一大半。4. 常见问题、排查技巧与17.4新特性4.1 钻孔文件在CAM软件里是空的或坐标明显偏出板框这个问题出现最多的原因就是前导零抑制不一致。你在Allegro里设置了抑制前导零CAM软件导入时却选了Trailing Zero Suppression坐标自然翻倍。我的排查顺序是先用记事本打开.drl文件看开头几行的坐标值。如果是X25400Y10000这种紧凑写法前导零被压掉了如果写的是X025400Y010000说明没有抑制。然后去CAM软件里把导入设置调成一致问题马上消失。另一个常见原因是设计里有隐藏的空心孔。比如误放了一个没有Pad的机械孔或者在封装里留下了冗余的Drill layer对象。Allegro输出时可能会产生空刀具或零长度坐标CAM软件直接忽略。遇到这种情况去Manufacture - NC - NC Tooling Report里看刀具表凡是孔径为0或数量为0的刀具全部排查一遍。4.2 槽孔丢失或者被厂家做成了圆孔槽孔丢失通常在于你只用了Padstack的Oblong定义却没有生成NC Route文件厂家CAM系统又没识别椭圆钻孔符号于是零件装配时装不上。我的建议是发板前用CAM350或在线Gerber预览工具打开钻孔文件和Gerber叠加。如果钻孔图表上椭圆符号明显但.drl里只有圆孔坐标那就说明槽孔没被真正输出赶紧补NC Route。还有种情况是NC Route生成了.rou文件但厂家不认这个后缀。别慌一般CAM350都能自动识别Excellon Router格式如果厂家工具比较老就把.rou文件和钻孔说明一起丢过去让他们的工程确认。这里体现了一个细节输出文件时勾选“Include Route Segments”之类的选项确保路径被完整写入。4.3 CAM350里快速验证是不是“真OK”生成钻孔文件只是第一步发板前必须自己先验证一遍。我用的是CAM350免费版或在线Gerblook操作流程固定成三个动作第一步导入全部Gerber文件钻孔图表.art确认板框、铜箔、文字对齐。第二步导入.drl钻孔文件并将钻孔层的原点设成与Gerber相同。打开所有层叠加显示检查所有孔是否落在焊盘中心或指定位置上。如果孔偏出焊盘优先检查原点和单位。第三步单独导入.rou文件确认槽孔中心线是否落在板框/焊盘的正确位置。这里还要注意槽孔的两端是否超出板边比如半孔和邮票孔是否引起板边铜箔异常。验证完我通常还会再导出一份PDF格式的钻孔图纸发给PCB厂作为人工参考。这个PDF不是替代文件而是多一道保险。4.4 Allegro 17.4相比16.6的几个变化提醒如果你是从Cadence 16.6直接跳到17.4的有几个菜单变化需要适应。16.6里的Manufacture - NC - Drill Legend在17.4里明确叫NC Legend。NC Drill参数对话框的排布也更现代化某些老版本的“Drill Customization”功能入口变了现在需要在Padstack Editor或NC Drill对话框里通过自定义工具表实现。另外17.4的ArtworkGerber输出面板也做了统一钻孔图表的底片可以方便地和其他Gerber层一起导出。如果你用的是Allegro 17.4的较新更新包甚至可以直接在Manufacture面板里看到更详细的钻孔类型统计不用再靠肉眼去翻钻孔图表。更关键的一点是17.4对槽孔的支持更友好。在Padstack Editor里设置Oblong/Rectangle钻孔时参数更直观也支持从库中预览槽孔形状。所以如果你之前被16.6的槽孔坑过升级后可以复用同一套经验出错的概率会下降。4.5 多工艺的板子半孔、背钻、埋盲孔如何叠加处理现在很多通信板、电源板都涉及半孔Castellated Hole、背钻Back Drill和埋盲孔。这些特殊孔不能在普通NC Drill里一把梭。半孔其实是在板边电镀后铣出来的需要在NC Route里做铣削路径背钻需要在设计时单独标出背钻层输出时厂家需要额外说明埋盲孔在构建叠层时就要规划好压合顺序它们有时不在最终成品板的钻孔文件里完整出现而是分层加工。遇到这些情况我的做法是先把普通通孔通过NC Drill输出再把半孔或背钻信息整理成单独的说明文档。厂家工程评审时看到明确的“盲埋孔、背钻、半孔”分项就不会在CAM里按通孔一起处理。这步虽然不在“5分钟搞定”范围内但你需要知道特殊孔会让流程变长不能指望一个.drl通吃。5. 收尾的经验之谈最后分享一个我踩过几次坑之后养成的习惯每次输出钻孔文件前我会先在Allegro里跑一遍Manufacture - NC - NC Tooling Report把所有的钻头/铣刀列出来核对数量和孔径。这个报告就相当于一张“孔清单”拿它去和原理图的连接器规格、结构图的安装孔位置做一次粗对经常能发现结构图上定位孔和PCB上孔位偏移的问题。结构孔这种东西靠肉眼在PCB上找最容易漏。还有一个小技巧我习惯把Allegro工程目录里的artwork和nc_drill相关输出目录命名为“Output_YYYYMMDD”每天改版都会新建日期目录避免旧文件覆盖新文件。因为很多时候PCB厂收到的文件本来就是老版本只是你自己忘了。日期目录一目了然也能倒查历史版本。钻孔文件这件事刚开始接触会觉得菜单多、参数杂但只要把它当成一个固定流水线原点统一、单位统一、前导零统一、圆孔走NC Drill、槽孔走NC Route、发板前过一遍CAM350验证基本就不会再因为钻孔问题返工。等你把这套流程跑过两三块板子会发现5分钟真不是标题党甚至还有时间顺手检查一遍Gerber和钻孔图表是不是都对得上。