* 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
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
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.
* 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>
* 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>
* 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>
* 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
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.
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.
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.
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.
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
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
* FEM: Extract postprocessing data only if available. Fixes#22193
* [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>
The current solution checked shapes before allowing boolean operation to
happend. That meant that even small error with model in an unrelated
place could prevent the boolean from being computed, even if it would
compute fine and create valid shape. This commit changes that behaviour
so the tool at least tries to compute the results.
With TNP mitigation implementation handling of TopAbs_FACE was changed
in the method computing 2D offset of shape. It used to be very simple
iteration over face wires and it was instead changed to much more
complicated splitWires method. The intent of that change was to ensure
stability of the result, but it breaks existing models.
The problem is caused by OCC bug within offseting mechanism that is
dependent on wire order. Here the outer wire is moved to the end which
can cause issues.
Another issue is that for some reason, if circle is enclosed by other
shape the offset does not create proper 2D offset but moves the circle
in Z direction.