# HG changeset patch # User Mychaela Falconia # Date 1454132884 0 # Node ID bf1be6c97c2854038ec27ce38ec22470efbf5d51 # Parent 4a50888d09ceb38e6628347fc9835b51fa16ac73 pads2gpcb: fixed conversion of elongated pads diff -r 4a50888d09ce -r bf1be6c97c28 pads2gpcb/decals.c --- a/pads2gpcb/decals.c Sat Jan 30 05:39:52 2016 +0000 +++ b/pads2gpcb/decals.c Sat Jan 30 05:48:04 2016 +0000 @@ -226,7 +226,7 @@ convert_pad_to_gpcb(pinidx) { struct footprint_pad *pin = pins_array + pinidx; - long long_minus_short; + long long_minus_short, delta; if (!pin->shape.valid) { printf("error: no pad shape for pin #%d\n", pinidx + 1); @@ -235,20 +235,20 @@ pin->thickness = pin->shape.short_dim; pin->clearance = CLEARANCE_SETTING; pin->mask = pin->thickness + SOLDERMASK_DELTA; - if (!pin->shape.elongated) { - pin->x2 = pin->x1; - pin->y2 = pin->y1; + pin->x2 = pin->x1; + pin->y2 = pin->y1; + if (!pin->shape.elongated) return(0); - } long_minus_short = pin->shape.long_dim - pin->shape.short_dim; + delta = long_minus_short / 2; switch (pin->shape.angle) { case 0: - pin->x2 = pin->x1 + long_minus_short; - pin->y2 = pin->y1; + pin->x1 -= delta; + pin->x2 += delta; return(0); case 90: - pin->x2 = pin->x1; - pin->y2 = pin->y1 - long_minus_short; + pin->y1 -= delta; + pin->y2 += delta; return(0); } return(-1);