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