Skip to Content
Python APIRückrufeIOlpTechnologiePostTechBeiRahmenÄnderung

PostTechOnFrameChanged

The callback PostTechOnFrameChanged (CENPyOlpFrameChangedOperator) is called from the kernel when the tool or base frame was been changed at the operation level.

Es kann verwendet werden, um:

  • Attributwerte abrufen

  • Attributwerte festlegen

  • Ausgabe in das Protokoll

  • Zugriff auf OlpController

  • Zugriff auf SCV-Parser

  • Holen Sie den vollständigen Pfad zur Technologietabellendatei ab.

  • Erhalte den neu geänderten Rahmenname, Index, Typ, Matrix und Weltmatrix

Der Callback kann einen booleschen Wert zurückgeben. Es ist nicht erforderlich, False zurückzugeben, da der Standardwert ohnehin False ist:

  • True: wenn es notwendig ist, nach Beendigung des Callbacks eine Operation recompute (ENTERSTATE_STARTWITHRULEEVENTS) durchzuführen

  • False: keine Neuberechnung

The callback is defined in the %TechnologyName%.py file that is located in the scripts folder of the plugin.

def PostTechOnFrameChanged(Operator): attribGetter = Operator.GetAttribGetter() attribSetter = Operator.GetAttribSetter() olpController = Operator.GetController() toolIndex = olpController.GetActiveToolFrameIndex() baseIndex = olpController.GetActiveBaseFrameIndex() csvParser = Operator.GetCsvParserOperator() iRet = csvParser.LoadCsvFile(" ..\\TechTabs\\WeldingAttrib.csv") filePath = Operator.GetTechTabFolder("WeldingAttrib.csv") logging.LogInfo("TechTab path: " + str(filePath)) changedFrameName = Operator.GetChangedFrameName() logging.LogInfo("Newly changed frame name: " + str(changedFrameName)) changedFrameIndex = Operator.GetChangedFrameIndex() logging.LogInfo("Newly changed frame index: " + str(changedFrameIndex)) changedFrameType = Operator.GetChangedFrameType() if changedFrameType == FRAMETYPE_BASE: logging.LogInfo("Newly changed frame type: Base") if changedFrameType == FRAMETYPE_TOOL: logging.LogInfo("Newly changed frame type: Tool") matrix = Operator.GetChangedFrameMatrix() if matrix.IsValid(): logging.LogInfo("Matrix position: " + str(matrix.GetPosition().GetXYZ())) logging.LogInfo("Matrix rotation: " + str(matrix.GetRotation())) else: logging.LogInfo("Matrix is not valid!") worldMatrix = Operator.GetChangedFrameWorldMatrix() if worldMatrix.IsValid(): logging.LogInfo("World matrix position: " + str(worldMatrix.GetPosition().GetXYZ())) logging.LogInfo("World matrix rotation: " + str(worldMatrix.GetRotation())) else: logging.LogInfo("World matrix is not valid!") # Set to True when a recompute is required requestStartWithRuleEventsRecompute = True return requestStartWithRuleEventsRecompute
Was this page helpful?