
位号乱成一团这种事干过原理图设计的都懂先说个场景一张板子画到第三版原理图从两页长到八页电阻电容一堆LED、接口、芯片每块功能都从库里拖出来就放位号完全是“出生顺序”。等到要出BOM、投板前整理放眼望去 R12 旁边是 R3C38 隔壁是 C9U5 和 U2 隔了三页纸。PCB 那边导网络表倒是能导但一查封装、一对 BOM整个人就开始在工程文件里反复找元件。这还算是能忍的最怕的是同一个位号出现在两张图上——编译直接给你飘红一片。这个问题的正经解法就是 Altium Designer 里最不起眼也最容易被低估的原理图元件自动编号Annotate功能。尤其是 AD20 之后的版本原理图编辑器里那一套Tools Annotation的菜单做位号自动排序、重排、复位非常成熟。花十分钟把规则设置清楚几百个元件的原理图一秒钟给你重新排得整整齐齐而且完全符合你的阅读和装配逻辑。这篇文章不打算只讲按钮在哪我想把位号排序这件事从原理讲到实操再到各种翻车场景都捋一遍。你如果画过多页原理图、需要出正规 BOM、或者被审图工程师疑问过“为什么你的位号是乱的”那这篇应该能给你省下不少时间。1. 位号为什么必须“重排”而不是仅仅“要有一个编号”很多新手会觉得位号这东西不就是 R1 R2 C1 C2 嘛能区分元件就行了为什么非要搞“自动编号”和“重新排序”这个想法短期没问题但等你项目复杂到一定程度就会明白位号秩序不只是给元件一个名字它是一条贯穿原理图、PCB、BOM 和装配的全链路索引线索。我给你拆成三个层面看。1.1 位号是原理图与 PCB 之间唯一的“共同语言”原理图上画的是一个个符号PCB 上放的是一个个封装。符号和封装长得完全不一样唯一的关联靠什么就是位号。当你从原理图导入 PCB 或者反过来从 PCB 回标到原理图工具匹配的逻辑就是“位号相同则视为同一个元件”。如果位号乱、或者更糟糕是有重复那么 PCB 导入时轻则错位重则直接报告 “Duplicate Designator” 之类的错误停在那里。平时手动画一两块小板子可能感受不深但一颗板上有数百甚至数千颗元件时这种混乱是要出大事故的。1.2 位号秩序直接决定选料和装配效率投板之后工厂那边是按位号来贴装的。位号排得越有规律备料员、贴片编程、手动补焊的人就越省事。假如一块电源板上电阻从上到下、从左到右依次是 R1 到 R40电容是 C1 到 C30那别人一眼就能知道“哦板上右下角那一排大概率是 R31 到 R40”。反过来如果位号是按你画图时的鼠标点击顺序生成的布局上根本没有规律产线工人补焊一颗料还要对着图纸找半天。审图工程师看到这种图纸第一印象就是设计者的工程素养不够——虽然这话有点苛刻但现实就是如此。1.3 位号重排是“可追溯性”的起点正规的研发流程里版本管理、ECN工程变更、故障溯源都要依赖位号。比如客户反馈“U3 温度异常偏高”如果你原理图上位号是乱编的别人拿到图纸根本分不清 U3 究竟在哪一块功能电路里。而如果你按功能区块和信号流向来重排位号U3 一看就知道属于主控核心区问题定位会快很多。所以“重新排序”这四个字的重点不是“排序”本身而是“让位号排列符合人的认知习惯与生产装配顺序”。这跟 Excel 里给几百行数据排个序是一个道理——数据本身没变但可读性和可用性完全变了。2. 自动编号背后的规则在哪里AD20 的 Annotate 菜单深挖AD20 的位号自动排序功能集中在两个入口菜单栏的Tools Annotation以及Tools Schematic Preferences或者从 Preferences 里的 Schematic Annotation 打开全局设置页。我见过不少人用过一次“Annotate Quietly”就认为会自动排好结果发现只是补了一下空缺编号位置顺序完全没变。这其实就是没搞懂自动编号里那几组选项各自管什么。2.1 Annotate 对话框里的四组核心设置当你点击Tools Annotation Annotate Schematics Quietly旁边的那个下箭头选Annotate...时会弹出一个对话框。里面四块内容缺一不可Scope范围决定对哪些图纸进行编号。常见选项有“All Schematics”所有原理图图纸、“Current Schematic”仅当前图页、“Selection”仅选中的元件等。如果你第一遍做整板编号基本就是选 All Schematics。Order of Processing处理顺序这里就是你“重新排序”的核心。里面有一堆方向选项Up Then Across、Down Then Across、Across Then Up、Across Then Down 等等下面我单开一节细说。Designator Index Control起始索引控制决定编号从几开始、按什么步进递增。一般就是 Start at 1、Increment by 1保持默认即可。不过有些公司规范要求位号按百位段分配比如电阻从 R101 开始就在这里改起始值。Match By匹配规则默认情况下 Altium 会按物理元件Physical Instance来匹配也就是“同一个逻辑元件在原理图上多次出现时只编一次号”。这个选项牵扯到多通道设计后面进阶部分我会讲。这四组设置配合使用你就能按自己的意志重塑整张图的位号秩序。想全图一起重排就选 All想只重排“当前选中区域”那就在原理图里框选元件之后再进对话框范围选 Selection这样其他图纸和区块的位号就完全不受影响。2.2 全局设置里的“Resets”和“Reorder”逻辑还有一个藏在 Preferences 入口的设置也值得注意在Tools Schematic Preferences也就是 Preferences 对话框里 Schematic 分类下的 Annotation 页面你会发现上面有 Reset Designators、Re-Order Designators 等按钮以及 “Remove Duplicate Designators” 之类的选项。这些其实是对编号状态进行“清零”和“清洗”的全局操作。Reset Designators 会把所有位号清除成问号状态比如变成 R?、C?、U?。这个步骤在很多重排流程里要故意先做一次目的是让所有元件的位号先归零然后再用接下来的规则统一编号避免旧位号残留干扰排序结果。记住一个关键点你先 Reset再做完整 Annotate才能得到“完全按要求从零开始”的编号。如果你不 Reset只是点 Annotate Quietly则只会在旧位号的基础上补号——很多时候这并不会让位号变得有规律。3. 实操完整做一次 AD20 位号重排的六个步骤我知道看理论容易犯困直接上操作。下面这套流程是我在常规项目里反复用过的每一步都带原因你可以直接照着抄。3.1 备份工程文件位号自动编号会影响原理图库中的元件实例属性虽说不至于炸掉整个工程但如果你操作错了方向、或者中途发现排序逻辑没设置对往回退是很麻烦的。所以第一步永远是File Save Project并顺手把整个工程目录复制一份或者用版本管理工具Git、SVN 都行提交一个现场快照。这不丢人是专业习惯。3.2 复位所有元件位号打开原理图工程进入任意一张原理图执行Tools Annotation Reset Schematic Designators。如果弹窗询问范围就选 All Schematics。执行完之后你去看原理图上面元件位号全部变成 R?、C?、U? 这种带问号的形式。这一步的意义是把之前可能已经乱掉的编号体系完全打碎让后续编号没有任何历史包袱。看到满图问号不要慌——这说明复位成功了。此时如果编译工程交叉参考列表里会显示一堆未编号元件这属于正常中间状态。3.3 配置排序规则方向、范围和起始值在确保复位完成后打开Tools Annotation Annotate...。如果只想对某一页做重排在左侧的图纸列表里就只勾选那一页如果是整板统一排就勾选所有图纸。注意最好让“当前打开并显示的图纸”是第一页或者你最希望作为编号起点的图纸因为某些排序方向在决定“从哪张图开始”时会有影响。Direction 这一行选 Down Then Across 还是 Across Then Down区别人我放在下一节讲。起步索引默认从 1 开始按 1 递增。3.4 点击 OK 执行编号并查看报告设置完成之后点 OK。Altium 会立即执行编号并在原理图上把位号全部更新。执行完强烈建议看一眼弹出的 Annotate Report 窗口——里面会列出元件总数、重新编号前后的映射关系Old Designator - New Designator。这个报告不是摆设核心价值是让你核对几件事总元件数量有没有异常比如凭空多了或少了位号切换是否合理特别是 FPGA 之类的大元件位号有没有被乱改是否存在任何报警Warnings或者错误Errors。如果报告里有 Warning别急着关。最常见的警告是 “Designators are already unique” 或者 “Part instances found with same physical designator”前者说明你没有重复位号不用管后者就需要注意了说明存在多个物理实例共用同一个位号的情况。真正出现这种情况时到 PCB 导入阶段基本必炸。3.5 验证电路连接与编译结果位号变了原理图电气连接本身不该有任何变化——如果 Altium 告诉你连接被修改那多半是你复位之后还没来得及编号就编译或者工程里有其他历史问题。验证的办法是Project Compile Document / Compile All。编译若无错误再打开Project Project Options Options里的“Netlist”或交叉引用相关项确认元件相关交叉引用都正常。我相信大部分人在这一层就能放心继续画图。3.6 检查 PCB 侧是否同步如果需要回标如果你已经画了 PCB位号重排之后PCB 上元件位号不会自动跟着变。你需要Design Update PCB Document更新一下工程变更ECO让 PCB 端的元件位号与原理图保持一致。这一步很多人会漏结果就是原理图 BeautifulPCB 一片旧位号导出坐标文件跟 BOM 对不上。别问我怎么知道的。4. 排序方向的选择这个选项直接决定位号好不好看排序方向的选项是自动编号里最让人困惑、但也最值得花时间去理解的。AD20 提供了好几组方向选项含义适用场景Up Then Across先按列自下而上再按行从右向左图纸元件以列布局为主或希望位号沿竖直方向走Down Then Across先按列自上而下再按行从左向右图中元件分多列列内从上到下排这是最常用的Across Then Up先按行从左向右再按列自下而上元件以横向布局为主希望行内先排满Across Then Down先按行从左向右再按列自上而下最经典、最符合阅读习惯的方式从左到右、从上到下理解它们的关键是搞清楚 Altium 在计算顺序时的“行”和“列”是怎么定义的——Altium 会把当前原理图图页的坐标当成一个网格系统然后根据元件的坐标、以及你选择的处理顺序按行/列扫描。所以想让位号从左上角开始呈蛇形往下走还是从左下角开始往上走完全由方向决定。实际设计里我最常用的还是 Across Then Down。理由很简单绝大多数人的阅读习惯是从左到右、从上到下位号按这个方向走原理图拿给别人看的时候别人能顺着正常视线从上往下找到元件基本不用来回跳。Down Then Across 适合那种高度方向很长比如一页原理图被拉得特别高的图纸或者你想让同一列内的元件优先形成一组连续的号段。还有个小技巧如果你希望“同一个功能模块内部的位号连续”不要只依赖全局排序而是分两步走。第一步先在各原理图内手动/半手动调整模块内元件的位置让它们排列成你希望编号追循的视觉方向第二步用 Selection 或单页 Annotate 对每个模块分别编号。虽然手动干预多一些但结果往往最理想。全图一把梭的自动编号再怎么设方向都不可能百分百贴合你脑子里的模块划分这点要有预期。5. 位号重排的四个经典翻车场景与排查链路光讲顺风顺水的流程不讲翻车那不是合格的工程分享。下面这几个坑我都在实际项目里见过有的还是自己踩的现在把完整链条写出来。5.1 场景一手动改过的位号被自动编号“一键清零”有位同事辛苦半天把手感好的位号全部手动改完然后突然想到“哦我还没做自动编号”顺手执行了一遍带 Reset 的重排结果所有手动改的位号全部消失。他的本意其实只是想“让编号更整齐”没想到先复位再编号等于把旧位号全扔了。排查链路很简单进入原理图后点开几个元件看属性——如果位号全变成 R? 或 C?说明你在 Annotate 之前先点了 Reset如果位号变了一组新的顺序但跟你手动改的完全不同说明你在 Annotate 时选的规则覆盖了手动设置。方案是如果你已经在原位号上做过精细调整就不要走“Reset - Annotate”的完整流程而是直接Annotate Schematics Quietly或者 Annotate 但取消 Reset这样 Altium 只会填补空缺和修正重复不会把已有位号全部推翻。Allegro/Cadence 那边叫“位号重排”规则类似用不当就是大面积复位。5.2 场景二多图纸工程里编号顺序不符合跨页逻辑一个八页的原理图工程第一页是电源第二页是主控第三页是接口。用户设置 Across Then Down执行完发现整个工程的位号从第一页的电源开始排然后才轮到底下接口页。如果公司规范倒是无所谓但如果希望按“主控在前、电源次之、接口最后”的顺序走位号段那你得先把图纸顺序在工程面板里调好或者干脆分页分别编号再把起始索引错开。我自己的习惯是先规划好每个功能页的目标位号段比如 U1-U10 留给主控U11-U20 留给电源U21-U30 留给接口然后每一页单独选中元件、用 Selection 范围、并手动设好起始索引来编号。这样图纸再多位号段也不会互相污染。5.3 场景三位号重复导致编译/PCB 导入直接报错这种事情通常发生在从其他 EDA 工具转过来的工程或者多个子原理图合并时。症状是编译工程时出现 “Duplicate Net Identifier” 或不带响的直接列出重复位号PCB 导入时报 “Failed to match designators”。排查顺序建议先Project Compile All看 Messages 面板里具体哪个位号重复再用原理图编辑器的Edit Find Similar Objects或直接按 CtrlF 搜索位号文本把重复元件一个个找出来。找到之后按我们第 3 节的重排流程对部分图纸做一次 AnnotateAltium 会自动分配新的不重复位号。这里提一个技巧在 Annotate 对话框里有一个 “Confirm” 相关选项有些版本编号前会列出预计变化你可以借此检查所有将要变化的位号确认没有自己关注的特殊元件被改掉。5.4 场景四位号重排之后 BOM 的行顺序变乱有位朋友做完重排导出 BOM 后发现 Excel 里的表排序跟以前不一样了以为自动编号把 BOM 搞坏了。事实上 BOM 行顺序跟位号顺序关系不大BOM 排序通常由你导出的表格工具的排序规则决定。你真正该做的是确认位号字段和 PCB 坐标文件里的位号完全一致而不是纠结 Excel 里谁先谁后。如果要让 BOM 跟 Schematic 位号顺序完全对应导出时可以在 Altium 的 BOM 生成器里设置排序字段位 Designator/Item Name并选择升序。这属于输出侧设置不是原理图侧的问题。6. 位号镜像、多通道与复用模块自动编号的进阶思维这一节写给已经有几年经验、手里画过多通道或者复用型项目的工程师。AD20 的自动编号不只是“给电阻排个号”它背后的“物理实例匹配”和“图纸选择”机制能帮你在复杂项目里少掉不少头发。6.1 “位号镜像”到底是什么、什么时候要处理热搜词里有“ad20如何位号镜像”这个实际上是指在画板子时某些元件需要镜像放置比如双面贴装、或者对贴的两块板这时元件符号上显示位号的方向会跟着镜像。位号镜像本身跟自动编号是两个维度的事但在按“镜像模块复制”时容易引发位号混乱。如果你复制了一个模块到另一处并维持镜像Altium 默认会为新元件生成带问号的位号需要再次 Annotate 才能分配编号。此时手动将复制元件的位号改成“原模块位号 后缀规律”比如 A 面 U1~U10B 面 U101~U110反而比自动重排更可控。6.2 多通道设计的位号策略AD20 里多通道Multi-Channel项目的核心特点是同一张原理图在编译时被实例化多次。如果你直接对多通道原理图做自动编号Altium 会依据 “Match By” 规则判断所有通道里的元件是否属于同一个物理元件还是不同物理元件。这里有一个非常容易踩的坑如果你选用 “Ignore Part Instances”忽略实例之类的宽松匹配可能会把所有通道的同一个器件编成同一个位号这通常不是你要的效果除非你真的打算所有通道共用封装和位置。我的建议多通道项目位号尤其是 FPGA、电源模块这种重复度极高的设计优先用 “Channel Format” 标签比如 $Component_$Channel让位号带上通道信息。这样在 PCB 上你可以清楚地知道 U1A、U1B 分别是哪个通道的。自动编号在这种场景下扮演的更多是“补号/校验”角色而不是严格重排。老老实实把通道属性搞明白比追求一套自动重排规则管用得多。6.3 位号重排与团队协作如果是多人协作同一个工程最忌讳的就是每个人各自动手重排位号。经常出现的情况是A 同事在自己电脑上重排了 U1~U50保存后上传到版本库B 同事一同步发现自己的图纸上一堆 R? C?——因为他的本地原理图库里的元件状态和 A 同步过来的编号状态不一致。这种情况下你应该定一个规矩位号重排只由一个人通常是硬件负责人执行并且每次重排后必须连同 Annotate 报告一起提交到版本库。其余成员更新工程后不要立刻自己重排而是先 diff 一下报告确认哪些位号发生了变化再决定是否接受。这不是 Altium 的短板而是工作流层面的事但对最终成品质量影响巨大。最后分享一点个人习惯画了这么多年板子我自己在 AD20 里最顺手的位号管理流程是工程一开始就建好图纸顺序和功能分区每画完一个模块马上框选做一次 Selection 范围内的编号整板功能模块都画完、电气规则检查通过之后再做一次全工程的复位重排并导出编号映射报告存档。这一步看起来多花了五分钟但换来的却是后续所有环节的省心——尤其是评审时别人能顺着位号看懂你的设计逻辑这个价值很难用数字衡量。如果你现在手上正有张原理图位号乱到不想看别犹豫按上面第 3 节流程走一遍。原理图元件自动编号这件事本质上就是让设计秩序回归工具化、规则化少让手工劳动和人为失误来拖后腿。