FreeCAD / FreeCAD/FreeCAD

Part: Union of additive helical thread with tubular shaft fails (1.0 release, 1.1 release)

Open
#29,401 4 comments 0 reactions 0 assignees View on GitHub
Mod: Part Status: Confirmed Topic: Helix Type: Bug
Dominant language
C++
Stars
33.6k
Forks
6k
Avg merge
3d 15h
Merged PRs (30d)
196

Description

### Problem description

This can be reproduced in both the 1.0 and 1.1 release versions. See STR for details.
Essentially, a union of a circular shaft and a thread created via additive helix works if and only if the shaft is not tubular for any part of the shaft which intersects with the helical thread. This results in an object with numerous non-manifold edges - it is visibly obvious in FreeCAD's UI that the object is invalid.

Image

The expected outcome is shown on the right, and is created using the following workaround:
1. Create a solid shaft
2. Create a union with the additive helix
3. Create a cylinder matching the desired tube cutout
4. Create a cut

Note that the workaround **must** be done in this order.

Also note that later tests revealed that there can be hollow sections in the shaft as long as they are not in any area where the helical threads intersect.

### Workbench affected?

None

### Steps to reproduce

This was reproduced both with the 1.0 and 1.1 releases on Windows.

[tubular-threaded-shaft-defect-examples.zip](https://github.com/user-attachments/files/26753595/tubular-threaded-shaft-defect-examples.zip)

1. Create a tubular shaft, either by revolution or by padding a sketch with an inherent hole (other methods should work as well such as creating a tube in the Part workbench).
2. Create an additive helical thread which intersects the outer skin of the tube.
3. Select both the tubular shaft and thread in the Part workbench and create a Union

### Expected behavior

The union should be a logical fusion of the tubular shaft and the thread, and should be exportable as an STP file. See the rightmost image in description.

### Actual behavior

See left and center images in description. Invalid meshes result which cannot be exported, and even if repair of non-manifold edges is attempted they cannot be repaired.

### Development version About Info (in Safe Mode)

```shell
OS: Windows 10 build 19045
Architecture: x86_64
Version: 1.1.0.20260325 (Git shallow)
Build date: 2026/03/25 02:17:53
Build type: Release
Branch: (HEAD detached at 34a971666)
Hash: 34a9716668b1ddeb55b914f1c5be644826bdbbbf
Python 3.11.15, Qt 6.8.3, Coin 4.0.3, Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, IfcOpenShell 0.8.4, OCC 7.8.1
Locale: English/United States (en_US)
Navigation Style/Orbit Style/Rotation Mode: CAD/Trackball/Drag at cursor
Stylesheet/Theme/QtStyle: unset/FreeCAD Classic/
Logical DPI/Physical DPI/Pixel Ratio: 96/79.3403/1
Installed mods:
* A2plus 0.4.68
* A2plus-backup-before-zip-migration 0.4.68 (Disabled)
* CfdOF 1.33.7
* Curves 0.6.71
* Curves-backup-before-zip-migration 0.6.51 (Disabled)
* LCInterlocking 1.5.1
* LCInterlocking-backup-before-zip-migration (Disabled)
* Lithophane
* Pyramids-and-Polyhedrons 0.2.1
* Rocket 5.1.1
* woodworking 3.0.20260223
* woodworking-backup-before-zip-migration 1.1.0.dev.1.1.1.2025.10.18 (Disabled)
```

### Last known good version (optional)

```shell

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.