Commit Graph

1371 Commits

Author SHA1 Message Date
Valentin Rusu
1c67ab7be2 Fix segfault where DatumLine does not have a refSubSHape 2025-08-19 11:54:32 +02:00
Johannes Wüller
3321b13218 Sketcher: Fix external geometry out-of-bounds vector access (#22181)
* Sketcher: Fix external geometry out-of-bounds vector access

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
Co-authored-by: Ajinkya Dahale <AjinkyaDahale@users.noreply.github.com>
Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-07-29 18:36:17 +00:00
Kacper Donat
4823ccb6a1 Merge pull request #22736 from chennes/sketcherCodeQLCleanup
Sketcher CodeQL cleanup
2025-07-26 11:21:53 +02:00
Chris Hennes
29da89febd Sketcher: Clean up some old commented out code 2025-07-25 19:12:30 -05:00
Chris Hennes
cdf0097dec Sketcher: Fix increment of parabola constraint tag
It is an invisible and unstated assumption of the redundant-constraint
removal code that the "tag" of a constraint can be used as the index
into the SketchObject's Constraint list. This is true for all objects
except a parabola, which, when creating its internal alignment focus
constraints, incremented the ConstraintCounter for *each* of the
internal constraints, instead of only once.
2025-07-25 22:03:10 +02:00
Chris Hennes
3679a2adca Sketcher: Extract "processFace" function
Tool-aided refactor, no functional changes.
2025-07-25 10:08:29 -05:00
Chris Hennes
403056fa20 Sketcher: Resolve "Declaration hides variable"
Reduce some code duplication via helper method.
2025-07-25 09:48:34 -05:00
Chris Hennes
ab91372e28 Sketcher: Resolve "Type confusion" CodeQL critical warning 2025-07-25 09:21:43 -05:00
Kacper Donat
b7c978314e Merge pull request #22577 from AjinkyaDahale/sk-fix-22352
Sketcher: Avoid crash when using trim as described in #22352
2025-07-25 00:16:28 +02:00
Benjamin Nauck
ac07a56b75 Sketcher: Add support for more than 3 points
While this adds a new way, it keeps the old to make it easier to merge.
This will allow other work to be merge before without rebase issues
2025-07-21 18:02:23 +02:00
Benjamin Nauck
6eff3ed949 Sketcher: Initialize constraint members in class declaration 2025-07-21 18:02:23 +02:00
Ajinkya Dahale
114d3dcd87 Sketcher: Improve constraint transfer in SketchObject::trim()
Provide new geos to `deriveConstraintsForPieces` manually, since they are
not (and likely cannot be at time of calling) added to the sketch. This will
make sure that the method has sufficient information to properly transfer/create
new constraints.
2025-07-19 03:25:38 +05:30
Ajinkya Dahale
018ac7b9dd Sketcher: Skip checks in deriveConstraintsForPieces when risky
Possibly fixes #22352.

It is possible to call the method when new geos are not yet created or added to
the sketch. In such cases, the values obtained can be "dirty", and is likely a
seg-fault.
2025-07-19 03:25:38 +05:30
theo-vt
b0dcce6c66 Sketcher: Only autoscale if the datum being edited is the scale defining datum (#22419) 2025-07-18 09:58:30 -05:00
Florian Foinant-Willig
c968effe26 Sketcher: manage legacy negative circle-line distance (#22203)
* manage legacy negative circle-line distance

* Add test for legacy negative circle-line distance
2025-07-17 23:00:38 -05:00
Florian Foinant-Willig
0ecdb8b00e Sketcher: clean planegcs/Geo (#22378)
* Sketcher: clean planegcs/Geo
2025-07-14 10:56:25 -05:00
theo-vt
c8bddd2f2b Sketcher: assign the old geometries' GeometryId[s] to new geometries after scaling (#22263)
* Reassign facade ids after scale operation if deleting geometries

* Fix failing CI
2025-07-14 17:39:03 +02:00
Fermín Olaiz
1881686e72 Fix crash on out-of-bound vector access (#22397) 2025-07-09 19:07:11 +02:00
Max Wilfinger
cf082f7642 Sketcher: Update UI strings for consistency (#22167)
* Sketcher: Update UI strings for consistency

* Update src/Mod/Sketcher/App/Sketch.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

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

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Update src/Mod/Sketcher/App/SketchObject.cpp

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

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

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

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

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

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

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: Ryan K <114723629+ryankembrey@users.noreply.github.com>
2025-06-30 22:51:46 +00:00
Florian Foinant-Willig
f6f75a6a0d Sketcher: Fix circle-line negative distance 2025-06-23 10:56:45 -05:00
Florian Foinant-Willig
8c2eb14efe Sketcher: refactor planecgs/Constraints (#21988)
* Sketcher: refactor planecgs/Constraints

Remove code duplication

* Clarify param push with `Copy()`
2025-06-23 10:39:34 -05:00
Chris Hennes
484904e9e1 Sketcher: Remove redundant checks
Also cleanup missing curly braces.
2025-06-20 22:48:31 +02:00
Chris Hennes
ac51f11660 Sketcher: Remove dead code 2025-06-20 22:41:59 +02:00
Benjamin Nauck
01d9e6efa3 Sketcher: Refactor GeoDef and ConstrDef structs
- Fix comment for mid-point
- Use in-class member initializers instead of constructor
- Remove redundant default constructor (got redundant after initializers)
- Made comments doxygen compatible
2025-06-16 11:18:25 -05:00
paddle
2161725848 Part: FaceMakerRing from RealThunder's branch.
Co-authored-by: Zheng Lei <realthunder.dev@gmail.com>
Co-authored-by: Pierre-Louis Boyer <pierrelouis.boyer@gmail.com>
2025-06-16 10:33:35 -05:00
theo-vt
353c4eca55 Sketcher: Sketch autoscale (#21084)
* Working scale prototype

* Call viewAll to fit geometries in the viewport post-scaling

* Exclude angle dimensions

* Scale the viewport rather than calling viewAll

* Scale dimension annotation along geometries

* Early return when counting more than one dimensional constraint

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Disable sketch autoscale if there are external geometries in the sketch

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add a setting to disable the feature _ and eventually parametrize

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check for objects in the viewport in the sketch's ancestry to decide wheter or not to autoscale

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* More consistent camera scaling

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check for visual indicator in the whole document

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Find visible items in nested assemblies

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Check visual elements in assemblies nested in assemblies

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Set the dimension even if the scaling fails

* Allow constraints that interact with the origin axis/root

* Remove unused variable

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Misc fixes from review

* [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-06-09 18:31:44 +02:00
theo-vt
13e7952ccc PartDesign: Fix hole centered on point edge case (#21257)
* Light refactor of getTopoShape function

* Fix hole edge case

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Refactor simplifyCompound()

* Use Base::Flags<GetShapeOption>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Shorten enum name and move it from class scope to namespace scope

* [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>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-05-29 22:37:54 +02:00
mosfet80
41c750be47 Sketcher: Remove unused variables (#21504)
removed unused variables
2025-05-25 00:19:46 +02:00
jffmichi
46a11b6538 Sketcher: remove surplus push_back to shapes (fixes #21499) 2025-05-22 06:24:47 +02:00
Ajinkya Dahale
1cfb85a71f Sketcher: Incorporate comments from #20589
See https://github.com/FreeCAD/FreeCAD/pull/20589#pullrequestreview-2830404892.
2025-05-19 20:24:17 +02:00
Ajinkya Dahale
a280cacb93 Sketcher: clean up import 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
e33377b595 Sketcher: Use const parameter where relevant 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
b7d8ed25be Sketcher: Remove some unused lambda captures 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
2d2009ccc6 Sketcher: Use range-based for in Sketch.cpp 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
eeb061f302 [planegcs] Use std::ranges and range for in GCS.cpp 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
c3c7e8d33f [Sketcher] Refactor SketchObject::delAllExternal()
Trivial changes.
2025-05-19 20:24:17 +02:00
Ajinkya Dahale
07bce810ae [Sketcher][WIP] Refactor SketchObject::buildShape() 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
1cc0ca0a3b [Sketcher] Use std::ranges in SketchObject where possible 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
215fbc5187 [Sketcher] Refactor SketchObject::split() 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
ace0c57dd6 [Sketcher][WIP] Refactor SketchObject::addExternal() 2025-05-19 20:24:17 +02:00
Ajinkya Dahale
8a1c4526bd [Sketcher] Refactor SketchObject::toggleExternalGeometryFlag()
Doesn't seem to be used anywhere. Remove?
2025-05-19 20:24:17 +02:00
Ajinkya Dahale
3425eebfdc [Sketcher][WIP] Refactor SketchObject::generateId()
Should be just the same old loop and conditional rearrangement. However, not
confident that this behaves exactly the same as previously.
2025-05-19 20:24:17 +02:00
Ajinkya Dahale
82610ca8fa [Sketcher] Use replaceGeometries() in split 2025-05-19 20:24:17 +02:00
Chris Hennes
f5806841b6 Merge pull request #19907 from benj5378/getAttribute
Base: make getAttribute template
2025-05-12 10:39:55 -05:00
Benjamin Bræstrup Sayoc
6786af6ef9 Everywhere: clean up getAttribute conversions 2025-05-09 15:54:57 +02:00
Benjamin Bræstrup Sayoc
492b8312b3 Base: make getAttribute template 2025-05-09 15:54:57 +02:00
Rayno Jiang
2032a9d844 Sketcher: Scaling of a sketch containing BSplines doesn't work (#20943)
* [FreeCAD-20111] Sketcher: Scaling of a sketch containing BSplines doesn't work
When we executing Scale cmd we don't will lose knots information from shape geometry and it cause the scaled spline build with issue knots and it lead solver gets compute issue.
1. Add string format function PythonConverter::makeArryString(const std::stringstream& ss) for processing the control pnts string, mults string and knots string.
2. Add mults and knots information for python obj to make BSplineCurvePy::buildFromPolesMultsKnots(Args...) initialized Geom_BSplineCurve correctly.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* 1. fix typo
2. Add wights info to keep spline shape after convert from python object

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* 1. remove static function makeArrayString() from PythonConverter
1. Add template function makeSplineInfoArrayString() to generate string for cleaner code.
2. change python string format as review suggestion

* use fmt format

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Fixes #20111

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-05-09 00:02:33 +02:00
PaddleStroke
4c8fadd68d Core: restoreContent not restoring expressions (#21152) 2025-05-06 12:02:35 -05:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Ladislav Michl
c293d74566 Base: rename Exception's PascalCase methods to camelCase 2025-05-05 23:50:01 +02:00