diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index e06e9dcf4e..13a97d5a89 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -186,6 +186,13 @@ class ThreeMFReader(MeshReader): if len(um_node.getAllChildren()) == 1: # We don't want groups of one, so move the node up one "level" child_node = um_node.getChildren()[0] + # Move all the meshes of children so that toolhandles are shown in the correct place. + if child_node.getMeshData(): + extents = child_node.getMeshData().getExtents() + move_matrix = Matrix() + move_matrix.translate(-extents.center) + child_node.setMeshData(child_node.getMeshData().getTransformed(move_matrix)) + child_node.translate(extents.center) parent_transformation = um_node.getLocalTransformation() child_transformation = child_node.getLocalTransformation() child_node.setTransformation(parent_transformation.multiply(child_transformation))