Technology Scripts
A technology script is a Python file named after the technology (e.g., ArcWelding.py).
It lives in the technology scripts folder inside the plugin.
When the kernel processes a technology, it calls these callbacks in order:
Callback Chain
Callback → Operator Class Reference
| Callback | Operator class | Purpose |
|---|---|---|
| PostTechInitAttributes | CENPyOlpTech_AttribInitOperator | Create/read/write technology attributes |
| PostTechInitEvents | CENPyOlpTech_EventInitOperator | Register technology events |
| PostTechInitRules | CENPyOlpTech_RuleInitOperator | Register technology rules |
| PostInitManufacturingGeometry | CENPyOlpTech_MfGeoInitOperator | Initialize manufacturing geometry |
| PostProcessOperationGroupAttributes | CENPyOlpTech_POGAttribOperator | Read/write operation group attributes |
| PostTechUpdate | CENPyOlpTech_UpdateOperator | Called during technology update |
| PrevExecuteRecipe | CENPyOlpTech_RecipeOperator | Runs before recipe execution |
| PostTechOnAttribChanged | CENPyOlpTech_AttribChangedOperator | Reacts to attribute changes |
| PostTechOnFrameChanged | CENPyOlpFrameChangedOperator | Reacts to frame changes |
Typical Pattern
def PostTechInitAttributes(techAttribInitOperator):
# Create custom attributes
creator = techAttribInitOperator.GetAttribCreator()
creator.AddDouble('WeldSpeed', 10.0, 0, 100, 0.5,
USER_ATTRIBUTE | PROCESS_ATTRIBUTE, ATTRIB_SPEED, 'Weld Speed')
def PostTechOnAttribChanged(techAttribChangedOperator):
# React to user changing an attribute
name = techAttribChangedOperator.GetChangedAttribName()
if name == 'WeldSpeed':
getter = techAttribChangedOperator.GetAttribGetter()
speed = getter.GetDouble('WeldSpeed')
logOp = techAttribChangedOperator.GetLoggerOperator()
logOp.LogInfo(f'Weld speed changed to {speed}')Was this page helpful?