Index: trunk/pcblib-param/common.awk =================================================================== --- trunk/pcblib-param/common.awk (revision 260) +++ trunk/pcblib-param/common.awk (revision 261) @@ -218,3 +218,14 @@ } } } + +# Assume h is a dimension; if it has an "mm" suffix, convert it from mm, +# else convert it from mil. +function parse_dim(h) +{ + if (h ~ "mm") { + sub("mm", "", h) + return mm(h) + } + return mil(h) +} Index: trunk/pcblib-param/connector.awk =================================================================== --- trunk/pcblib-param/connector.awk (revision 260) +++ trunk/pcblib-param/connector.awk (revision 261) @@ -5,14 +5,8 @@ set_arg(P, "?spacing", 100) set_arg(P, "?silkmark", "square") - step=P["spacing"] - if (step ~ "mm") { - sub("mm", "", step) - step = mm(step) - } - else - step = mil(step) + step = parse_dim(P["spacing"]) if (pin_ringdia > step*0.9) pin_ringdia = step*0.9 Index: trunk/pcblib-param/dip.awk =================================================================== --- trunk/pcblib-param/dip.awk (revision 260) +++ trunk/pcblib-param/dip.awk (revision 261) @@ -6,15 +6,8 @@ if ((P["n"] < 2) || ((P["n"] % 2) != 0)) error("Number of pins have to be an even positive number") - spacing=P["spacing"] + spacing=parse_dim(P["spacing"]) - if (spacing ~ "mm") { - sub("mm", "", spacing) - spacing = mm(spacing) - } - else - spacing = mil(spacing) - element_begin(P["n"] "*" P["spacing"] " DIP socket", "U1", P["n"] "*" P["spacing"] ,0,0, 0, mil(-100)) half = mil(50)