Commit Graph

399 Commits

Author SHA1 Message Date
Kurt Kremitzki
fa472ec075 Fix hexagon creation error 2017-03-03 11:17:37 -06:00
Kunda
99c99006b8 source typo fixes pt4 (only on py3 merged code) 2017-03-02 13:47:21 +01:00
looooo
dd02fc12b4 py3: Sketcher: remaining diff of python3-branch 2017-03-01 17:21:19 +01:00
wmayer
bcde3cd5a3 py3: ported Skechter to python3 2017-03-01 17:20:20 +01:00
wmayer
b4bf37e9c5 fix wrong return type 2017-02-24 15:44:28 +01:00
wmayer
97c9174840 fix various warnings 2017-02-21 22:51:26 +01:00
wmayer
f2dc8c5d31 Some fixes of pr 538
fix -Wreturn-type
homogenous naming style
use official spelling of B-spline
2017-02-21 13:30:43 +01:00
Abdullah Tahiri
5133a874ad Sketcher: Delete non-suported BSpline constraints on NURBS conversion 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
4c9073eeb6 Sketcher: SketchObject convert to NURBS support for External Geometry 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
f1cf2fca44 Sketcher: Expose Internal Geometry for BSplines
===============================================

This commit changes the behaviour of expose internal geometry for bsplines and makes it converge with the implementation for other complex forms.

This functionality now does not introduce constraints (the DoF is not affected by its execution).

BSplines, when created, are still created as polynomic. However, exposing previously deleted or otherwise hidden (increase of degree) poles does not
constraint them.

why?

While a priori the old behaviour is advantageous for the user in many situations, it severely breaks NURBS-ized shapes and gets in the way of bsplines after
increasing the degree of the bspline.
2017-02-21 13:24:10 +01:00
Abdullah Tahiri
55f373eef7 Sketcher: IncreaseBSplineDegree python implementation 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
4abe462a41 Sketcher: ConverttoNURBS python implementation 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
afd761041d Sketcher: BSpline Increase Degree tool 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
d5b068e0ab Sketcher: Shape to NURBS conversion 2017-02-21 13:24:10 +01:00
Abdullah Tahiri
2ecfb6743b Sketcher: Bspline support for external geometry 2017-02-21 13:24:10 +01:00
wmayer
67a0bd4750 improve whitespaces 2017-02-18 09:44:58 +01:00
Mateusz Skowroński
7e42975556 Fix more GCC warnings. 2017-02-18 09:35:31 +01:00
Abdullah Tahiri
b708957080 Sketcher: BSpline deletion/special hideunused internal geometry
===============================================================

The implementation of BSpline differs from previous complex forms.

The BSpline is created constraint to be polynomic (non-rational), with radius of first circle and equality constraints.

Hide unused internal geometry considers as unused the following constraints:
- A pole which has equality constraints with another pole of the same bspline
- Any radius constraint on a pole

Deletion of a BSpline will delete the internal geometry that is unused as per the definition above.

If there is another constraint (other than the Internal alignment constraint) it will leave the internal geometry having such constraint undeleted.
2017-02-02 10:42:38 +01:00
Abdullah Tahiri
9725be8686 Sketcher: Documentation of delete functions 2017-01-29 00:25:34 +01:00
Abdullah Tahiri
0edf17245c Sketcher: Fix deletion of geometry having internal geometry inserted before the geometry 2017-01-28 23:08:27 +01:00
wwmayer
9b49777700 Merge pull request #475 from abdullahtahiriyo/bspline_stage1b_2017_firstdeliverable
Bspline stage1b 2017 firstdeliverable
2017-01-27 18:20:16 +01:00
Abdullah Tahiri
80e7ece429 Sketcher: BSpline - avoid tiny circles on removal of equality 2017-01-26 23:41:02 +01:00
Abdullah Tahiri
f4a882093b Sketcher: InternalAligment Python extension to InternalAlignmentIndex
=====================================================================

Extension of Constraint Python code to consider the case with 4 ints, where the last int is InternalAligmentIndex for InternalAligment constraint
2017-01-26 21:31:02 +01:00
wmayer
43e8c21743 issue #0002816: Trimming tool crashes 2017-01-23 19:06:48 +01:00
wmayer
ad57478ab4 fix a couple of compiler warnings 2017-01-20 22:54:10 +01:00
wmayer
62b4782ed6 Several fixes:
+ use different iterator variable for nexted loops
+ avoid loss of data warnings
+ improve layout
2017-01-20 19:40:49 +01:00
wmayer
0955ccf594 fix whitespaces 2017-01-20 19:22:50 +01:00
Abdullah Tahiri
46075f31ba Sketcher: Symmetry support for BSpline 2017-01-16 21:47:03 +01:00
Abdullah Tahiri
252d84ff4f Sketcher: Array/Copy/Clone support for BSpline 2017-01-16 21:28:40 +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
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
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
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
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
1a535e5f4e Sketcher: Arc Of Parabola - Delete unused internal geometry on deletion 2016-12-26 22:06:40 +01:00