1. Allegro 166 里 Cline 到 Shape 不按 Region 避让,到底卡在哪
如果你正在用 Allegro 166 做 PCB 布局,大概率遇到过这个场景:板上画了一块 Region,本意是让 Cline 到 Shape 的间距按 Region 里设定的规则走,结果实际避让出来的间距还是按全局最大规则来的,Region 像是被无视了。原文作者把这种表现直接记为 166 的 bug,我实测下来确实如此——当 Region 没有把整个 Shape 完全包住时,Cline 到 Shape 的避让不会去读 Region 规则,而是回退到最大规则。
这个问题的麻烦之处在于,它不是报错,DRC 也不一定给你明显提示,你只是发现走线离铜皮的距离比预期大,或者该收紧的地方没收紧,板子空间被白白吃掉。对于密度高的板子,这种“隐性放大间距”会直接导致布线绕远、层数增加。
那为什么 172 上就没这个问题?因为 172 在 User Preference 里多了一个开关,勾上之后 Shape 的避让会去识别 Region 边界。166 没有这个开关,所以只能靠兜底方案。本篇的视角就是排障:先帮你确认现象,再给出 166 和 172 两条路,最后用 Codex 对照两版的设置差异,让你自己判断该往哪边走。
需要先说明一点:TaoToken 在这里只负责给 Codex 提供 Key 和通道,避让计算仍然是 Allegro 自己跑的,跟通道无关。你打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册、创建 Key,把 Codex 的 Base URL 填成 https://taotoken.net/api,就能让 Codex 帮你比对截图里的勾选路径。
2. 前置准备:TaoToken 给 Codex 供 Key 和通道
这一步只做一件事:让 Codex 能跑起来,后面用它来对照 166 与 172 的设置差异。TaoToken 的角色是供 Key 和通道,不参与任何避让逻辑,所以不用担心它会影响 Allegro 的计算结果。
先到官网注册账号,地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。注册完成后进控制台创建 API Key,控制台入口在 https://taotoken.net/console 。Key 创建后复制出来,注意别直接贴到公开仓库里。
接下来配置 Codex 的接入地址。Base URL 填 https://taotoken.net/api ,API Key 填你刚创建的那串。如果你用的是 Claude Code 这类工具,接入文档在 https://taotoken.net/doc ,里面有不同客户端的填法。想先验证模型通不通,可以打开模型对话页面 https://taotoken.net/chat 发一条消息试试。
注意:Base URL 只填到 /api 这一层,不要自己拼后面的路径,否则容易出现 404。Key 的权限按最小化原则给,只开你需要的模型。
如果你后面要长期用 Codex 做编码或 Agent 类任务,可以看下 Coding Plan 页面 https://taotoken.net/coding-plan ,按用量选合适的档位。这一步跟 Allegro 排障没有直接关系,只是顺手提一下,避免你每次都要临时建 Key。
配置完成后,Codex 就具备读图、比对设置的能力了。下面进入正题,先确认 166 的现象,再走 172 的设置路径。
3. 可复制配置:166 现象确认与 172 勾选路径
3.1 先确认 166 的现象
在 166 里复现这个问题,你需要一块 Shape 和一块没有完全包住它的 Region。操作顺序是:先画好 Shape,再在 Shape 局部区域画 Region,Region 的规则里把 Cline 到 Shape 的间距设成比全局更小的值。然后从 Region 覆盖的区域拉一根 Cline 靠近 Shape。
如果避让间距等于全局最大规则,而不是 Region 里设的值,说明你踩中了这个坑。原文给的两张对比图就是干这个用的:一张是 166 的错误避让,一张是 172 的正确避让。你把这两张图连同 User Preference 的截图一起丢给 Codex,让它帮你找差异,比你自己一页页翻菜单快得多。
3.2 172 的勾选路径
172 上的解法很直接,走 User Preference:
打开 User Preference 面板,左侧找到 Shape 分类,展开后选 General,在右侧列表里勾选Shape_void_cline_region,点 OK 保存。设置完成后回到板子上,重新 update 一下 Shape,再看 Cline 到 Shape 的避让,就会按 Region 规则走了。
这里的关键是“重新 update Shape”这一步不能省。很多人勾完开关发现没变化,就是因为 Shape 还是旧的缓存状态。update 之后避让才会重新计算。
3.3 166 的两个兜底方案
如果项目锁死在 166,没法升到 172,原文给了两个方案,我按可操作性排一下:
方案 A:把 Shape cut 成两块。让需要按 Region 规则避让的那部分 Shape 完全被 Region 包住。这样 166 在判断时,这块 Shape 的边界完全落在 Region 内,就会去读 Region 规则。缺点是切割会增加 Shape 数量,后期改板要同步维护。
方案 B:把 Shape 改成 Static 状态。Static Shape 在避让计算时的行为跟 Dynamic 不同,改成 Static 后 Cline 到 Shape 的间距也会按 Region 规则走。缺点是 Static Shape 不会自动避让更新,改完线要手动 update,适合改动不频繁的板子。
| 方案 | 适用版本 | 操作成本 | 后期维护 |
|---|---|---|---|
| 勾选 Shape_void_cline_region | 172 | 低 | 低 |
| Shape cut 成两块 | 166 | 中 | 中 |
| Shape 改 Static | 166 | 低 | 高(需手动 update) |
提示:方案 B 改 Static 之前先备份,Static Shape 在后续改线时不会自动重算,容易漏 update 导致间距不对。
4. 验证请求:用 Codex 对照 166 与 172 的勾选差异
配置好通道后,验证方式不是发 HTTP 请求,而是让 Codex 读你给的截图做比对。你可以这样组织输入:把 166 的避让对比图、172 的避让对比图、以及 172 上 User Preference 里 Shape General 的截图一起发给 Codex,然后问它“这两版在 Shape 避让 Region 规则上的设置差异在哪,166 缺的是哪个开关”。
Codex 会从截图里识别出 172 多出的Shape_void_cline_region勾选项,并指出 166 的 User Preference 里没有这一项。这一步的价值在于:你不用凭记忆去翻菜单,截图一丢,差异一目了然。
如果你还想让 Codex 帮你判断该走哪条路,可以补一句“我的板子密度高、后期改动少,166 和 172 哪个方案更合适”。它会结合你给的约束给出倾向,但最终决定还是你自己拍。
验证成功的标志是:Codex 能准确说出 172 的勾选路径是 Shape > General >Shape_void_cline_region,并且能指出 166 没有这个开关,只能靠 cut Shape 或改 Static 兜底。如果它答得含糊,多半是截图不够清晰,补一张 User Preference 的完整截图再问。
5. 本篇常见错排查
第一个常见错:勾了Shape_void_cline_region但没 update Shape,以为没生效。解决办法就是回到板子执行 update,避让才会重算。
第二个常见错:Region 没有完全包住 Shape,却指望 166 按 Region 规则走。这是 166 的固有限制,不是设置问题。要么把 Shape 完全放进 Region,要么走 cut 或 Static 方案。
第三个常见错:把 Base URL 填成了带具体路径的地址,比如 https://taotoken.net/api/v1/chat 之类,导致 Codex 请求 404。正确做法是只填 https://taotoken.net/api ,后面的路径由客户端自己拼。
第四个常见错:Key 权限开太大,或者把 Key 写进了会被提交的配置文件。建议单独建一个只用于 Codex 的 Key,权限按需给,配置文件加进 .gitignore。
第五个常见错:Static Shape 改完线忘了 update,DRC 过了但实际间距不对。Static Shape 不会自动避让,改完必须手动 update,建议在流程里加一步检查。
注意:以上排查都跟 TaoToken 通道无关,通道只影响 Codex 能不能跑起来。避让计算始终在 Allegro 内部完成,别把两者混在一起排查。
6. 该往 172 走还是走 166 兜底
判断逻辑其实不复杂。如果你的项目允许升到 172,直接走 172 的勾选路径,成本最低,后期维护也省心。如果项目锁死 166,看板子的改动频率:改动少、密度高,优先考虑 Shape 改 Static;改动频繁、需要动态避让,优先考虑把 Shape cut 成两块,让需要 Region 规则的部分完全被包住。
我自己的习惯是:新板子直接上 172,老项目如果只是小改,用 Static 兜底,改完手动 update 一遍。cut Shape 的方案我用得少,因为后期维护 Shape 数量多了容易乱。
如果你在配置 Codex 通道时卡住了,先去 https://taotoken.net/api-keys 确认 Key 状态,再看 https://taotoken.net/doc 里的接入说明。想先验证模型通不通,打开 https://taotoken.net/chat 发一条消息即可。长期做编码或 Agent 任务的话,https://taotoken.net/coding-plan 里有按用量的档位可以选。把截图丢给 Codex 对照这一步,实测下来能省掉大量翻菜单的时间,尤其是 166 和 172 菜单结构不一样的时候。