Commit Graph

43222 Commits

Author SHA1 Message Date
Chris Hennes
d7e2c42f45 Update clang-tidy checks to remove avoid-do-while
While the advice is good, the overwhelming majority of "do-while" warnings that come up in our codebase are macros using a standard pattern using a do-while loop to encapsulate the macro's work.
2025-09-01 17:51:51 +02:00
Benjamin Nauck
14f9e85600 Merge pull request #23502 from maxwxyz/issue-20633
Part: Improve TopoShape::findPlane
2025-09-01 17:47:32 +02:00
Chris Hennes
e706122bbb Update translations 2025-08-30 2025-09-01 17:44:54 +02:00
Kacper Donat
767c3f1f67 PartDesign: Highlight profile for profile based features
This adds highlight for sketches etc that are used to create certain
featuires.
2025-09-01 10:44:29 -05:00
Roy-043
23691409e0 BIM: fix self.Type regression for Wall, Stairs and Structure (#23476)
* BIM: fix self.Type regression for Wall

* BIM: fix self.Type regression for Stairs

* BIM: fix self.Type regression for Structure
2025-09-01 17:44:10 +02:00
Adrian Insaurralde Avalos
ff91ce148f Mesh: fix #18801 - simply call gmsh if gmsh executable path is empty 2025-09-01 10:43:00 -05:00
PaddleStroke
f51e1eeb22 PartDesign: Enable selecting a sketch as base plane of another sketch (#23428)
* PartDesign: Enable selecting a sketch as base plane of another sketch

* to squash

* Part: Attacher: enable attaching to empty objects such as empty Sketch or Body.

* Update SketchWorkflow.cpp
2025-09-01 17:39:51 +02:00
David Balch
7d38cc45ec BIM: Remove wrong IfcType for Column/Beam
Removes check on function parameters for height & length (first
introduced in commit 5217b24), relying on values assigned in "obj".

If those params are present, they're assigned to "obj" anyway, so
the check is redundant.

Fixes #22585
2025-09-01 17:38:27 +02:00
FEA-eng
0a392c2a3f FEM: Add support for CalculiX truss elements (#23224)
* FEM: Update element_geometry1D.py

* FEM: Update write_femelement_geometry.py

* FEM: Update write_mesh.py

* FEM: Update solver.py

* FEM: Update solver_calculix.py

* FEM: Update element_geometry1D.py
2025-09-01 10:37:44 -05:00
FEA-eng
a5751e5a3b FEM: Update DlgSettingsFemZ88.ui 2025-09-01 17:18:57 +02:00
Benjamin Nauck
baef697977 Merge pull request #23101 from 3x380V/td_fixes
TechDraw: random fixes
2025-09-01 15:58:01 +02:00
Ladislav Michl
7f2ddc5ac1 TD: remove unused clearLineSets()
d2ce7f8145 ("TD: Remove calls to now-empty clearLineSets() method")
removed last calls to clearLineSets(), so remove it entirely.
2025-09-01 14:12:58 +02:00
wmayer
2006480ae8 TD: Fix compiler warnings 2025-09-01 14:11:52 +02:00
wmayer
eb2c6bf73f TD: Fix loading project files
With PR 19941 there is a regression where parts of the document
won't be restored. This is caused by overriding the virtual method
handleChangedPropertyType() but not calling the method of the base class.

While searching for a fix another problem showed up where (due to the
incomplete loading) exceptions are thrown but not handled within TD.
Therefore the method recompute() is overridden in DrawView to also handle
OCC exceptions.
2025-09-01 14:11:52 +02:00
wmayer
cd31d0e698 TD: Fix crash on selecting 3D edge for dimension
Unlike in the bug description of issue 19654 the user doesn't have
to preselect an edge in the 3D view but first start the dimension
command and then select an edge.

This commit adds some security checks to TechDrawHandler::quit(),
TechDrawHandler::getPage() and TDHandlerDimension::onSelectionChanged()
to be on the safe side that no null pointers are dereferenced.

But the ultimative fix for this whole problem is to change
activateHandler() and immediately delete the passed TechDrawHandler if
it fails to find the appropriate QGVPage. This is needed as otherwise
the handler behaves like a ghost object that affects the selection
mechanism and disallows to select anything in the 3D view or the tree
view.

Fixes issue 19654
2025-09-01 14:11:51 +02:00
PaddleStroke
98ad0e9fd8 PartDesign: TaskExtrudeParameters improve ui by letting line visible 2025-09-01 08:40:29 +02:00
matthiasdanner
6d5800c862 Sketcher: Fix Assertion Crash when selecting a Constraint in a group (#23491)
* Sketcher: Fix Assertion Crash when selecting a Constraint in a group

* Update src/Mod/Sketcher/Gui/EditModeConstraintCoinManager.cpp

---------

Co-authored-by: Matthias Danner <28687794+matthiasdanner@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-09-01 06:28:13 +00:00
wandererfan
f5db0c6589 [TD]fix ISOLineSpacing preference not applied 2025-09-01 00:26:22 -05:00
FEA-eng
2244a16790 FEM: Add defined temperature field with CalculiX (*TEMPERATURE) (#23277)
* FEM: add write_constraint_finaltemperature.py

* FEM: Update CMakeLists.txt

* FEM: Update membertools.py

* FEM: Update FemConstraintInitialTemperature.cpp

* FEM: Update FemConstraintInitialTemperature.h

* FEM: Update write_constraint_initialtemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update writer.py

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update write_femelement_material.py

* FEM: Update box_static.inp

* FEM: Update ccx_cantilever_beam_circle.inp

* FEM: Update ccx_cantilever_beam_pipe.inp

* FEM: Update ccx_cantilever_beam_rect.inp

* FEM: Update ccx_cantilever_ele_hexa20.inp

* FEM: Update ccx_cantilever_ele_quad4.inp

* FEM: Update ccx_cantilever_ele_quad8.inp

* FEM: Update ccx_cantilever_ele_seg2.inp

* FEM: Update ccx_cantilever_ele_seg3.inp

* FEM: Update ccx_cantilever_ele_tria3.inp

* FEM: Update ccx_cantilever_ele_tria6.inp

* FEM: Update ccx_cantilever_faceload.inp

* FEM: Update ccx_cantilever_nodeload.inp

* FEM: Update ccx_cantilever_prescribeddisplacement.inp

* FEM: Update constraint_contact_shell_shell.inp

* FEM: Update constraint_sectionprint.inp

* FEM: Update constraint_selfweight_cantilever.inp

* FEM: Update constraint_tie.inp

* FEM: Update constraint_transform_beam_hinged.inp

* FEM: Update constraint_transform_torque.inp

* FEM: Update material_multiple_bendingbeam_fiveboxes.inp

* FEM: Update material_multiple_bendingbeam_fivefaces.inp

* FEM: Update material_multiple_tensionrod_twoboxes.inp

* FEM: Update material_nonlinear.inp

* FEM: Update square_pipe_end_twisted_edgeforces.inp

* FEM: Update square_pipe_end_twisted_nodeforces.inp

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update write_femelement_material.py

* FEM: Update write_constraint_finaltemperature.py

* FEM: Update FemConstraintInitialTemperature.cpp

* FEM: Update FemConstraintInitialTemperature.h
2025-08-31 23:28:56 -05:00
Roy-043
ad0606c69b Mesh: Gmsh dropdown to sentence case 2025-08-31 23:26:18 -05:00
Chris Hennes
8221ab77d7 Merge pull request #23503 from maxwxyz/issue-22123
Fix STEP import with bad string behavior
2025-08-31 23:23:25 -05:00
luzpaz
8f53b5164a BIM: fix trailing whitespace and refine source comment grammar (#23496)
* BIM: fix trailing whitespace and refine source comment grammar

* BIM: remove unnecessary newline
2025-08-31 23:22:39 -05:00
luzpaz
e30408eec7 Part: remove trailing whitespace 2025-08-31 23:21:13 -05:00
PaddleStroke
970f771127 Core: Datums: Make getDirection and getBasePoint aware of LCS position 2025-08-31 22:54:03 -05:00
Chris Hennes
2f9f8eda18 Merge pull request #22998 from Rexbas/prevent-showing-context-menu
Navigation: Prevent showing context menu after panning or rubber band selection
2025-08-31 22:41:05 -05:00
Kacper Donat
5669db8d8b Revert "Gui: Mark mouse move action handled to skip digging nodes"
This reverts commit ccb417e00d.
2025-09-01 05:33:02 +02:00
Mathieu GRENET
692101bd1b Assembly: Fix inconsistent positioning in distance joint validation
When validating distance joints, parts would move from preview position to
a different valid solution. This was caused by preSolve() being called
inconsistently - applied during offset changes for all joint types, but
distance joints are not in JointUsingPreSolve list.

Fix: Only call preSolve() for joint types that are designed to use it,
matching the logic used elsewhere in the codebase.
2025-08-31 21:31:45 -05:00
wandererfan
a0305388c3 [TD]allow finding child view outside clip rectangle 2025-08-31 20:56:14 -05:00
tetektoza
66e099aedb Merge pull request #23192 from tetektoza/fix/22253_fix_losing_expression_during_sketcher_tools_usage
Sketcher: Copy expressions when rotating/moving geometry
2025-08-31 20:12:22 -05:00
Chris Hennes
b898703841 Merge pull request #23310 from Roy-043/Draft-more-logical-placement-for-3-point-arcs
Draft: more logical placement for 3 point arcs
2025-08-31 18:44:02 -05:00
Bas Ruigrok
cc930ae145 Gui: Allow switch to panning after canceling sketcher rubber band selection 2025-08-31 18:37:09 -05:00
Bas Ruigrok
e469eb5ccb Sketcher: Cancel rubber band selection with RMB
Cleanup
2025-08-31 18:36:38 -05:00
Bas Ruigrok
39329e547f Sketcher: Don't show the context menu after rubber band selection 2025-08-31 17:24:28 -05:00
Bas Ruigrok
ac3b441cba Gui: Reset navigation flags when the new mode is not IDLE or when the mouse buttons are released 2025-08-31 17:24:28 -05:00
tetektoza
96d9cd3739 Core: Do not clear highlight if filter rejected selection
When user has specified a filter for a multi selection attempt, for
example Ctrl + clicking on a disallowed edge, the visual highlighting of
previously selected valid objects (that filter allowed) would disappear,
even though they were still internally valid in selection system.

The root cause of that was that when `addSelection()` failed, the code
still applied a `SoSelectionElementAction::None` to the scene graph
path, which was clearing visual highlighting for all objects in that
path, including those valid selection.

So, the fix is to set `pPath` to `nullptr` if selection fails, to
prevent any visual action from happening and being applied, in essence
leaving correct (and existing) selection untouched.
2025-08-31 17:23:26 -05:00
Chris Hennes
880df78906 Merge pull request #23062 from kadet1090/pd-boolean-preview
PartDesign: Implement preview for Booleans
2025-08-31 15:36:38 -05:00
Kohei Takahashi
ccb417e00d Gui: Mark mouse move action handled to skip digging nodes 2025-08-31 22:09:32 +02:00
theo-vt
0c4e125e44 Quickmeasure: Make measuring holes easier (#23385)
* Measure: Add circle center distance types to quickmeasure

* Measure: Add cylinder axis distance types to quickmeasure

* Measure: Fix PointToCylinder minimum distance not computing

* Quickmeasure: compute circle and cylinder diameters when they are closed

* Quickmeasure: add angle measurement between cylinder & circle axes

* Quickmeasure: Remove minimum distance between circle center and cylinder surface

* [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>
2025-08-31 21:57:00 +02:00
Ryan K
25d1a51fb4 Gui: Widen the default customize dialog (#22714)
* Gui: Widen the default customize dialog

* Gui: Make panels the same width in keyboard and toolbars tabs

* Remove namespace additions

---------

Co-authored-by: Ryan Kembrey <ryan.kembrey@student.uts>
2025-08-31 21:53:51 +02:00
Chris Hennes
c26e3e9756 Base: Allow all valid Python 3 identifier characters
Note: Does not check for keywords, only character classes (not a change from the original code).
2025-08-31 21:39:49 +02:00
tetektoza
7b85239093 Sketcher: Use different colors for touch/window selection (#23261)
* Sketcher: Use different colors for touch/window selection

As the title says. I think it was missing, so currently right to left
motion makes the box selection in Sketcher green with dashed lines,
whereas motion from left to right makes it blue with solid lines.

* [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>
2025-08-31 21:36:24 +02:00
Kacper Donat
f502aad3b8 Merge pull request #23321 from chennes/refactorApplicationAndAddVersioning
Refactor App::Application directory handling and add versioning
2025-08-31 21:35:02 +02:00
Kacper Donat
edad41c245 PartDesign: Change preview parameter to opacity from transparency 2025-08-31 21:12:07 +02:00
Kacper Donat
18792297f6 PartDesign: Implement preview for Booleans 2025-08-31 21:12:07 +02:00
Kacper Donat
0aa95996d9 Part: Add transform property to SoPreviewShape 2025-08-31 21:12:05 +02:00
pre-commit-ci[bot]
b44dc26ff1 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-08-31 12:42:10 +00:00
wmayer
ee2d35cad8 Test: Add test cases for Persistence::validateXMLString 2025-08-31 14:38:25 +02:00
wmayer
696c18b6da App: Fix output string to XML
Not all unicode characters are allowed as XML output. When writing disallowed characters the SAX parser throws an exception
when loading a project file that results into a broken document and thus to a possible loss of data.

This PR replaces all disallowed characters with an underscore and prints a warning.

This fixes https://github.com/FreeCAD/FreeCAD/issues/22123
Note: It does not fix an already corrupted project file.
2025-08-31 14:38:05 +02:00
Roy-043
ffb5d7a428 Update gui_snaps.py 2025-08-31 14:33:24 +02:00
wmayer
6500a872eb Part: Improve TopoShape::findPlane
Since OCC 7.7 using GeomLib_IsPlanarSurface without a custom tolerance may fail because the default value is too strict.
To fix this problem forward the passed tolerance value to GeomLib_IsPlanarSurface.

This fixes issue 20633
2025-08-31 14:27:09 +02:00