首页 文章 精选 留言 我的

精选列表

搜索[其他],共10018篇文章
优秀的个人博客,低调大师

python:pycharm:突然之间引用同一个目录下的其他模块不出现代码提示的问题解决方法

同时,在主调模块中输入import进来的模块的名字,不会出现代码提示....... 居然没有代码提示 这是怎么个鬼情况呢??? 改一改: 路径写全,问题解决了. 然而这仅仅是一种解决方案. 另外一种解决方案是这样的: 把这个包含文件的目录设置成Sources Root pycharm就会索引里面的*.py文件了..... 然而有一个问题: 假如说我的工程里面有两个文件夹,都设置成了sources root,会发生什么情况呢?? 我们可以看到,这个test.py把database文件夹下的模块classuser给引入进来了 ---------------------------分割线------------------------------------------ 那么,如果我们的程序脱离了pycharm之后会发生什么情况呢? 我们去这个项目的文件夹开一个终端命令行窗口,然后python一下test.py 果然,上下文依赖出现问题了. 解决的方法是: 把你的主程序文件放在一个文件夹里面去,然后它所有调用的模块都放在这个文件夹,或者这个文件夹的子文件夹里面去: 这样子,既可以在pycharm里面运行这个程序,也可以单独的使用命令行运行这个程序.. 那么我想,在pycharm里面为了避免出现这种虚拟环境造成路径问题,可以考虑什么样的代码风格呢? 建议把你程序的主入口模块放在一个文件夹A中,所有他要调用的模块放在A的子文件夹里面,然后在写代码的时候,将模块的调用,写成: 子文件夹.模块名 的形式.这样你既能使用pycharm的各种提示功能,也能保证程序迁移到系统命令行环境后的运行. 欢迎拍砖讨论.... 另外:使用pycharm,官方推荐的编码规范是 PEP8: https://www.python.org/dev/peps/pep-0008/#imports 点这个链接,就可以看到pep8 对import的建议: 其中有一句: 所以,还是来整理一下你的文件结构,然后用绝对路径吧

优秀的个人博客,低调大师

CodeBuddy真的太好用了,以后画电路板也可以用AI实现了,比较使用分享给大家,也预祝CodeBuddy和其他的国产大模型越做越好。

