R2:底板 / 刀片布局布线脚本、快照、截图与规划文档更新(含外壳、打印件、布线归档)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
zhou yang
2026-10-04 19:24:45 +08:00
共同撰写人 Claude Opus 5.5
父节点 cd01640c40
当前提交 cf7cc9cf90
共修改 759 个文件,包含 76962 行新增和 5299 行删除
+25
查看文件
@@ -0,0 +1,25 @@
import json,sys,os
sys.path.insert(0,'.claude')
from eda import run
page=sys.argv[1]
r=run("""
await eda.dmt_EditorControl.openDocument('%s'); await new Promise(r=>setTimeout(r,1200));
const cur=(await eda.dmt_Schematic.getCurrentSchematicPageInfo()).name;
const parts=[],ports=[],flags=[];
for (const c of await eda.sch_PrimitiveComponent.getAll()){
const t=c.getState_ComponentType();
if (t==='part'){ const ps=await c.getAllPins(); parts.push([c.getState_Designator(),Math.round(c.getState_X()),Math.round(c.getState_Y()),c.getState_Rotation(),ps.map(p=>[p.getState_PinNumber(),Math.round(p.getState_X()),Math.round(p.getState_Y())])]); }
else if (t==='netport') ports.push([c.getState_Net(),Math.round(c.getState_X()),Math.round(c.getState_Y()),c.getState_Rotation(),c.getState_Component().name]);
else if (t==='netflag') flags.push([c.getState_Net(),Math.round(c.getState_X()),Math.round(c.getState_Y()),c.getState_Rotation()]);
}
const wires=(await eda.sch_PrimitiveWire.getAll()).map(w=>w.getState_Line().map(Math.round));
const texts=[];
return {cur,parts,ports,flags,wires,texts};
"""%page, timeout=300)
assert r.get('success'), json.dumps(r,ensure_ascii=False)[:500]
out=r['result']
json.dump(out,open('.claude/_tmp_page_%s.json'%page,'w',encoding='utf-8'),ensure_ascii=False)
print('page',out['cur'],'parts',len(out['parts']),'ports',len(out['ports']),'flags',len(out['flags']),'wires',len(out['wires']),'texts',len(out['texts']))
for p in out['parts']: print(' PART',p[0],p[1],p[2],p[3],p[4])
for p in out['ports']: print(' PORT',p)
for f in out['flags']: print(' FLAG',f)