☰
AD20学习笔记:用TaoToken统一Key打通PCB原理图与Cross Select Modes配置
2026/10/8 17:59:15 网站建设 项目流程

1. AD20 原理图与 PCB 联动为什么总对不上:Cross Select Modes 配置踩坑记录

如果你正在用 Altium Designer 20(下面统一叫 AD20)画板子,大概率遇到过这种场景:原理图里改了一个电阻的位号,切到 PCB 却要自己拿放大镜找半天;或者在 PCB 里选中一个网络,想回到原理图看看它连到哪颗芯片,结果两边各选各的,完全联动不起来。这个问题的核心,就是 AD20 的 Cross Select Modes(交叉选择模式)没有正确开启,或者 Preference 里的相关选项被默认关掉了。

Cross Select Modes 是 AD20 里原理图和 PCB 双向高亮联动的开关。开启之后,你在原理图里点中一个元件,PCB 里对应的封装会同步高亮;反过来在 PCB 里选中一个器件,原理图里对应的符号也会被选中。对于需要频繁在原理图和 PCB 之间来回切换的硬件工程师来说,这个功能能省掉大量肉眼比对的时间。它适合所有用 AD20 做原理图与 PCB 协同设计的人,尤其是板子器件多、网络复杂、需要反复核对布局的场景。

我平时除了画板子,还会用 AI 辅助查器件手册、生成一些重复性的脚本或者整理 BOM 注释。跨工具调用 AI 的时候,最烦的就是每个工具都要单独配一遍 Key 和 Base URL。后来我把 TaoToken 的统一 Key 接进来,AD20 这边配合外部脚本做器件信息查询、注释生成就顺了很多。这篇笔记就按「先解决 AD20 联动配置,再讲怎么用统一 Key 打通 AI 辅助」的顺序来写,配置片段都可以直接复制。

先明确一下这篇要解决的三件事:第一,在 Preference 里把 Cross Select Modes 相关选项配对;第二,用 Split Vertical 做原理图和 PCB 垂直分屏,验证双向高亮;第三,把 TaoToken 的 Base URL、Key、Model ID 写进配置文件,让外部 AI 工具能统一调用。下面一步步来。

2. TaoToken 统一 Key 前置准备:Base URL 与 auth.json 配置

在讲 AD20 的 Preference 之前,先把 TaoToken 这边的接入信息准备好。因为后面验证联动的时候,我会用一个外部脚本来批量读取原理图里的器件位号,再调用 AI 生成注释,这个脚本需要读配置文件里的 Key 和 Base URL。如果你只是单纯想用 AD20 的联动功能,这一节可以先扫一眼,等需要 AI 辅助时再回来配。

TaoToken 的 API 地址是https://taotoken.net/api,这个地址在配置文件里作为 Base URL 使用。注意 API 地址后面不要加多余的路径,具体到某个模型或接口的路径由工具自己拼接。官网入口是https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,需要看文档或者管理 Key 的时候从这边进。

统一 Key 的意思是:你不需要为每个 AI 工具单独申请一套凭证,而是用同一个 Key 配合同一个 Base URL,在不同工具里复用。对于硬件工程师来说,常见的调用场景有几种:一是在命令行里用脚本查器件参数;二是在编辑器插件里做代码或脚本补全;三是用 Claude Code 这类工具做工程脚本的辅助编写。这几种场景都可以指向同一个 Base URL。

下面给出一个通用的auth.json配置片段,路径按你实际使用的工具要求放。以常见的 CLI 工具为例,配置文件一般放在用户目录下的隐藏文件夹里,比如~/.config/taotoken/auth.json或者工具指定的配置目录。内容结构如下:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "model": "claude-sonnet-4-20250514", "timeout": 60 }

如果你用的是支持 TOML 的工具,等价配置写成这样:

[provider] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" model = "claude-sonnet-4-20250514" timeout = 60

