Ereignisskripte
Ein Ereignisskript ist eine Python-Datei, die nach dem Ereignis benannt ist (z. B. SpeedEvent.py).
Es befindet sich im Ordner für Event-Skripte innerhalb des plugin.
Wenn der Kernel ein Ereignis verarbeitet, ruft er diese Rückruffunktionen auf:
Callback-Kette
Callback → Operator-Klassenreferenz
| Rückruf | Operator-Klasse | Zweck |
|---|---|---|
| PostInitAttribute | CENPyOlpEvent_AttribInitOperator | Erstellen/Lesen/Schreiben von Ereignisattributen |
| PostProcessAttribute | CENPyOlpEvent_PEOperator | Verarbeiten von Ereignisattributen |
| PostCompute | CENPyOlpEvent_EventComputeOperator | Benutzerdefinierte Ereignisberechnungslogik |
| PostProcessAttributesUpload | CENPyOlpEvent_PEOperatorUpload | Verarbeitet Attribute während des Uploads |
| PostOnAttribChanged | CENPyOlpEvent_AttribChangedOperator | Reagiert auf Attributänderungen |
Ereignis-Metadaten-Rückrufe
Das Ereignisskript stellt auch Metadaten-Callbacks bereit, die Konfigurationswerte zurückgeben. Dabei handelt es sich um einfache Funktionen ohne Operator-Klassenargument:
| Rückruf | Rückgabetyp | Beschreibung |
|---|---|---|
GetEventName | str | Anzeigename des Ereignisses |
GetEventUuId | str | Eindeutige Kennung |
GetIconName | str | Dateiname der Symbol-Datei |
GetGroupName | str | Name der Ereignisgruppe |
GetEventType | int | Ereignistyp-Konstante |
GetMultipleCreationIsPossible | bool | Mehrere Instanzen zulassen |
IsMachiningCycle | bool | Ob es sich um einen Bearbeitungszyklus handelt |
Typisches Muster
def GetEventName():
return 'MyCustomEvent'
def GetEventUuId():
return '{12345678-1234-1234-1234-123456789012}'
def PostInitAttributes(eventAttribInitOperator):
creator = eventAttribInitOperator.GetAttribCreator()
creator.AddDouble('Power', 100.0, 0, 500, 1.0,
USER_ATTRIBUTE | PROCESS_ATTRIBUTE, ATTRIB_POWER, 'Power')
def PostProcessAttributes(eventPEOperator):
getter = eventPEOperator.GetAttribGetter()
power = getter.GetDouble('Power')
logOp = eventPEOperator.GetLoggerOperator()
logOp.LogInfo(f'Processing event with power {power}')Was this page helpful?