Index: trunk/pcblib/parametric/rcy =================================================================== --- trunk/pcblib/parametric/rcy (revision 364) +++ trunk/pcblib/parametric/rcy (revision 365) @@ -8,7 +8,7 @@ #@@params spacing,pol,dia #@@param:spacing spacing between the two pins -#@@param:pol how to mark polarity: none, sign, bar, bar+, bar- (optional; default: sign) +#@@param:pol how to mark polarity: none, sign, bar, bar+, bar-, bar+sign, bar-sign (optional; default: sign) #@@param:dia body diameter - affects the silk circle (optional; default: spacing*2) #@@include common.awk Index: trunk/pcblib/parametric/rcy.awk =================================================================== --- trunk/pcblib/parametric/rcy.awk (revision 364) +++ trunk/pcblib/parametric/rcy.awk (revision 365) @@ -1,3 +1,19 @@ +function pol_sign( ox,oy) +{ + ox = offs_x + + size=mil(20) + + offs_x = spacing/2 +dia/2+size*2 + element_line(-size, 0, +size, 0) + + offs_x = spacing/2 -dia/2-size*2 + element_line(-size, 0, +size, 0) + element_line(0, -size, 0, +size) + + offs_x = ox +} + BEGIN { set_arg(P, "?pol", "sign") @@ -17,19 +33,16 @@ element_arc(0, 0, dia/2, dia/2, 0, 360) if (P["pol"] == "sign") { - size=mil(20) - - offs_x = spacing/2 +dia/2+size*2 - element_line(-size, 0, +size, 0) - - offs_x = spacing/2 -dia/2-size*2 - element_line(-size, 0, +size, 0) - element_line(0, -size, 0, +size) + pol_sign() } else if (P["pol"] ~ "^bar") { # determine bar side (default to -) side=P["pol"] sub("^bar", "", side) + if (side ~ "sign") { + pol_sign() + sub("sign", "", side) + } if (side == "") side = "-" side = int(side "1") * -1 @@ -67,7 +80,6 @@ } } } - } else if ((P["pol"] != "") && (P["pol"] != "none")) { error("Invalid pol")