FreeCalypso > hg > ueda-linux
diff pads2gpcb/decals.c @ 44:bf1be6c97c28
pads2gpcb: fixed conversion of elongated pads
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 30 Jan 2016 05:48:04 +0000 |
parents | 4a50888d09ce |
children | c977d637f038 |
line wrap: on
line diff
--- 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);