AD画PCB的底层逻辑:走线不是拉线,铺铜不是填色,DRC不是点按钮
你有没有遇到过这样的情况:
- 走线时明明看着间距够,DRC却报“Clearance Violation”;
- 铺铜重铺后,某个BGA焊盘突然“失联”,万用表一量——压根没连上GND;
- DRC全绿通过,板子打回来一上电,USB接口就干扰CAN总线,示波器上看满屏毛刺……
这些不是运气差,也不是手抖失误。它们暴露的是一个更本质的问题:我们把Altium Designer当成了“高级画图软件”,却忽略了它本质上是一套规则驱动的电气系统建模引擎。
走线、铺铜、DRC三者从来不是孤立操作,而是一个闭环反馈系统——规则定义意图,走线实现意图,铺铜固化意图,DRC验证意图是否被忠实执行。
下面,我们不讲菜单在哪、快捷键是什么,而是带你钻进AD的“内核”,看清楚每一笔走线背后在解什么方程,每一块铜皮如何被布尔运算裁剪,每一次DRC报错究竟在警告哪一层物理现实。
走线:不是拖鼠标,是在求解一个带约束的路径优化问题
很多人以为交互式走线(Interactive Routing)就是“鼠标点一下起点,再点一下终点,中间自动连上”。错了。AD根本没在“连线”,它在实时求解一个带硬约束的最短路径问题。
它的底层不是几何绘图,而是一套轻量级的增量式约束求解器,工作流程如下:
- 你按下鼠标左键那一刻,AD立即冻结当前所有设计状态:所有已布网络、器件位置、过孔尺寸、层叠结构、甚至当前光标所在层的介电常数(用于阻抗预估);
- 它瞬间构建一个“可行空间”——这个空间不是整块板子,而是剔除了所有违反规则的区域后的剩余体积:
- 不能进入Keep-Out Layer;
- 离开已有走线/焊盘/过孔的距离 ≥Clearance规则值;
- 不能跨过禁止布线区(如屏蔽罩投影);
- 若启用“Push Obstacles”,还需预留出能推开其他对象的缓冲距离(这一步实际消耗大量CPU); - 鼠标移动时,它不是在画线,而是在这个可行空间里,用改进版Dijkstra算法动态重算一条满足拐角策略(45°/90°/圆弧)、过孔策略(是否自动打孔、打多大)、线宽策略(当前网络绑定的Width规则)的最优路径,并实时渲染预览。
所以,当你发现走线“卡住不动”或“突然跳层”,不是软件卡了,而是当前鼠标位置在可行空间之外——可能是你刚拖过去的地方,刚好离某个散热焊盘太近,触发了Thermal