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 };