Modifying the Cycle Time Formulas
This section contains an example of modifying cycle time formulas for AbrasiveJet Cut, which is copied from Laser Cut. The calculations for AbrasiveJet cut (following Waterjet Cut) differ from Laser Cut in the following major areas:
Cycle time
Feed rate
Pierce time
Expendable tooling costs
This example focuses on the high-level cycle time formulas for the AbrasiveJet Cut process taxonomy module. To complete the modification of the process (copied from Laser Cut), you must also modify formulas associated with expendable tooling in the process taxonomy module, as well as formulas associated with feed rate and pierce time in library modules. In addition, you must change the content of the child operation modules as sketched at the end of step 7, below. (The Waterjet Cut process is fully implemented along these lines.)
Follow these steps to modify the high-level cycle time formulas in the process taxonomy module:
1 In the navigation pane, double-click AbrasiveJet Cut; in the editing pane, click the CSL Modules tab.
2 Click folder_icon.png next to cost Taxonomy. The CSL module appears in the editing pane.
In this example, the module is new, and so is editable without an explicit override. For inherited modules, you must select Override Object from the Edit menu, or click the override icon, green_dude.png, in the toolbar.
3 In the editing pane, remove the import of the library libContourCutting.csl.
This library contains calculations that are shared among processes such as Laser Cut, Plasma Cut, and OxyFuel Cut. These calculations relate to cycle time, traverse time, feed rates, and pierce time. AbrasiveJet Cut (following Waterjet Cut) does not use this library, but instead uses its own formulas for these calculations.
4 After the other import lines, add the following:
 
import libAbrasiveJetUtilities.csl
 
This library will contain utilities that contribute to the calculation of feed rates, pierce times, bundle sizes, and expendable tooling costs. See Creating a New Library, below.
5 Replace the cycle time formula
 
cycleTime = GetCycleTime_SheetMetal_LaserCut(processTime, numOperators)
 
with
 
cycleTime = GetCycleTime_SheetMetal_AbrasiveJetCut(processTime, numOperators)
 
The function GetCycleTime_SheetMetal_AbrasiveJetCut must be defined in libAccounting_SheetMetal.csl. See Modifying a Library Module, below. In this and a related library, cycleTime is defined as the product of processTime and a plant-variable-specified adjustment factor (a global adjustment that applies across all processes in the process group). The value num_operators is not used in this model; it is present only for consistency with the library functions for other sheet metal processes.
6 At the end of the module replace the following formula:
 
processTime = (sumOpsCycleTime + processCycleTime) / machine.numHeads
 
with this formula:
 
processTime = ((sumOpsCycleTime + processCycleTime) / _
GetBundleAbrasiveJetCount) / machine.numNozzles
 
The function GetBundleAbrasiveJetCount should be defined in libAbrasiveJetUtilities.csl. It determines the number of blanks that are stacked and processed simultaneously.
7 Add these lines to the end of the module:
 
sumOpsCycleTime = select sum(ops.cycleTime) from childOps ops // secs / part
processCycleTime = rapidTraverseTime
 
rapidTraverseTime = numOps * (averageFeatureDistance / _
machine.rapidTraverseRate) * SEC_PER_MIN
 
numOps = select count(*) from childOps op
numHoles = select count(op) from childOps op _
where isSimpleHole(op) or isComplexHole(op)
 
averageFeatureDistance = { _
(((part.blankBoxLength + part.blankBoxWidth) / 2) / (numHoles / 2)) _
if (numHoles > 0) _
(part.blankBoxLength + part.blankBoxWidth) / 2) otherwise _
}
 
defaultFeedRateLargeFeatures = GetFeedRateLargeFeatures
defaultFeedRateSmallFeatures = GetFeedRateSmallFeatures
 
The following formulas are defined in libAbrasiveJetUtilities.csl:
o GetFeedRateLargeFeatures
o GetFeedRateSmallFeatures
The feed rates are calculated here only to supply default-mode values to the feed rate process setup options.
Feed rates are used in the child operations to calculate cut time for each edge (of the blank or of a complex hole) and for each simple hole. Cut times are added to pierce time (for the blank and each hole), to yield cycle times for child GCDs of the part. These cycle times are summed in the formula sumOpsCycleTimes, above.
8 Select Save from the File menu, or click save_icon.png in the toolbar, to save your changes.
9 To incorporate your changes into the cost model, select Publish Cost Model and VPE from the File menu, or click publish_icon.png in the toolbar.
For more information on CSL, see CSL Language Overview in the chapter Working with Cost Model Logic.