Commit Graph

44965 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
ef3bbfdc93 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-01-08 19:26:25 -05:00
sliptonic
7eb849f4c6 Revise machine 2026-01-08 19:26:25 -05:00
sliptonic
14c23be550 Code cleanup. 2026-01-08 19:26:25 -05:00
sliptonic
8653c25853 Rearranged some properties.
added back bcnc comment output
2026-01-08 19:26:25 -05:00
Billy Huddleston
a2e2f5b518 CAM: Remove colons from labels, fix lint, and update imports
Removed explicit colons from all form labels.
Fixed lint warnings and replaced wildcard imports with explicit
imports for clarity and maintainability.

src/Mod/CAM/Path/Machine/ui/editor/machine_editor.py:
- Removed ':' from all form labels
- Fixed lint warnings (missing docstrings, empty except, etc.)
- Replaced wildcard imports with explicit imports

src/Mod/CAM/Path/Machine/models/__init__.py:
- Updated __all__ and imports for explicit API

src/Mod/CAM/Path/Tool/assets/ui/preferences.py:
- Updated imports to use package-level import

src/Mod/CAM/Path/Machine/models/machine.py:
- Added explanatory comments to empty except blocks
- Fixed duplicate variable assignment
- Added missing class docstrings

src/Mod/CAM/CAMTests/TestMachine.py:
- Fixed unused variable warning by using returned filepath
2026-01-08 19:26:25 -05:00
Billy Huddleston
9a23768983 CAM: Add Machine Library and Editor
This PR introduces a machine object and a machine library, along with a
new machine editor dialog for creating and editing *.fcm machine asset
files. The editor is integrated into the CAM preferences panel, with new
Python modules for the dialog and minimal model validation. Machine
management (add, edit, delete) is now available in the CAM asset
preferences panel.

