Index: pcblib/parametric/common.awk =================================================================== --- pcblib/parametric/common.awk (revision 721) +++ pcblib/parametric/common.awk (revision 722) @@ -487,6 +487,7 @@ # if name is empty, only value is printed # if value is empty, it's calculated # if only name should be printed, value should be "!" +# if dist starts with a "@", it's the absolute coordinate of the center of the dim line (text base), else it's relative distance from the measured line function dimension(x1, y1, x2, y2, dist, name, value, vx,vy) { print "#dimension", x1, y1, x2, y2, dist, name, value Index: pcblib/parametric/qf.awk =================================================================== --- pcblib/parametric/qf.awk (revision 721) +++ pcblib/parametric/qf.awk (revision 722) @@ -53,6 +53,10 @@ x2 = x_spacing/2 element_pad(x1-ext_bloat, y, x1+int_bloat, y, pad_width, n, "square") element_pad(x2-int_bloat, y, x2+ext_bloat, y, pad_width, nx+2*ny-n+1, "square") + if (n == 1) + y1 = y + if (n == 2) + dimension(x1, y1, x1, y, (ext_bloat * -3), "pad_spacing") } for(n = 1; n <= nx; n++) { @@ -63,8 +67,12 @@ element_pad(x, y2-int_bloat, x, y2+ext_bloat, pad_width, n+nx, "square") } - if ((cpad_width != "") && (cpad_height != "")) + + if ((cpad_width != "") && (cpad_height != "")) { element_pad_rectangle(-cpad_width/2, -cpad_height/2, +cpad_width/2, +cpad_height/2, 2*nx+2*ny+1, "square") + dimension(-cpad_width/2, -cpad_height/2, +cpad_width/2, -cpad_height/2, "@0;" (height * -0.6-ext_bloat), "cpad_width") + dimension(cpad_width/2, -cpad_height/2, cpad_width/2, +cpad_height/2, "@" (width * 0.8+ext_bloat) ";0", "cpad_height") + } wx = (width - nx * pad_spacing) / 3.5 wy = (height - ny * pad_spacing) / 3.5 @@ -71,7 +79,14 @@ element_rectangle_corners(-width/2, -height/2, width/2, height/2, wx, wy) + dimension(-width/2, -height/2, +width/2, -height/2, "@0;" height*-0.8-ext_bloat, "width") + dimension(+width/2, -height/2, +width/2, +height/2, "@" (width * 1+ext_bloat) ";0", "height") + + dimension(-width/2, -height/2, +width/2, -height/2, "@0;" height*-1-ext_bloat, "x_spacing") + dimension(+width/2, -height/2, +width/2, +height/2, "@" (width * 1.2+ext_bloat) ";0", "y_spacing") + silkmark(P["silkmark"], -width/2 - wx/2, -height/2+wy*1.5, (wx+wy)/4) + element_end() }