Python scripting - Event callbacks

PostCompute

 

The callback PostCompute(CENPyOlpEvent_EventComputeOperator) is called when the kernel computes the events.  

 

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

 

PostCompute

 

[Example]

 

def PostCompute(eco):

   logOperator = eco.GetLoggerOperator()

   attribGetter = eco.GetAttribGetter()

   controller = eco.GetController()

   actors = controller.GetActors(FSITEMTYPE_PRODUCTION, ITEM_MACHINE_ROBOT, FSACTOR_NONE)

   actorsCount = len(actors)

   for i in range(0, actorsCount):

      actor = actors[i]

      actorName = actor.GetName()

      actorResourceName = actor.GetResourceName()

      logOperator.LogDebug('actor[' + str(i) +'] actorName = '+ actorName + '; actorResourceName = ' + actorResourceName)

      logOperator.LogDebug('actor[' + str(i) +'] ItemType(): = '+ str(actor.AskItemType()) + '; ItemSubType = ' + str(actor.AskItemSubType()))

 

   sensors = controller.GetSensors(0, 0, 0)

   sensorsCount = len(sensors)

   for i in range(0, sensorsCount):

      sensor = sensors[i]

      sensorName = sensor.GetName()

      sensorResourceName = sensor.GetResourceName()

      logOperator.LogDebug('sensor[' + str(i) +'] sensorName = '+ sensorName + '; sensorResourceName = ' + sensorResourceName)

 

   tp10Matrix = eco.GetInitialPathMatrixByLength(10)   

   myTpElement = eco.GetRefTpElement()

   eventOperator = eco.GetEventOperator()

   se = eventOperator.AddSpeed(myTpElement, TPINSERTPOS_INSERTBEFORE)

   se.SetSpeed(1.5)

   eco.SkipPath(0.1, False)

   refTpElement = eco.GetRefTpElement()

   obj = eventOperator.AddEvent("69B94E6B-03D7-48FF-A62A-BE9CE3C142C8", refTpElement, TPINSERTPOS_INSERTAFTER)

   index = obj.GetEnumIndex("EEnumAttribute")

   obj.SetEnumIndex("EEnumAttribute", 1)

   eventOperator.AddActorEvent(myTpElement, actors[0], TPINSERTPOS_INSERTAFTER)   

   

   tpMat = tp10Matrix 

   tpMatPos = eco.GetRefToolpathElementPosition()

   pos = tpMat.GetPosition()

   posP = tpMatPos.GetPosition()

   logOperator.LogInfo('pos1 = tpMat.GetPosition() = ' + str(pos.GetXYZ())) 

   logOperator.LogInfo('pos2 = tpMatPos.GetPosition() = ' + str(posP.GetXYZ())) 

   

   matDest = eco.CreateMatrix()

   matVia = eco.CreateMatrix()   

   matDest.Translate(pos.GetX(), pos.GetY(), pos.GetZ() + 0.02, True)

   matVia.Translate(pos.GetX(), pos.GetY() + 0.01, pos.GetZ() + 0.01, True)

   pos = matDest.GetPosition()

   eco.MoveCir(matDest, matVia)

 

 


PostCompute_Ex

 


Previous
Page précédente
Chapter
Page principale du chapitre
Next
Page suivante