Key Features:
- Machines now have a type and units property. The machine type can be
used to distinguish between different classes of machines (e.g., mill,
lathe, laser).
- Machine units are stored internally and in the .fcm JSON file as
metric. Note: This differs from how toolbits work (which store units in
their native units)
- Support for 2-5 axis machines.
- Support for multiple spindles (up to 9)
- Processor defaults
- JSON Text Editor with basic validation and line numbers.
2026-01-08 19:26:25 -05:00
Max Wilfinger
5fbd150b18 Part: Fix orientation of internal shells of a solid (#26717)
* Part: Fix orientation of internal shells of a solid

If a solid consists of multiple shells then it can happen that the
internal shells have incorrect orientation that leads to a broken solid.

This fixes issue https://github.com/FreeCAD/FreeCAD/issues/24994

* Part: Add method Feature::fixSolids

This method explicitly checks for solids with the error
'BRepCheck_EnclosedRegion' that means that internal shells of a solid
are wrong.

Using ShapeFix_Solid fixes the solid.

---------

Co-authored-by: wwmayer <wmayer@freecad.org>
2026-01-08 10:35:26 -06:00
Max Wilfinger
3616611ea3 Gui: Handle exception in showValidExpression (#26721)
* Gui: Handle exception in showValidExpression

If an exception is raised inside showValidExpression() because the
expression cannot be evaluated then handle the exception and show it as
invalid expression.

This fixes issue: https://github.com/FreeCAD/FreeCAD/issues/26501
---------

Co-authored-by: wwmayer <wmayer@freecad.org>
2026-01-08 10:34:12 -06:00
Max Wilfinger
b0331ed979 PD: Handle reference edge in PolarPattern::getTransformations (#26722)
This fixes issue https://github.com/FreeCAD/FreeCAD/issues/24700

---------

Co-authored-by: wwmayer <wmayer@freecad.org>
2026-01-08 10:31:42 -06:00
Max Wilfinger
78dba6c4a9 Adds an automatic compare link to the weekly release notes. 2026-01-08 10:20:11 -06:00
tetektoza
887c8d3bdf Sketcher: Fix crash when applying constraints during selection batching
Currently, the selection batching optimization introduced in #26663
stores ElementItem/ConstraintItem pointers in a buffer to be processed
on the next event loop cycle via `QTimer::singleShot`.

When a constraint is applied,
`slotElementsChanged()/slotConstraintsChanged()`
rebuilds the list widget, destroying all items. However, the selection
buffer was not cleared, leaving dangling pointers. When
`processSelectionBuffer()`
executed, it attempted to call `QListWidget::row()` on deleted items,
causing a segmentation fault.

So, this patch fixes it by clearing `selectionBuffer` when the list is
rebuilt, since the buffered pointers are invalidated anyway.
2026-01-08 10:17:35 -06:00
PaddleStroke
830329f0fc Add files via upload 2026-01-08 14:46:06 +01:00
tetektoza
0baf444c3e Revert "PartDesign: Bake in geometry transform after boolean"
This reverts commit 527b2de560.

The `bakeInTransform()` call uses `transformGeometry()` which converts
planar faces to BSplineSurfaces. This prevents the refine algorithm
(BRepBuilderAPI_RefineModel) from detecting and merging coplanar faces,
breaking the Refine option for Boolean operations.

This matches Part WB's Boolean behavior which does not use
`bakeInTransform()` and has working refine functionality.
2026-01-08 13:40:52 +01:00
Kacper Donat
8dffa07978 Merge pull request #19132 from tritao/base-remove-boost-signals
Base: Remove Boost-based signals and switch to `FastSignals`.
2026-01-08 12:41:29 +01:00
Saksham Malhotra
db8c90b788 Fix sketch redundancy warning (#26064) 2026-01-08 07:53:26 +00:00
PaddleStroke
73a021ca1a Assembly: Ground joint tooltip update (#25852) 2026-01-08 03:52:41 +00:00
tritao
69058376e6 Base: Remove Boost-based signals and switch to FastSignals. 2026-01-07 21:16:16 +00:00
PaddleStroke
11c709d4df Merge pull request #26720 from PaddleStroke/patch-971612
Measure: Fix build failure of new MeasureDiameter
2026-01-07 18:49:39 +00:00
Joao Matos
4ed69332c5 FastSignals: Remove custom C++17 and libc++ build flags. 2026-01-07 15:22:40 +00:00
Joao Matos
dc16fe1163 FastSignals: Fix Clang Tidy issues. 2026-01-07 15:22:40 +00:00
Joao Matos
d11beca852 FastSignals: Replace ATOMIC_VAR_INIT usages with C++ 20 brace init.
Fixes the following issue:

```
Warning:
/Users/runner/work/FreeCAD/FreeCAD/src/3rdParty/FastSignals/libfastsignals/include/fastsignals/connection.h:76:32:
warning: macro 'ATOMIC_VAR_INIT' has been marked as deprecated
[-Wdeprecated-pragma]
   76 |         std::atomic<bool> m_blocked = ATOMIC_VAR_INIT(false);
      |                                       ^
```
2026-01-07 15:22:40 +00:00
Joao Matos
cb69623d1f FastSignals: Fix stress tests. 2026-01-07 15:22:40 +00:00
Joao Matos
9d9b17f972 FastSignals: Build as static library by default. 2026-01-07 15:22:40 +00:00
Joao Matos
95009abb1a FastSignals: Silence warning. 2026-01-07 15:22:40 +00:00
Joao Matos
3e9dbad671 FastSignals: Remove MSVC autolinking. 2026-01-07 15:22:40 +00:00
Joao Matos
4dbc9a8247 FastSignals: Normalize namespace to fastsignals. 2026-01-07 15:22:40 +00:00
Joao Matos
2e8ba02295 FastSignals: Update Catch2 to latest v2 version. 2026-01-07 15:22:40 +00:00
Joao Matos
f09bf67217 FastSignals: Add missing <cstdef> include. 2026-01-07 15:22:40 +00:00
Joao Matos
158cf6616e FastSignals: Reorganize include and src folder. 2026-01-07 15:22:40 +00:00
Joao Matos
dd24bd47e2 FastSignals: Normalize CMake files. 2026-01-07 15:22:40 +00:00
Joao Matos
c045cd68c9 FastSignals: Remove unused build files. 2026-01-07 15:22:40 +00:00
Joao Matos
af30d785bd 3rdParty: Add FastSignals library. 2026-01-07 15:22:40 +00:00
wmayer
f9cbeb91b1 Simplify code using xerces namespace 2026-01-07 14:37:59 +01:00
Kacper Donat
ad0ad85b77 CI: Limit backports to pixi only 2026-01-07 07:11:30 -06:00
jffmichi
ae8412468a CAM: fix Radius Mill TipDiameter resetting 2026-01-07 11:53:35 +01:00
Krrish777
123a142292 Improve error message for empty transformed features 2026-01-07 10:20:24 +01:00
xtemp09
58b5820731 Merge pull request #23743 from xtemp09/fem-fix
[FEM] Modernize `QObject::connect` with the new syntax in FEM
2026-01-07 10:18:14 +01:00
aditya dubey
a84c748b32 Merge pull request #26057 from TONY8779/fix-fem-existance-typo
Fix typo in FEM module: 'existance' -> 'existence'
2026-01-07 10:17:09 +01:00
Max Wilfinger
3cdc42fd58 Merge pull request #25897 from marioalexis84/fem-magnetic_flux_density 2026-01-07 10:15:20 +01:00
Louis Gombert
ec7bbbfdd4 TechDraw: improve draw performance
call 'boundingRect' only after all items have been drawn, using a custom 'addToGroup' function that does not trigger an update.
2026-01-07 09:28:08 +01:00
Krish Sharma
850ad9e0fc Gui: Reorder Add Property dialog fields to Name-Value-Group-Type (#26567)
* Gui: Move Tooltip field after Value field in Add Property dialog

* Gui: Reorder Add Property dialog fields to Group-Type-Name-Value-Tooltip
2026-01-07 09:24:16 +01:00
Leandro Heck
d0c7ab7d62 Sketcher: Support Bezier and Offset curves as external geometry (#25144)
* Sketcher: Support Bezier and Offset curves as external geometry

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

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

* Sketcher: Fix adding projection of external arc of circle

In processEdge() it's checked if first and last point of the projected arc of circle are almost equal. If yes then a full circle
is assumed but this conclusion is not necessarily correct because it's still possible that the external arc of circle is very
short. The better criterion is to check the parameter range of the arc of circle.

See also: https://github.com/FreeCAD/FreeCAD/pull/25144#issuecomment-3502916685

---------

Co-authored-by: wwmayer <wmayer@freecad.org>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-07 09:23:28 +01:00
Max Wilfinger
e9a66713ef Merge pull request #22951 from AjinkyaDahale/sk-refactor-stage-5
[Sketcher] Stage 5 of refactors
2026-01-07 09:23:10 +01:00
mac-the-bike
f548697603 FEM: Addition of "half cycle" animation (#24129)
* Animation of Results - addition of half cycle

* Delete src/Mod/Fem/Gui/Resources/ui/ResultShow.ui

* Delete src/Mod/Fem/femtaskpanels/task_result_mechanical.py

* Delete src/Mod/Fem/femviewprovider/view_result_mechanical.py

* Add files via upload

* Add files via upload

* Add files via upload

* Update view_result_mechanical.py

* Update task_result_mechanical.py

* Update task_result_mechanical.py

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

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

* Delete user_guide_animate.txt

* Delete results.png

---------

Co-authored-by: mac-the-bike <mac-the-bike@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-07 09:22:07 +01:00
PaddleStroke
8bfbeac40f PartDesign: Enable drag and drop of shapeBinders (#25264)
* PartDesign: Enable drag and drop of shapeBinders

* [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-01-07 09:21:58 +01:00
Kavin Teenakul
5e482a8310 [Std_Measure] Add diameter measurement (#24853)
* Add diameter measurement support

* change author name and change icon

* correct svg size to 64x64

* Update src/Mod/Measure/App/MeasureDiameter.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* somehow to icon color is undefine in inkscape, change to black

* Revert "somehow to icon color is undefine in inkscape, change to black"

This reverts commit 2277c1b9f4a7ab7519856986e2d6aec6e37ebf3e.

	modified:   src/Mod/Measure/Gui/Resources/icons/Measurement-Diameter.svg

* fix black color icon

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2026-01-07 09:16:24 +01:00
Kacper Donat
77a43c55ef Merge pull request #26703 from tetektoza/fix/25840_draw_parts_of_constraints_ontop_of_others
Gui: Render constraint text, arrowheads and constraint icons above geometry lines
2026-01-07 05:39:05 +01:00
tetektoza
b1fdf659d8 Sketcher: Disable depth testing for constraint icons
Add `SoDepthBuffer` nodes around the constraint group to disable depth
testing for constraint icons. This ensures icons render on top of
geometry lines regardless of Z position, improving visibility and
selectability.
2026-01-06 20:08:35 +01:00
tetektoza
4aa4f2663e Gui: Render constraint text and arrowheads above geometry lines
Add Z offset for arrowheads and explicitly enable depth testing for
constraint lines in SoDatumLabel. This ensures constraint lines render
below geometry (respecting zConstr level) while text and arrowheads
render on top for better visibility and selection.
2026-01-06 20:07:25 +01:00
drwho495
9b64da827a TopoNaming: Improve ElementMapVersion definition. (#26691)
This change makes the program only mark an object's ElementMapVersion with the "1" prefix if the object has a hasher AND an element map.
2026-01-06 15:36:19 +00:00