Sampling Non Manhattan shapes

K

Kholdoun TORKI

Guest
I found this way to sample non Manhattan shapes to a certain grid.
The Diva deck below has this grid set to 0.1u

Is there a more efficient method, or a function that does this ?


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This code runs under Diva/DRC (IC 5.1.41)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(drcExtractRules
ivIf((switch "drc?") then

MET1 = geomGetPurpose("MET1" "drawing")

; Non-Manhattan borders extended to 0.1u inside the structure
badedge_int = geomSize(geomGetNon45( "MET1" ) -0.1)

; Non-Manhattan borders extended to 0.1u outside the structure
badedge_ext = geomSize(geomGetNon45( "MET1" ) 0.1)

; Band structure surrounding the Non-Manhattan borders
badedge = geomOr(badedge_int badedge_ext)

; Just to show the Non-Manhattan borders
saveDerived(badedge ("y0" "drawing"))

; This function is slow for large structures
MET1_snap_ext = drc(badedge_int badedge coverage < 0.99 windowSize(0.1)
stepSize(0.1))

; Structures with Non-Manhattan shapes sampled to 0.1u
MET1_snap = geomNot(MET1_snap_ext)

; Final structure
MET1_snap1 = geomAnd(MET1_snap MET1)

; Delete the original structures
geomErase("MET1" "drawing")

; Save the final structure
saveDerived( MET1_snap1 ("MET1" "drawing"))

)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Regards,

======================
Kholdoun TORKI
CMP
http://cmp.imag.fr
======================
 

Welcome to EDABoard.com

Sponsor

Back
Top