ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Allegro中Shape裁剪与铜皮编辑:从基础到进阶的实用技巧

Allegro中Shape裁剪与铜皮编辑:从基础到进阶的实用技巧 1. Shape调整这件事为什么值得单独写一篇先聊个实际感受。很多人在 Allegro 里铺铜、改铜、裁铜都是“点到哪改到哪”今天用 Edit Boundary 拉一个角明天用 Delete 删一块重新铺循环往复一个板子改到最后铜皮上全是补丁和碎块。真正遇到网络要换层、电源分割要重新规划、板框一改整片铜皮报废这些情况时才发现自己对 Shape 的操作其实是一团乱麻。这个标题里的关键词除了 Allegro 本身最核心的就是Shape和裁剪。Shape 在 Allegro 中泛指所有闭合的二维区域对象最常见的形态就是铜皮Copper但也包括禁布区、Route Keepin、Assembly 外框等。裁剪则是日常改板时频率极高的一类操作板框缩小了铜皮要切掉一圈两个电源域打架了要把重叠的 Shape 切出一条隔离带甚至从其他文件借用一块铜皮也要先裁成想要的外形再贴进来。这篇文章既适合刚接触 Allegro 的初学者也适合已经画了几年板子但始终靠“笨办法”处理铜皮的工程师。我不会只罗列菜单路径而是把“为什么要这样改”“改完会带来哪些连锁反应”讲清楚再附上我实际画板子时反复踩过的坑和对应的处理方法。需要先说明一个前提这篇文章的菜单和命令基于 Cadence Allegro 17.2/17.4 版本界面来写16.x 和较新的 22.x 界面会有差异但核心命令和操作逻辑基本一致。文中涉及的命令名尽量保留英文原版方便你对照自己的菜单或者查找快捷键。2. Shape基础修改全流程2.1 先搞明白 Shape 的三种状态和编辑入口Allegro 和不少 EDA 工具不一样它把“铺铜”这件事做得非常工程化。你在其他软件里铺铜可能是画一个矩形再填充在 Allegro 里你要先理解三种状态。Static Shape静态 Shape外形和连接关系完全固定改动需要手动删除重画或者用命令编辑操作简单直观但每次修改都要重新处理避让。早年很多人习惯全板用静态铜皮改版时体力活很重。Dynamic Shape动态 Shape外形是边界内部金属区域会根据你放置的走线、过孔、器件实时自动避让改一条走线铜皮自动重新收敛。这是现代 PCB 设计最常用的形态。我接手的几乎所有新项目通常都会把主铺铜设为动态。Unfilled Shape未填充 Shape只有边界没有实心铜的区域通常用于临时规划、出铜皮轮廓图或者配合其他工具做处理。我经常用它画禁布区草稿确认位置后再转成正式 Shape。这三种状态的切换入口在菜单Shape Convert to Static / Convert to Dynamic。有时候你从别人的文件里拿到一块铜皮选中后发现它是静态的想让它跟着走线避让就通过这个命令转成动态。反过来如果动态铜皮在某个区域内频繁避让导致外形难看你可以把那一小块转成静态手动修边界避免整板铜皮反复收敛拖慢电脑。编辑 Shape 的统一入口是Shape Edit Boundary命令面板底部会在 Options 里显示当前 Shape 的 Net、层、以及是新建还是编辑状态。多数人不知道的是Edit Boundary 不仅能改铜皮外形还能顺便改网络、层、甚至“挖空”区域所以这是所有 Shape 操作里最值得精通的一个命令。2.2 修改边界你正在改的到底是“线”还是“区域”用 Edit Boundary 拉边界时很多人会当成画线来处理其实这个命令的逻辑是“重新定义闭合区域的轮廓”。你点击的第一个点、后续每个点、最后闭合的点共同决定一个完全新的边界旧边界直接被替换掉。所以如果你只想动一个角别重新框一整圈那样很容易画出和原轮廓相差十万八千里的形状。实际操作中正确的“局部修改”思路是先用Shape Edit Boundary进入编辑模式然后利用右键菜单里的Vertex顶点功能选中你要移动的那个角点直接拖动或者用右键的Replace Edge把某一小段边界替换成弧线或新折线。这两个选项比整圈重画省事得多而且保留原有的避让规则设置。如果只是想把一个矩形铜皮的某个边往里缩 5mil我的做法是进入 Edit Boundary 后右键选择 Cut (与后面的裁剪相关这里顺手一提)或者干脆用Setup Application Mode Shape Edit模式它会自动打开抓点辅助配合精确坐标输入很容易把边线拉到指定位置。注意抓点模式里要把Snap to Vertex和Snap to Grid同时打开否则你看着是对齐了实际有很小的缝隙铺出来铜皮边缘会有毛刺。2.3 修改属性网络、层、动静态一次搞定很多时候改 Shape 不是为了外形而是因为它归属错了。比如一块电源铜皮本来在 3.3V 网络后来电源方案调整要改成 1.8V。最笨的方法是删掉重铺但更简单的做法是选中铜皮后在Options面板里直接把 Net 改成新的网络或者用菜单Edit Properties在对话框里把 net 属性替换掉。改完之后动态铜皮会自动按新网络的规则重新避让这个特性是静态铜皮做不到的所以再次提醒优先用动态。换层操作也类似选中 Shape 后按 Ctrl E 或者右键Move to Layer铜皮会整体平移到目标层原来层的避让和连接关系全部解除。这里有个容易混淆的地方如果目标层已经有铜皮系统会弹出提示问你是“合并”还是“替换”默认是替换操作前千万看清楚别把另一块铜皮弄丢了。还有人尤其是刚接触 Allegro 转过来的用户会遇到“铜皮只有轮廓没有填充”的问题。这个不一定是你操作错误更常见的是视图设置问题。在Display Color/Visibility里把对应层的Pins、Vias、Etch图标点亮再看Display Status里的Shape Fill是否有“No_Fill”标记。如果标记为 No_Fill右键选择Shape Fill Fill或者执行Shape Fill Auto铜皮就会重新填充。这个问题会在后面的常见问题章节展开讲。3. 进阶裁剪技法与实现思路3.1 用 Edit Boundary 与右键菜单完成“切割”“挖槽”和“合并”现在进入正题裁剪。我先说一个通用原则裁剪并不是“切掉一块铜皮的边角”这个动作本身而是“为铜皮定义一个新的外边界或内部禁布区”。理解了这一点很多命令就可以灵活组合了。场景一切掉矩形铜皮的一个角进入Shape Edit Boundary点选铜皮右键菜单选Replace Edge然后沿着需要保留的边界重新画一遍最后闭合。画的时候要注意方向如果逆时针画新边界内部会被保留顺时针画则可能导致区域交换。我吃过这个亏当时切出来的铜皮反而把要保留的区域裁掉了原理其实是 Allegro 的边界方向逻辑。所以我的建议是画完边界后先看 Options 面板里的预览图再按右键 Done不要急着落定。场景二在铜皮内部挖出禁布区这个需求很常见比如天线底下要禁铜或者螺丝孔周围要留出安装间隙。可以用Shape Manual Void Polygon直接在铜皮内部画一个闭合区域Allegro 会把它当作 void挖空处理。Manual Void 的另一个好处是挖空区域与外部边界互不干扰后续你调整外边界void 不会跟着消失。如果你想挖出一个圆孔用Shape Manual Void Circle/Ellipse更快。选中后在 Options 里输入圆心坐标和直径即可。注意void 区域不能完全切断铜皮成两半如果挖出一个“葫芦形”导致边缘极窄Allegro 会报警告因为孤立铜皮island会被自动删除或变形。场景三两块铜皮合并合并最稳妥的方式不是直接拖拽而是先把两块铜皮都变成动态然后在Shape Shape Operations Merge Shapes中选择两块系统会把它们融合成一个新的 Shape。合并的时候两块铜皮必须是同一网络否则命令会直接报错。如果只是外形上重叠但网络不同你别想着合并应该做的是调整间距或者把重叠区域用 void 挖掉。3.2 用 Z-Copy 实现“边界复制”与“隔离带生成”Z-Copy 是裁剪场景里被严重低估的命令。它的名字叫“复制”实际作用是把某个 Shape 的边界复制到当前层或指定层成为一个新的 Shape、Line 或 Void。用它可以实现几个特别实用的效果。比如我要在电源铜皮周围生成一圈隔离带。常规做法是画一个比原铜皮大 20mil 的禁布区再做一个内缩 20mil 的铜皮这种“双边界”操作如果用画线命令一条条画效率非常低。用Edit Z-Copy选原铜皮作为源Options 里设置Expand/Shrink值为 20Copy to layer 选择禁布层就能一次生成外扩 20mil 的 Route Keepout。反过来再选原铜皮设置值为 0生成内边界线作为新的铜皮边界参考。Z-Copy 还有一个妙用当你从 DXF 或者机械结构图里拿到一条封闭的边界线想用它来生成铜皮可以先选这条线用 Z-Copy 把它复制到布线层并转换成 Shape。这个操作在处理异形板框、不规则禁布区时特别实用省去了手动描边的痛苦。3.3 用“画辅助 Shape”的方式间接裁剪有些场合铜皮外形太复杂直接编辑或者挖 Void 都不方便我会用一个“间接裁剪”的思路。举个例子左边是地铜皮右边是 3.3V 铜皮中间需要有一条 30mil 宽的隔离带。我可以先在隔离带位置画一个很窄的 Shape比如用 Add Shape 画矩形然后利用Shape Shape Operations Boolean如果版本支持或者下面的方法把隔离带的 Shape 设为禁布层对象或设置成另一网络用Shape Edit Boundary选中地铜皮右键用 Cut沿着隔离带边缘把地铜皮切掉一部分对 3.3V 铜皮做同样的处理。这个方法的核心是“用辅助 Shape 来定义切割路径”。实际项目里我会先建一层临时层例如 Board Geometry/cutline 或一个自定义层把所有需要切割的路径先用 Line 画好出图前隐藏该层。这样后期调整隔离带宽度时不必重画铜皮只需要移动辅助 Line然后重新切割即可。如果版本较老不支持图形化的 Boolean 操作那就用Shape Edit Boundary Replace Edge把切割边一条条描出来虽然慢但可控性更高复杂板上我反而喜欢这种“手描”方式因为可以逐条检查。3.4 裁剪之后别忘了重新运行避让和检查裁剪铜皮从来不是“切一刀就完事”。裁剪之后动态铜皮通常会自动更新但如果你用的是静态铜皮或者手动 void 太多可能不会自动收敛这时候需要执行Shape Fill Auto或Shape Select Shape on Layer Fill手动触发一遍填充。另外裁完铜皮后一定要跑一遍Manufacture Design Rule Check重点看Shape/Symbol间距和Line to Shape间距。铜皮边界的微小毛刺或角度过尖DRC 不一定报错但生产时容易造成蚀刻不净或阻抗突变。我习惯在裁剪完成后用Shape Decompose Shape把 shape 转为走线看一下边界形状再把边界线 Delete 掉等价于做一次边界检查。4. Shape 常见问题大合集与排查技巧4.1 铜皮只有轮廓、没有填充这个问题几乎每周都有人问。原因通常有三个第一视图模式问题。在 Allegro 中铜皮有“边界显示”和“填充显示”两种模式。按Display Status看 Shape Fill 项是不是 “No Fill”。如果是选中铜皮右键Shape Fill Fill或者执行菜单Shape Fill Auto全板填充一次。第二动态 Shape 设置了 Disable Fill。选中铜皮右键Parameters在 Shape Fill 标签页里把Fill改为Solid Fill不要选 None 或 Hatched。有时候别人拿来的板子为了运行流畅会把动态铜皮的平滑度等级设成 Disabled看起来就是只有边框。你可以用Shape Global Dynamic Shape Parameters里的Shape Fill Fill设为Rough或Smooth并勾选Filled视图。第三没有执行填充操作。静态铜皮有时在编辑后不会自动填充需要手动选中后右键Fill。如果是整板所有 copper 都只有轮廓多半是全局参数问题重新填充即可。这个问题的排查顺序我一直是先看 Display Status再看 Global Dynamic Shape Parameters最后才怀疑文件损坏。按这个顺序排查99% 都能解决。4.2 动态 Shape 避让不自动更新有时候你移动了一条走线期望铜皮自动缩开但它纹丝不动或者避让后留下难看的“海鸥翅膀”。这种情况首先看是不是把铜皮转成了静态。其次看Shape Global Dynamic Shape Parameters Void Controls确认Artwork Format不是 “Gerber RS274X“ 之外的老格式老格式在动态避让时容易有问题确认Minimum aperture for artwork fill不要设太大否则细缝避让不出来。“海鸥翅膀”其实是避让角太尖锐通常发生在走线斜着进铜皮时。可以在参数里把Smooth等级调到Smooth而不是 Rough或者对局部铜皮执行Shape Smooth Shape手动平滑。前阵子处理一个电源板过孔密集区域整片铜皮全是锯齿我直接把动态铜皮的平滑等级改成 Smooth再把过孔避让形状从八角形改成圆形板面立刻干净很多。4.3 裁剪后出现孤岛、碎铜与尖角裁剪不彻底很容易留下近圆形碎铜或者一条细长的“铜尾巴”这些在生产中不是电气问题就是蚀刻问题。Allegro 提供了两个命令Shape Delete Islands可以删掉孤岛Shape Check可以检查出边界自交、尖角、细缝等问题。我的经验是Delete Islands 之前先确认哪些孤岛是真正无用的。有时候小块铜皮是作为缝合地孔连接用的删掉反而破坏回流路径。你可以在Shape Global Dynamic Shape Parameters Void Controls里设置Island detection最小面积阈值比如小于 10平方mil 的孤岛自动删除大于阈值的保留。这样既不会漏掉关键缝合区也不会让碎铜污染板面。碰到细长尖角我常用两个办法一是Shape Edit Boundary点什么手动删掉那个尖角顶点二是直接用 Z-Copy 画一个小的矩形覆盖尖角然后 Merge 出去再用切割命令恢复平直边。听起来绕但实际熟练后二十秒一个。4.4 换板框之后铜皮和外框不匹配改板框是许多项目的家常便饭但很多人只改了板框忘了铜皮、Route Keepin 和禁布区也要跟着变。板框图一导入旧铜皮直接悬在板外或者离板边距离不够DRC 满屏报错。此时建议按这个顺序处理先重画 Route Keepin 和 Route Keepout再用 Z-Copy 从新的板框边界生成铜皮草稿最后一步才裁剪内部特殊区域。不要试图去把旧铜皮一点一点拉回新板框那样既慢又容易留缝隙。我就是用 Z-Copy 直接以新板框为源复制到布线层然后用 Merge Shapes 把新旧铜皮合并再用布尔或者手动编辑把不需要的部分切掉。4.5 常见命令报错与修复建议Allegro 里几个和 Shape 相关的报错先列个速查表给你现象常见原因处理方法Warning: Shape with no net铜皮网络没赋好选中铜皮Options 里重新指定 NetError: Shape self-intersect编辑边界时画出相交线进入 Edit Boundary右键 Replace Edge 重画冲突段Fill failed动态 Shape 参数里灌铜最小孔径过大调小 Global Dynamic Shape Parameters 中 Artwork Fill 参数Void shape too smallManual Void 挖空尺寸过小删除该 void改用 Shape Delete Islands 或重新挖大DRC: Line to Shape violation裁剪后边界与走线间距不足移动走线或对铜皮执行 Smooth Shape 调整边界这些报错基本都能通过撤销、重进编辑命令、检查参数三步解决。最怕的是报错后不读英文提示直接硬点越点越乱。我第一次用 Edit Boundary 画出自交形状时也是一脸蒙后来养成了“报错就右键 Oops重新进命令”的习惯比任何技巧都管用。5. 效率提升建议快捷键、自定义层与常用 Skill 配合5.1 为 Shape 操作设置专用快捷键Allegro 的 Shape 编辑命令分布在菜单里频繁切换鼠标点菜单很影响效率。我建议把高频命令映射到键盘上。在env文件位置通常在用户目录下的pcbenv文件夹里可以添加类似语法alias SED shape edit boundary alias SMOOTH shape smooth shape alias SF shape fill auto alias ZC edit z-copy我这里只是示例实际命令名以你安装版本的帮助文档为准。设好之后不用记菜单按几下键盘就能完成 80% 的 Shape 编辑。我更推荐的做法是把 Z-Copy、Edit Boundary、Smooth Shape、Delete Islands 这四个动作固化成习惯遇到任何铜皮问题都先想这四个动作再想菜单。5.2 用图层管理辅助 Shap 裁剪裁剪异形铜皮或做射频模块时我会专门设置几个辅助层比如Board Geometry/CUT_TEMP或者自定义层TEMP_SHAPE把这些层的颜色调成亮色用来画辅助切割线。画完后用 Edit Boundary 和组抓点把铜皮边界吸附到辅助线上。这个做法有两个好处一是辅助线可以精确画在任意坐标不用受限于铜皮现有顶点二是在出 Gerber 之前只要隐藏辅助层生产文件里就不会留下任何标记。如果你还在用“画一个临时 Shape 压上去再 Delete”的老办法强烈建议改成辅助层方案灵活度完全不一样。5.3 Skill 脚本在批量 Shape 处理中的价值Allegro 的 Skill 脚本生态很成熟。举个场景一块 12 层板有 8 层都有整片地铜皮板框要整体外扩 30mil并且所有层铜皮同步外扩。手动处理 8 层很痛苦但用 Skill 可以在几秒内批量执行 Z-Copy 并改边界。我一般在工程里放几个自用 Skill比如批量把选中 Shape 转成动态、批量设置 void、批量将某层所有 Shape 的平滑等级调成 Smooth。写 Skill 的门槛并不高如果不会写也可以在 Allegro 中文社区或 GitHub 上找到现成脚本。用的时候注意脚本会直接改数据库跑之前一定要保存一份.brd备份特别是批量编辑 Shape 的脚本一旦边界处理逻辑有误可能毁掉整板铜皮布局。5.4 和周边高频操作配套使用板框、封装、Gerber 输出改 Shape 不可能孤立于整个流程。很多人改完铜皮后还要配合替换封装、输出 Gerber这些操作之间彼此有影响。替换封装之后旧封装的禁布区可能被新封装覆盖动态铜皮会自动避让新封装外形但如果有手动 void 压在旧封装位置需要重新删除并调整避让。出 Gerber 之前一定确认所有 Shape 为填充状态且动态避让已收敛完毕。我一般会在出片前跑一次 Fill Auto再开一遍所有层看有没有 No_Fill 标记。为外发 CAM 准备文件时如果对方只能接收 PADS 格式而你在 Allegro 里已经完成了所有 Shape 裁剪转换后最常出问题的就是动态铜皮被转成静态后边缘变化。处理办法是先跑 Smooth Shape再转静态最后导出。这些后续环节看着和 Shape 裁剪无关但实际出问题的概率非常高。我遇到过一个案子板子改完一切正常Gerber 出来发现铜皮边缘有一圈细碎毛刺排查半天发现是动态避让参数里 Smooth 等级设得不够高出片前没有执行 Smooth加工厂差点因为“Hole 太近”退单。6. 关于 Shape 调整我最后想说的几个习惯文章写到这儿该聊的基本都聊完了。最后分享一点我在实际项目中的体会。Shape 调整这个技能真正拉开工程师差距的不是会多少个命令而是对“边界”“避让”“填充”这三个概念的理解深度。命令只是工具边界是你要实现的物理空间避让是电气安全的空间分配填充是最终在制造端被认可的实际铜体。每改一次 Shape你都要想清楚这三者的关系。我见过不少工程师遇到铜皮问题第一反应是删掉重新铺。新铺的铜皮干净是干净但原来精心设置的 void、避让规则、光滑边界全部丢失。所以我的习惯是能 Edit Boundary 解决就不删能用 Z-Copy 复制边界就不重新画能用 Smooth 解决毛刺就不手动拉顶点。这几个原则看着简单坚持下去你改板的速度和板子的质量都会上一个台阶。另外如果你在做多层板的大面积电源分割建一个独立的“Shape 检查清单”很有用每层网络对不对、边界有没有超框、隔离带宽度够不够、孤岛有没有清理、动态铜皮有没有全部填充。把这个清单固定在每次改板流程里能帮你省掉至少一次返工。Shape 调整从来不是一劳永逸的事但掌握好这些基础套路和裁剪技巧至少能让这个问题从“麻烦”变成“常规操作”。后续我还会整理一些关于动态铜皮参数细化、射频区域的 void 策略、以及和电源完整性相关的铜皮处理技巧到时候再继续聊。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进