让 Claude Code 直接操刀画原理图和 PCB:VSCode 插件接外部 API 全流程

先说结论:装好 VSCode 里的 Claude Code 扩展,把模型请求指向你自己的外部 API,再让它通过一座「桥」直接连上立创EDA,AI 就能在编辑器里帮你放器件、连网络、跑 DRC。整套链路我跑通了,下面按顺序拆给你看,5 分钟能照着配完。

这篇讲清三件事:VSCode 里怎么用 Claude Code 并接外部 API;easyeda-api 这个技能怎么配、怎么调用立创EDA 的 API Gateway;以及让 AI 画原理图、PCB 时手上有哪些技能可用、哪些坑必须绕开。


一句话丢给 AI:「在原理图上放一颗 STM32H753,坐标 3000,3000」。它做的事其实是这样一段调用:

javascript 复制代码
// ① 先搜器件库拿到器件对象
var devices = await eda.LIB_Device.getByLcscIds(["C15849"]);
// ② 一步放到画布上
var comp = await eda.sch_PrimitiveComponent.create(
  devices[0], 3000, 3000
);

这段代码不是在你本机跑的,而是被送进了正在运行的立创EDA 编辑器里执行。器件应声出现在画布上。要让这一幕发生,得先把两条路修通:一条是 VSCode 到外部大模型,另一条是 AI 到立创EDA。先修第一条。


第一条路:VSCode 里的 Claude Code 接外部 API

Claude Code 有官方的 VSCode 扩展,在插件市场搜 Claude Code 装上即可,要求 VSCode 1.98.0 以上。它提供原生图形界面:改动实时以 diff 展示、可先审阅 AI 的计划再决定是否接受、能 @ 引用文件的指定行、多会话开在不同标签页。装完首次打开会让你登录 Claude 账号------注意,用官方付费订阅账号时是不需要 API Key 的。

但我们的目标是接外部 API(比如自建网关或第三方兼容服务),把请求路由到自己指定的地方。原理很简单:Claude Code 认两个环境变量,一个指地址、一个给凭证。

变量 作用 凭证走哪个请求头
ANTHROPIC_BASE_URL 外部 API 的地址 ---
ANTHROPIC_AUTH_TOKEN Bearer 令牌方式的凭证 Authorization: Bearer
ANTHROPIC_API_KEY Key 方式的凭证 x-api-key

关键在于:VSCode 扩展有自己的凭证检查,它读的是 VSCode 用户设置里的 claudeCode.environmentVariables,而不是 shell 里的 export,也不是 ~/.claude/settings.json。这是最容易踩空的地方------你在终端 export 了半天,扩展照样走官方登录。

正确做法:VSCode 里执行命令 Preferences: Open User Settings (JSON),加上这段:

json 复制代码
"claudeCode.environmentVariables": [
  { "name": "ANTHROPIC_BASE_URL", "value": "https://你的网关地址" },
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "你的令牌" }
]

不确定该用哪个变量?先用 ANTHROPIC_AUTH_TOKEN。如果验证时返回 401,说明网关认的是 x-api-key,换成 ANTHROPIC_API_KEY 再试。想在配置前先确认地址和凭证没问题,可以直接 curl 打一枪试探:

bash 复制代码
curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"...","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'

配好后在 Claude Code 里跑 /status,能看到当前用的 base URL 和凭证来源。到这一步,第一条路就通了。


第二条路:easyeda-api 技能连上立创EDA

模型能跑了,但它怎么把代码送进立创EDA?答案是官方那套桥接架构。这里有三个组件,缺一不可:

组件 位置 干什么
Run API Gateway 立创EDA 扩展 在编辑器内接收代码并执行、返回结果
Bridge Server 任一有 Node.js 的机器 WebSocket 中转,管理 EDA 窗口连接
easyeda-api skill AI Agent 端 API 类型定义,告诉 AI 能调哪些函数

数据流是:AI 通过 HTTP/WS 发给 Bridge Server,Bridge 再用 WebSocket 转给立创EDA 里的 Run API Gateway 执行。端口区间固定 49620--49629,Bridge 启动时自动挑第一个可用端口。

配置分四步。第一步,在立创EDA 专业版的扩展管理器里搜索安装 Run API Gateway(v1.0.5 以上)easyeda-api-skill

第二步,部署 Bridge Server。它藏在官方仓库里:

bash 复制代码
git clone --depth=1 https://github.com/easyeda/easyeda-api-skill.git
cd easyeda-api-skill && npm install
node scripts/bridge-server.mjs &

第三步是最关键的坑:如果 Bridge Server 和立创EDA 不在同一台机器(比如一个跑在虚拟机、一个跑在 Windows),Bridge 默认只监听 127.0.0.1,Run API Gateway 扫描端口时根本发现不了它。改掉它:

javascript 复制代码
// scripts/bridge-server.mjs
const LISTEN_HOST = '0.0.0.0';  // 原来是 '127.0.0.1'

第四步,验证与连接。先看桥活着没:

