seveibar/f1c1990s-dev-board

This code manages the entire PCB assembly process for a computer hardware module, including component placement, schematic integration, automated routing, copper pouring, and design rule checks, focused on a four-layer carrier board with integrated support components and connectors.

Version
1.8.0
License
unset
Stars
0

footprints/index.tsx

import jst6 from './jst6.json'
import jst4 from './jst4.json'
import so8 from './so8.json'
import flash from './flash.json'
import reset from './reset.json'
import rgb from './rgb.json'

// Preserve cached KiCad pads and outlines; omit library placeholder text.
const render = (data: any[]) => <footprint>{data.map((e,i) => {
 const xy={pcbX:e.x,pcbY:e.y}
 if(e.type==='pcb_smtpad') return <smtpad {...xy} shape="rect" width={e.width} height={e.height}
   cornerRadius={e.corner_radius} portHints={e.port_hints} layer={e.layer} />
 if(e.type==='pcb_plated_hole' && e.shape==='pill') return <platedhole {...xy} shape="pill"
   outerWidth={e.outer_width} outerHeight={e.outer_height} holeWidth={e.hole_width} holeHeight={e.hole_height}
   pcbRotation={e.ccw_rotation??0} portHints={e.port_hints} />
 if(e.type==='pcb_plated_hole' && e.shape==='circular_hole_with_rect_pad') return <platedhole {...xy}
   shape="circular_hole_with_rect_pad" holeDiameter={e.hole_diameter} rectPadWidth={e.rect_pad_width}
   rectPadHeight={e.rect_pad_height} rectBorderRadius={e.rect_border_radius} portHints={e.port_hints} />
 if(e.type==='pcb_silkscreen_path') return <silkscreenpath route={e.route} strokeWidth={e.stroke_width} layer={e.layer} />
 if(e.type==='pcb_courtyard_outline') return <courtyardoutline outline={e.outline} layer={e.layer} />
 if(e.type==='pcb_courtyard_rect') return <courtyardrect pcbX={e.center.x} pcbY={e.center.y}
   width={e.width} height={e.height} layer={e.layer} />
 return null
})}</footprint>
export const footprints={jst6:render(jst6),jst4:render(jst4),so8:render(so8),flash:render(flash),reset:render(reset),rgb:render(rgb)}