Before 0aed23c (PR #19582), external geometry projection used a different algorithm and produced slightly different geometry for some kinds of projections (B-splines in particular). This adds a backwards-compatibility path that allows old files to continue to use the old algorithm, while using the new and improved algorithm with new files.
Commit a346c266 (PR #21794) was a major refactoring of the extrusion code, and one consequence of it was that the 'TwoLengths' extrusion was deprecated and replaced. The code that replaced it generated the same final geometry, but in the opposite direction, changing the face order and breaking the element names. This commit adds a backwards-compatibility branch to the file loading code that flips the direction of the inputs, so the final output matches the original.
* PD: Hole Thread texture
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* refactor: vp-texture remove logging
* refactor: vp-hole cleanup unused declaration
* refactor: vp-hole remove logging
* refactor: vp-hole use convertTo
* refactor: vp-hole use freecad_cast
* refactor: make unwrapsurface private
* fix: logic error with model-thread handling
* fix: modelthreadchanged issues
threaddepth doesnt depend on modeled or not so remove it
* fix: model thread getting disabled when it shouldnt
* revert: use base-0 poly triangulation
previously had issues, but all is good now
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Gui: fix quantity spinbox size not adapting to number of decimals
* Gui: fix quantity spinbox units getting cut (force max chars)
* Gui: editableDatumLabel remove hardcoded values
* fixes
* Gui: sketcher ovp auto adjust size
* Gui: ovp fix cursor jumping behind the unit
* Gui: Refactor changes to QuantitySpinBox
The QuantitySpinBox uses d-pointer (pimpl) to store its private data -
this commit ensures that all state is stored here and exposed via
getters and setters + qproperties.
* Gui: sketcher ovp fix cursor jumping after the unit
* Gui: allow quantitySpinBox to set max digits allowed
Useful for adjustable width in the Sketcher OVP
---------
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
* Sketcher: Fix: Arc of Hyperbola
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Added minor grater than major radius support
* Fixed merge errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Improved comments and added a confused points check for S1 and S2 distance.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Added compile check for occ version and check before getting minor radius.
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Apply suggestions from code review
OCC version check
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
When Part2DObject (e.g., Sketch) is created, it calls setAttacher() to
set up AttachEnginePlane. This updated the internal AttacherType property
but left the user-visible AttacherEngine enum at its default "Engine 3D".
Now setAttacher() also updates AttacherEngine for non-base attachers,
keeping the visible property in sync with the actual engine type.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Core: Fix freecad when Windows username has non ASCII characters
* Update ApplicationDirectories.cpp
* Tests: Add tests of pathToString/stringToPath
Validates the fix for non-ASCII characters in filesystem paths (e.g.
Windows usernames with umlauts). Includes Windows-specific tests that
verify pathToString produces UTF-8 from wide-string paths and that
the naive fs::path::string() does not. On Linux these functions are
effectively a no-op, so the tests themselves are only really useful
on Windows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Python interface to the setCamera() is using 's' format string, which
converts Unicode object to C string using 'utf-8' encoding. Reflect
that for QString conversion as well.