这里三个字段要记牢:Base URL 填https://taotoken.net/api,Key 填你在控制台生成的那串,Model ID 填你要用的模型标识。这三个就是后面所有工具接入的「三件套」。Model ID 不要自己编,按文档里列出的可用标识填。我试过把 Model ID 写错,结果请求返回 404 或者 model not found,排查了半天才发现是模型名拼错了。

Key 的获取在控制台的 API Keys 页面,生成之后只显示一次,记得复制保存。如果你用的是 Claude Code 这类工具,它可能要求把配置写到~/.claude/settings.json或者项目级的.claude/settings.json里,结构类似,把 base_url 和 api_key 对应填进去就行。具体路径以工具文档为准,但 Base URL 和 Key 的填法是一致的。

提示:配置文件里的 Key 不要提交到 Git 仓库,建议放在全局配置目录或者用环境变量注入。脚本里读取时优先读环境变量,读不到再读配置文件。

准备好这些之后,AD20 本身不需要填这些配置,它只负责原理图和 PCB 的联动。AI 辅助是通过外部脚本或插件来调用的,脚本读上面这个配置文件,再去请求https://taotoken.net/api。这样你的 Key 只维护一份,换工具的时候不用重新申请。

3. AD20 Preference 里 Cross Select Modes 的可复制配置与分屏操作

这一节是重点,直接给可跟做的步骤。AD20 的 Cross Select Modes 开关分两个层面:一个是 Tools 菜单里的临时开关,一个是 Preference 里的持久化配置。很多人只开了 Tools 里的,重启软件后又失效了,所以两边都要配。

先打开 AD20,加载你的原理图工程和对应的 PCB 文件。确保两个文件都在同一个工程(Project)下,这是联动的前提。如果原理图和 PCB 不在同一个工程里,Cross Select 是不会生效的。

第一步,在原理图或者 PCB 界面,点顶部菜单Tools > Cross Select Modes,把它勾选上。这个操作在两个界面里都可以做,勾选后菜单项前面会出现对勾。这一步是开启当前会话的交叉选择。

第二步,让配置持久化。点Tools > Preferences,或者用快捷键D > P(先按 D 再按 P)打开 Preference 面板。在左侧树形菜单里找到Schematic > General,右侧有一项Cross Select Mode,把它勾上。同样地,再到PCB Editor > General里,确认Cross Select Mode也是勾选状态。这两处都勾上之后,重启软件也会保持开启。

第三步,做垂直分屏。在原理图或 PCB 的标签页上右键,弹出的菜单里选Split Vertical,这样原理图和 PCB 就会左右并排显示。如果你屏幕够宽,这个布局非常方便,左边改原理图,右边看 PCB 实时联动。分屏之后,两个窗口各自独立缩放,互不影响。

第四步,验证双向高亮。在原理图里用鼠标点中一个元件,比如 U1,切到 PCB 窗口看,对应的封装应该被高亮选中。反过来,在 PCB 里框选一个器件,原理图里对应的符号也会被选中。如果没反应,先检查第一步的 Tools 菜单有没有勾上,再检查第二步的两个 Preference 选项。

关于 PCB 光标,AD20 默认的光标比较小,在密集布局里容易看丢。可以在PCB Editor > General或者直接在 PCB 界面右键Preference,找到Cursor Type,把它设成Large 90。这样光标会变成一个占满屏幕的大十字,对齐器件的时候特别有用。这个设置和 Cross Select 是独立的,但一起配好之后,布局效率会明显提升。

再补充一个开槽相关的操作,虽然和联动不是直接相关,但经常和 PCB 编辑一起用。如果你要在板子上开孔,先画出需要开孔的区域并选中,然后点Tools > Convert > Create Board Cutout from Selected Primitives,就能把选中的图形转成板子开槽。这个操作在做异形板或者散热孔的时候会用到。

注意:Cross Select Modes 依赖工程结构,如果原理图和 PCB 是分开的两个独立文件、没有放进同一个 Project,联动不会生效。先把它们加到同一个工程里再操作。

