Commit Graph

9511 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
1076b70056 Part: BSpline creation method corrected as per Werner's indication
==================================================================

http://forum.freecadweb.org/viewtopic.php?f=10&t=19700
2017-01-12 22:44:07 +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
e7dacb9178 Part: Bezier serialization support extension to periodic
=======================================================

Extension for periodic + suggestions by Werner.
2017-01-10 14:44:43 +01:00
Abdullah Tahiri
61b685fd53 Part: BSpline serialization
===========================

It stores a rational BSpline even if non-rational.

It should be extended to store in addition whether it is periodic or not, i.e. to support periodic BSplines.
2017-01-08 00:42:30 +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
8ea8699d14 Part: Enable BSpline creation from poles 2017-01-07 02:00:12 +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
Abdullah Tahiri
b277620138 Part: GeomBSpline extension for basic BSPline Sketcher support
==============================================================

1) Basic set/get interface for poles, weights, knots and multiplicities

2) Introduction of GeomBoundedCurve class replicating OCC hierarchy. Why? To provide seamless start/end point interface for any bounded curve, i.e. Bezier, BSpline,

Note: The ArcOfConic start/end point interface relies on GeomTrimmedCurve, and introduces CCW/CW correcting code which relies on Axis. Axis are introduced in GeomConic and are
not part of GeomBounded.

Note 2: In the future, it may be thought to make GeomArcOfConic (the equivalent of GeomTrimmedCurve) deriving from GeomBoundedCurve, as to fully replicate OCC hierarchy. GeomBoundedCurve
defines the functions as virtual to allow seamless integration.
2017-01-05 11:58:33 +01:00
Bernd Hahnebach
6ab6603f2e FEM: fix unit tests in the regard of new material module name 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
846637ebc2 FEM: adapt FEM examples to new material module name 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
739fe3ae39 FEM: move modules MechanicalMaterial to a more general FemMaterial 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
1d2857eb76 FEM: GUI, move create node set tool to mesh tools 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
100e1bfc2d FEM: solver ccx task panel, typo 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
97b08f2bd9 FEM: netgen mesh obj, move a new obj inside an active analysis if there is one 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
6df6bae9d8 FEM: GMSH mesh obj, switch to FEM WB on double click on obj 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
437ce69b11 FEM: GMSH mesh task panel, add an ok and cancel button, remove close button 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
f562b3d945 FEM: code formating, flake8 and delete not used imports 2017-01-02 18:03:24 -02:00
wmayer
a3427c7dbe fix major bug in ExtensionContainer::restoreExtensions 2017-01-02 19:39:13 +01:00
wwmayer
40ad0b743a Merge pull request #410 from mlampert/issue-2825
Path: Setting a minimum # interpolations for displaying an arc - fixes issue 2825
2017-01-02 13:25:48 +01:00
wwmayer
ab4fe61ccb Merge pull request #409 from eivindkv/ObjectLabelObserver
Moved ObjectLabelObserver from Gui::Application to App::Application.
2017-01-02 13:24:33 +01:00
Markus Lampert
d51188bd07 Setting a minimum # interpolations for displaying an arc. 2017-01-01 22:41:28 -08:00
Eivind Kvedalen
ef5fb087a2 Moved ObjectLabelObserver from Gui::Application to App::Application. 2017-01-01 21:41:11 +01:00
Yorik van Havre
164b94c8fa Merge pull request #408 from agryson/raytracing-artwork-alignment
Raytracing artwork alignment
2017-01-01 15:14:03 -02:00
Alexander Gryson
211f771f94 Added Metadata 2016-12-31 21:20:45 +01:00