Commit Graph

40652 Commits

Author SHA1 Message Date
paddle
9d12c0c7c6 PartDesign: Remove unnecessary warning. 2025-08-25 18:39:06 +02:00
paddle
9535371265 PartDesign: Rename Transformed::Mode enum 2025-08-25 18:38:34 +02:00
paddle
2e0dc45874 Part: Add PatternParametersWidget 2025-08-25 18:38:34 +02:00
paddle
89eddb4138 Gui: Move ComboLink from PartDesign to Gui. 2025-08-25 18:38:34 +02:00
paddle
00ed23845a PartDesign: add linear pattern spacing and extent icons. 2025-08-25 18:38:34 +02:00
Roy-043
ba7bb0eabe Draft: fix 2 issues with Draft_SelectPlane 2025-08-25 18:24:01 +02:00
wmayer
cd1496be75 Mesh: In ReaderOBJ replace std::atoi with std::stoi 2025-08-25 18:13:59 +02:00
wmayer
5d75cf8fed Mesh: Improve OBJ mesh import
This change allows it to load OBJ files created by Blender.

Fixes https://github.com/FreeCAD/FreeCAD/issues/19456
2025-08-25 18:13:59 +02:00
Roy-043
f62e18b59c Draft: Support relative paths for hatch patterns 2025-08-25 18:12:20 +02:00
tetektoza
9f04f5f371 Sketcher: Set total angle to make evaluation choose it when typing in OVP (#23193)
* Sketcher: Set total angle to make evaluation choose it when typing in OVP

When typing an angle value (e.g., "315 deg") in the sketcher rotate tool,
the result differed from manually moving the mouse to achieve the same rotation.
The angle would "flip" to equivalent but opposite directions (315 deg became -45 deg)
due to smart angle selection logic choosing the "closer" alternative.

The parameter enforcement system (`doEnforceControlParameters`) calculated cursor
positions for keyboard input but never directly set the `totalAngle` value.
The mouse logic's smart angle selection algorithm then calculated totalAngle
independently, potentially choosing equivalent but opposite angle directions
(e.g., -45 deg instead of +315 deg) based on proximity to the previous angle value.

Solution is to basically predefine `totalAngle` if user has typed it so
this "smart logic" will always choose the `totalAngle` that user typed.

* Sketcher: Set total angle for arc tool

* Sketcher: Set total angle for Arc Slot tool
2025-08-25 11:10:17 -05:00
Roy-043
6c63c298fc Bim: Fix direction of panel waves (#23271)
* Update ArchPanel.py

* Update ArchPanel.py
2025-08-25 18:09:31 +02:00
MisterMakerNL
a362c4915e Replace preference page icons
replaced icon so look more like the actual wb icons
2025-08-25 11:08:19 -05:00
PaddleStroke
b527c1ae6a Assembly: Move label change logic to onChange 2025-08-25 11:06:11 -05:00
tetektoza
9798df0215 Part: Start listing BoundBox properties for Expression Editor
As the title says. It was missing, so this patch adds all needed.
2025-08-25 18:04:22 +02:00
wmayer
7eaa5e8844 Mesh: Fix crash MeshPy::setPoint & MeshPy::movePoint
Fixes https://github.com/FreeCAD/FreeCAD/issues/18823
2025-08-25 10:55:53 -05:00
Chris Hennes
9ee6e592b1 Tools: Small improvements to translation extraction
1) Block a problematic BIM file from extraction
2) Implement advanced scanning system to better report problems
3) Limit number of jobs in CrowdIn push to prevent 403 errors
2025-08-25 17:39:40 +02:00
xtemp09
f20c1a0102 Simplify repr() function 2025-08-25 10:38:39 -05:00
Paul Lee
c7aaff410b [ArchWindow] Clone and Link to Support Sill Change
Problems / Course of Developement:

  1. Allow changing Sill feature was added in
  - https://github.com/FreeCAD/FreeCAD/pull/21005

  2. Bug fix was added in
  - f6bba5d58e

  3. Further Problems were identified as discused in
  - https://github.com/FreeCAD/FreeCAD/pull/21005#issuecomment-3010959162

  'New Observation-

      1. Clone or Link to a Window does not work and return error
      2. This PR/Commit (21005) translate the Base Sketch when Sill property is changed, to change the final disposition of a Window object; however, it will also shift the disposition of a Clone and Link as a result (with error message above fixed). This is apparently not an expected behaviour.

  (Sidenote- When SketchArch Addon is installed and parametric placement is used, there would not no impact)

Current Commit:

  1. Support Link and Clone of Arch Windows (bug fix)

  2. Instead of changing base Sketch disposition, the Placement of Arch Window, Clone, or Link is adjusted.
