Sketcher ConstrainTangent/fr

Description
La Contrainte Tangente  fait se toucher deux courbes  (tangente). Les lignes sont traitées comme infinie, et les arcs sont traités comme des cercles pleins / ellipses. La contrainte est également capable de connecter deux courbes, les forçant à tangenter au niveau du joint, ce qui rend le joint lisse et continu.

Utilisation
Il y a quatre façons différentes d'appliquer la contrainte :
 * 1) entre deux courbes (non disponible pour toutes les courbes)
 * 2) entre deux extrémités d'une courbe
 * 3) entre une courbe et un point de terminaison d'un autre courbe
 * 4) entre deux courbes au point défini par l'utilisateur

Pour appliquer la contrainte tangente, suivre les étapes suivantes:
 * Sélectionnez deux ou trois entités dans l'esquisse.
 * Appelez la contrainte en cliquant sur son icône sur la barre d'outils, ou en sélectionnant l'option de menu, ou en utilisant le raccourci clavier.

Entre deux courbes (directement tangente)


Deux courbes doivent être rendues tangentes, et un point de tangence doit être implicite. Ce mode est appliqué si deux courbes sont sélectionnées

Sélection Acceptée: Si la tangence direct entre les courbes sélectionnées n'est pas prise en charge (par exemple, entre une ligne et une ellipse), un point d'aide sera ajoutés pour esquisser automatiquement, et la tangence-via-point sera appliquée.
 * La ligne + ligne, cercle, arc
 * cercle, arc + cercle, arc.

Il n'est pas recommandé de reconstruire le point de tangence en créant un point et le contraindre à se positionner sur les deux courbes. Il fonctionnera, mais la convergence sera sérieusement plus lente et il faudra environ deux fois plus d'itérations pour converger par rapport à la normale. Utiliser d'autres méthodes pour cette contrainte si le point de tangence est nécessaire.

Entre deux points terminaux (perpendicularité point-à-point)


Dans ce mode nous faisons coïncider les extrémités, et la jonction est fait tangente (C1-lisse, ou "forte", selon le placement des courbes avant que la contrainte soit appliquée). Ce mode s'applique lorsque deux extrémités de deux courbes ont été sélectionnées.

Sélection acceptée:
 * point extrémité de ligne/arc/arc d'ellipse + extrémité de ligne/arc/arc d'ellipse (soit, deux points de deux courbes)

Entre deux points terminaux (perpendicularité point-à-point)


Dans ce mode, une extrémité d'une courbe est contraint de se trouver sur l'autre courbe, et les courbes sont obligatoirement tangentes en ce point. Ce mode est appliqué lorsqu'une courbe et un point de terminaison d'une autre courbe ont été sélectionnés.

Sélection acceptée:
 * ligne, cercle, arc, ellipse, arc-d'ellipse + extrémité de ligne/arc/arc-d'ellipse (soit., courbe + extrémité de courbe)

Entre deux points terminaux (perpendicularité point-à-point)


In this mode, two curves are made tangent, and the point of tangency is tracked. This mode is applied when two curves and a point were selected.

Accepted selection: "Any point" can be a lone point, or a point of something, e.g. a center of a circle, an endpoint of an arc, or the origin.
 * any line/curve +  any line/curve  +  any point

For the constraint to work correctly, the point must be on both curves. So, as the constraint is invoked, the point will be automatically constrained onto both curves (helper constraints will be added, if necessary), and the curves will be forced tangent at the point. These helper constraints are plain regular constraints. They can be added manually, or deleted.

Compared to direct tangency, this constraint is slower, because there are more degrees of freedom involved, but if the point of tangency is needed, it is the recommended mode because it offers better convergence compared to direct tangency + point on two curves.

The placement of the point before the constraint is applied is a hint for the solver for where the tangency should be. With this constraint, one can constrain two ellipses to touch each other in two places.

Scripting
Tangent Constraint can be created from macros and from the python console by using the following:

where:
 * Sketch is a sketch object
 * icurve1, icurve2 are two integers identifying the curves to be made tangent. The integers are indexes in the sketch (the value, returned by Sketch.addGeometry).
 * pointpos1, pointpos2 should be 1 for start point and 2 for end point.
 * geoidpoint and pointpos in TangentViaPoint are the indexes specifying the point of tangency.