Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

leGetSnapTransform

leGetSnapTransform 
d_figToSnap 
d_targetRow | nil
l_projectionTransform 
l_ignoreFigs
l_options
g_detailedResults
) 
=> l_result / nil

Description

Returns snap transform for the figure. The cellview of the figure is the one where the snapping is taking place. This function does not modify figure or cellview so it works for read only cellview as well. The cellview and the specified options are used to determine the licenses needed for the function to run. If the licenses can be checked out, the function runs. If not, the return value signifies failure because of licensing.

Arguments

d_figToSnap

The database figure to be snapped. Snapping is done in the cellview of the figure.

d_targetRow | nil

The instance snaps to the target row if specified else it searches for a valid row. The target row can be dbRow, dbPlaceArea, a row in a row region, and an area bounday figure which is inside the dbPlaceArea or an oaRow inside a dbRow. If the target row is a random dbId, the function returns nil.

l_projectionTransform

A list that specifies the projection transform which when concatenated to the database position of the figure to snap is the new position where snapping is performed.

l_ignoreFigs

A list that specifies the set of figures to be ignored for snapping.

l_options

This is a DPL (disembodied property list) with options to set snap input parameters.

DPL list should look like:  

l_options = '( nil
toSP t|nil
toWSP t|nil
toRow t|nil
toPlacementGrid t | nil
toMfgGrid t | nil
toXYGrid t | nil
toWSPDetail t | nil
toWSPDetailSnapAllShapes t | nil
snapMethod "defaultAbstractOverride" | "defaultDetailOverride" |"abstractOnly" | "detailOnly"
snapGrid "any" | "local" | "global"
snapDirection "nearest" | "low" | "high"
snapXEdge "low" | "high"
snapYEdge "low" | "high"
snapDepth 0 | 0-31
freeSnapDepth 0 | 0-31
fixedSnapDepth 0 | 0-31
matchPinColor t | nil
xSnapSpacing 0.001 | any value multiple of mfg grid
ySnapSpacing 0.001 | any value multiple of mfg grid
fastDetailModeSnapping t | nil
abstractModeSnapAnyBoundaryEdge t | nil
allSPGridsEnclosures t | nil
snapToXYGridFirst t | nil
boundarySnapXGrids "" | t_names
boundarySnapYGrids "" | t_names
boundarySnappingLayer "" | t_names
ignoreParallelMinWidthForSquarePinResize t | nil
rowSiteSymmetry t | nil
snapDeviceInDetailMode t | nil
ignoreRef t | nil
propBasedInstSnap t | nil
polyGridFeatures t | nil
)

g_detailedResults

This boolean flag specifies if detailed snap data is displayed in the result.

Value Returned

l_result

Displays the result as:
list (nil) | list (transform | detailed snap result + transform)

nil

The command is not successful.

Examples

xform = leGetSnapTransform(inst nil list(list(0 0) "R0") list(nil) options t)
    ======================= START SNAP INFO =======================
    Snap Mode = Detail
    Axis snapped-to = Horizontal
    SPDefName snapped to = GPG90 (PPitch, poly90)
    Layer of snapped-to LPP = Poly
    Purpose of snapped-to LPP = drawing
    Enclosure = 0.009000
    Bounding box for snapped-to LPP=((34.791000 13.957000) (35.349000 14.211000))
    ======================= END SNAP INFO =======================
    ((-0.015 0.0) "R0" 1.0)

Error due to licensing

    nil
    A valid error message - "Valid license needed to run leGetSnapTransform API."

Non-detailed result

Successful

    xform = leGetSnapTransform(inst nil list(list(0 0) "R0") list(nil) options nil)
    ((-0.015 0.0) "R0" 1.0)

Not successful

    xform = leGetSnapTransform(inst fakeRow list(list(0 0) "R0") list(nil) options nil)
    nil

Return to top
 ⠀
X