bash 复制代码
curl http://<HOST>:49620/health
# {"service":"easyeda-bridge","status":"ok","edaConnected":false,...}

然后 Run API Gateway 扩展会自动扫描端口连上桥,edaConnected 变 true 就通了。如果自动发现失败,去扩展的「配置」标签页手动填 Bridge 地址即可。连通后,一条 curl 就能让 AI 在编辑器里干活:

bash 复制代码
curl -X POST http://<HOST>:49620/execute \
  -H "Content-Type: application/json" \
  -d '{"code":"return await eda.dmt_Project.getCurrentProjectInfo();"}'

至此,前面那段放 STM32H753 的代码就能真正落到画布上了。


画原理图、PCB,手上有哪些技能可用

两条路都通了,AI 具体能调什么、要注意什么,一张图先收进脑子:

lceda-ai-agent 这个技能覆盖了扩展 API 的全景,最实用的是原理图三步法。第一步 AI 端生成标准网表 JSON(含器件的 LCSC 编号、位号、器件类型、坐标);第二步用「先搜库拿对象、再 create 一步到位」的新版写法把器件放上去;第三步调用布局与布线的 Beta 接口做初步排布。检查环节它给了三级体系:官方 DRC 管物理规则(间距、差分对、等长网络、丝印重叠),AI 语义检查管官方查不出的东西(比如去耦电容够不够、CAN 总线两端有没有 120Ω 终端电阻、晶振负载电容匹不匹配),最后用画布上的视觉标注把问题位置红黄蓝标出来,双击就能跳过去。

easyeda-api 这个技能是 API 的字典------120 多个类、62 个枚举、70 个接口全在里面,还带着能直接执行代码的 Bridge。放器件、搜器件库、跑 DRC、查工程信息,都是从这里查签名、发指令。

两者配合的分工很清楚:

场景 主要靠
查 API 怎么调、发执行指令 easyeda-api
绘制流程、检查体系、集成模式 lceda-ai-agent
官方规则检查 eda.sch_Drc / eda.pcb_Drc
官方查不出的电气语义 AI 语义检查

这些坑,我替你踩过了

坐标单位不一致:原理图和符号画布的单位是 0.01 英寸,PCB 和封装画布是 mil。跨画布操作不转换,器件必然放歪。这是元件错位最常见的原因。

写操作必须串行:批量放器件时别用 Promise.all 并发,create 内部有全局递增 ID,并发会乱。老老实实用 for...of 一个个 await。

版本差异要命 :立创EDA 3.2.149(旧版)里 create() 是同步 的,加 await 会静默失败------不报错、不放器件、控制台也没输出,极难排查;搜索模块是小写 eda.lib_Device。3.3 以上版本 create() 变异步要加 await,模块名是大写 eda.LIB_Device。动手前先确认自己装的是哪个版本。

autoLayout / autoRouting 是 Beta:行为可能变,别用在正式生产,人工微调还是省不掉。

一条铁律压轴 :任何 API 参数,先去官网文档 prodocs.lceda.cn/cn/api/guide/ 确认真实签名,不要凭印象猜方法名。这条是被现实教训过的------猜出来的 API 名十有八九是错的,白白浪费一整轮调试。官方文档站是 VitePress 单页应用,curl 抓取时路径要带 .html 后缀,不能用结尾斜杠。


收尾

整条链路其实就两句话:VSCode 用 claudeCode.environmentVariables 把 Claude Code 指向外部 API;再用 Run API Gateway + Bridge Server + easyeda-api 三件套把 AI 接进立创EDA。前者解决「用谁的脑子」,后者解决「手伸进哪」。器件放置、网络连接、DRC 检查、问题标注,之后就是 AI 在编辑器里替你动手了。

顺带一句,立创EDA 官方也开了「AI 扩展插件训练营」,从环境搭建到数据手册助手完整案例都有录播。


AI的探索之旅 | 让技术发挥最大价值

相关推荐
爱网络爱Linux2 小时前
Linux proc 目录安全加固
linux·运维·rhce·rhca·红帽认证·proc 目录安全加固
MindUp2 小时前
企业网盘权限模型解析:多层级访问控制与审计能力选型指南
java·linux·运维
ICECREAM2 小时前
环形队列设计——基于共享内存的高效进程间通信
linux
pt10432 小时前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络
kdxiaojie2 小时前
Linux 驱动研究 —— I2C (5)
linux·运维·笔记·学习
李永奉3 小时前
杰理可视化SDK开发-【BUG】配置“TWS两边同时按消息使能”功能后,按键单击功能无效失灵
开发语言·单片机·嵌入式硬件·物联网·bug
会周易的程序员3 小时前
从零构建多核CPU负载自适应控制系统
linux·c++·笔记·物联网·测试工具
ZXXstarstar3 小时前
2026年电池安全使用年限的量化决策:什么时间到期最需要替换?
linux·运维·服务器·电池
小李不困还能学3 小时前
PyCharm下载安装与配置教程
ide·python·pycharm
执迷不悟8233 小时前
51单片机--中断/定时/PWM
单片机·嵌入式硬件·51单片机