ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

Cadence Allegro 过孔替换与 Padstack 批量修改指南

Cadence Allegro 过孔替换与 Padstack 批量修改指南 板厂在评审会上甩过来一句话你们这个 0.2mm 的孔我们最小只能钻到 0.25mm要么改孔径、要么换厂。这种场景做硬件的人多少都遇过一两回——要么是 DFM 反馈孔径太小要么是布线挤不下需要缩过孔要么是抄别人的参考设计、想统一整板的过孔规格。这时候整板几百上千个过孔都得换一遍手工一个个点是不现实的。在 Cadence Allegro 里待久的人会有个共识Allegro 并没有一个叫过孔类型的独立对象你能操作的只有 Padstack焊盘堆栈。所谓替换过孔类型本质上是问一个问题——怎么把设计里已经存在的那些 padstack 实例换成另一个 padstack同时不把板子搞乱、不把约束搞乱、不把出图搞乱。这个问题看似简单实际牵扯到约束管理器、Find 筛选、盲埋孔层对、铜皮避让、钻孔表等一长串东西。下面把我在实际改板中摸索出来的一套流程摊开讲从概念到操作到踩坑尽量让你照着做就能复现。1. 过孔在Allegro里到底是什么Padstack、Via与约束三者的分工1.1 过孔不是图元是Padstack的一个实例很多人第一次在 Allegro 里试图改过孔时会下意识去找类似属性或者编辑尺寸的入口结果找了半天没找到。原因是 Allegro 的对象模型里过孔Via只是一个使用中的 padstack 实例。真正定义这个过孔长什么样、钻多大、焊盘多大、内层和外层的隔离盘各是多少的是那个后缀为 .pad 的 Padstack 文件。一个标准的过孔 padstack 里包含这些内容Drill 页的钻孔直径、是否金属化Plated、钻孔偏移Layers 页里 BEGIN/END 层和 INTERNAL 层的 Regular Pad、Thermal Relief、Anti Pad再加上 Soldermask Top/Bottom、Pastemask 等。过孔通常盖油soldermask 不开窗如果是需要测试点的过孔才会单独处理。所以你在画布上选中一个过孔右键改它的任何尺寸都是徒劳的——它自己没有尺寸它只是引用了via8_16这个 padstack。要改就得改 padstack 定义或者换一个引用。这也是下一节要讲的核心分歧点。命名上行业里有个默认习惯via8_16表示钻孔 8mil、焊盘直径 16mil换成毫米制就是via0_2_0_4表示钻孔 0.2mm、焊盘 0.4mm。建议在项目里把命名规范定死别出现via1、via_new、via_test2这种名字改板的时候你根本不知道哪个是哪个。1.2 Via List与Physical约束谁在管用哪个过孔Allegro 里这一层走线应该用哪些过孔这件事是由约束管理器管的。路径是Setup Constraints Constraint Manager进去后看 Physical 那一栏展开 All Layers找到 Physical Constraint Set。每个约束集里有一列叫Vias点开那个小按钮会弹出一个对话框左边是 Available库里可用但没启用的过孔右边是已经放进这个约束集的过孔列表。这里有个非常关键的细节右边的顺序就是优先级顺序也是布线过程中用快捷键默认是 Shift 鼠标滚轮切换过孔时的切换顺序。很多人只知道 Via List 能限制布线用的过孔种类不知道顺序有用结果走线的时候切换过孔切得莫名其妙因为顺序是随手加进去的顺序。约束集是可以复用和继承的一个设计里通常会有多个 Physical Constraint Set按网络类Net Class分配。所以改过孔这件事如果走约束这条路影响的只是以后新布的线对已经存在的过孔没有任何作用。这是新手最容易误解的一点我在第 4 节会详细拆。1.3 两种替换的本质区别换实例 vs 改定义把所有方法归一下类其实只有两条路线。第一条路线是换实例设计里那 300 个过孔原本引用via8_16现在让它们改引用via10_20。padstack 文件本身不动动的只是谁在用谁。这条路线的好处是精确可控可以只换一部分过孔坏处是如果设计里有 5 种 padstack 都要换你得操作 5 次。第二条路线是改定义直接把via8_16这个 padstack 文件本身的钻孔和焊盘改掉那么所有引用它的过孔还没改之前的全部会同时变化。这条路线看起来最省事但风险也最大——如果同一个 padstack 名字被某些引脚Pin复用了那引脚也会跟着变。虽然规范的设计里引脚和过孔不会共用 padstack但在接手别人做的设计时你无法保证这一点。两条路线各有场景。板厂只反馈孔径不够且整板只有一种过孔那改定义最快如果是要把电源区域的过孔单独放大、把 BGA 区域的过孔缩小那就只能走换实例这条路而且要能精确筛选。路线操作对象影响范围典型场景换实例画布上的过孔对象只影响被选中的过孔局部放大电源孔、缩小 BGA 区过孔改定义Padstack 文件所有引用该 padstack 的对象整板统一调整孔径2. 动手之前替换过孔必须做的三项准备2.1 备份与Database Check一次替换可能牵动整板在 Allegro 里做批量替换我个人的习惯是先把当前的 .brd 文件另存一个版本命名上加日期后缀。原因很直接批量替换是不可逆的而且它可能连带触发的连锁反应远超预期——铜皮避让重算、DRC 大面积刷新、钻孔表变化。备份完成后先跑一次Tools Database Check。这个动作有两个作用。第一如果你的设计里本来就有一些数据库层面的小毛病比如被强行删除的孤儿对象、失效的 padstack 引用替换过程中很容易被放大成报错。第二DBDocotor 跑完之后你心里有底后面出现的错误一定是刚刚这次替换引起的排查方向明确。还有一个常被忽略的准备确认Setup Design Parameters里的单位制。Padstack 有自己的单位定义Mils / Millimeter / Inch当 padstack 单位和设计单位不一致时Allegro 会按定义单位换算读入不会报错。但如果你在 Pad Designer 里改参数的时候脑子用的是另一套单位做出一个钻孔 0.2mil的过孔是完全可能的而且它在画布上看着就是一个小到几乎看不见的点不容易发现。统一单位这件事听起来很基础但返工的时候往往就栽在这。2.2 Find面板与Selection连过孔都选不中的原因我明明点了那个过孔为什么没反应这是关于 Allegro 过孔操作最高频的疑问没有之一。答案几乎永远是 Find 面板。Find 面板通常在右侧如果没显示就用Display Find打开里有一串对象类型的勾选项Pins、Vias、Clines、Shapes、Symbols 等等。默认状态下 Vias 常常是没勾的所以你点上去什么也选不到。要去操作过孔第一件事就是把Vias勾上。但这里还有第二层坑。如果你为了选过孔把All On全勾了那么当鼠标附近同时存在走线和过孔时Allegro 会按内部的优先级去判定选中谁实测下来经常选中走线而不是过孔。所以更稳妥的做法是只勾 Vias必要时把 Clines、Pins 都取消。如果你需要一次操作多个对象再按需要逐个勾回。第三层坑是 Selection 的Temp Group用法。当你想一次选十几个不连续的过孔时一个一个点很容易点漏。这时可以点 Find 面板上方的Temp Group在 Edit Change 这类命令激活状态下会出现然后把这一批过孔全部点选最后右键Complete结束选择。这个操作在批量替换时能省掉大量重复劳动。2.3 把库路径和单位确认清楚避免找不到Padstack替换过孔的时候Allegro 会去库搜索路径里找那个新的 padstack。如果库路径没配好你会得到一个很难理解的提示Padstack not found或者Not a valid padstack for this design。库搜索路径在Setup User Preferences Paths Library里配置也可以在.env文件里通过padpath和psmpath指定。这两个变量的区别值得记一下padpath指向的是 padstack.pad 文件的搜索路径psmpath指向的是封装符号.dra/.psm的搜索路径。替换过孔用的通常是padpath。实际操作中我建议把项目用到的所有 padstack 复制到一个项目本地目录然后把padpath指向它而不是依赖全局的共享库路径。这样做的原因是共享库经常被别人改动你今天看到的via10_20和三个月后别人手里的via10_20很可能不是同一个东西板子改到一半发现库变了那是很麻烦的。替换前的一个快速核对清单新的 padstack 文件确实存在于padpath覆盖的目录中padstack 的钻孔设置里 Plated 是勾选的过孔必须金属化除非是纯结构孔padstack 的层对Start / End Layer与设计叠层一致单位制与设计一致或换算无误3. 单个过孔替换从右键到Replace Padstack的完整链路3.1 操作步骤与Options面板参数说明先说最常用的单点替换路径。步骤拆开是这样打开 Find 面板只勾Vias其余全部取消。在画布上左键点击目标过孔选中后过孔会被高亮。在选中的过孔上右键选择Replace Padstack。部分版本这个菜单项在右键菜单靠下的位置需要展开。弹出的Replace Padstack对话框里会列出当前库里和设计中可用的 padstack 列表也可以切换筛选条件按 Library 或按 Design 中已有的。选中目标 padstack确认。过孔立即变成新规格。如果你要替换多个过孔可以在第 2 步先用Temp Group把这一批过孔全选上再右键替换。Allegro 会一次性把这些过孔全部换成新 padstack。实际使用中有个细节值得注意右键菜单里的Replace Padstack是否出现取决于你当前是否处于某个命令状态下。如果当前停留在某个正在进行中的命令比如正在布线右键菜单会变找不到这个选项。退出当前命令按 F2 或者点空白处右键 Done再操作。3.2 替换顺序为什么建议先大后小如果是批量替换尤其是过孔尺寸有增有减的情况我建议先处理放大的那批再处理缩小的那批。理由和铜皮避让有关。过孔放大时它占用的空间变大需要重新向外挤走铜皮、走线可能需要绕如果此时还有其他过孔还没处理DRC 会先报一批错误但那些错误本来就是预期的你做完缩小操作之后会自动消掉。反过来如果先缩小再放大会经历一轮DRC 全绿到DRC 又红一片的过程中间状态会干扰你的判断尤其在有几百个错误的时候你很难分清哪些是替换本身带来的、哪些是原本就存在的。另外如果放大后的过孔会导致走线需要重新绕那就不是替换过孔能解决的了得先调整布线。这种情况提前用 DRC 检查一遍更划算。3.3 替换后必须立刻做的三项检查替换完不要急着继续下一步先做三件事。第一跑一次Tools Reports DRC Report把错误数量记下来。别只看有几个错误要看错误类型的构成。单纯的数量变化说明不了什么但如果出现了新类型比如从没有 Line to Line 变成有一堆 Line to Line那就说明新过孔的间距不够。第二用Display Status或者直接看状态栏确认飞线、未连接引脚的数量没变。这个检查是为了防止替换过程中因为误操作比如不小心把过孔删了导致网络断开。飞线数量突然增加基本就是有连接被切断了。第三把鼠标悬停在替换后的过孔上或者用Tools Reports Selected Objects之类的方式确认新 padstack 名字确实是你要的那个。听着像废话但在使用Temp Group批量选择的时候误选到相邻过孔是常有的事。4. 批量替换按网络、按区域、按类型的四种打法4.1 Edit Change最快也最容易误伤的一种Edit Change是 Allegro 里通用的改属性命令在替换过孔上也能用。当 Find 里勾了 Vias 之后Options 面板会出现一个Padstack的区域让你指定目标 padstack。然后用鼠标框选或者点选过孔就会批量替换。这条路径的优点是操作连贯、可以用框选适合这一片区域的过孔全换掉这种需求。缺点也很明显框选的时候如果 Find 里还勾着 Clines 或 Pins很容易顺手把走线或引脚也一起改了而Edit Change对不同类型的对象的行为是不一样的改了走线可能改的是线宽或者层后果不可预期。用这条路我的习惯是只勾 Vias框选完成之后先看一眼状态栏或者高亮的对象数量对不对再确认执行。宁可多花十秒确认也别一口气改乱了再回退。Edit Change还有一个便利是可以配合Find By Name使用。如果你的过孔有属性Property标记或者你想按网络筛选Find By Name里可以按 Net 名来定位过孔然后一次选中整条网络上的所有过孔。这个技巧在处理电源网络的时候特别好用——某个电源网络的过孔统一从via8_16换成via12_24按网络名筛选一次搞定不用手点。4.2 Constraint Manager改Via List只对新布线生效的那半截方案前面提过在 Constraint Manager 的 Physical 约束集里改 Via List只影响新布的线。这个结论必须强调因为太多人以为改完 Via List 之后已有过孔会自动更新。它不会。那这个操作有什么用两个用途。一是配合Edit Change使用先把新的via10_20加进物理约束集的 Via List保证它排在第一位然后批量替换过孔时就可以直接在 Options 面板里选到它不用每次去库里翻。二是保证后续新增的布线也会用新规格避免改完之后新布的线又用回旧过孔导致板子上两种规格混杂。顺便说一个使用细节Via List 的顺序会影响布线时的自动过孔选择。走线过程中在线上双击或者按默认快捷键放置过孔时Allegro 会按 Via List 的顺序取第一个满足当前约束的过孔。所以你把常用的小孔排在前面、大孔排在后面是一个很顺手的配置。4.3 Tools Padstack Modify Design Padstack原地改定义这条路径改的是 padstack 定义本身属于前面说的第二条路线。打开Tools Padstack Modify Design Padstack会弹出一个列表列出设计里当前用到的所有 padstack。选中一个可以点Edit用 Pad Designer 打开它改参数比如把钻孔从 8mil 改成 10mil焊盘从 16mil 改成 20mil也可以点Replace把它整体替换成另一个 padstack。这个对话框里有个必须注意的地方修改或替换的时候会有作用范围的概念是作用于整个设计、还是只作用于当前选中的那些。在较新的版本里如果画布上先选中了一批过孔再进这个对话框操作范围会跟着变化。行为在不同版本之间有差异动手之前务必用一个小测试板先验证一遍或者在替换后立刻检查全板的 padstack 使用情况。我个人的使用建议是Modify Design Padstack更适合整板统一调整这种明确场景比如整板孔径全部加大 2mil。局部调整还是老老实实用Edit Change或者右键替换可控性更高。另外要注意这个操作会同步影响用到该 padstack 的引脚——虽然规范设计里过孔和引脚不会共用但接手别人的图时先查一遍这个 padstack 到底被哪些对象引用了再动手。4.4 Skill脚本批量处理思路与注意事项如果需要处理的过孔数量很大而且替换规则比较复杂比如所有 8_16 的过孔如果它连的是电源网络就换成 12_24否则换成 10_20脚本是唯一现实的选择。Allegro 提供了一组数据库级别的 API。其中axlDBChangeDesignPadstack这个函数可以把设计中某个 padstack 整体替换成另一个适合全设计统一换的场景。函数名和参数在 Cadence 的 SKILL 帮助文档里有明确说明动手前建议在安装目录下的doc里核对一遍当前版本的签名因为不同版本之间 API 的返回值和容错行为可能会有调整。下面是一个思路示意真正的实现需要按你的网络筛选条件补全; 批量把设计中的 via8_16 替换为 via10_20示意函数细节请核对当前版本 API 文档 (oldPad via8_16) (newPad via10_20) when(axlDBGetPadstack(oldPad) axlDBChangeDesignPadstack(oldPad newPad) axlMsgPut(替换完成: %s - %s oldPad newPad) )如果是按条件筛选后替换思路是先遍历设计中的所有过孔对象对每个过孔读取它所属的网络名或者位置坐标判断是否满足条件然后调用替换 API。这种脚本的要点是逐条处理并记录日志而不是静默执行。一旦某个过孔因为层对不匹配之类的原因替换失败日志能告诉你失败的是哪一个、在哪一层否则你面对的就是一个看起来没生效但也不知道为什么的局面。脚本跑完一定要重新打开文件或者跑一次Database Check确认数据结构的完整性。有些脚本在内存里改了对象但没有触发数据库重建索引会导致后续操作出现莫名其妙的问题。5. 通孔换盲埋孔Cross-Section与层对校验5.1 盲埋孔的适用场景与成本代价如果替换的目的是为了做 HDI把一部分通孔换成盲孔或者埋孔那事情的性质就变了。盲埋孔的 padstack 里最关键的参数是层对Layer Pair也就是这个孔从哪一层开始、到哪一层结束。层对信息在叠层设置里维护路径是Setup Cross-Section。在叠层表格里每一层有对应的类型Conductor / Dielectric / Plane而盲埋孔的层对就是在建 padstack 的时候指定的 Start Layer 和 End Layer。这里必须提前想清楚成本。普通的机械通孔板厂一次钻穿成本很低盲孔需要顺序压合激光孔需要激光钻孔设备层数越多、压合次数越多成本上升得越快。一块 6 层的 HDI 板换成带盲孔的方案价格翻倍是很常见的。所以在决定把过孔换成盲孔之前先问自己是真的布线挤不下了还是只是想让板子看起来更高级5.2 层对不匹配会报什么错把通孔替换成盲孔最常见的报错就是层对不匹配。典型的提示大意是 padstack 使用的层对与当前过孔所在的位置不一致。原因有两种一是新 padstack 的层对本来就没覆盖原过孔跨的层二是叠层顺序在改板过程中被调整过导致原来有效的层对现在失效了。还有一种更隐蔽的情况盲孔 padstack 的层对设置是对的但它的内层 Regular Pad 只在某一层定义了而实际使用中需要经过的其他层没有定义。这种情况下不会立刻报错但在出钻孔文件或者出光绘时会出现异常。所以在建立盲孔 padstack 的时候把涉及到的每一层都检查一遍别偷懒。5.3 HDI叠层下的替换顺序做盲埋孔方案时替换顺序建议从最内层往外做先处理埋孔内层之间的再处理盲孔外层到内层的最后处理剩下的通孔。原因还是和中间状态的可观察性有关——埋孔影响的层数最少改完之后 DRC 的反馈最干净盲孔涉及外层会影响外层铜皮的避让通孔涉及全层改一次全板刷一次。同时强烈建议在替换过程中随时保存不同的版本。HDI 改板一旦出错退回去重新做的工作量非常大多个中间版本能让你在发现方向错了的时候迅速回退。6. 替换完不等于收工DRC、铜皮、泪滴与出图验证6.1 DRC与约束的复核清单过孔换完了画面上看着挺顺眼但这不代表板子没问题。约束层面的复核至少要覆盖这几项。间距类Line To Line Spacing、Via To Via Spacing、Shape To Via铜皮到过孔、Hole To Copper孔壁到铜。其中 Hole To Copper 是最容易被忽略的一项因为它属于制造工艺层面的约束很多设计的规则文件里根本没配。如果你的规则里配了这项替换过孔后孔径变化这一项会立刻响应。同网络间距Same Net Spacing 这一类规则在很多项目里是放开的但过孔放大之后同网络过孔之间的距离可能小于工艺能够制造的极限。出图之前最好手动核对一遍密集过孔区域。载流相关这一项 DRC 不管。换过孔之后如果孔径变小载流能力会下降电源网络要单独算一遍。经验上 0.25mm 孔径的过孔大约能过 0.8A 到 1A 左右具体和铜厚、温升要求、孔长都有关系不同板厂给的参考值会有出入0.5mm 孔径能到 2A 左右。这些是粗略的工程参考重要项目还是要按 IPC 的载流图表核算。6.2 铜皮与负片层的重新避让正片铜皮Positive Shape对过孔的避让取决于 padstack 的 Anti Pad 尺寸和 Physical 约束里的 Shape To Via 间距规则Allegro 取两者中较大的那个值。过孔放大之后如果 anti pad 也跟着变大铜皮需要重新避让。Allegro 的铜皮有 Disabled / Outline / Smooth 三种显示状态。改完过孔后铜皮有可能停留在 Outline 状态只显示轮廓需要用Shape Manual Update或者进入 shape 编辑模式手动更新到 Smooth。这一步不做出光绘的时候铜皮就很可能是错的。这是我最想提醒的一条——因为 Outline 状态在屏幕上看是有东西的不仔细看根本发现不了。负片层Negative Plane的处理不一样。负片层上的隔离盘是反着画的过孔变大之后负片层的反焊盘会自动按新 padstack 重算但热焊盘Thermal Relief的连接臂宽和开口需要单独确认。如果你的过孔本来是要和电源平面直连的替换之后可能变成了热焊盘连接或者反过来这一项要专门看一眼。6.3 光绘、钻孔表与板厂沟通最后是出图环节。过孔换了之后至少三样东西需要重新生成。钻孔表Drill LegendManufacture NC Drill Legend。孔径变了钻孔表的条目和数量都会变用旧的那份发给板厂人家按错误的孔表打样板子直接报废。钻孔文件NC DrillManufacture NC NC Drill。这个是给数控钻机用的实际加工文件必须重新生成并核对一遍孔径列表。有个习惯值得养成生成之后打开文件确认一下里面出现的孔径种类和你预期的是否一致。有一次我替换完只检查了钻孔表没看 NC 文件结果发现有一种旧孔径残留了下来原因是有一批过孔没被选中。光绘文件GerberManufacture Artwork。各层都要重新出。出完之后如果有条件用 Gerber 查看工具把每一层的过孔画面叠起来看一眼确认外层焊盘、内层隔离盘、钻孔三者同心尺寸对应。跟板厂沟通的时候把这几项一次性说清楚最小孔径、最大纵横比板厚除以孔径常规工艺建议控制在 8:1 以内10:1 已经很常见但价格会上浮超过 20:1 属于特殊工艺、最小孔环单边建议不小于 0.1mm0.05mm 属于极限、孔到铜的最小距离。把这些数字提前对齐比改完板再来回沟通效率高得多。7. 替换之后才暴露的问题几条实打实的教训7.1 尺寸放大的连锁反应比想象中大过孔放大带来的影响不只是多占一点面积。它会影响三个层面。空间上它挤压相邻走线的间距如果原设计已经贴着规则下限放大几 mil 就会 DRC 报警。电气上它对高速信号的影响是可计算的——过孔的寄生电容经验公式是C ≈ 1.41 × εr × T × D1 / (D2 - D1)单位 pF其中 T 是过孔在板内的长度英寸D1 是焊盘直径英寸D2 是反焊盘直径英寸。取 εr 4.3、T 0.06 英寸、D1 0.024 英寸、D2 0.04 英寸算出来大约是 0.55pF这个量级在 5Gbps 以上的链路上是会说话的。寄生电感也有对应的近似式L ≈ 5.08 × h × [ln(4h/d) 1]单位 nHh 是过孔长度英寸d 是孔径英寸。同样取 h 0.06 英寸、d 0.012 英寸得到大约 1.2nH。把孔径从 0.3mm 缩到 0.2mm这个数字会明显变大对于高速信号的回流路径是要留意的地方。工艺上孔径变小会带来纵横比上升孔壁镀铜的均匀性变差可靠性风险随之上升。这也是为什么板厂对过小的孔总是很敏感。7.2 电源过孔不能只按数量够就行来算改过孔的时候信号孔和电源孔要分开对待。信号孔关心的是阻抗和串扰电源孔关心的是载流和压降。有些设计里电源过孔是一排十几个小孔并排挤在一起孔径缩了以后单孔载流下降加上孔与孔之间的热耦合温升会比单孔测试值更差。我的一般做法是先把电源网络上的总电流估算出来除以单个过孔的载流能力得到所需的最小孔数然后在这个数量上再留 30% 到 50% 的余量。替换过孔之后如果孔径缩了孔数不够就得补孔——补孔又需要空间可能又要重排布线这是改板时经常出现的循环。所以在决定缩小电源孔的孔径之前先把载流算清楚能省掉一轮返工。7.3 命名混乱导致的返工是可以提前避免的最后一条是关于工程管理的但它的实际影响一点不比技术问题小。改板过程中经常出现的场景是板子做了一半发现via10_20这个名字下有两个版本一个是 0.25mm 钻孔的一个是 0.2mm 钻孔的来自不同的库路径谁也不知道当前用的是哪一个。避免的办法是在项目启动阶段就把命名规则定下来并且写进文档命名里包含钻孔、焊盘、是否盲埋孔、层对信息。例如via_p0_25_0_50_th表示金属化 0.25mm 钻孔、0.50mm 焊盘的通孔via_buv_0_10_0_25_l1_2表示 0.1mm 激光盲孔、0.25mm 焊盘、第一到第二层。名字长一点没关系改板的时候一眼就能看明白比查半天库文件划算得多。另外替换完成后在板子上做一次统计Tools Reports里有 padstack 使用情况的报表跑一遍看看全板还剩几种过孔。正常情况下应该是你预期的那些种类如果冒出来一个没见过的那多半是某个角落有漏网之鱼趁早找出来处理掉别等出图的时候才发现。以上这些流程和坑都是我在反复改板中一个一个撞出来的。刚开始接触 Allegro 的时候我也以为换个过孔就是右键点一下的事真正做到第三次、第四次改板之后才明白这背后是对象模型、约束体系、制造工艺三条线交织在一起的问题。替换动作本身只占整个工作的两成剩下八成是替换前后的核对与验证。养成替换前备份、替换后跑 DRC 与钻孔表、出图前核孔径的习惯能挡掉绝大多数返工。
RELATED READING

延伸阅读

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