2025-08-25 17:30:13 +02:00
paddle
e2346dabd6 Sketcher: Port and fix internal faces from RealThunder's branch
Co-authored-by: Zheng Lei <realthunder.dev@gmail.com>
Co-authored-by: Kacper Donat <kacper@kadet.net>
Co-authored-by: Pierre-Louis Boyer <pierrelouis.boyer@gmail.com>
2025-08-25 17:09:10 +02:00
Max Wilfinger
3347ac343e Gui: Update header in about dialog before the 1.1 release (#22991)
* Gui: Update header in about dialog before the 1.1 release

Gui: Change main link in about dialog to main website instead of Wiki Main_Page

* Update based on code review.

Co-authored-by: xtemp09 <xtemp09@gmail.com>

---------

Co-authored-by: xtemp09 <xtemp09@gmail.com>
2025-08-25 10:07:58 -05:00
PaddleStroke
409d0e408d Assembly: Fix untranslatable string in CommandInsertNewPart.py (#23355)
* Assembly: Fix untranslatable string in CommandInsertNewPart.py

* [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-25 14:38:33 +00:00
PaddleStroke
150e6c9b99 Sketcher: fix constraint icon size (#22940)
* Sketcher: fix constraint icon size

* [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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-08-25 15:59:46 +02:00
Furgo
4d8a277926 BIM: add interactive sun position and ray visualization to Arch Site (#22516)
* BIM: add properties for static sun sphere representation

* BIM: create Coin3D nodes for the sun sphere

* BIM: implement logic for static sun representation

* BIM: add additional info properties to sun ray

* BIM: use Draft.Line for sun ray, improve visual appearance

* BIM: color code the sun path arc

* BIM: add hour marker points to the sun path arc

* BIM: make sun path diagram smoother

* BIM: add conditional sun hour marker labels

* BIM: set constraints to time values

* BIM: remove redundant import
2025-08-25 11:37:30 +02:00
Roy-043
8d880f2860 Draft: task_orthoarray.py make some strings translatable 2025-08-25 11:31:50 +02:00
wmayer
130d5618c2 Measure: Extend angle measurements
Support to measure the angle using a planar B-spline surface
2025-08-25 09:29:29 +02:00
wmayer
eebb7f7829 PD: Increase the tolerance to check for planar surfaces
The default tolerance to check for a planar B-spline surface is 1.0e-7 which might be too strict in some cases.
Therefore the tolerance is increased to 2.0e-7.

This fixes issue 21242
2025-08-25 09:29:29 +02:00
wmayer
4a5217075c Measure: Fix some linter warnings 2025-08-25 09:29:29 +02:00
wmayer
9540cfe0ea Measure: Improve TaskMeasure dialog
+ Use Qt's translation of the Save and Close buttons
+ Use QShortcut instead of eventFilter() because the latter is
  too aggressive eating all Enter and ESC events

This fixes the remaining issues as mentioned at the PR 17109
2025-08-25 09:29:29 +02:00
wmayer
75236d4b13 Measure: Allow any surface type for MeasureArea 2025-08-25 09:23:54 +02:00
wmayer
8165d12607 Measure: Fix TaskMeasure
Made several fixes to TaskMeasure:
* Move to correct namespace
* Handle possible exception in update() method
* Add null pointer checks for buttonBox
* Cannot use 'Measure::MeasurePython' as template argument in addObject<>
  because the macro PROPERTY_HEADER_WITH_OVERRIDE determines the invalid
  string 'App::FeaturePythonT<FeatureT>' so that an exception is raised

Note: The changes might fix issue 20304
2025-08-25 09:21:33 +02:00
wmayer
1acafb240a Measure: Fix several crashes in Measurement
Measurement::getShape() used to call ShapeFinder::getLocatedShape()
that failed to return a valid shape in many cases. And the calling
instance didn't check for a valid shape either which caused
a segmentation fault.

Solution:
Replace ShapeFinder::getLocatedShape() with Part::Feature::getShape()
that works more reliably and where needed check for a valid shape
before accessing it.

This fixes issue 19452 and improves the fix for 19349
2025-08-25 09:21:33 +02:00
wmayer
5d3f9cac3f Measure: Implement quick measure as command and make it toggable
The quick measure can considerably slow down the system when selecting
part elements. With this change the user is able to turn off this
bottleneck.
2025-08-25 09:21:33 +02:00
wmayer
2b2a82d901 Measure: Fix crash in Measurement::length() when selecting infinite edge (e.g. PD datum line) 2025-08-25 09:21:33 +02:00
Max Wilfinger
04e9baf533 Fix UI strings reported on Crowdin (#23297)
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-08-25 06:10:53 +00:00
Chris Hennes
18517c78e5 Addon Manager: Sync with upstream 2025-08-24 2025-08-25 07:22:52 +02:00
tetektoza
0ce6a509e7 BIM: Load QIcon for Material Editor from bytes
Loading QIcon directly from bytes is not supported in Qt6 it seems, so
this patch changes it to load it to pixmap first and then to QIcon
directly.

Plus add some alternative options to avoid tracebacks for compatibility,
as it seems that in Qt5 it either failed gracefully, or was able to load
directly from string/bytes.
2025-08-24 23:08:44 -05:00
mosfet80
475dd13052 Clean SoDatumLabel.cpp (#23217)
* Clean SoDatumLabel.cpp

removed unused variables

* Update SoDatumLabel.cpp
2025-08-24 23:00:29 -05:00
FEA-eng
20f17f7e1b FEM: Update write_step_output.py 2025-08-24 22:59:22 -05:00
tetektoza
568e63f8d5 Assembly: Allow editing joint references
As the title says - root cause of this problem was imprecise reference
matching by moving_part and TNP string processing incosistencies, so the
solution is to give enhanced matching and TNP string mapping for
reliable deletion.

Also added context menu with keyboard shortucs so user is able to delete
stuff with right click.
2025-08-24 22:58:57 -05:00
PaddleStroke
e3cfca6e9d Assembly: toggle grounded: handle case of grounded joint selection. 2025-08-24 22:58:22 -05:00
tetektoza
9bff63e38d Sketcher: Fix construction lines becoming solid after box selection
Currently if user tries to use box selection while having transformed
normal line to a construction line, the line becomes solid unless it
gets moved or new geometry is created.

The root cause of that is the `draw(true, false)` call which uses
outdated solver geometry where construction=false is being specified.
Solver updates lazily, which results in construction lines in normal
sublayer instead of construction.

So, this patch changes it to `draw(false, false)` after box selection.
This ensures the redraw uses current SketchObject geometry with
up-to-date construction flags. This should be safe, as box selection is
purely visual and we do not need geometry calculations in this
operation.
2025-08-24 22:48:14 -05:00
Ian Abreu
8533b4fbb8 Core: Fixing missing python bindings. (#23054)
* Adding missing python interfaces.

* fixing interface includes.

* attempting fix for CI build error related to path resolution.

* testing build

* More testing via Github Actions...

* renaming files

* fixing comparison operator.

* reverting...

* fixing CMakeLists

* fixing binding generation issue
2025-08-24 22:43:39 -05:00
Chris Hennes
d77a070bc8 Merge pull request #23104 from thyssentishman/main
Split Material Exceptions.h into source and header
2025-08-24 22:38:39 -05:00
Kacper Donat
9e0badc8a5 Gui: Fix Document Recovery screen 2025-08-24 22:32:24 -05:00
tetektoza
a6e0b91758 Assembly: Auto close on deleted doc for dialogs to avoid segfaults
Currently if we close document on Assembly WB while having dialog
opened, it will throw segfault because it is not being auto closed
automatically during document close. This in turn resulted in dialog
having dangling references to document that was no longer existing,
throwing segfaults in random places.

So solution is simple - add `setAutoCloseOnDeletedDocument` for every
dialog in Assembly to avoid this situation and close every dialog upon
document close.
2025-08-24 22:22:19 -05:00
wmayer
de14265ba7 Part: Check for straight splines or Bezier curves
Straight splines or Bezier curves can be considered as line segments and thus can be used to measure e.g. angles.

This fixes https://github.com/FreeCAD/FreeCAD/issues/22878
2025-08-24 22:20:23 -05:00
wandererfan
7acd859634 [TD]fix crash in vertex show/hide 2025-08-24 22:19:31 -05:00
wmayer
8ec43d2966 App: Remove build dependency to Coin3D
Fixes https://github.com/FreeCAD/FreeCAD/issues/20897
2025-08-24 22:18:55 -05:00
wmayer
1dfcef2939 Part: Fix crash in MultiFuse::execute()
The processed shape is null and thus it's not allowed to call its ShapeType() method.
The crash is not directly related to the fact that there is a cyclic dependency

Fixes https://github.com/FreeCAD/FreeCAD/issues/22879
2025-08-24 22:17:48 -05:00
wmayer
ecd7a47b4a Gui: Hold the GIL when clearing the form attribute
Inside TaskDialogPython::clearForm() the interpreter may execute a lot of things where at the some point the GIL must be hold.

This very likely fixes https://github.com/FreeCAD/FreeCAD/issues/22863

@thyssentishman
Please check this branch
2025-08-24 22:17:10 -05:00