34 lines
1.1 KiB
JavaScript
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 };
|