@typecad/typecad
Version:
🤖programmatically 💥create 🛰️hardware
1 lines • 16.5 kB
JavaScript
import{PadResolver}from'./pad_resolver.js';import a26_0x451b1b from'chalk';function a26_0x1780(){const _0x37e6bf=['blue','[ObstacleBuilder]\x20Building\x20obstacles\x20from\x20PCB','push','debug','\x20components\x20(','\x20staged,\x20','length','viaData','[ObstacleBuilder]\x20Error\x20processing\x20via\x20obstacle:\x20','message','reference','warn','_getKeepoutZones','[ObstacleBuilder]\x20Processing\x20','\x20board\x20outlines','layer','line','.Cu','\x20total\x20obstacles','footprint','parse','Nodes','name','nodes','isArray','type','thru_hole','all\x20layers\x20(','env','\x20on\x20','buildFromPad','abs','width','size','height','max','layers','pad','center','rect','clearance','polygon','keepout','end','start','map','F.Cu','buildFromVia','number','B.Cu','min','pcb','calculatePolygonBounds'];a26_0x1780=function(){return _0x37e6bf;};return a26_0x1780();}import a26_0x1039cb from'../../logging.js';function a26_0x356c(_0x178006,_0x356c4b){const _0x400cd9=a26_0x1780();return a26_0x356c=function(_0x53a047,_0x23f3e8){_0x53a047=_0x53a047-0x0;let _0x23ba05=_0x400cd9[_0x53a047];return _0x23ba05;},a26_0x356c(_0x178006,_0x356c4b);}import a26_0x5f48e3 from's-expression.js';function a26_0x357c47(_0x4571ef,_0x24c59e){return a26_0x356c(_0x4571ef- -0x2ae,_0x24c59e);}const S=new a26_0x5f48e3();export class ObstacleBuilder{static['buildFromPCB'](_0x134158,_0x5b664c=0.2,_0x3eae34,_0x5c14ec=![]){const _0x1a3772=[];_0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b[_0x10354a(-0x30c,-0x319)](_0x10354a(-0x30f,-0x318)));const _0x1e30c7=[],_0x29d5d7=_0x134158['_getComponents']?.()||_0x134158['#components'],_0x298be8=_0x134158['_getStagedComponents']?.()||_0x134158['#stagedComponents'];_0x29d5d7&&_0x1e30c7['push'](..._0x29d5d7);_0x298be8&&_0x1e30c7[_0x10354a(-0x30c,-0x317)](..._0x298be8);_0x3eae34&&_0x1e30c7['push'](..._0x3eae34);if(_0x1e30c7['length']>0x0){_0x5c14ec&&a26_0x1039cb[_0x10354a(-0x2ff,-0x316)](a26_0x451b1b[_0x10354a(-0x30d,-0x319)]('[ObstacleBuilder]\x20Processing\x20'+_0x1e30c7['length']+_0x10354a(-0x317,-0x315)+(_0x29d5d7?.['length']||0x0)+'\x20active,\x20'+(_0x298be8?.['length']||0x0)+_0x10354a(-0x2f9,-0x314)+(_0x3eae34?.[_0x10354a(-0x2fe,-0x313)]||0x0)+'\x20from\x20pins)'));let _0x4b51ed=0x0;const _0x5a8d73=[];for(const _0x44d3fe of _0x1e30c7){if(_0x44d3fe['dnp'])continue;if(_0x44d3fe['via']===!![]&&_0x44d3fe[_0x10354a(-0x301,-0x312)])try{const _0xf83a21=this['buildFromVia'](_0x44d3fe,_0x5b664c);_0xf83a21&&_0x1a3772['push'](_0xf83a21);continue;}catch(_0x560a85){a26_0x1039cb['warn'](a26_0x451b1b['yellow'](_0x10354a(-0x2f8,-0x311)+(_0x560a85?.[_0x10354a(-0x328,-0x310)]||_0x560a85)));continue;}try{const _0x382446=this['buildFromComponentPads'](_0x44d3fe,_0x5b664c,_0x134158,_0x5c14ec);_0x1a3772['push'](..._0x382446);}catch(_0x45201f){_0x4b51ed++,_0x5a8d73['push'](_0x44d3fe['reference']),a26_0x1039cb['warn'](a26_0x451b1b['yellow']('[ObstacleBuilder]\x20Error\x20processing\x20component\x20'+_0x44d3fe[_0x10354a(-0x32a,-0x30f)]+':\x20'+_0x45201f['message']));}}_0x4b51ed>0x0&&a26_0x1039cb[_0x10354a(-0x325,-0x30e)](a26_0x451b1b['yellow']('[ObstacleBuilder]\x20Failed\x20to\x20process\x20'+_0x4b51ed+'/'+_0x1e30c7['length']+'\x20components:\x20'+_0x5a8d73['join'](',\x20')));}else _0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b['yellow']('[ObstacleBuilder]\x20No\x20components\x20found\x20in\x20PCB'));const _0x10924c=_0x134158['#zones'];if(_0x10924c){_0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b['blue']('[ObstacleBuilder]\x20Processing\x20'+_0x10924c[_0x10354a(-0x311,-0x313)]+'\x20filled\x20zones'));for(const _0x160961 of _0x10924c){const _0x3a9b67=this['buildFromZone'](_0x160961);_0x3a9b67&&_0x1a3772['push'](_0x3a9b67);}}const _0x234916=_0x134158[_0x10354a(-0x327,-0x30d)]?.()||_0x134158['#keepoutZones'];if(_0x234916){_0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b['blue']('[ObstacleBuilder]\x20Processing\x20'+_0x234916['length']+'\x20keepout\x20zones'));for(const _0x4eb08d of _0x234916){const _0x195a2a=this['buildFromKeepoutZone'](_0x4eb08d);_0x195a2a&&_0x1a3772['push'](_0x195a2a);}}const _0x4db78b=_0x134158['outlines'];if(_0x4db78b&&_0x4db78b['length']>0x0){_0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b['blue'](_0x10354a(-0x300,-0x30c)+_0x4db78b['length']+_0x10354a(-0x2fe,-0x30b)));for(const _0x589867 of _0x4db78b){const _0x383d05=this['buildFromOutline'](_0x589867,_0x5b664c);_0x383d05&&_0x1a3772['push'](_0x383d05);}}const _0x57b4b5=_0x134158['#grLines'];function _0x10354a(_0x2bf0b4,_0x547e53){return a26_0x356c(_0x547e53- -0x319,_0x2bf0b4);}if(_0x57b4b5&&_0x57b4b5['length']>0x0){_0x5c14ec&&a26_0x1039cb[_0x10354a(-0x324,-0x316)](a26_0x451b1b[_0x10354a(-0x312,-0x319)]('[ObstacleBuilder]\x20Processing\x20'+_0x57b4b5['length']+'\x20committed\x20tracks'));for(const _0x2fd706 of _0x57b4b5){if(_0x2fd706[_0x10354a(-0x300,-0x30a)]['endsWith']('.Cu')){const _0x5ad9d7=this['buildFromTrack'](_0x2fd706,_0x2fd706['strokeWidth'],_0x5b664c,_0x2fd706['net']);_0x1a3772['push'](_0x5ad9d7);}}}const _0x848650=_0x134158['_getStagedOutlines']();if(_0x848650&&_0x848650['length']>0x0){let _0x258791=0x0;for(const _0x3e86b4 of _0x848650){if(_0x3e86b4['elements'])for(const _0x16861b of _0x3e86b4['elements']){if(_0x16861b['type']===_0x10354a(-0x312,-0x309)&&_0x16861b['layer']['endsWith'](_0x10354a(-0x309,-0x308))){const _0x5e1247=_0x16861b,_0x400b6d=this['buildFromTrack'](_0x5e1247,_0x5e1247['strokeWidth'],_0x5b664c,_0x5e1247['net']);_0x1a3772[_0x10354a(-0x30d,-0x317)](_0x400b6d),_0x258791++;}}}_0x258791>0x0&&(_0x5c14ec&&a26_0x1039cb['debug'](a26_0x451b1b['blue']('[ObstacleBuilder]\x20Added\x20'+_0x258791+'\x20staged\x20track\x20obstacles\x20from\x20previous\x20autoroute\x20calls')));}return _0x5c14ec&&a26_0x1039cb[_0x10354a(-0x32f,-0x316)](a26_0x451b1b['green']('[ObstacleBuilder]\x20Built\x20'+_0x1a3772['length']+_0x10354a(-0x30f,-0x307))),_0x1a3772;}static['buildFromComponent'](_0x1c5a3d,_0x5dcdd8){function _0x1d1c13(_0x1c09ed,_0xbca932){return a26_0x356c(_0xbca932-0x122,_0x1c09ed);}try{const _0x16318b=_0x1c5a3d['footprint_lib'](_0x1c5a3d[_0x1d1c13(0x125,0x135)]),_0x4188a1=S[_0x1d1c13(0x12a,0x136)](_0x16318b),_0x3a199b=this['extractComponentBounds'](_0x4188a1,_0x1c5a3d);if(!_0x3a199b)return this['buildSimpleComponentObstacle'](_0x1c5a3d,_0x5dcdd8);const _0x4e95e7=_0x1c5a3d['pcb']['side']==='back'?'B.Cu':'F.Cu';return{'type':'component','bounds':_0x3a199b,'layers':[_0x4e95e7],'clearance':_0x5dcdd8,'priority':0x1};}catch(_0x1fdc89){return a26_0x1039cb[_0x1d1c13(0x136,0x12d)](a26_0x451b1b['yellow']('[ObstacleBuilder]\x20Could\x20not\x20build\x20obstacle\x20for\x20'+_0x1c5a3d[_0x1d1c13(0x114,0x12c)]+':\x20'+_0x1fdc89['message'])),this['buildSimpleComponentObstacle'](_0x1c5a3d,_0x5dcdd8);}}static['buildFromComponentPads'](_0x49516c,_0x2eb885,_0x503fb4,_0x4f09ce=![]){const _0x13f19e=[],_0x895594=PadResolver['getAllPadGeometries'](_0x49516c);let _0x120dab=null;const _0x40bdc2=_0x503fb4['Schematic'];if(_0x40bdc2&&Array['isArray'](_0x40bdc2[_0x140162(0x3cf,0x3c2)])){_0x120dab=new Map();for(const _0x109de5 of _0x40bdc2['Nodes']){const _0x3dad3f=_0x109de5?.[_0x140162(0x3c3,0x3c3)],_0x21d289=_0x109de5?.[_0x140162(0x3bd,0x3c4)];if(!_0x3dad3f||!Array[_0x140162(0x3d8,0x3c5)](_0x21d289))continue;for(const _0x4c3ce3 of _0x21d289){const _0x20dd80=_0x4c3ce3['reference']+':'+String(_0x4c3ce3['number']);!_0x120dab['has'](_0x20dd80)&&_0x120dab['set'](_0x20dd80,_0x3dad3f);}}}function _0x140162(_0x5de5ea,_0x4652ce){return a26_0x356c(_0x4652ce-0x3ad,_0x5de5ea);}for(const _0x2bc203 of _0x895594){let _0x5e6516;_0x120dab&&(_0x5e6516=_0x120dab['get'](_0x49516c['reference']+':'+String(_0x2bc203['number'])));const _0x32a559=_0x2bc203[_0x140162(0x3bc,0x3c6)]===_0x140162(0x3b9,0x3c7)?_0x140162(0x3ca,0x3c8)+_0x2bc203['layers']['join'](',\x20')+')':_0x2bc203[_0x140162(0x3a3,0x3bc)];_0x4f09ce&&(process[_0x140162(0x3b7,0x3c9)]['TYPECAD_DEBUG']==='1'&&process['env']['TYPECAD_QUIET']!=='1'&&a26_0x1039cb['debug'](a26_0x451b1b['gray']('[ObstacleBuilder]\x20\x20\x20Pad\x20'+_0x49516c[_0x140162(0x3a0,0x3b7)]+'.'+_0x2bc203['number']+':\x20'+_0x2bc203['type']+_0x140162(0x3e2,0x3ca)+_0x32a559+',\x20net:\x20'+(_0x5e6516||'none'))));const _0x13767f=this['buildFromPad'](_0x2bc203,_0x2eb885,_0x5e6516);_0x13767f&&_0x13f19e[_0x140162(0x3b8,0x3af)](_0x13767f);}return _0x13f19e;}static[a26_0x357c47(-0x290,-0x27c)](_0x8cdf75,_0x5dba35,_0x3e1d1a){let _0x435de6=_0x8cdf75['size']['width']/0x2,_0x577a73=_0x8cdf75['size']['height']/0x2;function _0x1c2422(_0x3cbf35,_0x32d253){return a26_0x356c(_0x3cbf35- -0x3d5,_0x32d253);}if(_0x8cdf75['rotation']!==0x0){const _0x516021=_0x8cdf75['rotation']*Math['PI']/0xb4,_0x4a609a=Math[_0x1c2422(-0x3b6,-0x3ac)](Math['cos'](_0x516021)),_0x7192e2=Math['abs'](Math['sin'](_0x516021));_0x435de6=(_0x8cdf75['size'][_0x1c2422(-0x3b5,-0x3aa)]*_0x4a609a+_0x8cdf75[_0x1c2422(-0x3b4,-0x3cb)]['height']*_0x7192e2)/0x2,_0x577a73=(_0x8cdf75['size'][_0x1c2422(-0x3b5,-0x3a0)]*_0x7192e2+_0x8cdf75[_0x1c2422(-0x3b4,-0x3b3)]['height']*_0x4a609a)/0x2;}const _0xfb0551=_0x8cdf75['size']['width']<=0.6||_0x8cdf75['size'][_0x1c2422(-0x3b3,-0x3c6)]<=0.6,_0x301f7c=_0xfb0551?0.08:0x0;let _0x28e2c4=_0x435de6,_0xe5bcde=_0x577a73;_0xfb0551&&(_0x8cdf75['size']['width']<_0x8cdf75['size']['height']?(_0x28e2c4=Math['max'](0.08,_0x435de6-_0x301f7c),_0xe5bcde=Math['max'](0.1,_0x577a73-_0x301f7c*0.5)):(_0x28e2c4=Math[_0x1c2422(-0x3b2,-0x3a5)](0.1,_0x435de6-_0x301f7c*0.5),_0xe5bcde=Math[_0x1c2422(-0x3b2,-0x3a6)](0.08,_0x577a73-_0x301f7c)));const _0x19f92d=_0x28e2c4,_0x161c3e=_0xe5bcde,_0x575648=_0x8cdf75['layers']&&_0x8cdf75[_0x1c2422(-0x3b1,-0x3bc)]['length']>0x0?_0x8cdf75[_0x1c2422(-0x3b1,-0x397)]:[_0x8cdf75['layer']];return{'type':_0x1c2422(-0x3b0,-0x3b2),'bounds':{'minX':_0x8cdf75[_0x1c2422(-0x3af,-0x398)]['x']-_0x19f92d,'maxX':_0x8cdf75['center']['x']+_0x19f92d,'minY':_0x8cdf75['center']['y']-_0x161c3e,'maxY':_0x8cdf75['center']['y']+_0x161c3e},'layers':_0x575648,'clearance':_0x5dba35,'net':_0x3e1d1a,'priority':0x2,'padShape':{'shape':_0x8cdf75['shape']==='custom'?_0x1c2422(-0x3ae,-0x3bc):_0x8cdf75['shape'],'center':{'x':_0x8cdf75['center']['x'],'y':_0x8cdf75['center']['y']},'width':_0x8cdf75['size'][_0x1c2422(-0x3b5,-0x3c0)],'height':_0x8cdf75['size']['height'],'rotation':_0x8cdf75['rotation']||0x0}};}static['buildFromZone'](_0x27828f){if(!_0x27828f['polygon']||_0x27828f['polygon']['length']===0x0)return null;function _0x157985(_0x286cd3,_0x1f08dd){return a26_0x356c(_0x1f08dd-0x38e,_0x286cd3);}const _0x2a2f4d=this['calculatePolygonBounds'](_0x27828f['polygon']);return{'type':'zone','bounds':_0x2a2f4d,'layers':_0x27828f[_0x157985(0x3ae,0x3b2)],'net':_0x27828f['net'],'clearance':_0x27828f[_0x157985(0x3ad,0x3b6)]||0.2,'priority':0x0,'polygon':{'points':_0x27828f[_0x157985(0x3d2,0x3b7)]}};}static['buildFromKeepoutZone'](_0x35aecc){if(_0x35aecc['restrictions']?.['tracks']===![])return null;if(!_0x35aecc['polygon']||_0x35aecc['polygon']['length']===0x0)return null;const _0x1c6631=this['calculatePolygonBounds'](_0x35aecc['polygon']);function _0x1a1c14(_0x2f039f,_0x215df7){return a26_0x356c(_0x2f039f- -0x327,_0x215df7);}return{'type':_0x1a1c14(-0x2fd,-0x2fe),'bounds':_0x1c6631,'layers':_0x35aecc['layers'],'clearance':0x0,'priority':0xa,'polygon':{'points':_0x35aecc['polygon']}};}static['buildFromTrack'](_0x156b0c,_0x765e69,_0x2a497f,_0x34737a,_0x76bae2){const _0x29ecd9=_0x156b0c['end']['x']-_0x156b0c['start']['x'],_0x2e59d5=_0x156b0c[_0x9b54a7(0x2fe,0x2ff)]['y']-_0x156b0c['start']['y'],_0xd6c84e=Math['hypot'](_0x29ecd9,_0x2e59d5),_0x58f066=_0x765e69/0x2;if(_0xd6c84e===0x0)return{'type':'track','bounds':{'minX':_0x156b0c['start']['x']-_0x58f066,'maxX':_0x156b0c[_0x9b54a7(0x302,0x300)]['x']+_0x58f066,'minY':_0x156b0c['start']['y']-_0x58f066,'maxY':_0x156b0c['start']['y']+_0x58f066},'layers':[_0x156b0c['layer']],'clearance':_0x2a497f,'net':_0x34737a,'priority':0x1,'isManualRoute':_0x76bae2,'segment':{'x1':_0x156b0c['start']['x'],'y1':_0x156b0c['start']['y'],'x2':_0x156b0c['end']['x'],'y2':_0x156b0c['end']['y'],'width':_0x765e69}};const _0x46bf5e=-_0x2e59d5/_0xd6c84e,_0x3cb538=_0x29ecd9/_0xd6c84e,_0x46f9c7=[{'x':_0x156b0c['start']['x']+_0x46bf5e*_0x58f066,'y':_0x156b0c['start']['y']+_0x3cb538*_0x58f066},{'x':_0x156b0c[_0x9b54a7(0x2fd,0x300)]['x']-_0x46bf5e*_0x58f066,'y':_0x156b0c[_0x9b54a7(0x304,0x300)]['y']-_0x3cb538*_0x58f066},{'x':_0x156b0c[_0x9b54a7(0x2f3,0x2ff)]['x']+_0x46bf5e*_0x58f066,'y':_0x156b0c['end']['y']+_0x3cb538*_0x58f066},{'x':_0x156b0c['end']['x']-_0x46bf5e*_0x58f066,'y':_0x156b0c['end']['y']-_0x3cb538*_0x58f066}];function _0x9b54a7(_0x7cf354,_0x5b6e1e){return a26_0x356c(_0x5b6e1e-0x2d4,_0x7cf354);}const _0x5ac24d=Math['min'](..._0x46f9c7['map'](_0x4ef5ff=>_0x4ef5ff['x'])),_0x2cf417=Math['max'](..._0x46f9c7['map'](_0x114206=>_0x114206['x'])),_0x1c5237=Math['min'](..._0x46f9c7[_0x9b54a7(0x2fb,0x301)](_0x4f1f2c=>_0x4f1f2c['y'])),_0x34f7e2=Math['max'](..._0x46f9c7['map'](_0x128ad5=>_0x128ad5['y']));return{'type':'track','bounds':{'minX':_0x5ac24d,'maxX':_0x2cf417,'minY':_0x1c5237,'maxY':_0x34f7e2},'layers':[_0x156b0c[_0x9b54a7(0x2eb,0x2e3)]],'clearance':_0x2a497f,'net':_0x34737a,'priority':0x1,'isManualRoute':_0x76bae2,'segment':{'x1':_0x156b0c['start']['x'],'y1':_0x156b0c['start']['y'],'x2':_0x156b0c['end']['x'],'y2':_0x156b0c['end']['y'],'width':_0x765e69}};}static['buildFromOutline'](_0x50e6bb,_0x42fbe3){function _0x32ccec(_0x247c49,_0x2260a0){return a26_0x356c(_0x247c49-0x1c3,_0x2260a0);}return{'type':'outline','bounds':{'minX':_0x50e6bb['x'],'maxX':_0x50e6bb['x']+_0x50e6bb[_0x32ccec(0x1e3,0x1e5)],'minY':_0x50e6bb['y'],'maxY':_0x50e6bb['y']+_0x50e6bb['height']},'layers':[_0x32ccec(0x1f1,0x1e6),'B.Cu'],'clearance':_0x42fbe3,'priority':0xa};}static[a26_0x357c47(-0x27f,-0x26d)](_0x2e8557,_0x4c185a){const _0x55a1ab=_0x2e8557?.['viaData'];if(!_0x55a1ab||typeof _0x55a1ab['at']?.['x']!=='number'||typeof _0x55a1ab['at']?.['y']!==_0x2a7a10(0x39e,0x393))return null;function _0x2a7a10(_0xe7683,_0x2c8766){return a26_0x356c(_0xe7683-0x36e,_0x2c8766);}const _0x182f8b=typeof _0x55a1ab['size']==='number'?_0x55a1ab['size']:0.6,_0x567b6e={'x':_0x55a1ab['at']['x'],'y':_0x55a1ab['at']['y']},_0x41e8bc=_0x182f8b/0x2,_0x50cce0=Array[_0x2a7a10(0x386,0x36b)](_0x55a1ab['layers'])&&_0x55a1ab['layers']['length']>0x0?_0x55a1ab['layers']:['F.Cu',_0x2a7a10(0x39f,0x39b)];return{'type':_0x2a7a10(0x393,0x3a0),'bounds':{'minX':_0x567b6e['x']-_0x41e8bc,'maxX':_0x567b6e['x']+_0x41e8bc,'minY':_0x567b6e['y']-_0x41e8bc,'maxY':_0x567b6e['y']+_0x41e8bc},'layers':_0x50cce0,'clearance':_0x4c185a,'priority':0x1,'padShape':{'shape':'circle','center':_0x567b6e,'width':_0x182f8b,'height':_0x182f8b,'rotation':0x0}};}static['extractComponentBounds'](_0x301c19,_0x5146d8){const _0x5ca5aa=PadResolver['getAllPadGeometries'](_0x5146d8);if(_0x5ca5aa['length']===0x0)return null;let _0x498f4f=Infinity,_0x42d030=-Infinity,_0xd7b42c=Infinity,_0x247f7a=-Infinity;for(const _0x258859 of _0x5ca5aa){const _0x5937ee=_0x258859['size']['width']/0x2,_0x10b5b4=_0x258859['size']['height']/0x2;_0x498f4f=Math[_0xa17956(0x2fe,0x301)](_0x498f4f,_0x258859['center']['x']-_0x5937ee),_0x42d030=Math['max'](_0x42d030,_0x258859['center']['x']+_0x5937ee),_0xd7b42c=Math[_0xa17956(0x2fe,0x305)](_0xd7b42c,_0x258859['center']['y']-_0x10b5b4),_0x247f7a=Math['max'](_0x247f7a,_0x258859['center']['y']+_0x10b5b4);}const _0x1b9358=0x1;function _0xa17956(_0x176d59,_0x506c62){return a26_0x356c(_0x176d59-0x2cc,_0x506c62);}return{'minX':_0x498f4f-_0x1b9358,'maxX':_0x42d030+_0x1b9358,'minY':_0xd7b42c-_0x1b9358,'maxY':_0x247f7a+_0x1b9358};}static['buildSimpleComponentObstacle'](_0x2d4d41,_0x211c1d){function _0x41e142(_0xc9b982,_0x306741){return a26_0x356c(_0xc9b982-0x110,_0x306741);}const _0x33d1f2=0x5,_0x446483=_0x2d4d41['pcb']['side']==='back'?'B.Cu':'F.Cu';return{'type':'component','bounds':{'minX':_0x2d4d41[_0x41e142(0x143,0x132)]['x']-_0x33d1f2/0x2,'maxX':_0x2d4d41[_0x41e142(0x143,0x12e)]['x']+_0x33d1f2/0x2,'minY':_0x2d4d41['pcb']['y']-_0x33d1f2/0x2,'maxY':_0x2d4d41['pcb']['y']+_0x33d1f2/0x2},'layers':[_0x446483],'clearance':_0x211c1d,'priority':0x1};}static[a26_0x357c47(-0x27a,-0x264)](_0x270af8){let _0x10abf6=Infinity;function _0x5e53a3(_0x377208,_0x3afd7d){return a26_0x356c(_0x3afd7d- -0x111,_0x377208);}let _0xa51308=-Infinity,_0x365d20=Infinity,_0x19a17d=-Infinity;for(const _0x1a1462 of _0x270af8){_0x10abf6=Math['min'](_0x10abf6,_0x1a1462['x']),_0xa51308=Math[_0x5e53a3(-0xdd,-0xee)](_0xa51308,_0x1a1462['x']),_0x365d20=Math[_0x5e53a3(-0xea,-0xdf)](_0x365d20,_0x1a1462['y']),_0x19a17d=Math[_0x5e53a3(-0xf3,-0xee)](_0x19a17d,_0x1a1462['y']);}return{'minX':_0x10abf6,'maxX':_0xa51308,'minY':_0x365d20,'maxY':_0x19a17d};}}