
1. 为什么Design_Outline和Cutout层值得单独拎出来讲画PCB这件事很多人把精力全花在布线和布局上觉得板框嘛随便画个矩形不就完了。我刚开始用Allegro的时候也是这个心态结果第一次投板就被板厂退回来说板框层有自交、有重复线段没法提取外形。后来做异形板、做拼板、做带内部开槽的板子才发现Design_Outline和Cutout这两层要是没搞明白后面Artwork出Gerber、板厂加工、结构装配处处都是坑。这篇文章聊的就是Cadence Allegro 17.2里Design_Outline和Cutout到底该怎么用各自放在哪一层常见的错误长什么样以及怎么修。适合已经能画简单板子、但对板框和开槽处理还不够有底的Layout工程师也适合从Altium Designer或PADS转过来、对Allegro的Class/Subclass体系还不太熟的朋友。核心关键词就几个Cadence Allegro、Design_Outline、Cutout、PCB、Artwork全文围绕这几个词展开不跑题。先说清楚一个基本概念。Allegro里没有“板框层”这个单独的说法它是用Class和Subclass来管理所有元素的。板框属于Board Geometry这个Class下面的Design_Outline子类而内部开槽、挖空属于Board Geometry下面的Cutout子类。这两个Subclass名字很像功能也相关但用途完全不同混用就会出问题。很多人第一次接触Allegro看到Class下面一堆选项就懵了这很正常我后面会一层一层拆开讲。提示Allegro 17.2的Class/Subclass体系和AD的Layer概念不是一一对应的不要用AD的思维去套。AD里Keep-Out Layer、Board Shape、Board Cutout是分开的Allegro里则统一归到Board Geometry下靠Subclass区分。2. Design_Outline和Cutout的本质区别与选型逻辑2.1 两层各自管什么为什么不能混Design_Outline直译就是设计外形轮廓它定义的是整块PCB的物理边界。板厂拿到你的Gerber之后第一件事就是找这一层用它来铣外形、算尺寸、做V-Cut或者邮票孔。一块板子有且只能有一个闭合的Design_Outline这是铁律。你可以画成矩形、圆形、L形、甚至带圆弧的异形但必须是单一闭合轮廓不能断开不能自交不能有重复线段叠在一起。Cutout直译是挖空、切除它定义的是板子内部的镂空区域。比如螺丝孔周围的避空、天线区域的净空、大功率器件下面的散热开窗、连接器插拔的让位槽这些都属于Cutout。Cutout可以有很多个每个都是一个独立的闭合轮廓分布在板子内部不能和Design_Outline相交或重叠。为什么不能混因为板厂在CAM处理时对这两层的解析逻辑完全不同。Design_Outline是“外边界”Cutout是“内孔”。如果你把内部开槽画到了Design_Outline层板厂会认为你的板子外形是个“回”字形但外轮廓不闭合直接报错。反过来如果你把板框画到了Cutout层板厂找不到外形同样没法加工。我见过最离谱的案例是有人把螺丝孔画在Design_Outline层结果板厂把整个板子铣成了一个圆环功能全废。2.2 什么场景该用Cutout什么场景不该用不是所有“洞”都要用Cutout。这里有个判断逻辑我总结成一句话贯穿板厚、需要物理挖空的用Cutout不贯穿或者只是电气禁布的用Keepout或Package Keepout。举个例子M3螺丝孔如果只是普通安装孔不需要镀铜那就在Design_Outline层之外单独画一个圆放到Cutout层板厂会把它铣穿。但如果这个螺丝孔需要接地孔壁要镀铜那就不能放Cutout而应该放钻孔层NC Drill通过Padstack来定义。再比如BGA下面的散热过孔区域你不想让其他信号走进去那是电气禁布用Route Keepout不是Cutout。还有有些连接器的金属外壳需要沉板安装板子要挖一个台阶这种非贯穿的挖空严格来说也不该用Cutout而是用Outline层配合Z-Copy在相应层面做处理或者直接和板厂沟通用铣槽工艺。我个人的经验是Cutout只用于完全贯穿PCB厚度、且不需要任何铜箔和基材保留的区域。只要有一丝犹豫就先问自己这个区域板厂是不是要把它整个挖掉是就用Cutout不是就找别的层。2.3 选型背后的工艺约束为什么Allegro要把Design_Outline和Cutout分得这么细因为PCB制造工艺对“外轮廓”和“内轮廓”的处理精度、刀具路径、补偿方式都不一样。外轮廓铣边通常用大直径铣刀走刀速度快但转角半径受刀具限制内轮廓挖空往往用小直径铣刀甚至激光切割精度高但速度慢。如果你把内轮廓画到外轮廓层板厂的CAM工程师得手动帮你分离遇到复杂的板子人家直接退单让你改好再发。另外Artwork出Gerber的时候Design_Outline和Cutout通常要合并到同一张Gerber里或者分别出两张取决于板厂的要求。但不管怎么出这两层的线条必须是零线宽或者极细线宽因为板厂提取的是中心线不是线条本身的宽度。如果你用0.2mm的线宽画板框板厂提取出来的外形会比你预期的大一圈或者小一圈具体取决于他们的补偿规则。这一点后面讲实操的时候会详细说。3. 实操从零画一块带内部开槽的板子3.1 环境准备与单位设置打开Allegro 17.2新建一个brd文件。第一步永远是设单位和精度。我习惯用毫米精度设4位小数。路径是Setup Design Parameters在Design标签页里User Units选MillimetersAccuracy选4。为什么是4位因为板厂通常要求外形尺寸精确到0.01mm4位小数留足余量避免四舍五入误差。然后确认栅格。画板框不需要太细的栅格我一般设0.1mm或者0.05mm方便对齐。路径是Setup Grids把Non-Etch的栅格打开设成0.1mm。Etch层的栅格可以关掉画板框用不上。注意Allegro 17.2默认可能用的是mil如果你从别人那里拿到的brd文件是mil单位直接改单位会导致所有元素尺寸缩放。正确做法是新建文件时就设好或者用Scale命令整体转换但转换后一定要复查关键尺寸。3.2 在Design_Outline层画外轮廓打开Color Dialog找到Board Geometry Design_Outline给它一个醒目的颜色比如亮黄色。然后选择Add Line在Options面板里Class选Board GeometrySubclass选Design_OutlineLine width设0零线宽。零线宽在Allegro里显示为最细线但实际出Gerber时板厂按中心线处理这是标准做法。开始画轮廓。假设板子是个100mm x 80mm的矩形四个角有R5的圆角。先用Line画四条直线段坐标分别是(0,0)到(100,0)、(100,0)到(100,80)、(100,80)到(0,80)、(0,80)到(0,0)。画完是一个闭合矩形。然后倒圆角用Manufacture Drafting Fillet半径设5依次点相邻两条边。倒完圆角后原来的直角线段会被替换成圆弧轮廓依然闭合。这里有个细节倒圆角之后检查一下轮廓是否真的闭合。用Display Status或者直接点Tools Reports Shape Check。如果轮廓有断点Status里会显示“Not Closed”。我遇到过有人倒圆角时不小心把某条边删了结果轮廓开了个口子自己没发现出Gerber时板厂报错。3.3 在Cutout层画内部开槽假设板子中间要挖一个20mm x 10mm的矩形槽用于安装某个连接器。切换到Board Geometry Cutout层同样给个醒目颜色比如红色。用Add Rectangle或者Add Line画一个20x10的闭合矩形位置放在板子中央。线宽同样设0。画完之后这个矩形就是Cutout。注意Cutout的轮廓不能和Design_Outline相交。如果你把Cutout画到了板子边缘和Design_Outline重叠了板厂会认为你要把板子切成两半。我见过有人做拼板时把V-Cut线画到了Cutout层结果板厂直接把板子铣断了。对于圆形开槽比如螺丝孔避空用Add Circle画一个圆放到Cutout层。如果是异形开槽用Line和Arc组合确保闭合。3.4 用Z-Copy快速复制轮廓到其他层有时候你需要把Design_Outline复制到其他层比如Route Keepout或者Package Keepout用来做禁布区。这时候用Edit Z-Copy。在Options面板里Copy to Class选Route KeepoutSubclass选All然后点一下Design_Outline的轮廓Allegro会自动在Route Keepout层生成一个同样形状的禁布区。这个功能在做异形板的时候特别省事不用手动再画一遍。Z-Copy也可以用来把Cutout复制到其他层但要注意Cutout本身是Board Geometry下的复制到Route Keepout时形状会保留但属性变了。如果你只是想让某个区域不能走线用Z-Copy从Cutout复制到Route Keepout是可行的但更规范的做法是直接画Route Keepout。3.5 出Gerber前的检查清单画完板框和开槽别急着出Gerber。先做几项检查用Display Status确认Design_Outline是ClosedCutout也都是Closed。用Tools Reports DRC跑一遍DRC看有没有“Outline not closed”或者“Cutout intersects outline”之类的报错。用Display Measure量一下关键尺寸比如板子长宽、开槽位置和结构图对一遍。在Artwork里确认Design_Outline和Cutout都正确添加到了Gerber层。通常板厂要求这两层合并到一张Gerber或者分别出具体看板厂的要求。我一般会把Design_Outline和Cutout都加到Artwork的“OUTLINE”层里Film Control里勾选Undefined Line Width设成0.1mm或者0.15mm这样出Gerber时线条有宽度板厂能看清但提取外形时还是按中心线走。4. 常见错误与修复方法实录4.1 板框不闭合板厂无法提取外形这是最高频的错误。表现是板厂回复“外形层有开口”或者“Outline not closed”。原因通常是画线时起点和终点没对齐或者倒圆角时删掉了某段线。修复方法用Display Status查看如果显示Not Closed用Vertex命令Edit Vertex找到断点手动拖拽对齐。或者干脆删掉重画用Add Rectangle画一个完整矩形再倒圆角比用Line一段一段画更不容易出错。实操心得画板框尽量用Rectangle或Circle这种原生图形少用Line拼接。原生图形天生闭合不会出现断点。异形板再用LineArc组合画完立刻用Shape Check验证。4.2 Cutout和Design_Outline相交或重叠表现是板厂说“内孔和外框相交”。原因通常是Cutout画得太靠边或者拼板时V-Cut线画到了Cutout层。修复方法用Display Measure量一下Cutout边缘到Design_Outline的距离确保至少留0.5mm以上的边料否则板子强度不够加工时容易崩边。如果是拼板V-Cut线应该放在Board Geometry Vcut层不是Cutout层。4.3 线宽设错导致外形尺寸偏差前面提过Design_Outline和Cutout的线宽应该设0。但有些人习惯设0.1mm或者0.2mm觉得这样看得清楚。结果板厂提取外形时按线条中心线走但CAM补偿时可能按线宽内外偏移导致最终板子尺寸比设计值大0.1mm或小0.1mm。对于精密板子这0.1mm可能就是装配不进去的原因。修复方法把所有Design_Outline和Cutout的线宽改成0重新出Gerber。4.4 重复线段导致CAM解析异常表现是板厂说“外形层有重复线段”或者“Self-intersecting”。原因通常是复制粘贴时多贴了一份或者Z-Copy时源和目标重叠。修复方法用Edit Delete框选Design_Outline层删掉所有线段然后重新画一遍。或者用Tools Reports Shape Check它会列出重复线段的位置手动删除多余的。4.5 螺丝孔放错层板子被铣穿这个错误我犯过一次。当时把M3螺丝孔画在了Cutout层想着反正要挖穿。结果板厂把整个孔铣成了非金属化孔但我的设计里这个孔是要接地的孔壁需要镀铜。后来改成在Padstack里定义钻孔放到NC Drill层问题解决。所以再强调一遍需要镀铜的孔用PadstackNC Drill不需要镀铜、纯粹挖穿的用Cutout。4.6 Artwork里漏加Cutout层表现是板子做回来内部开槽没挖。原因是在Artwork里只加了Design_Outline忘了加Cutout。修复方法在Artwork的Film Control里确认Board Geometry下的Design_Outline和Cutout都勾选了。有些板厂要求Cutout单独出一张Gerber那就新建一个Film只加Cutout层。4.7 常见问题速查表问题现象可能原因排查方法修复步骤板厂说外形有开口板框不闭合Display Status看是否Closed用Vertex对齐断点或重画板厂说内孔和外框相交Cutout太靠边Measure量距离移动Cutout留足边料板子尺寸偏差0.1mm线宽非0检查Line width改成0重出GerberCAM报重复线段复制粘贴多余Shape Check删除多余线段螺丝孔被铣穿不镀铜放错层检查是Cutout还是NC Drill改用Padstack定义内部开槽没挖Artwork漏加Cutout检查Film Control勾选Cutout层异形板圆角处报错圆弧不闭合Shape Check重新倒圆角或手动补线5. 进阶技巧异形板、拼板与Artwork输出5.1 异形板的轮廓处理异形板的核心难点在于轮廓复杂容易不闭合。我的做法是先在AutoCAD或者结构软件里画好外形导出DXF然后Import DXF到Allegro的Design_Outline层。导入后用Shape Check验证闭合性。如果有断点用Vertex手动连上。DXF导入的好处是尺寸精确不用在Allegro里一点点描。导入DXF时注意单位。AutoCAD默认可能是mmAllegro也是mm但有时候DXF里是inch导入后尺寸会差25.4倍。导入前在DXF里确认单位或者在Allegro导入时手动指定Scale。5.2 拼板时的Cutout和V-Cut拼板时每块小板之间的连接方式有两种V-Cut和邮票孔。V-Cut线放在Board Geometry Vcut层不是Cutout层。邮票孔则是用NC Drill打一排小孔也不是Cutout。Cutout在拼板里只用于两种情况一是小板内部本身有开槽二是拼板边框需要挖空减重。千万别把V-Cut线画到Cutout层否则板厂会把拼板直接铣散。5.3 Artwork输出时的层管理出Gerber时我习惯建一个Film叫“OUTLINE”里面只加Board Geometry Design_Outline和Board Geometry Cutout。Film Control里Undefined Line Width设0.1mmFormat选Gerber RS274X单位选mm精度选4.54位整数5位小数。这样出的Gerber板厂能直接读。如果板厂要求Cutout单独出就再建一个Film叫“CUTOUT”只加Cutout层。出完之后用CAM350或者免费的Gerber查看器打开检查一遍确认外形和开槽都在正确的位置。提示Allegro 17.2出Gerber时如果Design_Outline层有零线宽的线段Gerber里会显示为0宽度有些板厂的CAM软件会忽略这些线段。所以Film Control里的Undefined Line Width一定要设一个非零值比如0.1mm确保Gerber里有可见的线条。5.4 和板厂沟通的要点最后和板厂沟通时主动说明板框和开槽的情况。比如“外形层是Design_Outline内部开槽在Cutout层线宽0请按中心线提取。”如果板厂有特殊要求比如外形层要单独出、开槽要标注尺寸提前问清楚。我一般会在Gerber压缩包里附一个Readme.txt写明层对应关系和关键尺寸省得来回扯皮。6. 我踩过的坑和最后的小建议做PCB Layout这些年Design_Outline和Cutout这两层看着简单但真要做好得把工艺约束、软件操作、板厂沟通三件事都理顺。我踩过最大的坑是把一个异形板的轮廓用Line一段一段画结果有个转角差了0.05mm没对齐板厂说外形不闭合来回改了两天。后来学乖了能用Rectangle就用Rectangle能用DXF导入就导入绝不手动描复杂轮廓。还有一次客户要求板子内部挖一个L形槽我画在了Cutout层但忘了在Artwork里加进去板子做回来没挖槽只能报废重做。从那以后我出Gerber前一定用CAM350打开检查一遍确认每一层都在。如果你刚开始用Allegro建议先拿一块简单的矩形板练手把Design_Outline和Cutout的画法、检查、出Gerber流程走一遍。熟练之后再尝试异形板和拼板。遇到报错别慌大部分问题都是闭合性、线宽、层放错这三类按上面的速查表排查基本都能解决。最后分享一个小技巧在Allegro里给Design_Outline和Cutout设不同的颜色比如外形用亮黄开槽用亮红这样在复杂板子上一眼就能区分不容易画错层。这个习惯我保持了五六年省了不少返工时间。