diff --git a/CadQuery/Libs/cadquery/CQ.py b/CadQuery/Libs/cadquery/CQ.py index 4596949..7504b16 100644 --- a/CadQuery/Libs/cadquery/CQ.py +++ b/CadQuery/Libs/cadquery/CQ.py @@ -2409,9 +2409,8 @@ class Workplane(CQ): `clean` may fail to produce a clean output in some cases such as spherical faces. """ - solidRef = self.findSolid(searchStack=True, searchParents=True) - if solidRef: - t = solidRef.clean() - return self.newObject([t]) - else: - raise ValueError("There is no solid to clean!") + try: + cleanObjects = [obj.clean() for obj in self.objects] + except AttributeError: + raise AttributeError("%s object doesn't support `clean()` method!" % obj.ShapeType()) + return self.newObject(cleanObjects) diff --git a/CadQuery/Libs/cadquery/freecad_impl/shapes.py b/CadQuery/Libs/cadquery/freecad_impl/shapes.py index f5bad41..9b149fd 100644 --- a/CadQuery/Libs/cadquery/freecad_impl/shapes.py +++ b/CadQuery/Libs/cadquery/freecad_impl/shapes.py @@ -481,6 +481,9 @@ class Wire(Shape): """ return Wire(FreeCADPart.makeHelix(pitch, height, radius, angle)) + def clean(self): + """This method is not implemented yet.""" + return self class Face(Shape): def __init__(self, obj): @@ -882,3 +885,7 @@ class Compound(Shape): def tessellate(self, tolerance): return self.wrapped.tessellate(tolerance) + + def clean(self): + """This method is not implemented yet.""" + return self