FreeCAD / FreeCAD/FreeCAD

PartDesign: operations on sketch with spline external intersection are catastrophically slow

Open
#31,918 5 comments 0 reactions 1 assignee Claimed by @pieterhijma View on GitHub
3rd party: OCC Mod: Sketcher Status: Needs bisect Status: Needs confirmation Topic: Performance Type: Regression
Dominant language
C++
Stars
33.6k
Forks
6k
Avg merge
3d 15h
Merged PRs (30d)
196

Description

### Problem description

Trying to perform solid operations (Pad/Pocket, Loft, Pipe, ...) using a sketch that contains an External Intersection of a spline surface (in the example below, Loft between 2 b-splines) takes a very, *very*, **very** long time especially as they compound.

Does not happen when the same operations are done with External Intersections of simpler geometry like segments off a plane/ruled surface.

Caused by OCCT. @pieterhijma

### Workbench affected?

Part Design

### Steps to reproduce

1. Open [loft_intersect.FCStd](https://github.com/user-attachments/files/30989128/loft_intersect.FCStd.zip)
2. Trigger a recompute of the body
3. Go take a coffee

### Expected behavior

OCCT performance to be as bad as usual.

### Actual behavior

Unusably bad performance. The B loft takes upwards of a minute, and the C pipe takes upwards of 5.

Trying to pocket the B1 profile from the solid took upwards of 30 minutes to reach the *preview*, and FreeCAD never responded after confirming the operation, being stuck in `libTKMath.so` and friends.

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

```shell
OS: Void Linux (KDE/wayland)
Architecture: x86_64
Version: 26.3.0dev.20260804 (Git shallow) AppImage
Build date: 2026/08/04 21:26:11
Build type: Release
Branch: (HEAD detached at 80923ab1b)
Hash: 80923ab1be1f31fff0a54db956177d582a658bab
Python 3.11.14, Qt 6.8.3, Coin 4.0.10 (bundled), Pivy 0.6.11 (bundled), Vtk 9.3.1, boost 1_86, Eigen3 3.4.0, PySide 6.8.3
shiboken 6.8.3, xerces-c 3.3.0, Clipper2 , IfcOpenShell 0.8.0, OCC 7.8.1
Locale: English/United Kingdom (en_GB)
Stylesheet/Theme/QtStyle: FreeCAD.qss/FreeCAD Dark/
QPA/File dialog/Color dialog: xcb/via Qt/via Qt
Navigation Style/Orbit Style/Rotation Mode: CAD/Free Turntable/Drag at cursor
Logical DPI/Physical DPI/Pixel Ratio: 96/92.6073/1
OpenGL version/vendor/renderer: 4.6 (Compatibility Profile) Mesa 26.1.5/Intel/Mesa Intel(R) Arc(tm) B580 Graphics (BMG G21)
```

### 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.