Hi friends,
I have written below code to fill a bBox with taps(substrate taps) in layout. To fill taps in bBox(bBox points are specified through enterbBox command) I have used rod creat rectangle. It works good when I draw the bBox. But When I Stretch it then fails. I wrote metal, od, contacts as sub rectangles of Implant layer. When I stretch this rod object then it stretches the pp and contacts only. Is there any methode for doing this.
procedure(TapBbox1()
enterBox(
?prompts list("Enter the first corner of your box."
"Enter the last corner of your box.")
?points nil
?doneProc "TapBbox"
?alwaysMap t
))
procedure(TapBbox(w done points)
v=points
;below code may confuse you. So please leave this portion.
y1=car(reverse(car(reverse(v))))+0.06 ; or yCoord(upperRight( bBox ))
y2=car(reverse(car(v)))-0.055 ; or yCoord(lowerLeft( bBox ))
x1=caar(reverse(v))+0.06 ; or xCoord(upperRight( bBox ))
x2=caar(v)-0.055 ; or xCoord(lowerLeft( bBox ))
v=list(list(x2 y2) list(x1 y1))
y1=car(reverse(car(reverse(v))))-0.065 ; or yCoord(upperRight( bBox ))
y2=car(reverse(car(v)))+0.065 ; or yCoord(lowerLeft( bBox ))
x1=caar(reverse(v))-0.065 ; or xCoord(upperRight( bBox ))
x2=caar(v)+0.065 ; or xCoord(lowerLeft( bBox ))
widthOd=(x1-x2)
lengthOd=(y1-y2)
if(widthOd<0
widthOd=-1*widthOd
)
;Rod objects starts from here:
rodCreateRect(
;[?name S_name]
?layer list("PP" "drawing")
?bBox v
?cvId geGetEditCellView()
?subRectArray
;l_subrectArgs Subrectangle Arguments
list(
list(
?layer list("CO" "drawing")
?width 0.04
?length 0.04
;?gap S_gap]
?lowerLeftOffsetX 0.07
?lowerLeftOffsetY 0.07
?upperRightOffsetX -0.07
?upperRightOffsetY -0.07
?spaceX 0.07
?spaceY 0.07
;[?prop l_prop]
) ;End of first subrectangle list
list(
?layer list("OD" "drawing")
?width widthOd
?length lengthOd
;?gap S_gap]
?lowerLeftOffsetX 0.065
?lowerLeftOffsetY 0.065
?upperRightOffsetX -0.065
?upperRightOffsetY -0.065
;?spaceX 0
;?spaceY 0
;[?prop l_prop]
;Repeat ROD Connectivity Arguments here
) ;End of first subrectangle list
list(
?layer list("M1" "drawing")
?width widthOd+0.015
?length lengthOd+0.015
;?gap S_gap]
?lowerLeftOffsetX 0.05
?lowerLeftOffsetY 0.05
?upperRightOffsetX -0.05
?upperRightOffsetY -0.05
;?spaceX 0
;?spaceY 0
;[?prop l_prop]
;Repeat ROD Connectivity Arguments here
) ;End of first subrectangle list
;...
) ;End of all subrectangle lists
;End of l_subrectArgs
) ; end of rodCreateRect
);procedure of tapbox
hiSetBindKey("Layout" "<Key>t" "TapBbox1()")
Thank you,
sarvani