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

mgExecNoConObs

mgExecNoConObs(
g_constraintID 
[ l_arguments ]
)
=> t / nil

Description

Disables the Modgen constraint observer and evaluates the expressions in the specified sequence. Next, the function updates the constraint with any changes encountered while evaluating the expressions. After the process is complete, the Modgen constraint observer is re-enabled. This function helps change geometries or parameters of a Modgen or its instances without requiring the Modgen to enforce any consistency constraints on the resulting geometries. For example, increasing the numRows Modgen parameter using this function will cause the Modgen to have more rows, but will not rearrange the Modgen instances to fit in the new number of rows. This function is a defmacro.

Arguments

g_constraintID

List of Modgen constraint IDs that need to be updated after evaluating the specified expression.

l_arguments

List of one or more expressions that need to be evaluated in an observer-free environment.

Value Returned

t

The specified expression was evaluated and Modgen constraints were updated accordingly.

Examples

To get the Modgen constraint ID, retrieve the Modgen’s figGroup ID by selecting one instance in the Modgen and executing the following in the CIW:

instanceID = car(geGetSelectedSet())

Retrieve the instances containing figGroup from the instId by executing the following:

figroupID = inst->figGroup

Retrieve the Modgen constraint ID from the figGroup ID by executing the following:

constraintID = mgGetConstraintFromFG(figroupID)

To call the following procedure in an observer-free environment (assuming that “|M1” is a member of the Modgen), run the following:

procedure(test(con)
ciConRemoveMembers(con list(list("|M1" 'inst))) ; 

Run the following:

mgExecNoConObs(constraintID test(constraintID))

Return to top
 ⠀
X