配置到这里,AD20 这边的联动就打通了。下面用一个实际请求来验证,同时把 TaoToken 的调用也串进来。

4. 验证请求与成功结果:双向高亮联动 + AI 辅助脚本实测

验证分两部分:先验证 AD20 自身的双向高亮,再验证外部脚本通过 TaoToken 统一 Key 调用 AI 的结果。

先做 AD20 的联动验证。打开分屏后的原理图窗口,随便选一个器件,比如一个 0603 的电容 C12。选中之后,PCB 窗口里对应的封装应该立刻变成选中状态,并且视图会自动定位到那个器件附近(如果开启了自动缩放)。反过来,在 PCB 里用Edit > Select >或者直接框选几个器件,原理图里对应的符号会同步高亮。实测下来,只要 Preference 里两处 Cross Select Mode 都勾了,这个联动是实时的,没有明显延迟。

如果联动生效,你会看到原理图里选中的元件在 PCB 里被高亮框住,PCB 里选中的器件在原理图里也被标记。这个就是 Cross Select Modes 的核心价值:不用再靠位号肉眼搜索。

接下来验证 TaoToken 的调用。我写了一个简单的 Python 脚本,读取原理图导出的器件列表(CSV 格式,包含位号、型号、封装),然后调用 AI 生成每个器件的注释说明。脚本读取前面配好的auth.json,用https://taotoken.net/api作为 Base URL。

import json import os import requests # 读取配置 config_path = os.path.expanduser("~/.config/taotoken/auth.json") with open(config_path, "r", encoding="utf-8") as f: cfg = json.load(f) base_url = cfg["base_url"] api_key = cfg["api_key"] model = cfg["model"] # 模拟从原理图导出的器件列表 components = [ {"ref": "U1", "part": "STM32F103C8T6", "package": "LQFP48"}, {"ref": "C12", "part": "100nF 0603", "package": "0603"}, ] headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", } for comp in components: prompt = f"用一句话说明电子元器件 {comp['part']}(位号 {comp['ref']},封装 {comp['package']})的常见用途,不要超过40字。" payload = { "model": model, "messages": [{"role": "user", "content": prompt}], "max_tokens": 100, } resp = requests.post(f"{base_url}/v1/messages", headers=headers, json=payload, timeout=60) if resp.status_code == 200: data = resp.json() # 按返回结构取文本 text = data.get("content", [{}])[0].get("text", "") print(f"{comp['ref']}: {text.strip()}") else: print(f"{comp['ref']} 请求失败: {resp.status_code} {resp.text[:200]}")

运行这个脚本,如果配置正确,会输出类似:

U1: STM32F103C8T6 是常用 ARM Cortex-M3 微控制器,适合工业控制与嵌入式开发。 C12: 100nF 0603 是高频去耦电容,常放在芯片电源引脚附近滤除噪声。

看到这个输出,说明 TaoToken 的统一 Key 和 Base URL 配置生效了。脚本里请求的路径是/v1/messages,这是按接口文档来的,不同模型或接口路径可能不同,以文档为准。关键是 Base URL 只写到https://taotoken.net/api,后面的路径由接口决定。

把 AD20 的联动和这个脚本结合起来,你的工作流就是:在 AD20 里用 Cross Select 快速定位器件,导出器件列表,脚本用统一 Key 调 AI 批量生成注释,再回填到原理图或 BOM 里。整个过程 Key 只维护一份,换工具不用重新配。

5. 本篇常见报错排查:401、local proxy failed、reading choices、OAuth

配置过程中容易碰到几类报错,这里按真实遇到的顺序列出来,对照排查。

第一类,401 Unauthorized。这个最常见,原因是 Key 不对或者没带上。检查auth.json里的api_key是不是完整复制了,有没有多余空格。请求头里必须是Authorization: Bearer sk-xxx的格式,Bearer 和 Key 之间有一个空格。如果 Key 是在控制台刚生成的,确认没有复制到换行符。还有一种情况是 Key 被禁用或过期,去控制台 API Keys 页面确认状态。

