Hi,
I'm currently drawing an octagonal pad using the rodCreatePolygon() function. The resulting polygon drawn is shown on the right below. In SKILL, after drawing the polygon, I'd like to chop off a rectangular section defined on another layer as shown on the left below. I've been thinking of different ways of doing it but I'm curious if you have any recommendations on how to go about this. The pad is a pCell, so I know that I can't use any functions from the "le" family. The code is also included below with what I'd like to do commented.
Regards,
Nishant.
strLibName = "MIM_Test" strCellName = "bump_pad" pcDefinePCell(list(ddGetObj(strLibName), strCellName, "layout"), ;Define default pcell parameter values ( (Width "string" "85u") (Length "string" "85u") (Mesh "string" "0") );end of default values let((scale MTOP OPENING SLOT w l x y cv radius D mfgGrid d side p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 sil_inset poly1 poly2 mesh_w mesh_l r_tmp hole_x hole_y bar_w cvId shp ovShpList ov ) cvId = pcCellView scale = 1.0e6 ; Define the layers MTOP = list("metal4" "drawing") OPENING = list("silox" "drawing") SLOT = list("metal4" "slot") MTOP1 = list("metal2" "drawing") w = evalstring(Width)*scale l = evalstring(Length)*scale ; radius of the pad is half the width ; origin is the bottom center of the octagon x = 0 y = 0 sil_inset = 2.1 bar_w = 2.5 hole_x = 3.0 hole_y = 3.0 mesh_w = 15 mesh_l = 15 radius = 0.5*w D = radius/sqrt(2) d = 2*D - radius ; start from the center of the octagonal pad p1 = list(x+radius y+d) p2 = list(x+d y+radius) p3 = list(x-d y+radius) p4 = list(x-radius y+d) p5 = list(x-radius y-d) p6 = list(x-d y-radius) p7 = list(x+d y-radius) p8 = list(x+radius y-d) p9 = list(x-0.5*mesh_w y-0.5*mesh_l) p10 = list(x+0.5*mesh_w y-0.5*mesh_l) p11 = list(x+0.5*mesh_w y+0.5*mesh_l) p12 = list(x-0.5*mesh_w y+0.5*mesh_l) ;want to maintain the polygon below as is poly1 = rodCreatePolygon( ?layer MTOP ?pts list( p1 p2 p3 p4 p5 p6 p7 p8) ) ; want to chop the polygon defined below poly2 = rodCreatePolygon( ?layer SLOT ?pts list( p9 p10 p11 p12) ) radius = 0.5*w - sil_inset D = radius/sqrt(2) d = 2*D - radius p1 = list(x+radius y+d) p2 = list(x+d y+radius) p3 = list(x-d y+radius) p4 = list(x-radius y+d) p5 = list(x-radius y-d) p6 = list(x-d y-radius) p7 = list(x+d y-radius) p8 = list(x+radius y-d) rodCreatePolygon( ?layer OPENING ?pts list( p1 p2 p3 p4 p5 p6 p7 p8) ) ); end of let ); end of pCell definition