Ondsel-Development / FreeCAD

This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.
https://www.freecad.org
Other
192 stars 9 forks source link

[1.0 Bughunt] PartDesign/Hole: error on modeled threads when hole depth less than part thickness #71

Open RThomasHyde opened 5 months ago

RThomasHyde commented 5 months ago

Is there an existing issue for this?

Problem description

When using the hole tool, selecting a thread profile (any, I tried them all), enabling the 'threaded' and 'model thread' options, and setting the Depth to 'Dimension' with a value less than the thickness of the part, the hole is unable to be created and the error message 'Removing splitter failed' is displayed. This only seems to occur under certain conditions, but I am able to reliably reproduce the error using the following steps:

  1. In a new Part Design body, create a sketch on the XY plane
  2. Draw a 20mm x 20mm rectangle and close the sketch
  3. Pad the sketch a distance of 20mm in the default direction
  4. Select the top face of the resulting cube
  5. Create a sketch on the selected face
  6. Draw a circle of any size and close the sketch
  7. Select the hole tool
  8. Select the ISO metric standard profile
  9. Check the Threaded and Model Thread checkboxes to enable them
  10. Choose a Size of M3
  11. Make sure Depth is set to 'Dimension' and enter a distance of 10mm
  12. Click OK (or press the Enter key)

At this point the error message is displayed (both a dialog and the same message in red in the report view). I tried a variety of other thread profile/size/class/hole cut/drill point options an none seemed to make any difference: the same error is displayed. Creating the hole sketch on any face other than the top or bottom results in a successful hole cut (no error and the modeled threads are created). If I perform the same set of steps, but starting from a sketch on the YZ plane and cutting the hole into the right or left face of the cube, I get the error, so it seems to be somehow related to the features being based on the same (or parallel?) plane, but I don't think I have yet proved this definitively. Setting the hole depth to 'through all' or using a distance greater than 20 (the thickness of the pad) results in a successful hole cut regardless of which side it's cut into.

note: if you select (but don't double-click to edit) the hole feature and modify the depth settings in the properties panel, there will be no error dialog, only the message in the report view.

Full version info

OS: Linux Mint 21.3 (X-Cinnamon/cinnamon)
Word size of Ondsel: 64-bit
Version: 2024.2.1.37226 (Git) AppImage
Build type: Release
Branch: (HEAD detached at 2024.2.1)
Hash: 1a1bd7290494aef925a026c87b808ac58d53c3b0
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods: 
  * Ondsel-Lens 2024.5.6.01

Subproject(s) affected?

PartDesign

Anything else?

No response

Code of Conduct

m10d commented 3 months ago

I am able to reproduce this 100% on 2024.2.2

Also, thank you for your detailed writup, none of my initial efforts put threads all the way through the part: I also reproduce this aspect, the failure Removing splitter failed seems to only occur when the threads (or hole? I haven't played with all the permutations) does NOT extend through the solid.

OS: Ubuntu 22.04.4 LTS (i3/i3)
Word size of Ondsel: 64-bit
Version: 2024.2.2.37240 (Git) AppImage
Build type: Release
Branch: (HEAD detached at 2024.2.2)
Hash: fbb794cd2e56fba5fd911c8832332b5e5e235319
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods: 
  * Ondsel-Lens 2024.1.22.01