Commit Graph

7029 Commits

Author SHA1 Message Date
Abdullah Tahiri
6bf7d4d6c9 Sketcher: BSpline point-on-object - unsupported 2017-01-15 22:29:21 +01:00
Abdullah Tahiri
43e40f12df Sketcher: Enable relative movement of BSpline edge 2017-01-15 22:21:18 +01:00
Abdullah Tahiri
4dfacb9888 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
6f09b31456 Sketcher: BSpline - Equality not supported user indication 2017-01-15 01:40:04 +01:00
Abdullah Tahiri
8f4eaf7587 Sketcher: BSpline - UI Perpendicularity 2017-01-15 01:27:46 +01:00
Abdullah Tahiri
14a34202a9 Sketcher: BSpline - Informing the user of non-supported tangencies 2017-01-15 00:57:05 +01:00
Abdullah Tahiri
bb6e480b3c 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
00173a0a35 Sketcher: BSpline box selection 2017-01-14 19:33:40 +01:00
Abdullah Tahiri
73e797ffa0 Sketcher: Enable BSpline edge and enpoints movement 2017-01-14 01:23:04 +01:00
Abdullah Tahiri
f2c3ef61b0 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
e339f24095 Sketcher: Construction of periodic BSplines 2017-01-13 22:25:10 +01:00
Abdullah Tahiri
35927da2d9 Sketcher: Periodic bspline icons 2017-01-13 22:24:55 +01:00
Abdullah Tahiri
8d7dda96c9 Sketcher: BSpline autoconstraints on creation 2017-01-12 23:45:03 +01:00
Abdullah Tahiri
769e822e32 Sketcher: Sketcher Elements support for BSpline 2017-01-12 22:55:31 +01:00
Abdullah Tahiri
43f2940262 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
965293180e Sketcher: BSpline restore internal geometry 2017-01-11 23:51:06 +01:00
Abdullah Tahiri
9c3bcf2d90 Sketcher: BSpline delete internal geo on deletion 2017-01-11 23:44:45 +01:00
Abdullah Tahiri
4d7a468373 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
4b1fa0af8e Sketcher: BSpline Weights internal geometry support 2017-01-11 01:17:07 +01:00
Abdullah Tahiri
c2dae4a35c Sketcher: expose Bspline pole internal geometry 2017-01-11 01:16:33 +01:00
Abdullah Tahiri
167240e197 Sketcher: BSpline solver Internal Geometry for poles 2017-01-10 23:34:49 +01:00
Abdullah Tahiri
0f8db07e90 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
b0dc19eca9 Part: Fixes triggered by Werner's comments on my branch 2017-01-10 20:05:18 +01:00
Abdullah Tahiri
c8d56c5663 Part: Bezier serialization support extension to periodic
=======================================================

Extension for periodic + suggestions by Werner.
2017-01-10 14:44:43 +01:00
Abdullah Tahiri
5d28434ef5 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
546e5a20c5 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
8b3cab262a Sketcher: BSpline icons courtesy of Jim 2017-01-07 14:35:43 +01:00
Abdullah Tahiri
ca8b39516b Part: Enable BSpline creation from poles 2017-01-07 02:00:12 +01:00
Abdullah Tahiri
6a1d30d350 Sketcher: ViewProvider BSpline Representation 2017-01-06 00:08:30 +01:00
Abdullah Tahiri
832c3a6381 Sketcher: Validation of BSpline 2017-01-05 22:10:31 +01:00
Abdullah Tahiri
ddd8ce238c Sketcher: Enable BSpline creation in SketchObjectPy 2017-01-05 21:52:35 +01:00
Abdullah Tahiri
49cffc495f Sketcher: BSpline basic SketchObject support 2017-01-05 21:45:47 +01:00
Abdullah Tahiri
41889bab50 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
f35432a734 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
e026378e7d 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
43a15a2083 FEM: fix unit tests in the regard of new material module name 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
7c19fa1654 FEM: move modules MechanicalMaterial to a more general FemMaterial 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
532dfe76d5 FEM: GUI, move create node set tool to mesh tools 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
ee06b74738 FEM: solver ccx task panel, typo 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
23e914268e 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
c2ffbef82a FEM: GMSH mesh obj, switch to FEM WB on double click on obj 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
6837b66dbb FEM: GMSH mesh task panel, add an ok and cancel button, remove close button 2017-01-02 18:03:24 -02:00
Bernd Hahnebach
76c6092042 FEM: code formating, flake8 and delete not used imports 2017-01-02 18:03:24 -02:00
Markus Lampert
a029429b49 Setting a minimum # interpolations for displaying an arc. 2017-01-01 22:41:28 -08:00
Alexander Gryson
b17e62d959 Added Metadata 2016-12-31 21:20:45 +01:00
Alexander Gryson
c508f10c60 Update Raytracing Workbench icons 2016-12-31 21:20:45 +01:00
Yorik van Havre
0e040fd6e0 Draft: Do not import non-instanciated blocks - fixes #2822 2016-12-31 15:48:01 -02:00
wwmayer
9060becfe7 Merge pull request #407 from dev-at-stellardeath-org/linuxcnc_post_without_gui
Path: linuxcnc_post without GUI
2016-12-31 12:18:56 +01:00
Lorenz Hüdepohl
6f09fd8aa4 Path: linuxcnc_post without GUI
A simple fix to be able to easily use the linuxcnc_post module without
the GUI present
2016-12-30 22:33:15 +01:00
Yorik van Havre
39ddebc337 Arch: Fixed bug with arch objects that are a clone and have a material 2016-12-30 19:25:42 -02:00