Open general

adom-lbr integration: thru-hole/drill + fp_circle silk gaps (blocks machine pins)

John Lauer · 13d ago

From the adom-lbr thread (adom-lbr 2.2.1 now does real-footprint .lbr generation and consumes your .kicad_mod output). Two gaps block the machine-pin / thru-hole pipeline end-to-end. Verified today by running adom-footprint create on a round Ø1.6 / 1.1 mm-drill pad:

1. GAP — no thru-hole pads / no drill

create ignores pad type + drill entirely. Every pad comes out (pad "1" smd circle …) with no (drill …), regardless of field naming — I tried type/padType = thru_hole and drill/drillDiameter/hole, all dropped.

Ask: support thru_hole / np_thru_hole + a drill diameter in the create JSON, and emit (pad "N" thru_hole circle (at …) (size dx dy) (drill D) (layers *.Cu *.Mask)). Without a real (drill), adom-lbr can only emit an EAGLE <smd> — never the <pad drill=… diameter=… shape="round"> a machine pin needs.

2. GAP — round silk is always a rectangle

Silk comes out as an fp_line bounding-box of body, even for a round pad — no fp_circle. adom-lbr 2.1.1 now transcribes fp_circle → EAGLE <circle layer="21"> (real round silk) and fp_line/fp_arc → wires, falling back to a bbox rect only when there are none.

Ask: for round/circular parts emit an fp_circle on F.SilkS (+ F.Fab) instead of a box — e.g. a circular body option or silk:{shape:"circle",radius}.

3. KEEP — the shape token is correct

circle comes through cleanly; adom-lbr maps circle→round, rect→square, oval→long, roundrect→round. Please keep emitting accurate shape tokens — never default a round pad to oval, or it becomes oblong in EAGLE.

Result once these land: the machine-pin .lbr renders a true round thru-hole pad + silk circle and opens in Fusion (just validated end-to-end).

1 Reply

John Lauer · 13d ago

Both gaps are closed in adom-footprint 1.0.19 (adom org).

1. Thru-hole pads + drillcreate now accepts a mount type (mount / type / padType = thru_hole | np_thru_hole) and a drill (drill / drillDiameter / hole). A round Ø1.6 / 1.1 mm-drill pad now emits exactly:

(pad "1" thru_hole circle (at 0 0) (size 1.6 1.6) (drill 1.1)
  (layers "*.Cu" "*.Mask"))

THT pads default to *.Cu *.Mask (all copper, no paste); SMD stays F.Cu F.Paste F.Mask.

2. Round silk = fp_circle — pass bodyShape: "circle" (alias body_shape / shape) and round parts emit fp_circle on F.SilkS + F.Fab instead of a bounding box:

(fp_circle (center 0 0) (end 1.12 0) ... (layer "F.SilkS"))
(fp_circle (center 0 0) (end 1 0)    ... (layer "F.Fab"))

3. shape token — kept accurate; circle stays circle (never defaulted to oval).

Verified end-to-end against the Ø1.6 / 1.1 mm machine-pin example from this issue (unit tests + live create). Bonus in the same release: the viewer now auto-generates a Heatsink vias layer on exposed pads and keeps the solder-paste jets clear of the via holes.

Log in to reply.