0hmX/am3352-ddr-track-a-local-dfm-wip-20261007
Experimental RJ45-corrected board with isolated PG indication. 1005/1005 source joins pass; 15 expanded-guard physical errors, sourcing and qualification gates remain. Not fabrication-ready.
- Version
- 0.0.14
- License
- unset
- Stars
- 0
layout/CloudOscEnablePullMapper.tsx
import {Children,cloneElement,isValidElement} from 'react'
/** Same actual pull-down moves on Top; actual signal/GND pads and centered GND feed move together. */
export function applyOscEnablePull(node:any):any{
if(Array.isArray(node))return node.map(applyOscEnablePull)
if(!isValidElement(node))return node
if(typeof node.type==='function')return applyOscEnablePull(node.type(node.props))
const p:any={...node.props}
if(node.type==='trace'&&['CLOUD_LOCAL_60_OSC24_OE','CLOUD_LOCAL_0_NEXT_OSC24_OE'].includes(p.name))return null
if(p.name==='R_CLOCK_OE_PD')Object.assign(p,{pcbX:5.375,pcbY:-11.9,pcbRotation:0,layer:'top'})
if(node.type==='via'&&p.connectsTo==='.Boot_and_clock > .R_CLOCK_OE_PD > .pin2')Object.assign(p,{pcbX:5.885,pcbY:-11.9,fromLayer:'top',toLayer:'inner3'})
if(node.type==='silkscreentext'&&p.text==='R_CLOCK_OE_PD')Object.assign(p,{pcbX:5.375,pcbY:-12.55,pcbRotation:0,fontSize:.35})
if(p.footprint&&isValidElement(p.footprint))p.footprint=applyOscEnablePull(p.footprint)
return cloneElement(node,p,...Children.toArray(node.props.children).map(applyOscEnablePull))
}