← ClaudeAtlas

converting-easyeda-pro-to-kicadlisted

Use when converting a 嘉立创EDA专业版 / EasyEDA Pro / JLCEDA project (.eprj2 / .epro / .epro2) to KiCad, when an imported EasyEDA project fails ERC/DRC/schematic parity (pin_not_driven flood, net_conflict $1Nxxxx, footprint_link_issues), when its 3D view shows no components (missing EASYEDA_MODELS/*.step), or when making an imported project iteration-ready (zone refill causes unconnected pads / starved_thermal, field sync direction unclear, empty footprint Value never matches parity, off-grid pins)
HuMoran/tt-skills · ★ 0 · Data & Documents · score 70
Install: claude install-skill HuMoran/tt-skills
# EasyEDA Pro → KiCad 10 转换 ## Overview 立创专业版工程转 KiCad 的完整管线:选对源文件 → GUI 导入 → 证明网表等价并修复导入损伤 → 元数据纠错 → 规则移植 → 补 3D → ERC/DRC 全零;若要继续迭代,再做规范化。核心原则:**先证明「KiCad 网表 ≡ 源网表」再谈其他**——导入器会以 −0.0254mm 级平移打断原理图连线,不核对就是静默错板。第二原则:**冻结几何是源意图的最终裁判**,与规则记录矛盾时以几何量测为准。 ## When to Use - 手头是 `.eprj2` / `.epro` / `.epro2` 要转 KiCad - 导入后 ERC/DRC/parity 大面积报错、3D 视图空白 - 转换完成后要把工程变成可持续迭代的正常 KiCad 工程 - 不适用:EasyEDA 标准版(走 easyeda2kicad 即可)、只拉单个器件库 ## 格式速查 | 文件 | 本质 | 用途 | |---|---|---| | `.eprj2` | SQLite;工程在 history_data 表 = base 快照+增量,base64 **加密**不可读 | 不能直接转 | | `.epro`(菜单导出) | zip:`SHEET/<uuid>/1.esch` + `PCB/*.epcb` + SYMBOL/FOOTPRINT | **KiCad 唯一能吃的格式**;3D 壳体不随导出(INSTANCE/ 为空) | | `_backup/*.epro2` | zip,内含 `.epru` = **明文全量 JSONL**(DOCHEAD 分段,带 updateTime/ticket) | 判断 .epro 是否过期、语义 diff 的真值源 | `.epru` 坐标 y 与 `.esch` 符号相反;RULE 记录数值**单位是 mil**(虽标 mm,mil→mm 为 ×0.0254);ticket/firstTicket 可定位每次编辑改了什么。 ## Pipeline(转换,目标:忠实 + 双零) 1. **源新鲜度**:比对 `.epro` 与最新 `.epru` 的 DOCHEAD updateTime。有分歧就对分歧文档做语义 diff(COMPONENT/WIRE/ATTR 集合比对),电气等价才可用旧 `.epro`,否则去 GUI 重导出。 2. **导入必须走 KiCad GUI**(kicad-cli 无 EasyEDA 导入;`pcb import` 只支持 altium/eagle 等):`文件 → 导入非 KiCad 工程 → EasyEDA (JLCEDA) 专业版工程`。macOS osascript 自动化可行:进程名 `kicad`(pgrep **-x**);NSOpenPanel 先 AXRaise+frontmost 再 Cmd+Shift+G,往 sheet 的 text field `set value`;**导入后 sch/pcb 只在内存,必须各窗口 Cmd+S 落盘**再退出。 3. **网表等价核对(咽喉)**:`kicad-cli sch export netlist` 得 sch 侧 (ref,pad)→net;解析 .kicad_pcb 得 pcb 侧(pcb 焊盘网名 = EasyEDA 原始网表直通,是真值)。做**分区同构比对**(忽略网名看分组),脚本见 `script