用 Altium Designer 画板子的老哥们,应该都经历过这么一幕:辛辛苦苦把走线、过孔、板框全都改完了,结果回头一看,敷铜区域纹丝不动,还是原来那副老样子,甚至出现了一堆不该有的死铜和隔离间距错误,让人瞬间血压拉满。这个帖子要聊的就是这个经典难题——Altium Designer 中 polygon(敷铜)为什么修改后不会自动更新,以及我在实际项目里总结出的全套避坑流程。无论你是刚接触敷铜的新手,还是被“不更新”折磨过几次的老手,这篇文章应该都能帮你省下不少折腾时间。
先说一下我自己的背景,做 PCB 设计差不多十年,Altium Designer 从 15 版一路用到现在的 26 版,中间踩过的 polygon 相关的坑,说多了都是泪。很多朋友遇到“敷铜不更新”的第一反应是软件坏了,或者直接怀疑自己是不是误开了什么隐藏开关。其实绝大多数情况下,原因并不玄学,就是几个默认设置、操作顺序和设计习惯的问题。把这几个点摸透了,polygon 在你手里就能变得服服帖帖。
1. 敷铜不更新的现象:先确认你踩的是哪个坑
1.1 最典型的三种“不更新”表现
第一个表现:我在原理图里改了网络连接,回到 PCB 重新同步,结果原来的敷铜完全没反应,既没有重新计算隔离间距,也没有自动把新网络纳入铜皮范围。这种情况看着像“没更新”,其实往往只是软件没有收到触发信号。
第二个表现:我改了板框大小,把板子拉长了 10 毫米,结果 polygon 依然执着地抱着原来的边界,该铺到板外的还是铺到板外,板框变化完全没有反映到敷铜上。这种情况很多人会误以为是板框层选错了,其实大概率是敷铜对象本身没有被赋予“随边界重算”的逻辑。
第三个表现:更隐蔽一点,走线调整之后,铜皮上出现了一小片本该被隔离的过孔区域,但敷铜就像没看见一样直接盖过去了。这种“局部失效”的情况最让人头疼,因为全局看敷铜好像还在,可局部已经明显错了,视觉效果上甚至会影响 DRC 的结果。
1.2 “不更新”不等于“没反应”
我经常跟同事说,Altium Designer 里的敷铜,其实不是一块静态的金属板,而是一个带着计算参数、需要主动触发重算的“图形对象”。它不像你在画图软件里画一个矩形那样,拉完就定死了。只要你动了走线、过孔、板框、规则里的任何一项,理论上的敷铜结果都变了,但软件不会实时、逐帧地去重新计算整块铜皮,而是等你明确告诉它“该重铺了”,它才去执行。
这一点是理解所有 polygon 更新问题的钥匙。软件没有默认开启“实时更新所有敷铜”的选项,因为一旦开启,每次拖动一根线它都要去算一遍整板铜皮,性能消耗会非常夸张。尤其在大板子、复杂板层叠的情况下,这种“实时全量重铺”会导致操作卡顿到让人怀疑人生。所以,Altium Designer 的默认行为是:修改之后,polygon 维持上一次的计算结果,直到你手动触发重铺或者设置了自动重铺规则。
知道了这个背景,再去看各种“不更新”的问题,思路就清晰多了:不是软件坏了,而是触发条件没满足,或者触发弹窗被你直接忽略了。
2. 为什么 polygon 不会自动更新:机制层面的原因
2.1 敷铜的本质:不是简单填充,而是一段“实时计算”的图形对象
要彻底搞懂这个问题的根源,我们得回到敷铜的计算原理上。你可以把 Altium Designer 的 polygon 理解成一层“会呼吸”的金属层。它内部不是单纯记录“这里有一片矩形铜”,而是记录了一整套约束条件:网络归属、覆盖区域、隔离间距、热焊盘连接方式、最小连接宽度、死铜是否移除等等。每次执行 Repour(重铺)时,软件才会把这些条件结合当前板上的走线、过孔、板框和规则,重新计算出一份具体的铜皮形状和连接关系。
所以,“修改后不更新”本质上不是因为数据坏了,而是因为数据没有被重新计算。这就像你改了 Excel 公式引用区域里的某个单元格,但如果公式没有被重新求值,屏幕上的结果肯定还是旧的。Altium Designer 里的 polygon 就是一张大公式表,而 Repour 就是让公式重新求值的动作。
很多新手会误以为 DRC 跑一遍就能触发敷铜重算,其实 DRC 和敷铜计算是两套相对独立的流程。DRC 只是基于现有对象做规则检查,它不会去更新 polygon 的形状和连接。所以你会看到某个 DRC 错误反复出现,改完走线再跑 DRC 还是老样子,就是因为铜皮本身一直是旧的状态。真正能改变铜皮形状的,只有 Polygon Pour 相关的重铺操作。
2.2 自动更新的开关:Pour Mode 到底怎么设置
Altium Designer 里每个 polygon 对象都有属性设置,里面有一个非常关键的参数叫Pour Mode,中文界面里通常叫“敷铜模式”。它有三个选项:
- Solid(实心敷铜):铜皮以完整的实心区域呈现,这是最常用的模式,适合大多数信号层和电源层。
- Hatched(网格敷铜):铜皮由网格线组成,常用于要求挠性、减少铜箔应力或者追求特定阻抗的场景。
- None(不敷铜):铜皮只保留边界和轮廓,不填充内部区域。很多设计者会用这个模式先看布局效果,最后再切回 Solid 或 Hatched。
这里最关键的坑在于:如果你当前 polygon 的 Pour Mode 是 None,那么无论你怎么修改周围的走线或板框,它在视觉上都“没有铜”,自然谈不上更新。你需要在属性面板里把它改回 Solid 或者 Hatched,然后执行一次重铺,它才会真正显示成铜皮。很多“不更新”的案例,最后查出来就是这种低级原因。
另外还有一个容易被忽略的选项叫Remove Dead Copper(移除死铜)。这个选项负责在重铺时自动删除那些没有网络连接、或者无法形成有效通路的孤立铜块。如果这个选项没开,就算你成功触发了重铺,也会发现板子上冒出了一堆“悬浮”的铜片,看起来就像敷铜没处理好。我的建议是,常规板子都把这选项打开,除非你有特殊需求,否则死铜留在板子上既影响美观,也对 EMI 性能没有好处。
2.3 Polygon Repour 弹窗:每次弹出来都要认真选
在 Altium Designer 里,你修改了某个 polygon 的属性,或者修改了板框之后,软件往往会在你点击确认时弹出一个Polygon Repour对话框,里面通常有三个选择:
- Yes:对所有受影响的 polygon 执行重铺。
- No:不执行任何重铺,保留现有铜皮。
- Cancel:取消当前操作,连修改都不生效。
这个弹窗是“自动更新”最常见的入口。很多赶进度的工程师,弹窗一出来就顺手点了 No,或者因为弹窗太频繁而直接勾选了“不要再问我”,结果后续所有的修改都不再有触发重铺的提醒,等于手动关闭了自动更新机制。等你把板子画完、出光绘之前才想起来敷铜没重铺,那场面真的非常酸爽。
所以这里我给一个非常实操的建议:不要轻易选择“Don't ask me again”这类选项。如果你已经点了,去 Preferences 里找到对应的确认弹窗设置,把它恢复回来。宁可每次多按一次鼠标,也比事后忘记重铺要强得多。当然,如果你对性能极度敏感,也可以在 Preferences 里专门设置默认行为,但前提是你清楚自己在干什么。
3. 关键操作盘点:怎么让 polygon 正确更新
3.1 修改后手动重铺的三种做法
手动重铺是最稳妥、最不容易出问题的方式。Altium Designer 提供了几个不同粒度的操作入口,你可以根据当前场景选择:
第一种是Tools > Polygon Pour > Repour All。这条命令会扫描整块板子上的所有 polygon,只要条件有任何变化,就全部重新计算一遍。优点是省心,缺点是板子大的时候会比较慢,我测量过一块 12 层、长宽都接近 300mm 的板子,全量重铺一次大概要十几秒,期间界面基本是卡住的。
第二种是Repour Selected。你先选中某个或某几个 polygon,然后在右键菜单或者对应菜单里执行重铺。这个方式适合只改了局部区域的场景,比如只调整了某个电源模块附近的走线,那我只重铺那一块就好,其他区域的铜皮保持原样,效率高得多。
第三种是Repour Modified(有些版本叫 Repour Changed)。这个命令我只在特定情况下使用,它会把最近一次修改所影响的 polygon 找出来重新计算。它比全量重铺快,比手动单选更精准,但对于一些关联关系比较复杂的板子,偶尔会漏掉一些间接关联的区域。所以如果你不是特别赶时间,我一般建议直接用前两种。
这里再补充一个快捷键的小技巧:如果你经常需要重铺所有敷铜,可以在菜单栏里看一下对应的快捷键提示,不同版本不太一样,有些版本可以直接绑定到自定义快捷键。我自己习惯把这个操作绑定到 Ctrl+Shift+P,因为我几乎每次改完走线都要跑一遍,鼠标多点几步太折磨人了。
3.2 设置自动重铺:Polygon Repour 弹窗怎么选
如果你希望减少手动操作,可以在软件里设置“修改后自动重铺”的触发策略。这个设置在 Preferences 里通常叫Polygon Pour相关配置,核心是 Default Behavior 或者类似命名的选项。不同版本路径略有差异,但基本思路是一样的:你可以设置当板框改变、网络改变、规则改变时,是否自动重铺,以及重铺的范围。
让我用一个实际场景来说明怎么选。我在做一个双面板项目时,板框相对固定,主要修改集中在元件位置和走线。这种情况下,我把“Board Outline Changed”设为自动重铺受影响 polygon,把“Network Changed”设为弹窗询问,把“Rule Changed”设为不自动重铺。这样折中之后,既不会因为频繁改规则导致反复全量重铺,又不会因为改了板框而忘记刷新铜皮。
但如果你是那种板框经常大改、还在探索布局阶段的设计,我建议先不要开自动重铺,保持手动模式。原因很简单:布局还没定,敷铜重算得太频繁,每次都要卡个十几秒,恨不得把手里的鼠标扔出去。等布局和走线都稳定了,再开启自动重铺,让软件帮你兜底。
3.3 OutJob 输出前强制重铺一次
这里额外提一个很多同学不知道的小技巧。Altium Designer 有非常强大的 OutJob(输出任务)功能,可以一键输出 Gerber、钻孔文件、装配图等等。你可以在 OutJob 的配置里加一个Polygon Pour相关的步骤,让它在输出前自动执行一次重铺。这样哪怕你在出图之前忘了手动刷新,软件也会在输出那一刻帮你兜底。
我个人的工作流是:主 PCB 文件里手动重铺,确认无误后,再跑一次 OutJob 输出,并在 OutJob 里开启“输出前重铺”的选项。双重保险下来,基本能杜绝那种“光绘文件里铜皮和板子对不上”的惨剧。如果你用的是旧版本,没找到这个选项,那就老老实实在出光绘之前手动跑一次 Repour All,别偷懒。
4. 原理图/PCB 联动时 polygon 不更新的真正原因
4.1 板框修改后为何没触发重铺
板框修改是最容易触发 polygon 不更新的场景之一,而且很多人都遇到过。我仔细排查过这个问题,发现原因往往不在 polygon 本身,而在于你“改板框”的方式有问题。
Altium Designer 里,板框通常是一个放在Mechanical Layer 1或Keep-Out Layer上的封闭图形。如果你只是用普通线条、圆弧拼凑出一个外形,而没有把这些线条定义成真正的 Board Outline 对象,那么在 polygon 的就计算逻辑里,可能压根不认识这个“新边界”。这时候哪怕你疯狂重铺,polygon 也只会按照旧的数据去算。解决办法是:用Design > Board Shape > Define Board Shape from Selected Objects(从选中对象定义板形)命令,把你画好的板框线条正式定义成板框,然后再去重铺。
另一个常见的坑是:板框改完之后,图层上残留了旧的板框线条。视觉上你看到的是新板框,但 polygon 计算时可能同时参考到了新旧两组边界,结果出现了莫名其妙的敷铜缺口。这个排查起来比较费眼神,我建议你在修改板框之后,先隐藏非必要图层,只留下板框层和敷铜层,看一眼是否有多余线条,有的话就删掉,再执行重铺。
4.2 网络变化 / 规则变化后如何强制重铺
网络变化通常来自原理图同步。你在原理图里加了几个网络,导入 PCB 后,某些 polygon 的网络归属可能需要更新,但软件不会自动去管这件事。尤其是当你把 polygon 归属到某个电源网络,而原理图里这个网络被重命名了、合并了,polygon 可能会直接处于一种“找不到网络”的挂起状态,看起来就像一块废铜。
遇到这种情况,最直接的方法是选中所有 polygon,在属性面板里重新指定网络,然后执行 Repour All。如果网络数量多,一个一个改太痛苦,可以写一个简单的脚本批量处理。Altium Designer 支持基于 DelphiScript 或者类似脚本语言的定制化操作,几条循环语句就能把所有 polygon 的网络统一设置完。我在 26 版上试过一些社区里流传的快速敷铜脚本,整体还是比较稳定的,用之前先在小项目上验证一下就行。
规则变化同样需要重铺才能生效。比如你调整了一个电源网络的隔离间距规则,把 Clearance 从 0.2mm 改成了 0.3mm,如果你不执行重铺,铜皮上仍然保留着 0.2mm 的隔离带。这种问题在 DRC 里特别容易误判,因为 DRC 是基于新规则去检查的,而敷铜本身还是旧规则的产物,于是就会出现“敷铜隔离距离不够”的报错。你只要重铺一次,报错立刻消失。所以记住一个口诀:规则改了,敷铜必须跟着重铺;器件走了,敷铜必须跟着重铺;网络变了,敷铜还是必须重铺。
5. 实战避坑清单:经验与排查技巧
5.1 从设计端避免 polygon 更新陷阱的经验
说实话,polygon 更新问题看似是操作问题,本质上往往是设计习惯问题。我自己踩过几轮坑之后,总结出了一套能大幅减少 polygon 相关烦恼的工作流:
第一,敷铜永远放在走线完成之后。不要在布局没稳定、走线还在频繁调整的时候就急着铺铜。你以为铺完就完事了,实际上每一根线微调都可能让铜皮失去意义,最后你只能一遍一遍手动重铺,白白浪费时间。先把所有需要细化的走线弄完,再进入敷铜阶段。
第二,把 polygon 分块管理,不要一上来就是一整板“大锅盖”。我会按照电源区域、模拟区域、数字区域把铜皮拆成几个有针对性的 polygon,每个 polygon 单独设置网络和隔离规则。这样做的好处是,某一个区域改动时,我只需要重铺对应的那一块,不需要整板都跟着重新算。尤其是那种混合信号板,分区敷铜对信号质量也更好。
第三,注意 Keep-Out 区域的设置。有些工程师在 Keep-Out Layer 上画了一些禁止布线区域,结果发现 polygon 在这些区域还是铺进来了。这通常是因为 polygon 属性里的Layer设置和 Keep-Out 的约束对象不匹配。你需要确保 Keep-Out 对象被正确识别为禁止敷铜的轮廓,最简单的方法是用 Design > Board Shape 去定义板框,同时把 Keep-Out 区域在属性里明确设置为“所有对象禁止”。
5.2 排查思路速查表
为了方便你遇到问题时快速定位,我整理了一个排查表,按“现象 → 检查点 → 解决动作”列出:
| 现象 | 优先检查 | 常用解决动作 |
|---|---|---|
| 改了走线,polygon 没变化 | Pour Mode 是否为 None | 改为 Solid,执行 Repour All |
| 改了板框,polygon 抱旧边界 | 板框是否真的被定义成 Board Outline | 用 Define Board Shape from Selected Objects 重建板框 |
| 网络变了,polygon 像没感知 | polygon 当前网络归属是否失效 | 重新指定网络,Repour Selected |
| 规则改了,仍然报隔离错误 | 是否执行过重铺 | Tools > Polygon Pour > Repour All |
| 整个板子出现大量死铜 | Remove Dead Copper 是否开启 | 勾选 Remove Dead Copper,重铺 |
| 弹窗被关,之后一直不提醒 | Preferences 中的确认弹窗是否被禁用 | 恢复弹窗提醒,或手动定期重铺 |
这张表看着简单,但很多时候问题就出在“忘了重铺”这个最朴素的点上。你先对照表格走一遍,大概率能解决九成的问题。剩下那成,再考虑是不是软件配置、库文件或者脚本兼容性的问题。
5.3 工具链建议:敷铜脚本和 AD 的版本选择
Altium Designer 版本迭代很快,从 20 版到 26 版,很多功能入口和界面布局都有变化。我个人的感受是,新版在敷铜计算效率和显示性能上确实有提升,尤其是在大板子、高密度设计场景里,差距非常明显。如果你手头的项目经常是多层板、上千个网络,建议尽量用较新的版本,不要守着老版本不放。老版本也不是不能用,但遇到复杂 polygon 时那种卡顿感,真的会让人工作效率减半。
关于脚本,我建议初学者先别急着上各种“一键敷铜”脚本。先用好内置功能和快捷键,理解 polygon 的属性和重铺逻辑,再考虑用脚本批量处理。社区里确实有一些快速敷铜脚本能自动帮助设置网络、批量重铺,但脚本的参数往往跟你的设计习惯有关,盲目套用可能适得其反。我用过的几个脚本里,比较靠谱的是那种功能非常单一的小脚本,比如“选中所有 polygon 并设置网络”、“批量重铺所有 polygon”这种,逻辑简单、出错率低。你在导入任何外部脚本之前,先备份项目,万一出了问题也好回退。
另外提一句元件库的事情。敷铜要正确连接,离不开可靠的元件库和焊盘模型。如果某个元件的焊盘网络定义有问题,那么 polygon 在重铺时可能无法正确连接到这个焊盘上,形成一种“看着连着,实际没连”的假象。我在做电源模块时遇到过几次这种问题,最后排查下来都是库里的焊盘 X/Y 位置偏差导致的。所以,保持元件库的整洁和准确,也是减少 polygon 异常的重要一环。
5.4 一个我踩过的大坑:改完规则没重铺直接出光绘
最后分享一个真实案例。有一回我做一个四层板,客户中途要求把某个高速信号网络的隔离间距从 0.15mm 加宽到 0.25mm。我当时正在赶时间,直接在规则管理器里改了数值,然后看了一眼 DRC 没问题,就直接出光绘送板了。结果板子回来之后,用放大镜一看,那个高速网络旁边明显有一段敷铜距离不对,铜皮几乎贴到了走线上。幸运的是没造成短路,但隔离间距不达标,在量产阶段可能出现可靠性隐患。
那次之后我给自己定了一条铁律:任何规则修改,哪怕只是改一个数字,也必须立刻执行一次 Polygon Repour,并且重新跑一遍 DRC。没有例外。有时候你觉得“我就改了个数字而已,不至于吧”,但 Altium Designer 的敷铜计算不会因为你改得小就自动更新,它一视同仁。这条铁律看着麻烦,实际上习惯之后也就是按两个快捷键的事,但它替我省掉的返工成本,远远超过那几秒钟的操作成本。
另外还有一个经验:敷铜重铺完不要立刻出光绘,先看一眼 3D 效果。很多时候平面视图看不出的问题,比如铜皮跟元件的三维干涉、过孔跟铜皮的连接关系,在 3D 视图里会一目了然。哪怕你只是简单旋转一下板子,扫一眼,也能发现不少隐藏雷区。特别是那些带散热焊盘的大器件,3D 视图里能直观看到敷铜区域是否连接正确,是否有多余的铜皮搭到了不该搭的地方。
6. 最后再分享一个小技巧
上面聊了这么多机制、操作和排查,可能有点密了。最后一个环节,我讲一个我自己很喜欢的小技巧:在 polygon 属性面板里设置好 Thermal(热焊盘)连接方式之后,记得单独保存一份命名清晰的敷铜规则模板。每次新项目开局,直接调用模板,省去重复设置的时间,也避免不同项目之间敷铜规则存在细微差异导致后续调板时踩坑。
我自己平时会维护一个常用的敷铜规则文档,里面写清楚常用的隔离间距、热焊盘连接宽度、最小连接面积等参数,还会附上适用场景说明。比如电源网络隔离间距通常取 0.3mm 到 0.5mm,高频信号网络可能更宽松,但也不是越大越好,因为太大会挤出铜皮面积,影响载流能力。这些经验值看起来不起眼,等你画了很多板子之后就会发现,它们才是真正决定板子性能下限的东西。
回到最初的问题:“为什么修改后 polygon 不会自动更新?”答案其实不复杂——它天生不会无脑自动更新,你需要了解它的触发机制、设置好你的重铺习惯、并养成规则修改后必重铺的肌肉记忆。把这一点想透之后,你在 Altium Designer 里的敷铜操作就能稳稳当当,不再被各种“反直觉”现象搞得焦头烂额。希望这篇避坑指南能帮到你,也欢迎你在自己的项目里验证这些经验,找到最适合你的工作流。