45807 Commits

Author SHA1 Message Date
tarman3 0702616895 CAM: BoundaryDressup - RetractThreshold 2026-03-08 12:47:43 +02:00
theo-vt f36aeef878 Sketcher.planegcs: don't check for constraint update in solve routine 2026-03-07 17:41:35 -06:00
Syres916 5e7bbe15e3 [Weekly Build] Update IfcOpenShell to 0.8.4 2026-03-07 16:50:58 -06:00
Maik-0000FF 687c75e5bc Gui: Fix Linux SpaceMouse performance: event coalescing, camera batching, per-axis deadzone (#28110)
* Fix Linux SpaceMouse jerkiness: coalesce spnav events and batch camera updates

On Linux, pollSpacenav() posts every spnav motion event individually
(125-250Hz from spacenavd), each triggering a full scene redraw. Combined
with camera->orientation and camera->position each triggering separate
Coin3D notifications, this results in up to 500 redraws/sec.

Fix 1 - Event coalescing (GuiNativeEventLinux.cpp):
The drain loop now keeps only the latest motion state and posts once after
all pending events are consumed. SpaceMouse events are absolute deflection
(current puck position), not deltas, so the latest event always contains
the complete state.

Fix 2 - Batched camera updates (NavigationStyle.cpp):
Wrap camera property changes in enableNotify(false/true) + touch() so
Coin3D fires a single redraw instead of two per event.

Together this reduces redraws from ~500/sec to ~60/sec (display refresh),
eliminating the jerky navigation that Linux users experience with complex
models.

Fixes #25926

* Add per-axis deadzone filtering for Linux SpaceMouse

Each SpaceMouse axis has different sensitivity and noise characteristics.
A single global deadzone is too coarse — rotation axes may need different
thresholds than translation axes.

Read per-axis deadzone values from user.cfg (BaseApp/Spaceball/Motion)
using keys PanLRDeadzone, PanUDDeadzone, ZoomDeadzone, TiltDeadzone,
RollDeadzone, SpinDeadzone. Values default to 0 (no filtering).

Axis values below their individual threshold are zeroed before posting
the motion event, preventing unintended drift from sensor noise while
preserving intentional small movements.

This is the Linux equivalent of deadzone handling that NavLib provides
on Windows/macOS.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use std::array for axisDeadzoneKeys to avoid magic number

Replace C-style array with std::array and use .size() instead of
hardcoded loop bound, as suggested in code review.

* Cache deadzone values with ParameterGrp Observer instead of polling

Replace per-event GetParameterGroupByPath + GetInt calls with a static
DeadzoneCache that loads values once and updates them via
ParameterGrp::ObserverType when user.cfg changes. Also use
static constexpr for the keys array and std::abs for readability.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move DeadzoneCache from static local to member variable

Replace the static local DeadzoneCache in pollSpacenav() with a
std::unique_ptr<DeadzoneCache> member of GuiNativeEvent, initialized
in initSpaceball() after the spnav connection is established.
Forward-declare in the header to keep includes minimal.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Maik-0000FF <Maik-0000FF@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-07 22:37:59 +01:00
PaddleStroke 36dd4b983c Sketcher: Dimension tool: Filter coincident points (#27630) 2026-03-07 15:34:56 -06:00
Chris cee71e1fb1 CMake: Add check for Qt/PySide version mismatch (#27156)
* CMake: fixes issue #27065 check for Qt/PySide version mismatches
* lint / format several PySide related CMake files
2026-03-07 15:12:57 -06:00
mosfet80 baed171ec5 PD: Remove unused variable from TaskRevolutionParameters.cpp (#26009) 2026-03-07 14:19:05 -06:00
PeterfoxUwU ecb188fe4c Base: Added Quantities for Optic/Chemical mechanics (#27944)
* Base: Added Quantities for Optic/Chemical mechanics

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-07 21:10:40 +01:00
Grzegorz Kwacz 1027be1efa Spreadsheet: Decrease default size (#27152)
* Spreadsheet: dynamic row and coulumn counts

* Spreadsheet: test distant cell

* Spreadsheet: fix removeColumns condition

* Spreadsheet: Fix zoom detachment

* Spreadsheet: Fix SheetModel::containInView

* Spreadsheet: Make sure the number of rows/cols decreases correctly after removal

* Spreadsheet: Code quality fixes

* Spreadsheet: Fix typo

* Spreadsheet: Move sheet->insert/remove outside Qt signals

* Update src/Mod/Spreadsheet/Gui/SheetTableView.cpp

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>

* Update src/Mod/Spreadsheet/Gui/SheetModel.h

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>

* Spreadsheet: Add comment about nesting beginInsertColumn

* Spreadsheet: Remove c-style Qt header

---------

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2026-03-07 20:59:49 +01:00
Andrea d2b84db105 Sketcher: Cleanup commented-out code
Remove the TestSketcherGui file entirely, it contained only commented
lines. Delete commented out debugging output. Remove other commented-out
code that didn't have any explanation or justification for leaving it
in.
2026-03-07 13:55:52 -06:00
Benjamin Nauck c263d8f51c Merge pull request #18678 from chennes/applicationAddTranslatableExportType 2026-03-07 17:03:09 +01:00
Chris Hennes 0f0d2c849f Points: Add translation tags to export formats 2026-03-07 00:47:05 -06:00
Chris Hennes 025d4a9f5c Part: Add translation tags to export formats 2026-03-07 00:47:05 -06:00
Chris Hennes 8140957413 OpenSCAD: Add translation tags to export formats 2026-03-07 00:47:05 -06:00
Chris Hennes 6ad2206595 Mesh: Add translation tags to export formats 2026-03-07 00:47:05 -06:00
Chris Hennes dff7fc6ca8 Import: Add translation tags to export formats 2026-03-07 00:47:00 -06:00
Chris Hennes 1671ecb902 FEM: Add translation tags to export formats 2026-03-07 00:46:53 -06:00
Chris Hennes 8a17ca36a4 Draft: Add translation tags to export formats 2026-03-07 00:46:53 -06:00
Chris Hennes b8929f279f BIM: Add translation tags to export formats 2026-03-07 00:46:53 -06:00
Chris Hennes 07540ad3ba Gui: Add translation tags to export formats 2026-03-07 00:46:53 -06:00
Chris Hennes c387a4b5c9 App: Create addTranslatableExportType method
This method aims to solve the problem of untranslatable description
strings on file types. Some, but not all, file format description
strings contain translatable elements. For example, some languages
may translate "FEM mesh formats". Many format descriptions include
the words "file," "format," or "mesh" -- these could potentially be
replaced with localized versions.
2026-03-07 00:46:47 -06:00
Chris Hennes 21ef29bb82 Merge pull request #27969 from 3x380V/pd_cleanup
PartDesign: Minor cleanup
2026-03-07 00:27:26 -06:00
Chris Hennes 8cb06956d0 Merge pull request #27759 from dhruvjamwal/main
Fix #27741: Prevent camel case splitting on numbers in Property Editor.
2026-03-07 00:08:47 -06:00
Benjamin Nauck 17651fbfa4 Part: Fix signal handler compatibility with OCCT 8
OCCT 8.0.0 removed the NewInstance/Jump API from signal exception
classes in favor of Standard_ErrorHandler::Abort.
2026-03-06 23:58:26 -06:00
Yurii Sokolovskyi 87651cdd4c Autoconstraints redundancy error message fix
Report view now shows which sketch caused the 'Autoconstraints cause redundancy, Removing them' error
2026-03-06 23:26:26 -06:00
dependabot[bot] d34969f7d6 Bump actions/download-artifact from 7.0.0 to 8.0.0
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/37930b1c2abaa49bbe596cd826c3c89aef350131...70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 23:19:22 -06:00
Chris Hennes 60ebafd0b3 Gui: Tweak comment for clarity
Co-authored-by: Pieter Hijma <pieterhijma@users.noreply.github.com>
2026-03-06 22:36:12 -06:00
Chris Hennes 15dd009f13 Tests: Add test for PropertyItem setName() behavior 2026-03-06 22:34:42 -06:00
marioalexis dbb6cbe335 Fem: Add property to set pipeline and filters color if Field is None - fixes #21352 2026-03-06 22:25:42 -06:00
Ladislav Michl 2dcb495a67 TD: Fix warnings 2026-03-06 22:23:46 -06:00
Pieter Hijma a102c8a359 Gui: Prevent unhandled exception adding properties
This commit prevents unhandled exceptions to be thrown in the Add
Property dialog.  When the user provides a valid name, for example 'Abc'
and then an invalid name, for example 'Abc^', an exception is thrown
that is caught by Qt's notify which may lead to a crash.  This is caused
by the fact that the editor is still bound to the old property that has
been removed.  The main idea was to preserve values that were provided
by the user as long as possible, also when a property name changes.
This design goal tried to preserve the user provided value even if the
property name is not valid.  Although the underlying property item is
explicitly unbound in that situation, the editor is not.

The solution is to also explicitly unbind the editor if there is an
editor that can have bindings.  Unbinding an editor does not
automatically hide the f(x) symbol in the editor (leading to errors on
unbound editors), so this commit also adds a bit of logic to hide
the f(x) symbol when an editor is unbound.
2026-03-06 22:12:49 -06:00
Kristian Rekstad 8fda540e1a Idf: improve dox 2026-03-06 20:50:45 -06:00
PaddleStroke bbd1266398 PartDesign: Fix wireframe not working on external link to body 2026-03-06 20:34:17 -06:00
Petter Reinholdtsen 087522528b Base: Corrected delete() call in XMLTools.
The memory is allocated using new() with alignment requirements, and
should be deleted using the same alignment requirement.  See
issue #27781 for the valgrind error.
2026-03-06 19:18:01 -06:00
marioalexis 18cf24e1d9 Fem: Show all solvers in tool bar - fixes #27703 2026-03-06 17:17:25 -06:00
Connor9220 f0a70d5468 Merge pull request #23747 from tarman3/selectside
CAM: Path.Op.Area - Fix offer side
2026-03-06 17:50:15 -05:00
tarman3 26357db694 CAM: Inspect and Export gcode window title 2026-03-06 21:46:58 +02:00
PaddleStroke 83d14b785e Sketcher: Fix crash on external deletion (#27717)
* Sketcher: Fix crash on external deletion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update SketchObject.pyi

* Update SketchObjectPyImp.cpp

* Update ViewProviderSketch.cpp

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update SketchObjectPyImp.cpp

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Sketcher: Fix last external not being removed from ref 27719

* Update SketchObject.cpp

* Update SketchObject.cpp

* Update SketchObject.h

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* rename fixMissingAxisInExternalGeo

* Update SketchObject.cpp

* Update SketchObjectPyImp.cpp

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-03-06 19:19:13 +00:00
PaddleStroke bc0d94d7a7 RTGroup 2: App: add PropertyListsT::removeIf() (#26173)
* App: add PropertyListsT::removeIf()

For convenient list value filtering.
Co-authored-by: Zheng Lei <realthunder.dev@gmail.com>

* Update Property.h

* Update Property.h
2026-03-06 19:15:33 +00:00
Connor9220 840122a358 Merge pull request #26976 from tarman3/points_coincide_list
CAM: Path.Geom.pointsCoincide - allow list and tuple
2026-03-06 12:36:09 -05:00
FilippoR a18f77f3b8 fix CAMTests.TestPathOpUtil.TestPathOpUtil.test46 & test47 (#28038)
* fix CAMTests.TestPathOpUtil.TestPathOpUtil.test46

* fix CAMTests.TestPathOpUtil.TestPathOpUtil.test47

* disable CAMTests.TestTestPost.TestTestPost.test00190
2026-03-06 12:31:05 -05:00
Connor9220 eb522b52dc Merge pull request #26507 from tarman3/save_gcode
CAM: Exporting G-code - Buttons text
2026-03-06 12:13:22 -05:00
tarman3 04e0518051 CAM: LeadInOut - Fix positive overtravel for open profile (#25482)
* CAM: LeadInOut - Replace G01 by G1

* CAM: LeadInOut - Fix positive overtravel for open profile
2026-03-06 12:08:10 -05:00
Connor9220 dac4062d54 Merge pull request #27960 from petterreinholdtsen/cam-fanuc-new-improved
CAM: Improved Fanuc support (header, python warnings).
2026-03-06 11:56:22 -05:00
PaddleStroke 949c5421cf Sketcher: refactor removeAxesAlignment (#27451) 2026-03-06 17:29:52 +01:00
PaddleStroke 912fd47b5f Merge pull request #27531 from PaddleStroke/asm_gotolink
Assembly: Command: Got to linked assembly
2026-03-06 15:50:59 +01:00
kkocdko b098f3ad44 Linux: use exec command in AppRun 2026-03-06 15:45:51 +01:00
PaddleStroke f65dda922f Assembly: Fix JCS position if assembly is transformed (#28089)
* Assembly: Fix JCS position if assembly is transformed

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* redrawJointPlacement & showPreviewJCS Refactor to avoid duplicate code

* Assembly: JointObject: Simplify setJCSPosition

Co-authored-by: Benjamin Nauck <benjamin@nauck.se>

* Update JointObject.py

* Update src/Mod/Assembly/JointObject.py

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2026-03-06 09:41:15 +00:00
Petter Reinholdtsen 4c6eed1e63 CAM: Improved Fanuc support (header, python warnings).
Adjusted G code output to include FreeCAD body and job information.
The first comment in the G code is shown on the machine controller,
and should contain useful information for operators to to identify
jobs.  Fetch the body and job label using findParentJob and insert it
into the G code.  For some reason the body and job information is not
available when called from TestFanucPost.py, so handle case where it
is undefined as earlier.  This new use of findParentJob exposes error
in mock code used in code tests.  This is fixed in a different pull
request to make this patch easily backportable to the 1.1 branch.

Fixed issues with Fanuc post processor discovered by lint.  Made sure
global variables used are declared.  This fixes issue updating the
postamble and preamble introduced in
ef794c31bd

Added docstrings, adjusted import statements and wrapped long line to
keep linter happy.

Reformatted code with black for consistent formatting.

Also reverted obsolete setText() workaround from commit
9c78ced00c now
that https://github.com/FreeCAD/FreeCAD/pull/26008 is merged.
2026-03-06 09:09:11 +01:00
Benjamin Nauck 6238fe1081 Merge pull request #26172 from PaddleStroke/patch-985354 2026-03-06 07:10:59 +01:00