前阵子把一个跑了三年多的老工程从早年的版本迁到 Altium Designer 22.1.2,中间隔了好几个大版本,光规则迁移和库路径重挂就折腾了整整两天。那两天里我最大的感受是:AD 这类 EDA 工具,真正卡住人的从来不是"会不会画板",而是版本之间那些没人写进文档里的细节——面板挪了位置、默认规则换了口径、缓存写到了奇怪的地方、库搜不到元件却又不报错。这篇就把我在 22.1.2 上踩过的、验证过的、以及后来形成固定习惯的东西整理一遍,主要面向已经能画简单板子、想把这套工具用得更顺的人,刚入门的朋友也能从里面的路径规划、库管理、规则设置思路里拿到可以直接照做的方法。内容会一直补充,用着用着发现新东西就加进来。
1. 22.1.2 的界面版图:功能区标识先认全,再谈效率
1.1 版本跳到 22 之后,位置变化带来的第一波不适应
从老版本切到 22.1.2,第一个撞上的不是功能缺失,而是"找不到东西"。以前习惯在顶部菜单里翻的选项,现在很多被收进了右侧的面板;以前靠 DXP 菜单进 Preferences,22 里改成了右上角的齿轮图标,第一次找的时候我在菜单栏来回点了五遍。这类变化谈不上好坏,纯粹是肌肉记忆被打断。
我更建议的做法是:装完之后先别急着画图,花二十分钟把默认的工作区布局重新摆一遍,然后把当前布局存成一个视图配置。AD 允许你在 View 菜单里保存和调用面板布局,这一步的收益在整个项目周期里是复利的——后面不管是被误拖乱了面板,还是换到双屏、换到 4K 屏,一键恢复就行,不用每次重新拖。
另外提醒一句,22.1.2 对高 DPI 屏幕的缩放支持比早期版本好很多,但仍然有部分对话框在 125% 缩放下字会糊。如果你用的是笔记本外接显示器,两个屏的缩放比不一致时,优先把 AD 主窗口拖到主屏上启动,能减少不少渲染错位。
1.2 各功能区标识到底谁管什么
网上问得最多的就是"这个图标是干嘛的"。我把日常真正高频用到的面板和工具组按作用列一下,注意这里说的是它们各自负责的边界,而不是照抄菜单名:
| 标识/面板 | 主要职责 | 什么时候必须用它 |
|---|---|---|
| Projects | 管理工程与文件树,看编译状态 | 多文档工程、模块复用、编译报错定位 |
| Properties | 当前选中对象的全部可编辑属性 | 改单个元件、导线、过孔参数 |
| Components | 从已挂载的库中检索、放置元件 | 放件前确认库源与封装 |
| Navigator | 按网络、按元件、按差分对浏览整图 | 快速跳到某网络的所有连接点 |
| Messages | 编译结果、规则冲突、变更提示 | 编译后必须看,不要关掉 |
| PCB / Layer Stack | 层叠、阻抗、材料 | 定板前,且只能在 PCB 文档里用 |
我自己把 Properties、Navigator、Messages 三个常驻在右侧,Projects 常驻左侧。Components 面板平时折叠,放件的时候再展开。原因是面板开太多会明显拖慢刷新,尤其在大工程里拖动视图的时候能感觉到。
1.3 快捷键不用背全,先建立"动词优先"的思路
很多人一上来就找快捷键大全背,效果很差。我更推荐按动作分类记:一个是"放置类",对应 Place 菜单;一个是"编辑类",对应 Edit 菜单;一个是"视图类",对应 View。三组各记三五个最高频的,剩下的靠菜单找。
有个小习惯值得养成:常用操作如果发现菜单里点得次数多了,右键那个命令,看有没有可自定义的快捷键入口,22 里自定义快捷键是可以导出的,换机器直接导入,比重新配一遍省事得多。
2. 装完软件先别画图:工程目录与元器件库的前置规划
2.1 安装环节里几个当时不在意、后来很麻烦的选项
安装本身没什么玄学,但有几个点我建议现在就定下来。第一是安装路径不要带中文和空格,这个不是 AD 独有,但 EDA 工具对路径字符的容忍度普遍偏低,一旦出现莫名其妙的脚本执行失败,排查成本极高。第二是组件选择,如果只做原理图和两层板,没必要把全部扩展包都勾上,装得越多,首次启动索引库的时间越长,日常启动也偏慢。
第三是工作区数据的位置。22.1.2 默认会把一部分配置和缓存写到用户目录下的应用数据文件夹里,这个位置在系统盘。如果你的系统盘是小容量固态,工程一多很容易吃紧。我的做法是安装完之后先去偏好设置里把临时目录和备份目录指到数据盘,一次配好,后面省心。
注意:改这些路径一定要在正式开工前改,工程已经建好之后再动,容易出现旧文件还指向旧路径、新文件写到新路径的割裂状态。
2.2 一个工程目录该怎么切
我见过太多人把所有东西堆在一个文件夹里,两年后自己都不敢删任何文件。我现在的固定切法是这样:
- 工程根目录只放工程文件和原理图、PCB 源文件;
- 独立出一个
Library目录放这个项目专用的库和库缓存; - 独立出一个
Output目录,所有 Gerber、钻孔、坐标、BOM 输出全部落在这里,按日期再分子目录; - 独立出一个
Doc目录放规格书、板厂工艺说明、变更记录。
这么切的好处很实际:清理构建产物的时候直接清Output子目录就行,不用担心误删源文件;发给板厂的时候只打包Output下的最新日期目录,不会把源文件一起发出去。
2.3 元器件库分成三层,比做成一个大库强
库管理是 AD 使用里最容易长期失控的一块。我的做法是分三层:
第一层是"厂商库",也就是软件自带的那几个通用集成库,只当参考用,不直接投产。第二层是"个人基础库",把自己反复用到的电阻电容、常用接口、常用稳压器整理进去,每个元件都带完整参数和封装,这一层是自己的资产。第三层是"项目临时库",只服务当前项目,项目结束后把其中有价值的部分合并回基础库。
为什么强调分层?因为一次性把所有元件塞进一个库,检索会越来越慢,而且封装一旦改错会波及所有历史项目。分层之后,改动的影响范围是可控的。
2.4 库路径的优先级陷阱
挂库的时候有个坑值得单独说:AD 的库搜索是有优先级的,同名元件的解析结果取决于库的挂载顺序。我遇到过两次"明明更新了库里的封装,PCB 里还是老封装",最后都定位到是搜索路径里存在一个更早的旧库把结果截胡了。
解决办法很土但很有效:挂载列表里,个人基础库永远排在项目临时库之前,旧版本库直接从列表里移除而不是留着重命名。另外,每次大规模更新库之后,做一次全工程的元件封装同步检查,不要等到导出生产文件的前一晚才发现。
3. 原理图阶段:从"能画完"到"下一版还能直接用"
3.1 参数化元件和命名规则,是复用能力的地基
原理图画得漂亮不难,难的是半年后改版的时候还能看懂。我现在强制自己做两件事。第一,元件的位号按功能区段划分,比如电源部分从某个号段起、接口部分从另一个号段起,这样看位号就能猜到它在板子上的位置。第二,所有关键参数写进元件的自定义字段,而不是写在旁边的文本注释里。
自定义字段的价值在于它是结构化的。你可以在导出 BOM 的时候直接把这些字段作为列输出,也可以在原理图里用它做筛选和批量修改。文本注释看着直观,但它是死的,改一次就得手工改一次,还会漏。
3.2 多通道设计和模块复用的正确打开方式
如果板子上有重复结构,比如四路相同的采集通道,用多通道设计比复制粘贴强太多。核心思路是把一路通道画成一个子图,然后在顶层用重复的图纸符号引用它,编译后AD会自动展开成多组实际元件。
这里有个细节必须提前想清楚:通道命名规则决定了最终位号和网络的命名。如果一开始命名随意,后面展开出来的位号会很难看,甚至出现难以定位的重复。我的习惯是,在开始画通道之前先把命名规则定下来并写进项目说明里,团队成员按同一套规则走。
另外,图纸符号之间的端口连接,建议用总线加命名的方式组织,而不是一根一根拉线连到顶层。前者在通道数量变化时改动量极小,后者每加一路都要重新连线。
3.3 差分对、网络类和规则的提前建立
差分对和网络类这种东西,一定要在原理图阶段就建立,而不是等到 PCB 里再补。原因很简单:原理图编译出来的网络类信息会传递到 PCB,PCB 里的规则可以直接引用这些类。如果你在 PCB 里手工建类,那么下次原理图同步过来的时候,很容易出现类的对应关系错乱。
具体做法是在原理图里给差分对命名,命名规则要统一,比如统一用固定后缀来标识正负端。命名统一之后,PCB 那边可以直接用通配符批量生成差分对规则,不用一个一个挑。
3.4 编译报错怎么读才有意义
编译之后 Messages 面板里一堆提示,很多人直接全忽略或者全改掉,这两种做法都不对。我的分类方法是:先看错误级别里跟"重复位号""未连接引脚""单端网络"相关的,这三类基本都对应真实问题;然后是警告里的"多驱动源""悬空网络",需要逐个确认是不是有意为之;最后才是那些样式类提示,可以批量关掉。
有个小技巧:编译之前先把 Messages 面板清空,编译后按类别过滤,比在几百条里翻要快得多。
4. PCB 段:规则先行,布线在后,顺序错了返工翻倍
4.1 层叠和阻抗,别等板厂来问你
Layer Stack Manager 是我认为 22.1.2 里被低估的一块。做多层板的时候,先在这里把层数、介质厚度、铜厚定下来,再去设阻抗目标,比先画完再让板厂"看着办"靠谱得多。
新手最容易忽略的是介质厚度和铜厚对阻抗的影响。同样线宽,铜厚从半盎司换到一盎司,阻抗会明显下降。所以如果板厂反馈"按你的线宽做出来阻抗不对",八成是你定层叠的时候用了默认值没改。
对于电源和功率器件的部分,这里也要提前规划。功率管这类器件的散热铜皮、过孔阵列的位置,最好在层叠阶段就留出空间,别等到铺铜的时候发现散热面积不够再回头改布局。
4.2 设计规则的参数应该由板厂工艺倒推
很多人设规则是抄别人的模板,或者直接用默认值。我的建议是反着来:先拿到板厂的最小线宽、最小间距、最小孔径、最小环宽这几个硬参数,然后在 AD 里逐一落到规则上,再往上加余量。
举个具体的例子,板厂给的最小间距是 6mil,那我在规则里设 8mil 作为普通信号的安全值,只有实在走不开的区域才降到 6mil,并且单独建一个区域规则覆盖。这样既保证了可制造性,又不会让整个板子被迫放宽。
与之配套的还有几类规则必须单独设:电源网络的线宽要按电流估算,不能跟信号线用同一套;过孔尺寸要区分信号过孔和电源过孔;丝印到阻焊的间距要单独约束,否则装配的时候很容易被吐槽。
4.3 交互式布线里的取舍:该偷懒的地方要偷懒
交互式布线工具很强,但强不代表全程开着自动推挤。我的经验是:密集区域推挤开到较强档位,能省很多手工调整;而关键信号,尤其是高速和时钟,建议关掉推挤手工走,避免工具为了"让路"把参考平面切得七零八落。
走线优化(Gloss)也一样。它能把线拉整齐,但对已经调好的等长组可能造成破坏。我的做法是分组处理:普通信号线批量优化,等长组和差分对在优化之后重新检查等长结果,发现有偏差就锁定长度不再动。
4.4 铺铜、缝合孔、规则检查的先后顺序
这三件事的顺序搞错,会白干一遍。正确顺序是:先完成所有走线,再做规则检查,确认没有短路和间距问题,然后才铺铜。因为铺铜之后再做规则检查,很多报错其实是铺铜引起的,你会陷入"改了铜皮又出现新问题"的循环。
缝合孔建议在铺铜之后统一放,并且用阵列加规则约束的方式,而不是手工一个个点。信号地和功率地如果需要分区,分区边界要在铺铜之前就规划好,不要指望铺完再切。
5. 缓存、临时文件与"越用越慢"的真实原因
5.1 AD 到底往硬盘里写了哪些东西
这是个被问爆的问题。AD 在运行过程中会写好几类文件:一类是元件和库的缓存索引,用来加速搜索;一类是工程的历史备份,用于本地回退;一类是文档预览缓存,用来在打开工程时快速生成缩略图;还有一类是编译和输出的中间产物。
这些东西本身都是有价值的,问题在于它们不会自动清理,而且默认位置往往在系统盘。工程多了以后,占用会悄无声息地涨到几十个 G。
| 文件类型 | 作用 | 能不能删 |
|---|---|---|
| 库缓存索引 | 加速元件检索 | 能删,删后首次检索变慢 |
| 历史备份 | 本地版本回退 | 按需删,保留最近几版即可 |
| 预览缓存 | 工程缩略图 | 能删,不影响源文件 |
| 输出中间产物 | 构建过程产生 | 能删,重新生成即可 |
5.2 清理的正确姿势
我自己的清理节奏是:每个项目封版之后清一次,换大版本之前清一次。清的时候只动上面表格里"能删"的那几类,源文件、库源文件、工程文件一个都不碰。
顺序上,先关软件再动手,这是硬要求。AD 在运行中会持有部分缓存文件的句柄,运行中删除轻则报错,重则导致下次启动库索引重建时出现异常。
还有一个很多人不知道的点:删除库缓存之后,第一次打开 Components 面板检索会明显变慢,这是正常的重建过程,不要以为软件坏了。让它跑完一次完整索引,后面就恢复正常了。
5.3 大工程卡顿的排查顺序
卡顿不一定是软件问题。我的排查顺序是:先看在哪个操作下卡——是打开工程卡,还是编辑时卡,还是导出时卡。如果是打开卡,多半是预览缓存和历史备份太大;如果是编辑时卡,先看是不是同时开了过多面板和在线检查;如果是导出卡,检查是否有大量多边形重新铺铜。
另外一个常见原因是工程里遗留了大量未使用的旧版本文档。这些文档虽然不参与构建,但会被一起加载,拖慢启动。定期归档和清理是必要的维护动作,不是洁癖。
6. 反复踩到的几个坑,以及完整的排查链路
6.1 库更新了但封装不生效
这个坑我踩过至少三次,排查链路现在很固定:第一步,确认当前工程实际引用的是哪个库,看元件属性的来源字段,不要凭印象;第二步,检查库搜索路径列表,看有没有旧库排在前面;第三步,如果路径没问题,把元件从原理图里删掉再重新放置一次,看封装是否更新。
如果三步都过了还是不生效,那就是工程内部的封装缓存问题了,需要做一次库同步更新。这里的关键经验是:不要在 PCB 里直接手工改封装的焊盘,那样改完下次同步就没了,正确做法是回到库里改,然后同步。
6.2 想要回退却发现历史没开
本地历史备份是个"平时没用、出事救命"的功能。我现在的习惯是新建工程第一件事就去把备份选项打开,并且把备份份数和间隔设到合理值。间隔太短会拖慢编辑,太长又救不了急,我一般设成几分钟一次、保留十几份。
还有个细节:历史备份是跟着工程目录走的,如果你把工程整体拷贝到另一台机器,历史也会一起带过去。所以打包给别人之前,记得把历史目录排除掉,一是体积大,二是没必要外传。
6.3 导出生产文件时最容易漏的参数
导出这步我单独拎出来说,因为漏参数是真实会造成损失的。必查项包括:层是否全部包含(尤其是机械层和阻焊、助焊层);钻孔文件是否为独立文件且单位与格式与板厂约定一致;贴片坐标的原点和格式是否正确;BOM 的字段是否包含位号、型号、封装、数量、备注。
还有一点经验:导出之后不要直接发,自己用看图工具打开确认一次。尤其是丝印层,确认位号和极性标识没有被阻焊盖住,也没被铜皮压住。这一步花五分钟,能省掉一轮打样返工。
至于把设计给别人看而不想装全套软件的场合,导出一份带层切换的 PDF 或者通用三维格式给对方,比让结构同事装一个完整环境要现实得多。我现在的做法是给装配和结构各出一份对应格式,沟通效率明显提高。
7. 关于"自动生成"这类新玩意的个人态度
顺便聊一个经常被问到的方向:用智能化手段自动生成原理图或者 PCB。我的态度比较明确,目前阶段它可以当草稿工具,用来快速铺一个大致框架或者验证一下布局思路,但直接投产不现实。
原因在于 PCB 设计的约束绝大部分是隐性的——哪根线必须短、哪组信号必须等长、哪个区域必须留散热空间、哪个连接器的方向受结构限制。这些信息不在原理图里,也不在任何一段描述里,它只存在于设计者的脑子里和结构图里。工具拿不到这些约束,生成的布局再整齐也只是"能连通",不是"能生产"。
我自己的用法是拿它做重复性的初稿,比如把一堆标准接口的放置和初步连线让它跑一遍,然后自己在上面重排和约束。省的是体力活,判断还是得自己做。
最后分享一个小习惯,是我用了几年之后觉得最有价值的一条:每完成一块板子,花十分钟在工程目录里留一个简短的变更记录,写清楚这次改了什么、为什么改、哪个封装动过。这东西当时看着多余,但当你半年后拿起这块板子要改一版的时候,它能帮你省掉一整个下午的回忆时间。工具再顺手,也替代不了自己给自己留的路标。