Core: Preselection ignores `"part selectable" = false` in Assembly
- Dominant language
- C++
- Stars
- 33.6k
- Forks
- 6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 196
Description
If a part has `selectable = false`, it works OK with multiple bodies. When those bodies are put in an assembly, they will change their behavior. The preselection selects them the first time the mouse touches that model. Basically with large assembly, the preselection seems to be slow even with `selectable = false` because it seeks the model when it shouldnt.
This can be repeated as following:
-make part with few bodies
-mark body or two as `"selectability" = false`
-make an assy and put the bodies in it
-hover the mouse over bodies -> it shouldn't preselect anything but it does preselect the first object (line, face, vertex etc.) hovered over part
```
OS: Windows 11 build 22631
Architecture: x86_64
Version: 1.1.0dev.40971 (Git) Conda
Build date: 2025/03/24 18:02:34
Build type: Release
Branch: main
Hash: b33c2363226a5fc1e8222a02659118c95e1a5119
Python 3.11.11, Qt 6.7.3, Coin 4.0.3, Vtk 9.3.1, IfcOpenShell 0.8.1, OCC 7.8.1
Locale: Finnish/Finland (fi_FI)
Stylesheet/Theme/QtStyle: FreeCAD Dark.qss/FreeCAD Dark/
Logical DPI/Physical DPI/Pixel Ratio: 96/141.585/1
Installed mods:
* Alternate_OpenSCAD 1.0.0
* CurvedShapes 1.0.13
* Curves 0.6.51
* FEMbyGEN 2.3.0
* freecad.gears 1.3.0
* lattice2 1.0.0
* Quetzal 1.0.1
* sheetmetal 0.5.10
* Silk 0.1.5
```
Contributor guide
Research direction
Reproduce the issue by placing bodies marked selectable=false into an assembly and hovering over them, comparing assembly behavior with multiple standalone bodies. Trace the core preselection path and verify that disabled parts are not searched or highlighted while selectable geometry still behaves normally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-graphics, desktop-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100