Place footprints
pcb_placePlaces PCB footprints automatically using connectivity-driven, courtyard-legal placement or applies exact moves, while keeping locked parts fixed and reporting ratsnest length.
Instructions
Place footprints. auto=true: connectivity-driven placement inside the outline (connectors on the edges, decoupling caps at their IC pin, crystal at the MCU, RF antennas on an edge), courtyard-legal on a 0.5 mm grid; several candidates are scored for elegance and the best is written. Locked parts and keep=[..] stay put; refs=[..] places only those around what is there. On a routed board, placing everything is refused unless clear_tracks=true. overhang={"J1": 1.2} lets a side-entry connector stick out past the edge. moves=[{ref, x, y, rot, side, lock}]: exact positions in mm (board coordinates, as pcb_read), applied after auto placement. Returns the ratsnest length before/after and the elegance score. Examples: pcb_place(auto=true) · pcb_place(moves=[{"ref":"J1","x":101,"y":115,"rot":90}])
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "pcb_place"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| auto | No | Run automatic placement | |
| keep | No | Refs auto placement must not move | |
| refs | No | Auto-place only these refs | |
| moves | No | [{ref,x,y,rot,side,lock,unlock,force}] | |
| render | No | attach a PNG (default false) | |
| dry_run | No | Compute and report the auto placement without writing | |
| project | No | project path (default: active) | |
| spacing | No | Courtyard gap mm between parts (default: adaptive 0.3–1.5 by board fill) | |
| elegance | No | Report the elegance score (default true; false saves about 1 s) | |
| overhang | No | {ref: mm} a side-entry connector may stick out past the edge (default 0 = flush) | |
| tidy_silk | No | Re-seat moved parts' reference designators clear of pads/parts (default true) | |
| candidates | No | Max placement candidates to try and score (default 6; 1 = one pass) | |
| while_open | No | refuse (default) | revert | |
| clear_tracks | No | auto=true on a routed board: delete all tracks/vias first | |
| edge_clearance | No | Courtyard distance from the board edge mm (default 0.5) |