diff --git a/src/Mod/Assembly/UtilsAssembly.py b/src/Mod/Assembly/UtilsAssembly.py index f79574e574..759e0a485e 100644 --- a/src/Mod/Assembly/UtilsAssembly.py +++ b/src/Mod/Assembly/UtilsAssembly.py @@ -921,13 +921,15 @@ def findPlacement(obj, part, elt, vtx, ignoreVertex=False): # First we find the translation if vtx_type == "Face" or ignoreVertex: - if surface.TypeId == "Part::GeomCylinder" or surface.TypeId == "Part::GeomCone": + if surface.TypeId == "Part::GeomCylinder": centerOfG = face.CenterOfGravity - surface.Center centerPoint = surface.Center + centerOfG centerPoint = centerPoint + App.Vector().projectToLine(centerOfG, surface.Axis) plc.Base = centerPoint elif surface.TypeId == "Part::GeomTorus" or surface.TypeId == "Part::GeomSphere": plc.Base = surface.Center + elif surface.TypeId == "Part::GeomCone": + plc.Base = surface.Apex else: plc.Base = face.CenterOfGravity elif vtx_type == "Edge":