Browse Source

Parent added meshes to the parent node instead of creating a group

This requires a small change in PlatformPhysics, or otherwise the added mesh would still drop down.
fieldOfView 7 years ago
parent
commit
83168886d6
2 changed files with 5 additions and 38 deletions
  1. 1 1
      cura/PlatformPhysics.py
  2. 4 37
      plugins/SupportEraser/SupportEraser.py

+ 1 - 1
cura/PlatformPhysics.py

@@ -71,7 +71,7 @@ class PlatformPhysics:
             # Move it downwards if bottom is above platform
             move_vector = Vector()
 
-            if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled(): #If an object is grouped, don't move it down
+            if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup") or node.getParent() != root) and node.isEnabled(): #If an object is grouped, don't move it down
                 z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0
                 move_vector = move_vector.set(y = -bbox.bottom + z_offset)
 

+ 4 - 37
plugins/SupportEraser/SupportEraser.py

@@ -120,49 +120,16 @@ class SupportEraser(Tool):
         op = GroupedOperation()
         # First add the node to the scene, so it gets the expected transform
         op.addOperation(AddSceneNodeOperation(node, root))
-
-        # Determine the parent group the node should be put in
-        if parent.getParent().callDecoration("isGroup"):
-            group = parent.getParent()
-        else:
-            # Create a group-node
-            group = CuraSceneNode()
-            group.addDecorator(GroupDecorator())
-            group.addDecorator(BuildPlateDecorator(active_build_plate))
-            group.setParent(root)
-            center = parent.getPosition()
-            group.setPosition(center)
-            group.setCenterPosition(center)
-            op.addOperation(SetParentOperation(parent, group))
-
-        op.addOperation(SetParentOperation(node, group))
+        op.addOperation(SetParentOperation(node, parent))
         op.push()
-        Application.getInstance().getController().getScene().sceneChanged.emit(node)
 
-        # Select the picked node so the group does not get drawn as a wireframe (yet)
-        if not Selection.isSelected(parent):
-            Selection.add(parent)
-        if Selection.isSelected(group):
-            Selection.remove(group)
+        Application.getInstance().getController().getScene().sceneChanged.emit(node)
 
     def _removeEraserMesh(self, node: CuraSceneNode):
-        group = node.getParent()
-        if group.callDecoration("isGroup"):
-            parent = group.getChildren()[0]
-
-        op = GroupedOperation()
-        op.addOperation(RemoveSceneNodeOperation(node))
-        if len(group.getChildren()) == 2:
-            op.addOperation(SetParentOperation(parent, group.getParent()))
-
+        op = RemoveSceneNodeOperation(node)
         op.push()
-        Application.getInstance().getController().getScene().sceneChanged.emit(node)
 
-        # Select the picked node so the group does not get drawn as a wireframe (yet)
-        if parent and not Selection.isSelected(parent):
-            Selection.add(parent)
-        if Selection.isSelected(group):
-            Selection.remove(group)
+        Application.getInstance().getController().getScene().sceneChanged.emit(node)
 
     def _updateEnabled(self):
         plugin_enabled = False