Browse Source

Make things work properly using the new Arcus API

Arjen Hiemstra 9 years ago
parent
commit
e74d300fb3

+ 5 - 5
plugins/CuraEngineBackend/CuraEngineBackend.py

@@ -62,11 +62,11 @@ class CuraEngineBackend(Backend):
         self._change_timer.setSingleShot(True)
         self._change_timer.setSingleShot(True)
         self._change_timer.timeout.connect(self.slice)
         self._change_timer.timeout.connect(self.slice)
 
 
-        self._message_handlers[Cura_pb2.SlicedObjectList] = self._onSlicedObjectListMessage
-        self._message_handlers[Cura_pb2.Progress] = self._onProgressMessage
-        self._message_handlers[Cura_pb2.GCodeLayer] = self._onGCodeLayerMessage
-        self._message_handlers[Cura_pb2.GCodePrefix] = self._onGCodePrefixMessage
-        self._message_handlers[Cura_pb2.ObjectPrintTime] = self._onObjectPrintTimeMessage
+        self._message_handlers["cura.proto.SlicedObjectList"] = self._onSlicedObjectListMessage
+        self._message_handlers["cura.proto.Progress"] = self._onProgressMessage
+        self._message_handlers["cura.proto.GCodeLayer"] = self._onGCodeLayerMessage
+        self._message_handlers["cura.proto.GCodePrefix"] = self._onGCodePrefixMessage
+        self._message_handlers["cura.proto.ObjectPrintTime"] = self._onObjectPrintTimeMessage
 
 
         self._slicing = False
         self._slicing = False
         self._restart = False
         self._restart = False

+ 11 - 5
plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py

@@ -55,21 +55,27 @@ class ProcessSlicedObjectListJob(Job):
         layer_data = LayerData.LayerData()
         layer_data = LayerData.LayerData()
 
 
         layer_count = 0
         layer_count = 0
-        for object in self._message.objects:
-            layer_count += len(object.layers)
+        for i in range(self._message.repeatedMessageCount("objects")):
+            layer_count += self._message.getRepeatedMessage("objects", i).repeatedMessageCount("layers")
 
 
         current_layer = 0
         current_layer = 0
-        for object in self._message.objects:
+        for i in range(self._message.repeatedMessageCount("objects")):
+            object = self._message.getRepeatedMessage("objects", i)
             try:
             try:
                 node = object_id_map[object.id]
                 node = object_id_map[object.id]
             except KeyError:
             except KeyError:
                 continue
                 continue
 
 
-            for layer in object.layers:
+            for l in range(object.repeatedMessageCount("layers")):
+                layer = object.getRepeatedMessage("layers", i)
+
                 layer_data.addLayer(layer.id)
                 layer_data.addLayer(layer.id)
                 layer_data.setLayerHeight(layer.id, layer.height)
                 layer_data.setLayerHeight(layer.id, layer.height)
                 layer_data.setLayerThickness(layer.id, layer.thickness)
                 layer_data.setLayerThickness(layer.id, layer.thickness)
-                for polygon in layer.polygons:
+
+                for p in range(layer.repeatedMessageCount("polygons")):
+                    polygon = layer.getRepeatedMessage("polygons", i)
+
                     points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
                     points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
                     points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
                     points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
                     points = numpy.asarray(points, dtype=numpy.float32)
                     points = numpy.asarray(points, dtype=numpy.float32)

+ 2 - 1
plugins/CuraEngineBackend/StartSliceJob.py

@@ -94,7 +94,8 @@ class StartSliceJob(Job):
                 verts = numpy.array(mesh_data.getVertices())
                 verts = numpy.array(mesh_data.getVertices())
                 verts[:,[1,2]] = verts[:,[2,1]]
                 verts[:,[1,2]] = verts[:,[2,1]]
                 verts[:,1] *= -1
                 verts[:,1] *= -1
-                obj.vertices = verts.tostring()
+
+                obj.vertices = verts
 
 
                 self._handlePerObjectSettings(object, obj)
                 self._handlePerObjectSettings(object, obj)