mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 21:59:37 +08:00
CURA-4269 disable auto-drop for first time loaded models from project files
This commit is contained in:
parent
a37c2a5d74
commit
11ebdf7303
@ -9,6 +9,7 @@ from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
||||
from UM.Math.Vector import Vector
|
||||
from UM.Scene.Selection import Selection
|
||||
from UM.Preferences import Preferences
|
||||
from UM.Logger import Logger
|
||||
|
||||
from cura.ConvexHullDecorator import ConvexHullDecorator
|
||||
|
||||
@ -67,10 +68,18 @@ 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
|
||||
|
||||
# Check if this is the first time a project file node was loaded (disable auto drop in that case), defaults to True
|
||||
should_auto_drop = node.getSetting("auto_drop", True)
|
||||
|
||||
# If a node is grouped or it's loaded from a project file (auto-drop disabled), don't move it down
|
||||
if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled() and should_auto_drop:
|
||||
z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0
|
||||
move_vector = move_vector.set(y=-bbox.bottom + z_offset)
|
||||
|
||||
# Enable auto-drop after processing the project file node for the first time
|
||||
node.setSetting("auto_drop", False)
|
||||
|
||||
# If there is no convex hull for the node, start calculating it and continue.
|
||||
if not node.getDecorator(ConvexHullDecorator):
|
||||
node.addDecorator(ConvexHullDecorator())
|
||||
|
@ -73,11 +73,11 @@ class ThreeMFReader(MeshReader):
|
||||
|
||||
return temp_mat
|
||||
|
||||
|
||||
## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium scenenode.
|
||||
# \returns Uranium Scenen node.
|
||||
## Convenience function that converts a SceneNode object (as obtained from libSavitar) to a Uranium SceneNode.
|
||||
# \returns Uranium SceneNode.
|
||||
def _convertSavitarNodeToUMNode(self, savitar_node):
|
||||
um_node = SceneNode()
|
||||
um_node.setSetting("auto_drop", False) # Disable the auto-drop feature when loading a project file and processing the nodes for the first time
|
||||
transformation = self._createMatrixFromTransformationString(savitar_node.getTransformation())
|
||||
um_node.setTransformation(transformation)
|
||||
mesh_builder = MeshBuilder()
|
||||
|
Loading…
x
Reference in New Issue
Block a user