Altium Schematic Reader 是一个 AI 技能,用于借助结构化数据回答关于 Altium Designer 项目和原理图的问题,让回答基于真实电路事实,而不是根据文件名或截图猜测。脚本通过 altium-monkey 读取 Altium 文件,并返回紧凑的 JSON 片段供 AI 推理。
前提条件:Python 环境中必须能导入 altium-monkey。推荐安装方式为 pip install altium-monkey。如果在 altium_monkey 源码检出目录内工作,运行脚本前需将 PYTHONPATH 指向其 src/py 目录,例如 $env:PYTHONPATH="path\to\altium_monkey\src\py"。
定位设计:如果用户没有指明项目,可递归查找候选 Altium 项目:Get-ChildItem -Recurse -Filter *.PrjPcb。如果存在多个可能项目,应询问要检查哪一个。对于单个 .SchDoc,使用 sheet 命令。
命令模式:可从任意工作目录运行 python <skill_dir>\scripts\read_schematic.py <command> [args]。所有命令将 JSON 打印到 stdout,错误信息以 JSON 打印到 stderr。
工作流程:对于本次会话尚未检查过的项目,始终先运行 summary。随后选择有针对性的后续查询:components --brief 了解图纸上有哪些元件;nets 列出命名网络或搜索电源/信号名称;nets --name NET_NAME 检查某网络上的所有端点;connections --designator U1 检查元件的所有连接引脚;connections --designator U1 --pin 5 查看单个引脚;bom 用于物料清单和变体问题;仅在无 .PrjPcb 时使用 sheet;raw design 或 raw netlist 仅作为最后手段,因为输出可能很大。对于 MCU、处理器、连接器和排针表格,不要只依赖网表连接,因为网表会省略未连接引脚;应检查元件符号引脚(通过 altium-monkey 的 component.pins,或 altium-circuit-investigator 的 port_inventory.py),并将这些引脚与网表端点合并,以列出所有引脚,包括 NC/未连接引脚。
主要命令:项目摘要 summary path\to\Project.PrjPcb;元件 components 支持 --brief、--sheet、--designator;网络 nets 支持 --contains、--name;引脚级连接 connections 支持 --designator 和 --pin;BOM bom 支持 --variant;单张原理图 sheet path\to\Sheet.SchDoc;原始数据 raw 支持 design 或 netlist。
推理规则:回答中应引用位号、引脚号、网络名和原理图文件名;优先使用项目级命令而非单张图纸检查,因为位号和层级在项目级解析;当可查询网表时,不要根据符号图形或元件名称推断连接;区分“网表中不存在”与“符号上不存在”:引脚覆盖重要时,未连接的符号引脚仍应报告为 NC;对于 CTRL、OUT、IN、FB、AD、QD、AUX 等不明确信号名,应检查局部原理图标签或使用 altium-circuit-investigator 后再命名功能;对于“这个电路做什么”,先看 summary,再看图纸级元件简表,然后看主要 IC 的连接;对于电源问题,检查 summary.power_and_ground_nets、类似电源轨的网络名和目标 IC 的 POWER 引脚;对于审查问题,先找证据,再将已确认问题与假设分开。
已知边界:复杂层级通道和由 .Annotation 驱动的映射可能需要人工验证;变体支持取决于 altium-monkey,对特殊变体设置可能有限;解析失败时应报告失败文件路径和确切的 JSON 错误;altium-monkey 采用 AGPL-3.0-or-later 许可证,在将其嵌入分发或网络服务前应审查许可义务。如果需要围绕该技能设计后端、API、缓存、UI 或 AI 工作流,可阅读 references/software_design.md。