Commit Graph

501 Commits

Author SHA1 Message Date
Mihail Dumitrescu
77eedb84f8 Fix importing arcs and elliptical arcs as external geometry.
Fix importing elliptical arcs issue #8700.
Fix importing arcs into sketches in the case where they project as elliptical arcs.
Fix a discontinuity that happens when an external arc projects down to a segment. The segment end points should not jump around if the projection angle changes from 89.9 to 90 degrees.
When handling external geometry compare points for equality in a consistent way and remove some dead code.
2024-06-17 11:04:52 -05:00
mosfet80
62279d083d [mod] clean (#14378)
* [mod] clean

* [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>
2024-06-10 11:07:14 -05:00
wmayer
1c03bc4eaa Sketch: Refactor SketchAnalysis
Refactor makeMissingEquality()
2024-05-28 14:19:58 +02:00
wmayer
d5c92fee98 Sketch: Refactor SketchAnalysis
Refactor makeMissingVerticalHorizontal
2024-05-28 14:08:44 +02:00
wmayer
5461d0d27f Sketch: Refactor SketchAnalysis
Refactor makeMissingPointOnPoint
2024-05-28 13:40:38 +02:00
wmayer
e67502025d Sketch: Add test case for validating constraints 2024-05-27 19:15:18 +02:00
wmayer
5696ee821c Sketcher: Fixes #14240 2024-05-27 12:09:35 +02:00
bgbsww
ad7ceb8ba6 Toponaming: Fix point crash bug 2024-05-16 09:05:27 -05:00
bgbsww
869cb1f83b Toponaming: bring in missing code fragments in Sketcher 2024-05-13 15:47:44 -05:00
bgbsww
bad3a83827 Fix #13858
Mistaken enabling of known bad code
2024-05-07 10:17:48 -05:00
bgbsww
d7ade12dc3 Ensure we set up a valid sketch even with invalid external references 2024-05-06 17:42:38 +02:00
bgbsww
a88e7baff5 TopoShape/Part: Bug fixes; pass Hasher parms, OCCT 7.8 compatibility, ElementMaps correct item count 2024-04-14 13:56:07 -04:00
bgbsww
c9d8bdf13d Toponaming/Part: Add deprecation comments, clean up code 2024-04-09 21:17:08 -04:00
wmayer
ba27d6d92d Part: Add overloaded methods of GeomBSplineCurve::approximate 2024-04-03 18:06:00 +02:00
PaddleStroke
c26f52c4e4 Sketcher: Symmetry fix #13164 2024-04-01 11:20:40 -05:00
PaddleStroke
5668b6952b Sketcher: Chamfer Fix #13049 2024-04-01 11:04:02 -05:00
bgbsww
4df1088896 Toponaming/Part: Bug fix for #13169 while we sort this out 2024-03-27 21:33:57 -05:00
bgbsww
55acedb83d Clean, enable disabled element map code in sketcher, add tests 2024-03-25 21:51:41 -04:00
Zheng, Lei
f19df465ea Toponaming/Part: Move sketcher override of getElementName over 2024-03-25 21:51:41 -04:00
PaddleStroke
e4213fc10f Sketcher: Symmetry tool rework. 2024-03-25 17:48:01 +01:00
PaddleStroke
b3fe5bba28 Sketcher: Chamfer tool (and fillet refactor) 2024-03-18 13:23:54 -04:00
wmayer
8743f5e82a Sketch: fix compiler warning
Fix warning: add explicit braces to avoid dangling else [-Wdangling-else]
2024-03-04 23:15:42 -06:00
Josh Coalson
a8ae56e06a Part: Rename AttachExtension::Support property to AttachmentSupport, to avoid name conflict with base features. Fixes #7052 2024-03-04 18:22:43 +01:00
Ajinkya Dahale
da7d5391af [Sketcher] Join curves with C1 continuity
If endpoint-to-endpoint tangent constraint exists between the connecting points
of the curves to be joined, also apply C1 continuity (i.e. a knot multiplicity
of degree-1).
2024-02-27 09:57:52 -06:00
Ajinkya Dahale
f8f159c4d3 [Sketcher] Include endpoint-to-endpoint tangency as coincidence
Coincidence is implied as part of this particular variety of tangent constraint.
2024-02-27 09:57:52 -06:00
wmayer
a2315503fa Sketcher: expose the LabelDistance and LabelPosition members of Constraint to Python 2024-02-25 00:10:56 +01:00
Ajinkya Dahale
65b4dd10ae [Sketcher] Expose general tangency with B-splines to Sketcher
The following commits were squashed into this

[Sketcher] Handle some corner cases in AngleViaPoint

[Sketcher] Avoid redundant constraints with B-splines...

When involving tangent, perpendicular and angle constraints.

[Sketcher] Add pre-commit changes

[Sketcher] Do not allow 2-selection tangent with B-spline

Also...

[Sketcher] Report error when using direct tangency with B-splines

[Sketcher] Fix malformed constraint when B-spline is selected second

To clarify, this means the second curve selected. The position of the point in
selection order does not matter in angle-via-point.

[Sketcher] Fix wrong number for B-Spline tangent on redundancy

[Sketcher] Remove existing point-on-object in some redundant cases

Particularly when point constrained on a B-spline is being used for
tangent, perpendicular or angle via point with the same B-spline.

[Sketcher] Fix direction issue with B-spline tangents.

Without these changes the solver might try to "twist" the B-spline to make the
angle between curves be 0 instead of PI (which may be closer to the initial shape).
2024-02-08 20:04:28 +05:30
Florian Foinant-Willig
d2a579bdc6 Sketcher: Extend distance constraint to arcs 2023-12-17 16:01:29 +01:00
Paddle
05c382f6d9 When moving an angle, we did not take into account the case where they are reversed. This fixes that. 2023-11-24 15:07:30 +01:00
Florian Foinant-Willig
a32851073d Sketcher: modernize type checking 2023-10-23 18:09:23 +02:00
Abdullah Tahiri
e9187412d9 Sketcher: Example new type checking template function usage
===========================================================

Just two small refactor examples of how to use the type checking template functions.
2023-10-07 23:12:46 +02:00
howie-j
acbf135b78 [Sketcher] Fix angle constraint expression regression (#10743)
* fix 10742

* moved expression string modifier to helper function

* Tests: Add example tests for SketchObject

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

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

* made expr modifier func static, pass by value and added unit tests

---------

Co-authored-by: Chris Hennes <chennes@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-09-25 10:44:31 -05:00
wmayer
ab4abab53d Sketch: fix a few minor issues:
* fix compiler warning about unused variable
* fix const correctness
* fix access type of setExpression()
* removed duplicated method
2023-09-19 22:01:19 +02:00
Paddle
a8f11f12fb Implement a function in sketchObject that swap an angle constraint to its supplementary. 2023-09-19 07:22:50 +02:00
Paddle
e58b52ea12 Add setter/getter for constraint expression. 2023-09-19 07:22:50 +02:00
luzpaz
760fac5d82 Fix typos 2023-09-14 20:53:04 -05:00
wmayer
d150fa7164 modernize C++: avoid bind
In many cases std::bind() is kept because the code is much simpler
2023-08-08 21:10:16 +02:00
wmayer
68d22d864b modernize C++: move from boost::bind to std::bind 2023-08-08 17:36:13 +02:00
Ajinkya Dahale
b2840e7a5e [Sketcher] Create SketchObject::buildShape()
Needs changes in TopoShape and creation of ExternalGeometryFacade.

Also contains the squashed ticket:

[Sketcher] Hide unimplemented code

These will eventually be implemented in phase 3 of toponaming.

[Sketcher] Implement trivial `checkSubName` to appease Windows

[Sketcher] Modify `GeoEnum` usage
2023-07-21 22:43:45 -05:00
Abdullah Tahiri
987b4bda2a Sketcher: App - Clang-format 2023-05-20 07:55:05 +02:00
luzpaz
129d5882a7 Migrate domain name from freecadweb to freecad (#9352)
* Migrate domain name from freecadweb to freecad
* Migrate src/Mod/Material files
* Migrate Stylesheet related files
* Migrate *.svg files
* Migrate miscellaneous files
* Migrate some build files
* Migrate recently added TD AR_IRAM template files

Closes #6415
2023-04-24 15:19:20 -05:00
Ajinkya Dahale
3e5f3a9a57 [Sketcher] Constrain first pole weight in exposeInternalGeometry
This commit is part of a project funded by the Open Toolchain Foundation under the title "Open Toolchain Foundation - Curve drawing tool in Sketcher Workbench"
2023-03-24 16:30:48 +01:00
Abdullah Tahiri
340ccb8ed6 Sketcher: SketchObject using the new notification system
========================================================

- CriticalMessage old signal is reconverted to new notification system. This enables to remove the obsolete old system.

- An example of how common errors can be provided with translation support is added, so that App notifications appear
translated in the NotificationArea.
2023-03-12 06:06:29 +01:00
luzpaz
2c3e6bd70a Sketcher: convert indentations to spaces 2023-01-23 15:46:49 +01:00
Ajinkya Dahale
40627b3ab2 [Sketcher] Do not filter out point-on-B-spline when trimming
Fixes #7770.

Until Point-on-B-spline is actually merged this will result in a malformed
constraint. It will however still allow a trim of the B-spline to result in a
coincident constraint.
2023-01-21 21:42:57 +01:00
Abdullah Tahiri
b7945b6a15 Sketcher: Do not mark as fully constrained sketches that do not converge
=======================================================================

In uncommon situations, the analysis of QR decomposition leads to full rank, but the result does not converge.

We avoid marking a sketch as fully constrained when no convergence is achieved.
2023-01-09 17:11:14 +01:00
Abdullah Tahiri
8d33584eee Sketcher: Avoid trying to lock tangency for tangency at knot point constraint 2022-12-24 18:22:16 -06:00
Ajinkya Dahale
a609bce527 [Sketcher] Use tangent at B-spline knot constraint
Also squashes:

[Sketcher] Make tangent-at-knot with just knot and line

[Sketcher] Disallow tangent at C0 knot

If passed on to planegcs can cause segmentation fault.

[Sketcher] (Re-)Support tangent at B-spline end-knots

New code had introduced problems for non-periodic spline end-points, and
periodic spline "end-points" were not supported anyway.

(here end-points mean star/end points)
2022-12-24 18:22:16 -06:00
Abdullah Tahiri
a01d336ac3 Sketcher: Split - remove unnecessary return after exception 2022-12-21 16:01:23 +01:00
Ajinkya Dahale
82633fb5df [Sketcher] Handle split curve corner case
It is possible to ask for splitting at an end point of the curve. This leads to
a `CADKernelError` and leaves us with a "hanging" clone. This check prevents that.
2022-12-21 16:01:23 +01:00