Index: pcblib/parametric/plcc =================================================================== --- pcblib/parametric/plcc (revision 764) +++ pcblib/parametric/plcc (revision 765) @@ -3,14 +3,17 @@ #@@example plcc(20,390x390) #@@purpose Generate PLCC packages -#@@desc Generate PLCC packages - a simplified frontend to qf() - -#@@desc look up 3..4 data in the datasheet and get a regular PLCC footprint! -#@@desc NOTE: some of the qf() parameters can be also used. +#@@desc Generate square PLCC packages - a simplified frontend to qf() - +#@@desc only the number of pins is really needed for a square PLCC footprint! +#@@desc NOTE: some of the qf() parameters can be also used; PLCC32 is non-square, and can not be properly generated using this generator. #@@params:pins,size,pitch,cpad_size #@@param:pin total number of pins (leads); must be divisible by 4 + #@@param:size a single integer N or NxN or NxNxH; outmost dimensions (width or height of the package, leads included) in mil +#@@optional:size +#@@default:size calculated from total number of pins and pitch #@@param:pitch lead pitch (distance between the centerline of two adjacent leads), in mil; must be 50 for now #@@optional:pitch Index: pcblib/parametric/plcc.awk =================================================================== --- pcblib/parametric/plcc.awk (revision 764) +++ pcblib/parametric/plcc.awk (revision 765) @@ -10,7 +10,7 @@ PT["50"] = "26mil" set_arg(P, "?pitch", "50") - proc_args(P, "pins,size,pitch,cpad_size,pad_thickness", "pins,size") + proc_args(P, "pins,size,pitch,cpad_size,pad_thickness", "pins") pitch = P["pitch"] sub("[.]0*$", "", pitch) @@ -23,6 +23,9 @@ else pt = rev_mil(DEFAULT["pad_thickness"]) + if (P["size"] == "") + P["size"] = int(P["pins"] * (pitch/4) + 140) + split(P["size"], S, "x") if (S[2] == "") S[2] = S[1]