核心功能
EasyEDA Pro API Skill 是专为 AI 代理设计的嘉立创EDA专业版程序化控制工具,提供四大核心能力:
1. 完整 API 参考体系
- 120 个类、62 个枚举、70 个接口、19 个类型别名
- 覆盖文档管理(DMT_)、PCB设计(PCB_)、原理图(SCH_)、库管理(LIB_)、系统(SYS_)全领域
- 详细的方法签名、参数类型、返回值及使用备注
2. WebSocket 桥接架构
- Node.js 桥接服务器(端口 49620-49629 自动选择)
- AI 代理通过 HTTP/WS 与运行中的 EasyEDA Pro 客户端通信
- 支持代码在 EDA 浏览器运行时中直接执行
3. 源代码格式参考
- 项目、原理图、PCB 文档的底层 JSON 结构规范
- 用于直接分析或生成兼容的文档源数据
4. 扩展开发支持
- 完整的扩展开发文档与运行时约束说明
- 提供标准浏览器 API 的 EDA 替代方案(对话框、存储、IFrame 等)
显著优点
| 优势 | 说明 |
|------|------|
| **官方权威性** | 由 JLCEDA(嘉立创EDA团队)直接维护,API 文档与软件版本同步 |
| **功能全覆盖** | 从基础图元操作到项目/团队/工作区管理,无功能盲区 |
| **实时调试能力** | 桥接器支持即时代码执行,开发调试循环极短 |
| **多窗口支持** | 可同时连接多个 EDA 实例,灵活切换工作窗口 |
| **类型安全导向** | 强制使用枚举(如 `EPCB_LayerId.TOP` 而非 `1`),减少隐性错误 |
| **详尽错误预防** | 文档明确标注常见陷阱(坐标单位混淆、Promise 未 await、文档状态检查等) |
潜在局限与风险
技术约束:
- 必须运行 EasyEDA Pro 桌面客户端(不支持网页版)
- 需安装专用扩展
run-api-gateway.eext作为桥接端点 - Node.js 18+ 环境依赖
使用门槛:
- API 体量庞大,初学者需时间熟悉模块命名规范(DMT_/PCB_/SCH_/LIB_/SYS_)
- 坐标单位易混淆:PCB 使用 1mil,原理图使用 0.01inch(10mil),错误会导致 10 倍位置偏差
- 异步模式修改图元时需严格遵循
get() → toAsync() → setState_*() → done()流程
安全与权限:
- 操作直接作用于用户的工程文件,误操作可能导致数据丢失
- 部分 API 受 EDA 权限系统限制,特定功能可能需要商业授权或特定版本
- 扩展开发中禁止使用标准浏览器 API(alert/confirm/localStorage 等),必须使用 EDA 封装替代
稳定性考量:
- WebSocket 连接可能因 EDA 客户端重启、网络波动中断
- 复杂操作可能触发 30 秒超时,需合理拆分任务
适用人群
- 硬件工程师:批量处理 PCB 设计、自动化 DRC 检查、生成标准化文档
- EDA 扩展开发者:开发 EasyEDA Pro 插件、自定义工具面板、集成外部工作流
- 自动化测试团队:构建 CI/CD 流水线中的设计规则验证
- 教育/培训机构:程序化生成教学用原理图与 PCB 案例
常规风险管控
| 风险场景 | 防护措施 |
|----------|----------|
| 错误单位导致布局混乱 | 操作前强制确认文档类型,使用枚举常量而非裸数值 |
| Promise 未 await 产生静默失败 | 文档明确标注所有异步方法,代码生成时强制检查 `return await` 模式 |
| 未打开项目/文档导致 API 失效 | 执行核心操作前必须调用 `getCurrentProjectInfo()` 和 `getCurrentDocumentInfo()` 验证 |
| 扩展中误用浏览器 API | 提供对照表自动替换,运行时严格隔离主进程与 IFrame 上下文 |
| 多窗口状态混乱 | 首次操作时确认窗口选择,断连时主动引导重新选择 |
| 资源泄漏 | 话题切换 3 次后主动询问是否关闭桥接服务器 |