ABE Layers
ABE operates on ABE layers that are temporary layers in memory, not layers in the cellview. ABE layers are mosaic-based structures that perform efficient operations by decomposing all objects into tiles, either rectangles or octagons.

Examples
To highlight a set, use this boolean operation:
; Initialize ABE
abeInit( geGetEditCellView() )
; Load input layers from cellview
M1 = abeLayerFromCellView( "Metal1" )
M2 = abeLayerFromCellView( "Metal2" ?purpose "drawing" ?depth 3)
; Create ABE output layers
m1Straddlem2 = abeNewLayer()
; ABE operation
abeLayerStraddle( M1 M2 m1Straddlem2 )
; Create a highlight set with the ABE output layer
hSet = geCreateWindowHilightSet( hiGetCurrentWindow() list( "Metal7" "drawing" ))
hSet->enable = t
abeLayerToHilightSet( m1Straddlem2 hSet )
; End the ABE session and release the memory
abeDone()
For cellview use this boolean operation:
; Initialize ABE
abeInit( geGetEditCellView() )
; Load input layers from cellview
M1 = abeLayerFromCellView( "Metal1" )
M2 = abeLayerFromCellView( "Metal2" ?purpose "drawing" )
; Create ABE output layers
m1Xorm2 = abeNewLayer()
; ABE operation
abeLayerXor( M1 M2 m1Xorm2 )
; Output the ABE Xor result to the Poly:drawing layer-purpose pair
abeLayerToCellView( m1Xorm2 "Poly" )
; End the ABE session and release the memory
abeDone()
Perform ABE Multithreading Using Queue
; Initialize with 8 threads
abeInit( geGetEditCellView() ?threads 8 )
; Load input layers from cellview
Poly = abeLayerFromCellView( "Poly" )
M1 = abeLayerFromCellView( "Metal1" )
M2 = abeLayerFromCellView( "Metal2" )
M3 = abeLayerFromCellView( "Metal3" )
M4 = abeLayerFromCellView( "Metal4" )
; Create ABE output layers
outLayer1 = abeNewLayer()
outLayer2 = abeNewLayer()
outLayer3 = abeNewLayer()
outLayer4 = abeNewLayer()
outLayer5 = abeNewLayer()
outLayer6 = abeNewLayer()
; ABE operations
abeLayerOr( Poly outLayer1 ?queue t )
abeLayerAnd( M1 M2 outLayer2 ?queue t )
abeLayerStraddle( M1 M2 outLayer3 ?queue t )
abeLayerSize( M2 outLayer4 0.25 ?queue t )
abeLayerGrow( M3 outLayer5 ?south 0.40 ?queue t )
abeLayerShrink( M4 outLayer6 ?east 0.20 ?west 0.22 ?queue t )
; Run the queue
abeRunQueue()
; Create a highlight set with an ABE output layer
hSet = geCreateWindowHilightSet( hiGetCurrentWindow() list( "Metal7" "drawing" ))
hSet->enable = t
abeLayerToHilightSet( outLayer2 hSet )
; End the ABE session and release the memory
abeDone()
Related Topics
Support for Multithreading in ABE Functions
Return to top