Index: trunk/pcblib-param/common.awk =================================================================== --- trunk/pcblib-param/common.awk (revision 261) +++ trunk/pcblib-param/common.awk (revision 262) @@ -229,3 +229,19 @@ } return mil(h) } + +# Draw a DIP outline: useful for any rectangular package with a little +# half circle centered on the top line +# arcr: radius of the half circle +# xhalf: optional coordinate where the circle should be put +function dip_outline(x1, y1, x2, y2, arcr ,xhalf) +{ + if (xhalf == "") + xhalf=(x1+x2)/2 + + element_rectangle(x1, y1, x2, y2, "top") + element_line(x1, y1, xhalf-arcr, y1) + element_line(xhalf+arcr, y1, x2, y1) + + element_arc(xhalf, y1, arcr, arcr, 0, 180) +} Index: trunk/pcblib-param/dip.awk =================================================================== --- trunk/pcblib-param/dip.awk (revision 261) +++ trunk/pcblib-param/dip.awk (revision 262) @@ -17,10 +17,7 @@ element_pin(spacing, (n-1) * mil(100), P["n"] - n + 1) } - element_rectangle(-half, -half, spacing + half , (n-2) * mil(100) + half, "top") - element_line(-half, -half, spacing/2-half, -half) - element_line(spacing/2+half, -half, spacing + half, -half) - element_arc(spacing/2, -half, half, half, 0, 180) + dip_outline(-half, -half, spacing + half , (n-2) * mil(100) + half, half) element_end() }