Просмотр исходного кода

Merge branch 'master' of github.com:Ultimaker/Cura

Jaime van Kessel 8 лет назад
Родитель
Сommit
02d4bd75fe
2 измененных файлов с 15 добавлено и 9 удалено
  1. 1 1
      cura/Arrange.py
  2. 14 8
      cura/ArrangeObjectsJob.py

+ 1 - 1
cura/Arrange.py

@@ -72,7 +72,7 @@ class Arrange:
                 self.place(x, y, hull_shape_arr)  # take place before the next one
             else:
                 Logger.log("d", "Could not find spot!")
-                new_node.setPosition(Vector(200, 0, 100 + i * 20))
+                new_node.setPosition(Vector(200, 0, 100 - i * 20))
 
             nodes.append(new_node)
         return nodes

+ 14 - 8
cura/ArrangeObjectsJob.py

@@ -6,6 +6,7 @@ from UM.Scene.SceneNode import SceneNode
 from UM.Math.Vector import Vector
 from UM.Operations.SetTransformOperation import SetTransformOperation
 from UM.Operations.GroupedOperation import GroupedOperation
+from UM.Logger import Logger
 from UM.Message import Message
 from UM.i18n import i18nCatalog
 i18n_catalog = i18nCatalog("cura")
@@ -54,20 +55,25 @@ class ArrangeObjectsJob(Job):
                 start_priority = 0
             best_spot = arranger.bestSpot(offset_shape_arr, start_prio=start_priority, step=10)
             x, y = best_spot.x, best_spot.y
-            last_size = size
-            last_priority = best_spot.priority
+            node.removeDecorator(ZOffsetDecorator)
+            if node.getBoundingBox():
+                center_y = node.getWorldPosition().y - node.getBoundingBox().bottom
+            else:
+                center_y = 0
             if x is not None:  # We could find a place
+                last_size = size
+                last_priority = best_spot.priority
+
                 arranger.place(x, y, hull_shape_arr)  # take place before the next one
 
-                node.removeDecorator(ZOffsetDecorator)
-                if node.getBoundingBox():
-                    center_y = node.getWorldPosition().y - node.getBoundingBox().bottom
-                else:
-                    center_y = 0
                 grouped_operation.addOperation(SetTransformOperation(node, Vector(x, center_y, y)))
+            else:
+                Logger.log("d", "Arrange all: could not find spot!")
+                grouped_operation.addOperation(SetTransformOperation(node, Vector(200, center_y, - idx * 20)))
 
             status_message.setProgress((idx + 1) / len(nodes_arr) * 100)
             Job.yieldThread()
 
         grouped_operation.push()
-        status_message.hide()
+
+        status_message.hide()