PostTechOnFrameChanged
Der Rückruf
PostTechOnFrameChanged(
) wird aus dem Kernel aufgerufen, wenn das Tool oder der Basisframe auf Betriebsebene geändert wurde.
Es kann verwendet werden, um:
-
Attributwerte erhalten
-
Attributwerte setzen
-
Ausgabe in das Logbuch
-
Zugriff auf OlpController
-
Zugriff auf den SCV-Parser
-
den vollständigen Pfad zur Technologietabellendatei abrufen
-
neu geänderten Framename, Index, Typ, Matrix und Weltmatrix zu erhalten
Der Rückruf kann einen Booleschen Wert zurückgeben. Es ist nicht nötig, False zurückzugeben, da der Standardwert ohnehin False ist:
-
Wahr: Wenn es notwendig ist, eine Operation durchzuführen, berechnen Sie (ENTERSTATE_STARTWITHRULEEVENTS) nach Ende des Rückrufs neu ()
-
Falsch: keine Neuberechnung
Der Rückruf ist definiert in der
%TechnologyName%.py
Datei, die sich im Scripts-Ordner des
.
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