await eda.dmt_EditorControl.openDocument('7e9415a16a909c51'); await new Promise(r => setTimeout(r, 1500)); const M = 39.3701; const open = (x0,y0,x1,y1) => [x0*M,y0*M,'L',x1*M,y0*M,x1*M,y1*M,x0*M,y1*M]; const close = (x0,y0,x1,y1) => [x0*M,y0*M,'L',x1*M,y0*M,x1*M,y1*M,x0*M,y1*M,x0*M,y0*M]; // 先清掉探针垃圾 for (const p of await eda.pcb_PrimitivePour.getAll()) if (p.pourName !== 'GND-L2') await eda.pcb_PrimitivePour.delete(p.primitiveId); const out = {start: (await eda.pcb_PrimitivePour.getAll()).length, cases: []}; const cases = [ ['PA-OPEN', open(100,20,120,30)], ['PB-CLOSE', close(100,35,120,45)], ]; for (const [name, src] of cases) { const before = (await eda.pcb_PrimitivePour.getAll()).length; const row = {name}; try { const poly = await eda.pcb_MathPolygon.createComplexPolygon([src]); const pour = await eda.pcb_PrimitivePour.create('+12V', 16, poly, 'solid', false, name, 3, 10); row.ret = !!pour; } catch (e) { row.threw = String(e).slice(0, 70); } await new Promise(r => setTimeout(r, 600)); row.after = (await eda.pcb_PrimitivePour.getAll()).length; row.created = row.after - before; out.cases.push(row); } out.names = (await eda.pcb_PrimitivePour.getAll()).map(p => p.pourName); return out;