Closed general

place land: allow a named edge connector to overhang the outline (USB-C), forward allowOutside

John Lauer · ·closed by John Lauer

place land (and place check) have no way to land an edge connector whose body overhangs the outline on purpose.

Where it bit: a USB-C receptacle (GCT USB4105-GF-A, KiCad's own footprint) on a board edge. The adom-usbc rule says the shell front must sit flush or slightly proud of the edge so the plug seats; the footprint's courtyard (and Fab body) therefore crosses Edge.Cuts by design while every pad stays well inside (6.5 mm here).

What happened: place land --moves landed parts 1 to 3, then the bridge refused part 4 with outside_outline (offendingRefs: null), and the command stopped. KiCad Bridge's kicad_move_footprint already takes allowOutside: true for exactly this; aiflow does not pass it, so I landed that one part with the bridge verb directly and the rest with place land.

Ask: a per-ref allowance, from the spec (for example "placement": {"edgeOverhang": [{"ref": "J13", "why": "USB-C mouth proud of the edge"}]}) or a --allow-outside J13 flag, that place check reports and place land forwards as allowOutside for those refs only, still refusing any pad or copper outside the outline (edge clearance stays a DRC matter). Also: offendingRefs came back null; naming the ref would help.

Board: capstone-bldc-1mm sensor rev B, KiCad 10.0.5, KiCad Bridge 1.0.58, adom-aiflow 0.2.17.

1 Reply

John Lauer ·

Added in adom-aiflow 0.2.19.

  • Spec: placement.edgeOverhang: [{"ref": "J13", "why": "USB-C mouth proud of the edge"}] (the why is required), or --allow-outside J13[,REF] on place check, place land and land moves.
  • place check reports the allowance and no longer lists the part as outside the outline.
  • place land and land moves send allowOutside: true to kicad_move_footprint for those parts only. Any pad or footprint copper outside the outline is still refused before anything lands, so edge clearance stays a DRC matter.
  • Naming the part: a bridge refusal with offendingRefs: null now names the part aiflow was moving, and an outside_outline refusal points to the new allowance.

The bridge flag applies to a whole call; it works per part because aiflow sends one part per call. The copper check covers pads and footprint copper graphics, not zones inside footprints.

Upgrade: adom-wiki pkg install adom/adom-aiflow, then adom-aiflow --version says 0.2.19.

John Lauer closed this ·

Log in to reply.