diff --git a/CadQuery/Libs/cadquery/freecad_impl/shapes.py b/CadQuery/Libs/cadquery/freecad_impl/shapes.py index ff56de4..b870271 100644 --- a/CadQuery/Libs/cadquery/freecad_impl/shapes.py +++ b/CadQuery/Libs/cadquery/freecad_impl/shapes.py @@ -190,9 +190,10 @@ class Shape(object): # If there are no Solids, we're probably dealing with a Face or something similar if len(self.Solids()) == 0: return Vector(self.wrapped.CenterOfMass) - else: - # TODO: compute the weighted average instead of using the first solid + elif len(self.Solids()) == 1: return Vector(self.Solids()[0].wrapped.CenterOfMass) + elif len(self.Solids()) > 1: + return self.CombinedCenter(self.Solids()) elif isinstance(self.wrapped, FreeCADPart.Solid): return Vector(self.wrapped.CenterOfMass) else: