Commit Graph

815 Commits

Author SHA1 Message Date
Abdullah Tahiri
c1decd3bb4 Sketcher: Enable relative movement of BSpline edge 2017-01-15 22:21:18 +01:00
Abdullah Tahiri
4da262dd33 Sketcher: BSpline solver improvement
===================================

In the unusual event that endpoint knot multiplicity is edited, avoid trying to force the bspline end-point
to match the corresponding control point (aka pole), as this leads to unsolvable sketches.
2017-01-15 01:49:45 +01:00
Abdullah Tahiri
6b5622a661 Sketcher: BSpline - Equality not supported user indication 2017-01-15 01:40:04 +01:00
Abdullah Tahiri
2eec558ce7 Sketcher: BSpline - UI Perpendicularity 2017-01-15 01:27:46 +01:00
Abdullah Tahiri
340d33f3a5 Sketcher: BSpline - Informing the user of non-supported tangencies 2017-01-15 00:57:05 +01:00
Abdullah Tahiri
e53dc90c9a Sketcher: BSpline simplified endpoint tangency/perpendicularity solver implementation
=====================================================================================

Support for tangency/perpendicularity using angle via point for BSpline with appropriate
endpoint multiplicity so that the endpoints goes thru the first and last poles (control points).

Warning: Not applicable to periodic BSplines.
Warning: Not applicable to any non-periodic BSpline with inappropriate endpoint conditions.
2017-01-15 00:42:25 +01:00
Abdullah Tahiri
9bf1e8f4f4 Sketcher: BSpline box selection 2017-01-14 19:33:40 +01:00
Abdullah Tahiri
512fd62c41 Sketcher: Enable BSpline edge and enpoints movement 2017-01-14 01:23:04 +01:00
Abdullah Tahiri
1b59e74568 Sketcher: Solver Simplification for basic case
==============================================

This commit is intended to allow to early merging to master of BSpline support. Parts of it will be reverted when a more advanced solver implementation is available.

The intention is to have an advances solver implementation in the future.

This commit cripples part of the potential functionality, but allows a very simplistic solver structure (no de Boor, no recursion).

In particular:
1. Knots are not solver parameters and the solver acts as if such a parameter did not exist.
2. For non-periodic case, the start point and the endpoint coincide with the first pole and the last pole respectively. This is only valid under certain first and last
knot multiplicity. If the user manually changes this multiplicities, the sketch will remain unsolved. For the periodic case, end and start points are not even solver
parameters as an end and start point is an ilusion and we really do not care where that happens. It is not reasonable to ask the user to constrain where this point should
be.
2017-01-13 23:42:57 +01:00
Abdullah Tahiri
0ef082bcd4 Sketcher: Construction of periodic BSplines 2017-01-13 22:25:10 +01:00
Abdullah Tahiri
348d4cf320 Sketcher: Periodic bspline icons 2017-01-13 22:24:55 +01:00
Abdullah Tahiri
671e588739 Sketcher: BSpline autoconstraints on creation 2017-01-12 23:45:03 +01:00
Abdullah Tahiri
b255ada03a Sketcher: Sketcher Elements support for BSpline 2017-01-12 22:55:31 +01:00
Abdullah Tahiri
c9de3687af Sketcher: BSpline restore internal geometry 2017-01-11 23:51:06 +01:00
Abdullah Tahiri
2a4353a940 Sketcher: BSpline delete internal geo on deletion 2017-01-11 23:44:45 +01:00
Abdullah Tahiri
d66242bd08 Sketcher: Contraint class extension
===================================

An additional index for internal geometry elements is introduced, to be stored only Internal Aligment constraint and backwards compatible.
2017-01-11 23:00:43 +01:00
Abdullah Tahiri
1155022a82 Sketcher: BSpline Weights internal geometry support 2017-01-11 01:17:07 +01:00
Abdullah Tahiri
6bd801d363 Sketcher: expose Bspline pole internal geometry 2017-01-11 01:16:33 +01:00
Abdullah Tahiri
d949f52878 Sketcher: BSpline solver Internal Geometry for poles 2017-01-10 23:34:49 +01:00
Abdullah Tahiri
07eebb1c52 Sketcher: Constraint Third Redefinition for internal geometry
=============================================================

Internal alignment of BSplines requires an extra index for unbounded same-type internal geometry (poles, probably also in the future knots).

Value shall not be used, as it interferes with the update mechanism for constraint values.

An alternative solution would be to add another int to all the constraints just for this case.

As internal geometry does not use Third, it seems reasonable to reuse it for this indexing purpose.
2017-01-10 23:26:28 +01:00
Abdullah Tahiri
609c80b71a Part: Fixes triggered by Werner's comments on my branch 2017-01-10 20:05:18 +01:00
Abdullah Tahiri
c20b17f721 Sketxher: Basic creation method
===============================

For non-periodic case.

No autoconstraints or internal geometry at this point.
2017-01-07 20:21:19 +01:00
Abdullah Tahiri
e7daf5a90e Sketcher: BSpline icons courtesy of Jim 2017-01-07 14:35:43 +01:00
Abdullah Tahiri
cb687b8e74 Sketcher: ViewProvider BSpline Representation 2017-01-06 00:08:30 +01:00
Abdullah Tahiri
6fc4ade7c6 Sketcher: Validation of BSpline 2017-01-05 22:10:31 +01:00
Abdullah Tahiri
36a5d5f9b6 Sketcher: Enable BSpline creation in SketchObjectPy 2017-01-05 21:52:35 +01:00
Abdullah Tahiri
d60613364b Sketcher: BSpline basic SketchObject support 2017-01-05 21:45:47 +01:00
Abdullah Tahiri
6c456e9182 Sketcher: BSpline solver sketch basic implementation
====================================================

Creation of solver geometry definitions from Part::BSpline geometries and update of solved geometry back.
2017-01-05 12:01:11 +01:00
Abdullah Tahiri
80adf30da3 Sketcher: BSpline FreeGCS geometry definition
=============================================

multiplicities, degree and periodic are left as non-parameters of the solver, while still allowing certain manipulations to be effected from the solver
in certain situations (for example modifying the multiplicity of start/end nodes when applying G1,G2,G3 constraints between BSplines).
2017-01-05 11:58:35 +01:00
wmayer
cbf717f317 fix whitespaces 2016-12-28 14:22:42 +01:00
wwmayer
309d46137e Merge pull request #401 from abdullahtahiriyo/parabola_2017
Parabola 2017
2016-12-28 13:48:13 +01:00
Abdullah Tahiri
c6a8e3d7a9 Sketcher: Arc Of Parabola - Symmetry tool 2016-12-28 01:25:33 +01:00
Abdullah Tahiri
309d9cfc4e Sketcher: Arc Of Hyperbola - Symmetry tool 2016-12-27 02:13:23 +01:00
Abdullah Tahiri
9d65cc5672 Sketcher: Copy/Clone and Array support for Arcs of Parabola and Hyperbola 2016-12-26 23:23:34 +01:00
Abdullah Tahiri
ebfbe29d2f Sketcher: Restore internal geometry tool refactoring and extended support
=========================================================================

- Long felt need of refactoring the code so as not to repeat code already existing in SketchObject.
- Refactored code supports preexisting Ellipse and Arc of Ellipse and adds support for Arcs of Hyperbola and Parabola.
2016-12-26 22:54:47 +01:00
Abdullah Tahiri
1a535e5f4e Sketcher: Arc Of Parabola - Delete unused internal geometry on deletion 2016-12-26 22:06:40 +01:00
Abdullah Tahiri
ecc8ba57ac Sketcher: Arc Of Hyperbola - Delete unused internal geometry on deletion 2016-12-26 19:42:57 +01:00
Abdullah Tahiri
359d9dbc1d Sketcher: fix compilation warnings 2016-12-26 19:19:10 +01:00
Yorik van Havre
86b3463ee1 updated ts files 2016-12-26 12:36:24 -02:00
Abdullah Tahiri
00210c684a Sketcher: Parabola fix y axis in parabola rules constraint 2016-12-24 19:23:53 +01:00
Abdullah Tahiri
9e7d86f1b8 Sketcher: Parabola perpendicularity constraint 2016-12-24 15:24:36 +01:00
Abdullah Tahiri
d8b38032cf Sketcher: Parabola tangency support
===================================

Support for tangency with any preexisting supported geometry using angle via point.
2016-12-24 15:02:52 +01:00
Abdullah Tahiri
01ba29ed33 Sketcher: Parabola Element Widget support 2016-12-24 04:08:53 +01:00
Abdullah Tahiri
452394a154 Sketcher: Parabola icons
========================

Slightly modified icons based on Jim's original proposal:

http://forum.freecadweb.org/viewtopic.php?f=10&t=8038&hilit=hyperbola#p66129

N.B. Yes Jim, it took me slightly two years to use your 2014 icons...beter late than sorry :)
2016-12-24 04:08:42 +01:00
Abdullah Tahiri
b6919f8627 Sketcher: Parabola creation method autoconstraints 2016-12-24 03:10:44 +01:00
Abdullah Tahiri
f03a8adb73 Sketcher: Equality symbol representation 2016-12-24 02:39:51 +01:00
Abdullah Tahiri
5c9cc6221b Sketcher: Parabola solver equality constraint 2016-12-24 02:39:02 +01:00
Abdullah Tahiri
0d93c45d70 Sketcher: Point on Object solver constraint 2016-12-24 01:14:15 +01:00
Abdullah Tahiri
5f36072434 Sketcher: Parabola Skech geometry update fix 2016-12-22 16:10:53 +01:00
Abdullah Tahiri
9858368b65 Sketcher: Parabola Expose Internal Geometry
==========================================

Also automatically on creation
2016-12-22 16:10:52 +01:00