# 🚀 全程对话构建「AI大模型调用立创EDA」完整实战教程 > 用 CodeBuddy 全程对话,从零搭建一套**「大模型直接操控立创EDA专业版画原理图、PCB布线」**的自动化系统。 > 📌 **适用读者**:硬件工程师 / 嵌入式开发者 / 对AI辅助PCB设计感兴趣的学习者 🖥️ **测试环境**:Windows 11 + 立创EDA专业版 3.2.121 + Python 3.13 📅 **完成时间**:2026-08-21 ⏱️ **预计耗时**:约 1~2 小时 --- ## 📖 目录 1. 背景与目标 1. 总体架构(先理解原理) 1. 方案选型对比 1. 环境准备 1. 安装 easyeda-agent 1. 连接立创EDA 1. 实战体验:读取电路/放置元件/添加按键 1. 接入 CodeBuddy(MCP桥接) 1. 踩坑记录(重点!) 1. 完整成果与组件清单 1. 扩展方向 1. 速查命令表 --- ## 一、背景与目标 ### 🤔 问题 **能不能让AI大模型直接调用立创EDA软件,用自然语言设计原理图和PCB布线?** ### ✅ 结论 **完全可以,但不是"开箱即用"** —— 需要搭建一层桥接,把AI的意图翻译成立创EDA能执行的操作。 ### 🔗 核心链路 text ```javascript 你的自然语言 → AI理解意图 → 生成结构化命令 → 桥接层 → 立创EDA专业版 → 绘制/布线 ``` ### ⚠️ 关键前提 必须使用**立创EDA专业版(LCEDA Pro / EasyEDA Pro)**,因为它有官方的**扩展API**(`eda.*` JavaScript API)可供外部程序调用。 --- ## 二、总体架构(先理解原理) 最终搭建的系统由五层组成: text ```javascript ┌──────────────────────────────────────────────────────────────┐ │ AI 层 │ CodeBuddy (对话 + MCP 调用) │ ├──────────────────────────────────────────────────────────────┤ │ MCP 桥 │ easyeda_mcp_bridge.py (Python) │ ├──────────────────────────────────────────────────────────────┤ │ CLI 层 │ easyeda (Go CLI/Daemon) │ ├──────────────────────────────────────────────────────────────┤ │ 插件层 │ Connector (.eext) 运行在 EDA 内部 │ ├──────────────────────────────────────────────────────────────┤ │ 目标软件 │ 立创 EDA 专业版 (EasyEDA Pro) │ └──────────────────────────────────────────────────────────────┘ ``` 各层职责: - **Go CLI/Daemon(easyeda)**:提供 20+ 个"类型化动作"(放元件、连线、DRC检查等),监听本地端口 `60832-60841` - **连接器插件(.eext)**:运行在 EDA 内部,把 CLI 的动作翻译成官方 `eda.*` API 调用 - **MCP桥**:让 AI(CodeBuddy)能通过标准 MCP 协议调用 CLI 的能力 --- ## 三、方案选型对比 调研发现实现"AI控制立创EDA"有多条技术路线,我对比了两个主流方案: |维度|官方 API Gateway(Run API Gateway)|easyeda-agent(社区开源)| | --- | --- | --- | |维护方|嘉立创官方|社区开发者| |功能覆盖|~99%(完整官方API)|20+ 个类型化动作| |操作方式|裸 JS 执行|类型化命令(有护栏、可审计)| |语言依赖|需要 Node.js|**纯 Go 二进制,无需 Node.js** ✅| |端口|49620|60832-60841| |稳定性|强|较好(断线自愈、版本校验)| ### 🎯 选择 easyeda-agent 的原因 1. ✅ 机器没装 Node.js,easyeda-agent 是 Go 预编译二进制,直接可用 1. ✅ 类型化动作比裸 JS 更适合 AI 对话驱动(AI 不需要懂 EDA 的底层 API) 1. ✅ 自带断线自愈、握手校验,可靠性更好 --- ## 四、环境准备 |项目|要求|说明| | --- | --- | --- | |立创 EDA 专业版|3.2.0+|需已登录账号| |操作系统|Windows / macOS / Linux|本教程以 Windows 11 为例| |GitHub 访问|下载 Release 用|国内可能需要镜像| |Python|3.10+|运行 MCP 桥接(本机用 3.13)| |**Node.js**|**不需要!**|选 easyeda-agent 路线就无需安装| --- ## 五、安装 easyeda-agent ### 5.1 下载 CLI 从 GitHub Release 下载最新版(本教程用 v1.1.1): - Windows 二进制:`easyeda_windows_amd64.exe` - 下载后重命名为 `easyeda.exe`,放入 `C:\tools\easyeda-agent\` - 加入系统 PATH powershell ```javascript # 验证安装 easyeda --version # 输出: easyeda-agent v1.1.1 ``` > 🇨🇳 **国内下载注意**:GitHub直接下载可能失败。可用镜像前缀 `https://gh-proxy.com/https://github.com/...`,**下载后务必用 **`checksums.txt`** 校验 SHA256**(部分镜像会返回损坏文件,详见踩坑1)。 ### 5.2 下载连接器插件 - 连接器插件:`easyeda-agent-connector.eext` - 必须与 CLI **严格同版本**(都用 v1.1.1) ### 5.3 下载 Skill 技能包 - `skills.tar.gz`:包含 AI 工作流定义(`SKILL.md`、`references/` 设计规范、`scripts/` 工具脚本) ### 📦 最终文件清单 text ```javascript C:\tools\easyeda-agent\ ├── easyeda.exe # CLI 主程序 ├── easyeda-agent-connector.eext # 连接器插件(EDA内导入) ├── skills.tar.gz # AI 技能包 └── checksums.txt # 校验文件 ``` --- ## 六、连接立创 EDA ### 6.1 导入插件(在 EDA 图形界面操作) 1. 立创 EDA 专业版 → **顶部菜单「高级」→「扩展管理器」** > 💡 不同版本入口:V3 是「高级 → 扩展管理器」;V2 是「设置 → 扩展 → 扩展管理器」 1. 点击 **「导入」**,选择 `easyeda-agent-connector.eext` 1. 在已安装列表里**启用**它 1. ⚠️ **关键步骤**:**勾选「允许外部交互 / Allow external interaction」** 1. **完全退出并重启 EDA**(不是最小化,必须彻底关闭重开) > 💡 也可以在扩展管理器里**搜索 **`easyeda-agent`** 在线安装**(官方插件市场),更省事。 ### 6.2 启动 daemon powershell ```javascript # 启动守护进程(保持终端运行) easyeda daemon start # 另开一个终端验证连接 easyeda health ``` ### ✅ 成功标志 json ```javascript { "status": "found", "found": { "port": 60832, "service": "easyeda-agent", "raw": { "connectorVersionOk": true, "windows": [...] } } } ``` > 🎯 **判断关键**:`windows` 有值 + `connectorVersionOk: true` = 连接成功! ### 6.3 常用检查命令 powershell ```javascript easyeda health # 连接状态 easyeda actions # 全部 20+ 类型化动作 easyeda sch pages # 列出原理图页面 easyeda project info # 当前工程信息 ``` --- ## 七、实战体验 ### 7.1 读取电路(读操作) powershell ```javascript # 读取原理图语义快照(元件+网络+自动检查) easyeda sch read --doc # 导出页面为 PNG 图片(无需打开 EDA 也能渲染) easyeda sch export-image --doc --format png --out preview.png ``` **实战效果**:读取 Jlink 工程的 CH32V305 页面,识别出 **97 个元件**、34+ 网络,自动发现导线交叉、零长度导线等问题。 ### 7.2 搜索器件(读操作) powershell ```javascript # 搜索 10k 0402 电阻 easyeda lib search --query "10k 0402" --limit 5 ``` 返回真实器件:`0402WGF1002TCE`(10kΩ / ±1% / R0402 / LCSC C25744 / 厚声) ### 7.3 放置元件(写操作) powershell ```javascript # 1️⃣ 先搜索获得器件库 uuid easyeda lib search --query "TS-1187A" # 轻触按键 # 2️⃣ 放置到原理图(⚠️ 不要盲猜坐标!) easyeda sch place --lib --uuid --x 500 --y 500 --designator S1 ``` > 🚀 **推荐用自动找空白命令**: > powershell > ```javascript easyeda sch autoplace-free --designators S1 --apply ``` > 它会自动检测所有元件 bbox,把 S1 放到图纸安全空白区,并自动做碰撞检测。 ### 7.4 连线(写操作) powershell ```javascript # 从引脚拉线 + 放网络标记(标准按键接法) easyeda sch connect --pin S1:1 --kind gnd --net GND --direction down --offset 30 easyeda sch connect --pin S1:2 --kind netport --net KEY --direction up --offset 30 ``` ### 7.5 校验与保存 powershell ```javascript easyeda sch check # 设计检查(浮空引脚/交叉线/零长线) easyeda sch layout-lint # 布局重叠/间距检查 easyeda sch save # 保存 ``` ### 🎉 实战成果 给 Jlink 工程成功添加了一个轻触按键(S1,TS-1187A),4 引脚全部接入 GND 和 KEY 网络,**0 浮空引脚、0 布局重叠**。 --- ## 八、接入 CodeBuddy(MCP桥接) 这是"让AI直接用对话操控EDA"的最后一环。核心是写一个 **MCP stdio Server**,把 easyeda CLI 命令封装成 MCP 工具。 ### 8.1 安装 MCP SDK powershell ```javascript python -m pip install "mcp==1.29.0" ``` > ⚠️ **不要装 mcp 2.x**:2.x 把 FastMCP 高层框架移除了,API 与主流教程完全不同(详见踩坑4)。 ### 8.2 编写 MCP 桥接 server 文件:`easyeda_mcp_bridge.py`(FastMCP 1.x 写法,16个工具) python ```javascript from mcp.server.fastmcp import FastMCP mcp = FastMCP("easyeda-agent") def run_easyeda(subcommand, args): import subprocess cmd = ["C:/tools/easyeda-agent/easyeda.exe"] + subcommand for k, v in args.items(): if v: cmd += [f"--{k}", str(v)] p = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace", timeout=180) return p.stdout.strip() @mcp.tool() def easyeda_health() -> str: """检查 easyeda-agent daemon 与 EasyEDA 连接器状态。""" return run_easyeda(["health"], {}) @mcp.tool() def easyeda_lib_search(query: str, limit: int = 5) -> str: """在 EasyEDA 器件库搜索器件。""" return run_easyeda(["lib", "search"], {"query": query, "limit": limit}) # ... 共 16 个工具(读电路/列元件/放元件/连线/DRC/导出等) if __name__ == "__main__": mcp.run(transport="stdio") ``` ### 8.3 在 CodeBuddy 配置 MCP CodeBuddy → 侧栏右上角 **Settings** → **MCP 标签页** → **Add MCP**,粘贴: json ```javascript { "mcpServers": { "easyeda-agent": { "type": "stdio", "command": "C:/Users/13979/AppData/Local/Programs/Python/Python313/python.exe", "args": ["C:/Users/13979/CodeBuddy/20260821111818/easyeda_mcp_bridge.py"], "description": "EasyEDA Pro automation via easyeda-agent CLI" } } } ``` 保存后显示**绿色状态**即连接成功。 ### 8.4 🎬 效果演示 配置完成后,在 CodeBuddy 里直接对话: |你说的话|AI 自动执行| | --- | --- | |"读取 ch32v305 页面的电路"|→ 自动调用 `easyeda_sch_read`,返回 97 个元件| |"在器件库搜一个 10k 电阻"|→ 自动调用 `easyeda_lib_search`,返回 LCSC C25744| |"放置一个轻触按键"|→ 自动调用 `easyeda_sch_place` + `autoplace-free`| **🚀 全程对话即可操控立创 EDA 画原理图、做 PCB!** --- ## 九、踩坑记录(重点!) ### 💥 坑1:GitHub 镜像会返回"损坏"文件(哈希校验救命) |项目|说明| | --- | --- | |**现象**|从 `ghproxy.net` 镜像下载的 `easyeda.exe` 无法运行,报"不是有效应用程序"| |**排查**|`Get-FileHash` 对比官方 `checksums.txt`,发现 SHA256 完全不同——文件被镜像篡改/损坏了| |**解决**|改用 `gh-proxy.com` 镜像,下载后逐一校验哈希,全部匹配才通过| |**教训**|**下载的二进制/插件必须做 SHA256 校验**,尤其走国内镜像时| --- ### 💥 坑2:端口号变了(教程过时) |项目|说明| | --- | --- | |**现象**|网上教程写默认端口 `49620-49629`,但实际连不上| |**排查**|`easyeda --help` 显示 v1.1.1 默认端口是 `60832-60841`| |**教训**|**以实际版本的 **`--help`** 输出为准**,别信旧教程| --- ### 💥 坑3:导入插件后不重启 = 白导 |项目|说明| | --- | --- | |**现象**|插件导入了但 `windows: []`,死活连不上| |**解决**|官方 SKILL.md 明确要求——**导入后必须完全退出并重启 EDA**,否则旧窗口跑旧代码并抢占 daemon| |**教训**|**EDA 扩展类操作,改了必须重启**| --- ### 💥 坑4:mcp SDK 2.x 是"坑货"(API大改) |项目|说明| | --- | --- | |**现象**|装 mcp 2.0.0 后,`FastMCP`、`server.list_tools` 全部找不到,报 `AttributeError`| |**排查**|mcp 2.x 把 FastMCP 高层框架整个移除了,改用新的低层 API| |**解决**|降级到 `mcp==1.29.0`(FastMCP 成熟稳定版)| |**教训**|**SDK 大版本升级常带 breaking change,遇到 API 不匹配先查版本**| --- ### 💥 坑5:PowerShell 中文引号编码问题 |项目|说明| | --- | --- | |**现象**|命令行里带中文引号/括号的脚本频繁报"字符串缺少终止符"| |**原因**|Windows PowerShell 默认 GBK 编码,中文符号被误解码| |**解决**|脚本内避免中文引号;或用 `-File` 方式执行 .ps1 文件;Python 脚本内强制 `PYTHONIOENCODING=utf-8`| |**教训**|Windows 下写自动化脚本,**尽量用英文提示 + UTF-8**| --- ### 💥 坑6:放置元件坐标盲猜导致重叠 |项目|说明| | --- | --- | |**现象**|盲猜坐标放按键,结果和 LED1/R6 等元件重叠| |**解决**|用 `sch autoplace-free --designators --apply` 自动找空白区| |**教训**|**手动坐标要谨慎,能自动布局就别盲猜**| --- ### 💥 坑7:删除元件可能误伤连接的原有网络 |项目|说明| | --- | --- | |**现象**|删除测试按键时,把原有 R6.1 / LED1.1 的 KEY 网络连接一起删了,产生浮空引脚| |**解决**|用 `sch read` 检查网络状态,重新用 `sch connect` 恢复 KEY 连接| |**教训**|**删除操作前先 **`sch read`** 看清网络拓扑;删除后立即 **`sch check`** 验证**| --- ## 十、完整成果与组件清单 ### ✅ 最终状态 |组件|版本/状态| | --- | --- | |easyeda CLI|v1.1.1 ✅| |连接器插件|已导入 EDA ✅| |Skill 技能包|✅| |Python|3.13.0 ✅| |MCP SDK|mcp 1.29.0 ✅| |MCP 桥接 server|`easyeda_mcp_bridge.py`(16 工具)✅| |easyeda daemon|60832 端口运行中 ✅| |EasyEDA 连接器|已连接 ✅| ### 🎯 能力清单 |能力|状态| | --- | --- | |读取原理图电路(元件/网络/检查)|✅| |搜索器件库(LCSC 编号)|✅| |放置元件(自动避让)|✅| |引脚连线 + 网络标记|✅| |设计检查(DRC/布局 lint)|✅| |导出 PNG/PDF/BOM|✅| |CodeBuddy 自然语言对话操控|✅| --- ## 十一、扩展方向 |方向|说明| | --- | --- | |**PCB 自动化**|easyeda-agent 支持 `pcb` 系列动作(板框、布局、布线、铺铜),可进一步做 PCB 全流程自动化| |**电路块库**|`easyeda blocks` 提供离线电路块库(RS485、Buck电源、USB串口等),可复用已验证的电路块| |**自动修复**|`layout-lint --gate`、DRC 自动修复能力,实现"设计→检查→修复"闭环| |**设计评审**|AI 能理解电路意图做语义检查(去耦电容位置、差分线等长),超越传统 DRC| |**批量生成**|配合 CodeBuddy,用一份需求描述直接生成整板原理图| --- ## 附:速查命令表 |命令|作用| | --- | --- | |`easyeda health`|连接状态检查| |`easyeda actions`|列出全部动作| |`easyeda sch pages`|列出原理图页面| |`easyeda sch read --doc `|读取电路快照| |`easyeda sch list --doc `|列元件| |`easyeda sch check --doc `|设计检查| |`easyeda sch drc --doc `|DRC 校验| |`easyeda sch layout-lint --doc `|布局检查| |`easyeda lib search --query `|搜器件| |`easyeda sch place --lib --uuid --x --y`|放元件| |`easyeda sch autoplace-free --designators X --apply`|自动找空白放置| |`easyeda sch connect --pin U1:5 --kind gnd --net GND`|引脚连线+标记| |`easyeda sch export-image --format png --out a.png`|导出图片| |`easyeda sch save`|保存| --- ## 📢 写在最后 本教程由一次真实的 **CodeBuddy 全程对话实战**整理而成。 > 💡 **核心体会**:AI 助手不止能写代码,还能帮你**"对话式"地搭建一套软硬件自动化系统** —— 从方案调研、环境搭建、踩坑排错到最终集成,全部通过自然语言协作完成。 如果你在搭建过程中遇到问题,欢迎在评论区留言讨论!也欢迎分享你用这套系统做出的第一个板子 🎉 # 🚀 全程对话构建「AI大模型调用立创EDA」完整实战教程 > 用 CodeBuddy 全程对话,从零搭建一套**「大模型直接操控立创EDA专业版画原理图、PCB布线」**的自动化系统。 > 📌 **适用读者**:硬件工程师 / 嵌入式开发者 / 对AI辅助PCB设计感兴趣的学习者 🖥️ **测试环境**:Windows 11 + 立创EDA专业版 3.2.121 + Python 3.13 📅 **完成时间**:2026-08-21 ⏱️ **预计耗时**:约 1~2 小时 --- ## 📖 目录 1. 背景与目标 1. 总体架构(先理解原理) 1. 方案选型对比 1. 环境准备 1. 安装 easyeda-agent 1. 连接立创EDA 1. 实战体验:读取电路/放置元件/添加按键 1. 接入 CodeBuddy(MCP桥接) 1. 踩坑记录(重点!) 1. 完整成果与组件清单 1. 扩展方向 1. 速查命令表 --- ## 一、背景与目标 ### 🤔 问题 **能不能让AI大模型直接调用立创EDA软件,用自然语言设计原理图和PCB布线?** ### ✅ 结论 **完全可以,但不是"开箱即用"** —— 需要搭建一层桥接,把AI的意图翻译成立创EDA能执行的操作。 ### 🔗 核心链路 text ```javascript 你的自然语言 → AI理解意图 → 生成结构化命令 → 桥接层 → 立创EDA专业版 → 绘制/布线 ``` ### ⚠️ 关键前提 必须使用**立创EDA专业版(LCEDA Pro / EasyEDA Pro)**,因为它有官方的**扩展API**(`eda.*` JavaScript API)可供外部程序调用。 --- ## 二、总体架构(先理解原理) 最终搭建的系统由五层组成: text ```javascript ┌──────────────────────────────────────────────────────────────┐ │ AI 层 │ CodeBuddy (对话 + MCP 调用) │ ├──────────────────────────────────────────────────────────────┤ │ MCP 桥 │ easyeda_mcp_bridge.py (Python) │ ├──────────────────────────────────────────────────────────────┤ │ CLI 层 │ easyeda (Go CLI/Daemon) │ ├──────────────────────────────────────────────────────────────┤ │ 插件层 │ Connector (.eext) 运行在 EDA 内部 │ ├──────────────────────────────────────────────────────────────┤ │ 目标软件 │ 立创 EDA 专业版 (EasyEDA Pro) │ └──────────────────────────────────────────────────────────────┘ ``` 各层职责: - **Go CLI/Daemon(easyeda)**:提供 20+ 个"类型化动作"(放元件、连线、DRC检查等),监听本地端口 `60832-60841` - **连接器插件(.eext)**:运行在 EDA 内部,把 CLI 的动作翻译成官方 `eda.*` API 调用 - **MCP桥**:让 AI(CodeBuddy)能通过标准 MCP 协议调用 CLI 的能力 --- ## 三、方案选型对比 调研发现实现"AI控制立创EDA"有多条技术路线,我对比了两个主流方案: |维度|官方 API Gateway(Run API Gateway)|easyeda-agent(社区开源)| | --- | --- | --- | |维护方|嘉立创官方|社区开发者| |功能覆盖|~99%(完整官方API)|20+ 个类型化动作| |操作方式|裸 JS 执行|类型化命令(有护栏、可审计)| |语言依赖|需要 Node.js|**纯 Go 二进制,无需 Node.js** ✅| |端口|49620|60832-60841| |稳定性|强|较好(断线自愈、版本校验)| ### 🎯 选择 easyeda-agent 的原因 1. ✅ 机器没装 Node.js,easyeda-agent 是 Go 预编译二进制,直接可用 1. ✅ 类型化动作比裸 JS 更适合 AI 对话驱动(AI 不需要懂 EDA 的底层 API) 1. ✅ 自带断线自愈、握手校验,可靠性更好 --- ## 四、环境准备 |项目|要求|说明| | --- | --- | --- | |立创 EDA 专业版|3.2.0+|需已登录账号| |操作系统|Windows / macOS / Linux|本教程以 Windows 11 为例| |GitHub 访问|下载 Release 用|国内可能需要镜像| |Python|3.10+|运行 MCP 桥接(本机用 3.13)| |**Node.js**|**不需要!**|选 easyeda-agent 路线就无需安装| --- ## 五、安装 easyeda-agent ### 5.1 下载 CLI 从 GitHub Release 下载最新版(本教程用 v1.1.1): - Windows 二进制:`easyeda_windows_amd64.exe` - 下载后重命名为 `easyeda.exe`,放入 `C:\tools\easyeda-agent\` - 加入系统 PATH powershell ```javascript # 验证安装 easyeda --version # 输出: easyeda-agent v1.1.1 ``` > 🇨🇳 **国内下载注意**:GitHub直接下载可能失败。可用镜像前缀 `https://gh-proxy.com/https://github.com/...`,**下载后务必用 **`checksums.txt`** 校验 SHA256**(部分镜像会返回损坏文件,详见踩坑1)。 ### 5.2 下载连接器插件 - 连接器插件:`easyeda-agent-connector.eext` - 必须与 CLI **严格同版本**(都用 v1.1.1) ### 5.3 下载 Skill 技能包 - `skills.tar.gz`:包含 AI 工作流定义(`SKILL.md`、`references/` 设计规范、`scripts/` 工具脚本) ### 📦 最终文件清单 text ```javascript C:\tools\easyeda-agent\ ├── easyeda.exe # CLI 主程序 ├── easyeda-agent-connector.eext # 连接器插件(EDA内导入) ├── skills.tar.gz # AI 技能包 └── checksums.txt # 校验文件 ``` --- ## 六、连接立创 EDA ### 6.1 导入插件(在 EDA 图形界面操作) 1. 立创 EDA 专业版 → **顶部菜单「高级」→「扩展管理器」** > 💡 不同版本入口:V3 是「高级 → 扩展管理器」;V2 是「设置 → 扩展 → 扩展管理器」 1. 点击 **「导入」**,选择 `easyeda-agent-connector.eext` 1. 在已安装列表里**启用**它 1. ⚠️ **关键步骤**:**勾选「允许外部交互 / Allow external interaction」** 1. **完全退出并重启 EDA**(不是最小化,必须彻底关闭重开) > 💡 也可以在扩展管理器里**搜索 **`easyeda-agent`** 在线安装**(官方插件市场),更省事。 ### 6.2 启动 daemon powershell ```javascript # 启动守护进程(保持终端运行) easyeda daemon start # 另开一个终端验证连接 easyeda health ``` ### ✅ 成功标志 json ```javascript { "status": "found", "found": { "port": 60832, "service": "easyeda-agent", "raw": { "connectorVersionOk": true, "windows": [...] } } } ``` > 🎯 **判断关键**:`windows` 有值 + `connectorVersionOk: true` = 连接成功! ### 6.3 常用检查命令 powershell ```javascript easyeda health # 连接状态 easyeda actions # 全部 20+ 类型化动作 easyeda sch pages # 列出原理图页面 easyeda project info # 当前工程信息 ``` --- ## 七、实战体验 ### 7.1 读取电路(读操作) powershell ```javascript # 读取原理图语义快照(元件+网络+自动检查) easyeda sch read --doc # 导出页面为 PNG 图片(无需打开 EDA 也能渲染) easyeda sch export-image --doc --format png --out preview.png ``` **实战效果**:读取 Jlink 工程的 CH32V305 页面,识别出 **97 个元件**、34+ 网络,自动发现导线交叉、零长度导线等问题。 ### 7.2 搜索器件(读操作) powershell ```javascript # 搜索 10k 0402 电阻 easyeda lib search --query "10k 0402" --limit 5 ``` 返回真实器件:`0402WGF1002TCE`(10kΩ / ±1% / R0402 / LCSC C25744 / 厚声) ### 7.3 放置元件(写操作) powershell ```javascript # 1️⃣ 先搜索获得器件库 uuid easyeda lib search --query "TS-1187A" # 轻触按键 # 2️⃣ 放置到原理图(⚠️ 不要盲猜坐标!) easyeda sch place --lib --uuid --x 500 --y 500 --designator S1 ``` > 🚀 **推荐用自动找空白命令**: > powershell > ```javascript easyeda sch autoplace-free --designators S1 --apply ``` > 它会自动检测所有元件 bbox,把 S1 放到图纸安全空白区,并自动做碰撞检测。 ### 7.4 连线(写操作) powershell ```javascript # 从引脚拉线 + 放网络标记(标准按键接法) easyeda sch connect --pin S1:1 --kind gnd --net GND --direction down --offset 30 easyeda sch connect --pin S1:2 --kind netport --net KEY --direction up --offset 30 ``` ### 7.5 校验与保存 powershell ```javascript easyeda sch check # 设计检查(浮空引脚/交叉线/零长线) easyeda sch layout-lint # 布局重叠/间距检查 easyeda sch save # 保存 ``` ### 🎉 实战成果 给 Jlink 工程成功添加了一个轻触按键(S1,TS-1187A),4 引脚全部接入 GND 和 KEY 网络,**0 浮空引脚、0 布局重叠**。 --- ## 八、接入 CodeBuddy(MCP桥接) 这是"让AI直接用对话操控EDA"的最后一环。核心是写一个 **MCP stdio Server**,把 easyeda CLI 命令封装成 MCP 工具。 ### 8.1 安装 MCP SDK powershell ```javascript python -m pip install "mcp==1.29.0" ``` > ⚠️ **不要装 mcp 2.x**:2.x 把 FastMCP 高层框架移除了,API 与主流教程完全不同(详见踩坑4)。 ### 8.2 编写 MCP 桥接 server 文件:`easyeda_mcp_bridge.py`(FastMCP 1.x 写法,16个工具) python ```javascript from mcp.server.fastmcp import FastMCP mcp = FastMCP("easyeda-agent") def run_easyeda(subcommand, args): import subprocess cmd = ["C:/tools/easyeda-agent/easyeda.exe"] + subcommand for k, v in args.items(): if v: cmd += [f"--{k}", str(v)] p = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace", timeout=180) return p.stdout.strip() @mcp.tool() def easyeda_health() -> str: """检查 easyeda-agent daemon 与 EasyEDA 连接器状态。""" return run_easyeda(["health"], {}) @mcp.tool() def easyeda_lib_search(query: str, limit: int = 5) -> str: """在 EasyEDA 器件库搜索器件。""" return run_easyeda(["lib", "search"], {"query": query, "limit": limit}) # ... 共 16 个工具(读电路/列元件/放元件/连线/DRC/导出等) if __name__ == "__main__": mcp.run(transport="stdio") ``` ### 8.3 在 CodeBuddy 配置 MCP CodeBuddy → 侧栏右上角 **Settings** → **MCP 标签页** → **Add MCP**,粘贴: json ```javascript { "mcpServers": { "easyeda-agent": { "type": "stdio", "command": "C:/Users/13979/AppData/Local/Programs/Python/Python313/python.exe", "args": ["C:/Users/13979/CodeBuddy/20260821111818/easyeda_mcp_bridge.py"], "description": "EasyEDA Pro automation via easyeda-agent CLI" } } } ``` 保存后显示**绿色状态**即连接成功。 ### 8.4 🎬 效果演示 配置完成后,在 CodeBuddy 里直接对话: |你说的话|AI 自动执行| | --- | --- | |"读取 ch32v305 页面的电路"|→ 自动调用 `easyeda_sch_read`,返回 97 个元件| |"在器件库搜一个 10k 电阻"|→ 自动调用 `easyeda_lib_search`,返回 LCSC C25744| |"放置一个轻触按键"|→ 自动调用 `easyeda_sch_place` + `autoplace-free`| **🚀 全程对话即可操控立创 EDA 画原理图、做 PCB!** --- ## 九、踩坑记录(重点!) ### 💥 坑1:GitHub 镜像会返回"损坏"文件(哈希校验救命) |项目|说明| | --- | --- | |**现象**|从 `ghproxy.net` 镜像下载的 `easyeda.exe` 无法运行,报"不是有效应用程序"| |**排查**|`Get-FileHash` 对比官方 `checksums.txt`,发现 SHA256 完全不同——文件被镜像篡改/损坏了| |**解决**|改用 `gh-proxy.com` 镜像,下载后逐一校验哈希,全部匹配才通过| |**教训**|**下载的二进制/插件必须做 SHA256 校验**,尤其走国内镜像时| --- ### 💥 坑2:端口号变了(教程过时) |项目|说明| | --- | --- | |**现象**|网上教程写默认端口 `49620-49629`,但实际连不上| |**排查**|`easyeda --help` 显示 v1.1.1 默认端口是 `60832-60841`| |**教训**|**以实际版本的 **`--help`** 输出为准**,别信旧教程| --- ### 💥 坑3:导入插件后不重启 = 白导 |项目|说明| | --- | --- | |**现象**|插件导入了但 `windows: []`,死活连不上| |**解决**|官方 SKILL.md 明确要求——**导入后必须完全退出并重启 EDA**,否则旧窗口跑旧代码并抢占 daemon| |**教训**|**EDA 扩展类操作,改了必须重启**| --- ### 💥 坑4:mcp SDK 2.x 是"坑货"(API大改) |项目|说明| | --- | --- | |**现象**|装 mcp 2.0.0 后,`FastMCP`、`server.list_tools` 全部找不到,报 `AttributeError`| |**排查**|mcp 2.x 把 FastMCP 高层框架整个移除了,改用新的低层 API| |**解决**|降级到 `mcp==1.29.0`(FastMCP 成熟稳定版)| |**教训**|**SDK 大版本升级常带 breaking change,遇到 API 不匹配先查版本**| --- ### 💥 坑5:PowerShell 中文引号编码问题 |项目|说明| | --- | --- | |**现象**|命令行里带中文引号/括号的脚本频繁报"字符串缺少终止符"| |**原因**|Windows PowerShell 默认 GBK 编码,中文符号被误解码| |**解决**|脚本内避免中文引号;或用 `-File` 方式执行 .ps1 文件;Python 脚本内强制 `PYTHONIOENCODING=utf-8`| |**教训**|Windows 下写自动化脚本,**尽量用英文提示 + UTF-8**| --- ### 💥 坑6:放置元件坐标盲猜导致重叠 |项目|说明| | --- | --- | |**现象**|盲猜坐标放按键,结果和 LED1/R6 等元件重叠| |**解决**|用 `sch autoplace-free --designators --apply` 自动找空白区| |**教训**|**手动坐标要谨慎,能自动布局就别盲猜**| --- ### 💥 坑7:删除元件可能误伤连接的原有网络 |项目|说明| | --- | --- | |**现象**|删除测试按键时,把原有 R6.1 / LED1.1 的 KEY 网络连接一起删了,产生浮空引脚| |**解决**|用 `sch read` 检查网络状态,重新用 `sch connect` 恢复 KEY 连接| |**教训**|**删除操作前先 **`sch read`** 看清网络拓扑;删除后立即 **`sch check`** 验证**| --- ## 十、完整成果与组件清单 ### ✅ 最终状态 |组件|版本/状态| | --- | --- | |easyeda CLI|v1.1.1 ✅| |连接器插件|已导入 EDA ✅| |Skill 技能包|✅| |Python|3.13.0 ✅| |MCP SDK|mcp 1.29.0 ✅| |MCP 桥接 server|`easyeda_mcp_bridge.py`(16 工具)✅| |easyeda daemon|60832 端口运行中 ✅| |EasyEDA 连接器|已连接 ✅| ### 🎯 能力清单 |能力|状态| | --- | --- | |读取原理图电路(元件/网络/检查)|✅| |搜索器件库(LCSC 编号)|✅| |放置元件(自动避让)|✅| |引脚连线 + 网络标记|✅| |设计检查(DRC/布局 lint)|✅| |导出 PNG/PDF/BOM|✅| |CodeBuddy 自然语言对话操控|✅| --- ## 十一、扩展方向 |方向|说明| | --- | --- | |**PCB 自动化**|easyeda-agent 支持 `pcb` 系列动作(板框、布局、布线、铺铜),可进一步做 PCB 全流程自动化| |**电路块库**|`easyeda blocks` 提供离线电路块库(RS485、Buck电源、USB串口等),可复用已验证的电路块| |**自动修复**|`layout-lint --gate`、DRC 自动修复能力,实现"设计→检查→修复"闭环| |**设计评审**|AI 能理解电路意图做语义检查(去耦电容位置、差分线等长),超越传统 DRC| |**批量生成**|配合 CodeBuddy,用一份需求描述直接生成整板原理图| --- ## 附:速查命令表 |命令|作用| | --- | --- | |`easyeda health`|连接状态检查| |`easyeda actions`|列出全部动作| |`easyeda sch pages`|列出原理图页面| |`easyeda sch read --doc `|读取电路快照| |`easyeda sch list --doc `|列元件| |`easyeda sch check --doc `|设计检查| |`easyeda sch drc --doc `|DRC 校验| |`easyeda sch layout-lint --doc `|布局检查| |`easyeda lib search --query `|搜器件| |`easyeda sch place --lib --uuid --x --y`|放元件| |`easyeda sch autoplace-free --designators X --apply`|自动找空白放置| |`easyeda sch connect --pin U1:5 --kind gnd --net GND`|引脚连线+标记| |`easyeda sch export-image --format png --out a.png`|导出图片| |`easyeda sch save`|保存| --- ## 📢 写在最后 本教程由一次真实的 **CodeBuddy 全程对话实战**整理而成。 > 💡 **核心体会**:AI 助手不止能写代码,还能帮你**"对话式"地搭建一套软硬件自动化系统** —— 从方案调研、环境搭建、踩坑排错到最终集成,全部通过自然语言协作完成。 如果你在搭建过程中遇到问题,欢迎在评论区留言讨论!也欢迎分享你用这套系统做出的第一个板子 🎉

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册