Inputs
Input values include data derived from the current VPE and the current part. Input values also sometimes include certain outputs of other CSL modules. When the cost engine evaluates a module, it puts into scope each input identifier, that is, it establishes values for the module’s input identifiers.
Note that you can view input identifiers and their values by setting a breakpoint in the CSL debugger. Click the
Inputs/Formula Results tab when the debugger stops at a breakpoint. See
Using the CSL Debugger in
Working with Cost Model Logic for information on setting a breakpoint.
Note also that you can test whether an identifier is in scope with the predefined function
safeEval--see
Miscellaneous Functions. Other uses of an identifier that is not in scope cause an exception.
The input identifiers listed below are associated with every type of CSL module, unless otherwise specified.
Accessibility
The value of this identifier is an enumeration object with the following fields:
• OBSCURED
• SIDE_A
• SIDE_B
• THROUGH
• UNDERCUT
• UNKNOWN
allOps
The value of this identifier is a collection that has one element for each already-costed operation of the current routing. Each element is an object that has one field for each already-evaluated output formula of a module associated with the operation, as well as one field for each attribute of the operation’s associated GCD.
You can view a list of these formulas and attributes as follows:
• Formula names:
o In CMWB, select the operation or process and click the CSL Modules tab.
o See
Outputs for information on standard, implicit output formulas for each CSL module type.
• GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Each element of allOps also has the following fields:
• childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
• displayName: name of the operation as translated into the local language.
• ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
• isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
allOps is in scope for all types of CSL modules, except the following:
• Operation precedence
• Operation type precedence
• Compatibility
• Idle station count
BarShape
The value of this identifier is an enumeration object with the following fields:
• ROUND_BAR
• SQUARE_BAR
• RECTANGULAR_BAR
• ROUND_TUBE
• SQUARE_TUBE
• RECTANGULAR_TUBE
• CHANNEL_BAR
• ANGLE_BAR
• HEX_BAR
• I_BEAM
• UNKNOWN
childOps
The value of this identifier is a collection that has one element for each already-costed child operation of the current process or operation. Each element is an object that has one field for each output formula of a module associated with the operation, as well as one field for each attribute of the operation’s associated GCD.
You can view a list of these formulas and attributes as follows:
• Formula names:
o In CMWB, select the operation or process and click the CSL Modules tab.
o See
Outputs for information on standard, implicit output formulas for each CSL module type.
• GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Each element of childOps also has the following fields:
• childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
• displayName: name of the operation as translated into the local language.
• ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
• isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
• name: name of the operation as specified in the associated template.
childOps is in scope for all types of CSL modules, except the following:
• Operation precedence
• Operation type precedence
• Compatibility
• Idle station count
childResults
The value of this identifier is a collection with one element for each child process node of the current node. Each child node’s associated object has one field for each already-evaluated output formula of the child node. Other fields include the following:
• name
• simpleName
ComplexHoleSubType
The value of this identifier is an enumeration object with the following fields:
• RECTANGULAR_ROUNDED
• OBROUND
• RECTANGULAR
• UNKNOWN
constants
The value of this identifier is an object that has one field for each CSL predefined constant for the current process group. To view a complete list of predefined constants, click Globally Available CSL/Lookup Tables under Global Cost Model Information in the navigation pane of the CMWB, select the Modules tab, and click the constants folder.
defaultMachine
The value of this identifier is an object that represent the default machine for the current process. It has one field for each attribute of the default machine. You can view machine attributes for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only if there is a current process; is not in scope for template pruning or material stock selection.
Direction
The value of this identifier is an enumeration object with the following fields:
• UP
• DOWN
• BOTH
• EITHER
• UNKNOWN
EdgeShape
The value of this identifier is an enumeration object with the following fields:
• CHAMFER
• ROUND
• SHARP
• UNKNOWN
FormType
The value of this identifier is an enumeration object with the following fields:
• TAB
• BRIDGE
• EMBOSS
• STAMP
• GUSSET
• CURVED_BEND
• SIDE_ACTION
• EXPANSION
• REDUCTION
• UNKNOWN
gcd
This is an object that has one field for each attribute of the current GCD. The field names and values are the same as the attribute names and values. You can view a list of these attributes as follows: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case. Note that for the name, attribute-name, of any GCD attribute, the value of gcd.<attribute-name> is the same as the value of op.<attribute-name>.
global
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to
global by using a formula (within a set block) whose left hand side is a complex identifier consisting of “
global” followed by dot followed a new field name. See
Set Blocks for information on set blocks.
Use this identifier to pass information from one process or operation to a sibling process or operation in the current routing or operation sequence, during process or operation taxonomy evaluation. It is set to null after each taxonomy evaluation pass (including after the yield pass).
HoleType
The value of this identifier is an enumeration object with the following fields:
• BLIND
• THROUGH
• OBSCURED
• UNKNOWN
InclusionStatus
The value of this identifier is an enumeration object with the following fields:
• AUTO_INCLUDE
• USER_INCLUDE
One of these is the value of the inclusionStatus property of any active node in the current process routing or operation sequence. The value indicates whether the node has been manually or automatically included in the routing or sequence. If the node is not active in the routing (for example, if it is optional and infeasible), the value of the inclusionStatus property is null.
KeywayBottomType
The value of this identifier is an enumeration object with the following fields:
• FLAT
• ARC
• BATHTUB
• UNKNOWN
KeywayEndType
The value of this identifier is an enumeration object with the following fields:
• THROUGH
• OPEN
• CLOSED
• UNKNOWN
material
The value of this identifier is an object that has one field for each attribute of the current material. You can view material attributes for the current process group in the Material Composition table of the Material Selection dialog (click the Material button in aPriori’s Manufacturing Process pane) .
machine
The value of this identifier is an object that has one field for each attribute of the current machine. You can view machine attributes for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only if a machine has been selected for the current process.
machines
The value of this identifier is a collection that has one element for each machine available for the current process. You can view available machines for a given process in the Edit Machine Selection dialog (right click a process name in aPriori’s Manufacturing Process pane, and select Machine Selection). Note that this is in scope only for machine selection modules.
Lookup table identifiers
There is one identifier for each lookup table associated with current process group, and , if the current node is a process node, each lookup table associated with the current node and all its ancestors up to and including the current process. Each identifier is the short name (not pathname) of a table. The value of each identifier is a table accessible through the use of a query expression. all the lookup tables associated with the process group, the current node and all its parents in the process-tree hierarchy. (So, if the current node is an operation, the parent process's lookup tables won't be available, but parent nodes in the operation sequence will be.)
op
This is an object that has one field for each already-evaluated output formula of a module associated with the current routing node, as well as one field for each attribute of the current GCD. The field names and values are the same as the formula and attribute names and values.
You can view a list of these formulas and attributes as follows:
• Formula names:
o In CMWB, select the operation or process corresponding to the current routing node and click the CSL Modules tab.
o See
Outputs for information on standard, implicit output formulas for each CSL module type.
• GCD attributes: in aPriori, select a GCD in the Geometric Cost Drivers pane. The gcd object field names are the same as the names displayed in the Name column of the Geometric Cost Drivers pane, modified to remove spaces and to make the initial character lower case.
Other fields of op include the following:
• childOps: collection with an element for each already-costed child operation of the child operation. This allows recursive access to descendants of the current process or operation.
• displayName: name of the operation as translated into the local language.
• ignoreFeasibility: true if the current routing node was explicitly specified by the user to be included in the current routing regardless of feasibility; false otherwise.
• isManualOverride: true if the current routing node was explicitly selected by the user to be included in the current routing; the value is false otherwise.
• inclusionStatus: indicates whether the current node is user-included or auto-included in the current process routing or operation sequence. See
InclusionStatus for possible values of this field.
part
The value of this identifier is an object with one field for each attribute of the current part, including GCDs and production information.
This identifier is commonly used to access the current part's geometric properties, as in, for example, part.height and part.volume. A collection of the current part's GCDs is designated by part.childArtificats.
A property path of the following form allows access to the count of given GCD-type for the current part:
part.componentProcessGroup.gcdSummary.gcdStatistics.data.<GCD-type>.count
So, for example, the following expression can be used to retrieve the count of SimpleHoles for the current part:
safeEval(part.componentProcessGroup.gcdSummary.gcdStatistics.data.SimpleHole.count, 0)
The structure of the property path can be seen in the Inputs/Formula Results tab of the Cost Model Workbench Debugger:
The part object also has a field, customAttribute, which designates an object that has a field for each user-defined attribute (UDA). So the form for accessing UDAs in CSL is
part.customAttributes.<UDA-name>
where UDA-name is the name that appears in the Name column of the System Admin UDA table.
PartingType
The value of this identifier is an enumeration object with the following fields:
• FLAT
• NON-FLAT
• UNKNOWN
passNumber
The value of this identifier is the current pass number, 1, 2, 3, or 4, if the current node is an operation node or operation sequence branch node. See
Cost Engine Details for more information on pass numbers.
perCosting
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to
perCosting by using a formula (within a set block) whose left hand side is a complex identifier consisting of “
perCosting” followed by dot followed a new field name. See
Set Blocks for information on set blocks.
This identifier is set to null after every complete costing. Use this object for expensive computations that won't vary by routing. Caution: in some cases, the GCD hierarchy itself can vary by routing (for example, when aPriori creates RingedHoles for turning routings).
perRouting
The value of this identifier is an object that is used to pass information among different CSL modules. You can add a field to
perRouting by using a formula (within a set block) whose left hand side is a complex identifier consisting of “
perRouting” followed by dot followed a new field name. See
Set Blocks for information on set blocks.
This identifier is set to null after each routing evaluation. Note that there are potentially multiple evaluations of each routing—one for each stock.
plant
This is an object that has one field for each plant variable of the current VPE and process group. The field name is the same as the name of the corresponding variable; the field value is the value of the corresponding variable. You can view a list of these variables (and their values) as follows:
• Global plant variables: In VPE Manager, open the current VPE and select the top-level node in the navigation pane. The plant object field names are the same as the names displayed in the VPE Manager, modified to remove spaces and to make the initial character lower case.
• Process-group-specific plant variables: In CMWB, select Global Cost Model Information > Cost Model Variables.
RelationType
The value of this identifier is an enumeration object with the following fields:
• LIES_NEAR
• LIES_OUTSIDE
• INTERSECTS
• PARALLEL
• ENDS_ON
• COAXIAL
• ADJACENT
• LIES_ON
• IS_ABOUT
• IS_ORTHOGONAL
• IS_ACCESSIBLE_FROM
results
This is a collection with one object for each number-valued output identifier associated with the current process or operation or any of its child processes or operations. If there are multiple children that define an output with the same name, the corresponding field of results is the sum of the output values. All currency values are converted to the current VPE’s currency. results is in scope for taxonomy modules only.
setup
The value of this identifier is an object with one field for each process setup option associated with the current process. The field names are the option names. You can view the process setup options for a given process as follows:
o Double click the process under Processes, GCDs & Operations in the CMWB navigation pane.
o Click the Process Setup Options tab.
SetupDirectionType
The value of this identifier is an enumeration object with the following fields:
• NORMAL
• PARALLEL
• OBLIQUE
• PARALLEL_OBSTRUCTED
• NORMAL_OBSTRUCTED
• OBLIQUE_OBSTRUCTED
• UNKNOWN
SetupType
The value of this identifier is an enumeration object with the following fields:
• PRIMARY
• SECONDARY
• PRIMARY_ROTATIONAL
• SECONDARY_ROTATIONAL
• OTHER
site
The value of this identifier is an object that has one field for each site variable of the current process group. The field names and values are the same as the variable names and values. You can view a list of these attributes (and their values) by selecting Process Group Site Variables from the aPriori VPE Toolset.
stock
The value of this identifier is an object with one field for each attribute of the current material stock. Note: this is only in scope for modules associated with primary processes and operations; it is not available for secondary processes and operations. Note that this is in scope only if the stock selection module has been evaluated for the current part.
tool
The value of this identifier is an object that represents the tool chosen for the current node. Note that this is in scope only for modules associated with an operation, and is non-null only if a tool has been selected for the current operation.
tools
The value of this identifier is a collection with one element for each tool available for the current operation. Note that this is in scope only for tool selection modules.
toolShop
The value of this identifier is an object with one field for each variable of the toolshop that is associated directly with either the current node, one of the current node’s parent nodes, or one of the current node’s descendant nodes (if exactly one descendant node has a tool shop).
TurningApproach
The value of this identifier is an enumeration object with the following fields:
• OD
• FACE_A
• FACE_B
• EITHER_FACE
• ID
• SLANTED
• NONE
VoidShape
The value of this identifier is an enumeration object with the following fields:
• EXTRUDED
• COMPLEX
• UNKNOWN