An error occurs when trying to apply Pocket3D to geometry read from a STEP file

Hello. When I try to load a STEP file output from DesignSparkMechanical using FreeCAD 0.21.1 and apply Pocket3D, an error occurs.
2023-11-29 00_52_17-FreeCAD 0.21.1.png
When I read the relevant part of the code, it seems that the Shape object that can be obtained after processing with common is invalid, and an exception occurs when obtaining the Volume.

def _identifyRemovalSolids(sourceShape, commonShapes):
    """_identifyRemovalSolids(sourceShape, commonShapes)
    Loops through solids in sourceShape to identify commonality with solids in commonShapes.
    The sourceShape solids with commonality are returned as Part.Compound shape."""
    common = Part.makeCompound(commonShapes)
    removalSolids = [s for s in sourceShape.Solids if s.common(common).Volume > 0.0] # raised HERE
    return Part.makeCompound(removalSolids)

I think that this problem is with the STEP file reading part rather than with Path Workbench, but I haven’t been able to find the cause that far.
Does anyone know what’s causing the problem?

I have attached the STEP file.Thank you.

Worked for me with this version. Select faces in adjacent order.

3D Surface will produce better finish. 3D Pocket would be ok for roughing if that’s the way you are going.


OS: Debian GNU/Linux 11 (bullseye) (X-Cinnamon/lightdm-xsession)
Word size of FreeCAD: 64-bit
Version: 0.21.1.33694 (Git) AppImage
Build type: Release
Branch: (HEAD detached at 0.21.1)
Hash: f6708547a9bb3f71a4aaade12109f511a72c207c
Python 3.10.12, Qt 5.15.8, Coin 4.0.0, Vtk 9.2.5, OCC 7.6.3
Locale: English/Australia (en_AU)
Installed mods: 
  * Curves 0.6.13
  * CurvedShapes 1.0.4
  * ThreadProfile 1.89.0
  * freecad.gears 1.0.0

Thank you for your verification.

Indeed, I was able to process it correctly using the file attached by bmsaus4ax.

However, something very strange is happening, and the result changes depending on the order in which the faces are selected.

If I select Face16,Face15,Face1 in that order and add it to Base Geometry, it works fine, but if I add Face1,Face15,Face16 in that order, an error occurs.

I tried 3D Surface. It works fine and the results are good. It seems possible to generate cutting paths by using this.

Thank you!!