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)}