Commit Graph

33650 Commits

Author SHA1 Message Date
Chris Hennes
63e0c0ff49 Merge pull request #27094 from WandererFan/ProjGroupDragGoesToOrigin4
TechDraw: Projection Group jumps to origin
2026-01-29 12:52:59 +01:00
Kacper Donat
4dda92e599 Part: Fix regressions in MultiCommon boolean operation
This commit addresses two regressions in the MultiCommon feature:

1. Computation Logic: Fixed an issue where the common operation was
   calculated as the intersection of the first shape with the union of
   the rest (the default behavior of makeElementBoolean). It now
   correctly computes the intersection of all shapes sequentially.

2. Compound Handling: Added logic to expand a single compound input
   into its constituent shapes. Previously, a compound was treated
   as a single entity, leading to incorrect intersection results.

To maintain backward compatibility, a hidden 'Behavior' property is
introduced. This ensures that documents created in FreeCAD 1.0, which
rely on the previous behavior, continue to render as originally
intended while new objects use the corrected logic.
2026-01-29 12:40:20 +01:00
Vassily Checkin
d3d6459484 Sketcher: fix intermittent crash on sketch exit 2026-01-29 11:42:04 +01:00
Timothy Miller
9eed3a8d77 Part: Fix mirror() regression with non-identity Placement (#26963)
* Part: Fix mirror() regression with non-identity Placement

The makeElementMirror() function incorrectly extracted and pre-multiplied
the shape's Location with the mirror transform. Since BRepBuilderAPI_Transform
already handles shapes with Location correctly, this resulted in the placement
being applied twice, producing incorrect results for shapes with non-identity
Placement.

Fixes #20834

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Part: Add regression test for mirror() with Placement

Adds testTopoShapeMirrorWithPlacement to verify that mirror() produces
identical results regardless of whether the shape is positioned via
direct coordinates or via Placement.

This test would have caught the bug fixed in the previous commit where
shapes with non-identity Placement produced incorrect mirror results.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix regression test for mirror with Placement

The test was incorrectly trying to create equivalent boxes using
different methods that don't actually produce the same geometry.
Part.makeBox with a direction vector is not equivalent to setting
a Placement with rotation.

Fixed to use the correct approach that demonstrates the actual bug:
- Method 1: Box with geometry at (0,30,0), identity Placement
- Method 2: Box with geometry at origin, moved via Placement

Both should produce identical mirror results, which they now do
with the makeElementMirror() fix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Timothy Miller <theosib@zeromark.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:05:35 +01:00
Roy-043
104089179c BIM: fix title case of GUI texts (#27213) 2026-01-28 21:08:27 +01:00
PaddleStroke
7bcaa766de Sketcher: Fix arc angle dragging distance 2026-01-27 16:33:30 +01:00
PaddleStroke
caff52b1ed Assembly: fix sub assembly joint bug (#27172) 2026-01-26 19:23:07 +01:00
sliptonic
533b1be963 Merge pull request #27107 from PaddleStroke/asm_3patches
Assembly: Fix Assembly activation issues.
2026-01-26 10:51:28 -06:00
Chris
3f49793794 cam: attempt to fix issue #26652 ie. fix issue with state of recompute button for tool bit (#26884)
* cam: attempt to fix issue #26652 ie. fix issue with state of recompute button for tool bit

* add unit test for issue #26652

* run precommit

* relocate `purgeTouched()` call to end of `_update_visual_representation` function
2026-01-26 10:42:20 -06:00
PaddleStroke
9b6de80231 Update UtilsAssembly.py 2026-01-26 11:35:38 +01:00
freecad-gh-actions-translation-bot
d574623a2e Update translations from Crowdin 2026-01-26 10:11:06 +01:00
PaddleStroke
b4025abab6 Assembly: Change Joint References to remove cyclic dependency. (#25513)
* Assembly: Change Joint References to remove cyclic dependency.

* Update JointObject.py

* Update TestCore.py

* Update JointObject.py

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

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

* Update AssemblyUtils.cpp

* Update UtilsAssembly.py

* Update JointObject.py

* small fix for link groups

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-26 09:44:59 +01:00
Captain
6aee8b81c9 PartDesign: Added interactive gizmo for draft operation (#27111)
* PartDesign: Add interactive gizmo for draft operation

* [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-25 00:00:07 +01:00
sliptonic
1a956b0f01 Merge pull request #24617 from petterreinholdtsen/cam-pre-post-dedup
CAM: Ensure pre-/postamble help text matches active values by avoiding duplication.
2026-01-24 12:03:38 -06:00
Morten Vajhøj
356fe85d01 Measurement: Added support for cylindrical surfaces (#27044)
* Added support for cylindrical surfaces

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

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

* Removed unnessecary sign

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

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

* Reverted change

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-24 17:12:16 +01:00
PaddleStroke
c9041132f9 Sketcher: add switch between radius and diameter (#26794) 2026-01-23 21:39:46 +00:00
Petter Reinholdtsen
80a35a8765 CAM: Ensure pre-/postamble help text matches active values by avoiding duplication
Make sure to use the active default values for preamble and postamble in the help text,
and provide the current default values as the default in the add_argument().

The only exception is uccnc_post.py, where the real default value depend on the use of
--no-comments, and sending the default argument to add_argument() would change behaviour.

This change was inspired by the changes done to fix (#20792) in
d84d9c9bd1.
2026-01-23 19:43:16 +01:00
sliptonic
6c66564062 Merge pull request #21220 from dbtayl/fix_adaptive_bspline
CAM: Adaptive: Fix bspline processing
2026-01-23 12:17:51 -06:00
sliptonic
fef12ad011 Merge pull request #26426 from davidgilkaufman/adaptive_fix_small_loops
CAM: Adaptive fix small loops
2026-01-23 12:17:14 -06:00
sliptonic
acda0ac0ba Merge pull request #23242 from tarman3/boundary-g0
CAM: DressupBoundary - Fix G0
2026-01-23 12:11:10 -06:00
PaddleStroke
9c6ea80757 Update ViewProviderAssembly.cpp 2026-01-23 17:40:01 +01:00
pre-commit-ci[bot]
b87899f4ca [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-01-23 15:19:27 +00:00
paddle
62cbaf7336 Assembly: Fix "deactivated by activating a App::Part, assembly stay in edit"
Fix "Activating a body in a part in an assembly deactivates the assembly and activate the part"
Fix "A manually deactivated assembly is still restoring later"
2026-01-23 16:09:43 +01:00
PaddleStroke
abc5f90466 Assembly: prevent assembly collapse when editing sketch. (#26956)
* Gui: View provider: isAutoCollapseOnDeactivation

* Update ViewProvider.h

* Update ActiveObjectList.cpp

* Update ViewProviderAssembly.cpp

* Update ActiveObjectList.cpp
2026-01-23 16:01:06 +01:00
Amon Sha
6a0d59b0c1 Merge pull request #27077 from amon-sha/fix_sketcher_autoscale_segfault
Sketcher: fix segfault during autoscale
2026-01-23 15:18:25 +01:00
Furgo
14aca4f9f2 BIM: add regression and functional test for ArchWall's MakeBlock feature (#27002)
Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>
2026-01-23 11:37:36 +01:00
wandererfan
ea58456534 [TD]avoid crash on missing ViewProviderPage 2026-01-22 19:29:08 -05:00
wandererfan
bef6aafa73 [TD]handle AutoDistribute property toggle 2026-01-22 16:14:39 -05:00
wandererfan
3fca5d99ee [TD]fix secondary view drag goes to origin 2026-01-22 16:14:07 -05:00
wandererfan
fd014445fb [TD]make QGIProjGroup methods public
- also adds a convenience method to return all the views in the group
2026-01-22 16:13:11 -05:00
wandererfan
5d4495785b [TD]more reliable test for DrawProjGroupItem 2026-01-22 16:11:14 -05:00
Kacper Donat
3fdf405ce8 Merge pull request #24951 from PaddleStroke/asm_jointhighlight
Assembly: Highlight joint elements on joint selection
2026-01-22 20:16:56 +01:00
PaddleStroke
bb6832897a Assembly: Solver messages (#24623)
* Assembly: Solver messages

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

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

* Update ViewProviderAssembly.cpp

* Update src/Mod/Assembly/App/AssemblyUtils.cpp

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

* Update src/Mod/Assembly/App/AssemblyUtils.cpp

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

* Update src/Mod/Assembly/App/AssemblyUtils.cpp

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

* Update src/Mod/Assembly/Gui/Commands.cpp

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

* Update ViewProviderAssembly.cpp

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

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

* Update src/Mod/Assembly/Gui/TaskAssemblyMessages.cpp

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

* Update AssemblyObject.h

* Update AssemblyObject.cpp

* Update Commands.cpp

* Update ViewProviderAssembly.cpp

* Update AssemblyObject.cpp

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

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

* Thank you

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2026-01-22 15:21:13 +01:00
PaddleStroke
54d235f8a5 Sketcher: Show constraint type in the list 2026-01-22 10:36:35 +01:00
Roy-043
27cb425156 BIM: fix variable name error in ArchWall.py (#26991) 2026-01-22 10:22:14 +01:00
PaddleStroke
93abfc4fa4 Sketch: Forward non-default edit mode to base class. (#27063)
Ported from Codeberg commit 66dbf277

Co-authored-by: wwmayer <wmayer@freecad.org>
2026-01-21 22:41:44 +01:00
Roy-043
457a2eb300 BIM: fix Array Tools dropdown (#27060) 2026-01-21 14:49:08 +01:00
Yash Suthar
9beca4363a Sketcher: Switch to perpendicular based instead of "de la Hire" in setting minor axis of ellipse
Signed-off-by: Yash Suthar <yashsuthar983@gmail.com>
2026-01-20 22:54:07 +01:00
Roy-043
fbf5cb7e11 Draft: fix snapping to geometry on image
Fixes #26965

`self.snapObjectIndex` should be increased if the object under the cursor is not 'snappable'. This is the same principle as is used in the `cycleSnapObject` function.
2026-01-20 20:54:34 +01:00
wandererfan
396d8c503d [TD]fix vertex display in manual frame mode 2026-01-20 20:05:05 +01:00
sliptonic
cd389c6284 Merge pull request #26988 from Connor9220/AddTaperedBallNose
CAM: Add tapered ball nose toolbit/shape asset
2026-01-19 15:30:29 -06:00
Dan Taylor
4f9ef13571 CAM: Adaptive: Fix handling of BSplines (though TechDraw still has some failures that cascade) 2026-01-19 13:38:33 -06:00
Roy-043
0a8392e995 BIM: fix ArchReference Placement if whole file is used 2026-01-19 17:02:56 +00:00
Roy-043
23ce17f4d0 Draft: fix DiscretizeEllipses preference inconsistency (#26953) 2026-01-19 10:51:19 -06:00
PaddleStroke
17ac7dab3d PartDesign: allow makeShellFromUpToFace to update extrusion direction
Updated makeShellFromUpToShape to accept the direction vector by reference.
This allows the method to reverse the direction internally if required
to successfully reach the target face, fixing cases where the extrusion
would otherwise fail or go the wrong way.

Note: While passing the direction as a non-const reference is a quick
fix for this regression, it is acknowledged as non-ideal and should
be considered for future refactoring.
2026-01-19 10:39:31 -06:00
Zheng, Lei
72971d48e5 Part: Do not recompute visuals if shape did not change
This commit registers last rendered shape within the ViewProvider for
Part objects and short-circuits the visuals recomputed if shape did not
change.

Co-Authored-By: Kacper Donat <kadet1090@gmail.com>
2026-01-19 10:39:05 -06:00
Roy-043
c858e09ca5 BIM: fix placement issue in BIM_View (#27015)
* BIM: fix placement issue in BIM_View

* BIM: fix placement issue in BIM_View
2026-01-19 16:30:04 +00:00
PaddleStroke
443b71d96e PartDesign: enable LCS in 'Move after feature' 2026-01-19 16:21:50 +01:00
PaddleStroke
af053f19f5 Sketcher: Fix box selection regressions. And make addSelections Print to python (#26869) 2026-01-19 09:19:38 -06:00
Furgo
2d75d1ee8c BIM: add vertical area tests (#26874)
* BIM: Add tests for ArchComponent.AreaCalculator.isFaceVertical

* BIM: test new area calculation fallback case

* BIM: add test for composite complex surface vertical area calculation
2026-01-19 15:12:18 +01:00