第二类,local proxy failed 或者连接被拒绝。这个通常不是 Key 的问题,而是 Base URL 写错了,或者本地网络环境有干扰。确认base_url填的是https://taotoken.net/api,不要写成https://taotoken.net/api/v1这种多加了路径的形式,除非文档明确要求。另外检查系统代理设置,如果本地开了某些网络工具,可能导致请求走错通道。把代理关掉或者把taotoken.net加入直连列表再试。

第三类,reading choices 相关报错,比如cannot read property 'choices' of undefined。这个一般出现在用 OpenAI 兼容格式请求、但返回结构不是预期格式的时候。检查你请求的接口路径和模型是否匹配。如果你用的是 Claude 系列模型,返回结构里是content数组,不是choices。脚本里取文本的方式要对应调整。别硬套一种返回解析,先打印完整响应看看结构。

第四类,OAuth 相关报错。如果你用的是 Claude Code 这类工具,它可能默认走 OAuth 登录流程,而不是直接读 API Key。这时候需要在工具的配置里显式指定用 API Key 模式,把base_url和api_key填进对应的 settings 文件。以 Claude Code 为例,配置通常写在~/.claude/settings.json,结构里包含 provider 的 base_url 和 api_key。如果它仍然提示 OAuth 失败,检查是不是有旧的登录凭证缓存,清掉再重新用 Key 模式启动。

第五类,模型找不到,报 model not found 或 404。检查 Model ID 是否拼写正确,是否在文档的可用列表里。不同模型的标识不一样,不要凭记忆写。把 Model ID 单独拿出来在请求里测试,确认能通再放进脚本。

第六类,AD20 这边联动不生效。这个和网络无关,纯粹是配置问题。按顺序检查:原理图和 PCB 是否在同一个工程;Tools > Cross Select Modes是否勾选;Schematic > General和PCB Editor > General里的 Cross Select Mode 是否都勾了;分屏是否用 Split Vertical 做的。如果都对了还不联动,试着关掉工程重新打开,或者新建一个简单工程测试,排除工程文件损坏的可能。

提示:排查网络类报错时,先用一个最简单的 curl 命令测试 Base URL 是否可达,再排查脚本逻辑。把 Key 和 URL 分开验证,能快速定位是凭证问题还是网络问题。

6. 从 AD20 联动到统一 Key:硬件工程师的 AI 辅助接入路径

把上面几步串起来,你的工作流就成型了。AD20 里用 Cross Select Modes 做原理图和 PCB 的双向高亮,Preference 里两处勾选保证持久生效,Split Vertical 分屏让两个视图并排。PCB 光标设成 Large 90,密集布局时对齐更轻松。需要开槽的时候用Tools > Convert > Create Board Cutout from Selected Primitives。

AI 辅助这边,用 TaoToken 的统一 Key,Base URL 固定https://taotoken.net/api,Key 和 Model ID 写进auth.json或对应工具的 settings 文件。脚本、插件、CLI 工具都指向同一个 Base URL,Key 只维护一份。需要生成器件注释、整理 BOM、写工程脚本的时候,直接调就行。

如果你主要做长期编码或者 Agent 类的自动化任务,可以看看 Coding Plan 相关的接入方式,把常用脚本和工具都挂到统一 Key 下。需要验证模型对话效果,可以从模型对话入口进去试。Key 的管理和生成在控制台的 API Keys 页面,接入细节看文档。

实际用下来,最省事的做法是:先把 AD20 的联动配好,确认双向高亮没问题;再把 TaoToken 的配置文件建好,用一个最小脚本跑通请求;最后把两者结合,导出器件列表批量处理。每一步都单独验证,出问题的时候好定位。硬件工程师的时间应该花在布局和信号完整性上,重复的查找和注释交给工具。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询