2026-09-12 10:52:17 +08:00

34 lines
1.1 KiB
JavaScript

const comps = await eda.sch_PrimitiveComponent.getAll();
const wires = await eda.sch_PrimitiveWire.getAll();
const compData = comps.map(c => {
let d=null,n=null,x=null,y=null;
try{d=c.getState_Designator();}catch(e){}
try{n=c.getState_Name();}catch(e){}
try{x=c.getState_X();y=c.getState_Y();}catch(e){}
return {d,n,x,y};
});
const wireData = wires.map(w => {
let net=null,line=null;
try{net=w.getState_Net();}catch(e){}
try{line=w.getState_Line();}catch(e){}
return {net,line};
});
// pins of key power-switch components
const key = ['SW1','Q1','Q7','Q4','Q2','Q3','D1','U1','U3','U5','BAT'];
const pinData = {};
for (const k of key) {
const c = comps.find(x => { try{return x.getState_Designator()===k;}catch(e){return false;} });
if (!c) { pinData[k]=null; continue; }
const pins = await eda.sch_PrimitiveComponent.getAllPinsByPrimitiveId(c.getState_PrimitiveId());
pinData[k] = {
pos: { x: c.getState_X(), y: c.getState_Y() },
name: c.getState_Name(),
pins: pins.map(p => ({ num:p.pinNumber, name:p.pinName, x:p.x, y:p.y, rot:p.rotation, len:p.pinLength }))
};
}
return { compData, wireData, pinData };