Index: trunk/pcblib/parametric/common.awk =================================================================== --- trunk/pcblib/parametric/common.awk (revision 725) +++ trunk/pcblib/parametric/common.awk (revision 726) @@ -142,7 +142,7 @@ } # draw element pad - no thickness, but exact corner coordinates given -function element_pad_rectangle(x1, y1, x2, y2, number, flags, clearance, mask, name, th,dx,dy,cy) +function element_pad_rectangle(x1, y1, x2, y2, number, flags, clearance, mask, name, th,dx,dy,cx,cy) { if (x2 < x1) { th = x2 @@ -158,12 +158,22 @@ dx = x2-x1 dy = y2-y1 - th = dy - cy = (y1+y2)/2 + if (dx >= dy) { + th = dy + cy = (y1+y2)/2 - print " Pad[", coord_x(x1)+th/2, coord_y(cy), coord_x(x2)-th/2, coord_y(cy), th, - int(either(clearance, DEFAULT["pad_clearance"])), int(either(mask, DEFAULT["pad_mask"])), - q name q, q number q, q flags q "]" + print " Pad[", coord_x(x1)+th/2, coord_y(cy), coord_x(x2)-th/2, coord_y(cy), th, + int(either(clearance, DEFAULT["pad_clearance"])), int(either(mask, DEFAULT["pad_mask"])), + q name q, q number q, q flags q "]" + } + else { + th = dx + cx = (x1+x2)/2 + + print " Pad[", coord_x(cx), coord_y(y1)+th/2, coord_x(cx), coord_y(y2)-th/2, th, + int(either(clearance, DEFAULT["pad_clearance"])), int(either(mask, DEFAULT["pad_mask"])), + q name q, q number q, q flags q "]" + } } # draw element pad circle