在执行更新时,在属于类和区域的地方把前面的钩去掉,如图所示。

辛辛苦苦在PCB里建好的DDR_Data类,给这组线单独设了等长规则,原理图那边改了个电阻值,更新一下,类没了,等长规则也没了,DRC跑出来一堆长度不匹配。
问题出在ECO更新机制上。AD的逻辑是原理图权威,Update PCB Document的时候它会拿原理图跟PCB逐项对比,原理图里没有的东西它认为是多余的,直接删掉。类和Room规则是你手动在PCB里建的,原理图里根本没有,更新一轮全被清掉。原理图只关心哪个元件的哪个脚连到哪,它不管你为了等长或者阻抗控制设的那些规则。
关键的操作在Update PCB Document弹出来的Engineering Change Order对话框里。点Validate Changes之前,先看差异报告列表,找到跟类和Room相关的条目,前面有个勾选框,把勾去掉。勾着的话AD就认为这些规则要删,去掉之后它在更新过程中就不动这些规则。这个动作应该在点Execute Changes之前做,等执行完了再想起来已经晚了,规则已经删掉了。

项目选项里有个一劳永逸的设置,Project→Project Options→Comparator选项卡,最底下有个Ignore Rules Defined in PCB Only,把它勾上。这个选项的作用就是在对比过程中把只在PCB里定义的规则排除掉,以后每次更新都不用再去ECO对话框里手动取消勾选了。很多人不知道这个选项,每次更新都手动去取消,几十个规则一个个点,费时间还容易漏。
Room规则是另一套丢失逻辑。原理图里如果创建了Room,更新的时候AD会尝试把Room推送到PCB,PCB里如果已经有一个同名的Room,位置和规则都不一样,AD可能覆盖也可能删掉你原来的。如果PCB里没有对应的Room,更新的时候会被报Room not found。不用Room布局的话,在Comparator里把Room相关的比较项设成Ignore,或者在Import Changes对话框里取消勾选Add Rooms,两个办法都行,前者是永久设置,后者是当次有效。
网络颜色丢失跟类规则丢失是同一类问题,网络颜色也是PCB端的设置,原理图里没有。Comparator选项卡里Network Differences分组下面有一个Changed Net Colors项,Mode栏默认是Update,改成Ignore Differences,更新的时候就不动颜色了。这跟Ignore Rules Defined in PCB Only是两回事,那个管类管规则,这个管颜色,两个都要设。
已经丢了怎么恢复。最直接的办法是重新设一遍,但如果规则多的话费时间。之前有备份的话从备份的pcb文件里把规则导出来,Design→Rules,右键Export Rules,存成一个.Rul文件,然后在新文件里Import进去。定期导一份规则文件存到D:\AD\rule_backup\下面是个好习惯,每次大改动之前导一次,名字带上日期。没备份的话只能从头再设,设完第一时间导一份出来。
Compiler那个绿色报错弹窗跟规则丢失没关系,那个是原理图的电气规则检查,跟PCB的规则管理器是两套东西。有人看到绿色报错以为规则丢了,其实是编译报错,改完原理图重新编译就消了。规则管理器里的东西在PCB端,Compiler在原理图端,分开看。
上次做射频板的时候就是忘了勾Ignore Rules Defined in PCB Only,原理图改了个匹配电容,一更新,射频区域的Room规则全没了,禁止布线区也没了,走线直接铺到天线下面去了,DRC报了一堆间距错误才发现。那次之后每次更新之前先把那个选项检查一遍,ECO对话框里看一眼差异列表,确认没有类和Room相关的条目再点执行。D:\AD\rule_backup\下面放一份最新的.Rul文件,下次把Comparator选项卡里所有跟规则相关的比较项整理一个完整列表,还有几个比较项不太确定是……
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删