Sketcher Contrainte d'aide

From FreeCAD Documentation
Revision as of 15:19, 17 February 2018 by Meme2704 (talk | contribs) (Created page with "Si cela se produit (une contrainte d'assistance est manquante et les conditions requises ne sont pas satisfaites dans le cas contraire), la contrainte complexe sera rompue. Ce...")

Vue d'ensemble

Exemple de contrainte d'aide (Constraint5 - point sur cercle) pour une contrainte tangente (Constraint6; en mode tangente-par-point). Une seule contrainte d'aide est utilisée dans ce cas, puisque le point de tangence est l'extrémité du diamètre majeur de l'ellipse, qui repose intrinsèquement sur l'ellipse.

La contrainte Helper est une contrainte d'esquisse régulière nécessaire dans le cadre d'une contrainte plus complexe, mais exposée dans l'interface utilisateur pour faciliter la redondance. Par exemple, pour la contrainte Snell's Law, les deux lignes représentant les rayons lumineux doivent être connectées ( contrainte coïncidente), et l'articulation doit se trouver sur l'interface ( Point sur Objet Contrainte).

Les contraintes d'aide sont ajoutées automatiquement lorsqu'elles sont nécessaires. La décision de savoir si elles sont nécessaires est actuellement prise en évaluant l'erreur de contrainte de l'assistant pour l'état actuel de la géométrie (cela peut changer dans les futures versions). Si l'erreur est suffisamment petite, la contrainte est considérée comme inutile et n'est pas ajoutée. Dans certains cas, cette logique peut entraîner des erreurs (la contrainte peut être satisfaite par accident, ce qui peut facilement se produire lorsque l'accrochage à la grille de Sketcher est activé).

Si cela se produit (une contrainte d'assistance est manquante et les conditions requises ne sont pas satisfaites dans le cas contraire), la contrainte complexe sera rompue. Cela fera quelque chose, mais le comportement réel n'est pas défini. Une telle contrainte brisée peut être réparée en ajoutant manuellement la contrainte auxiliaire manquante.

Helper constraints are currently required for:

Scripting

When constraints requiring helpers are added from Python, no helper constraints are automatically added. One can replicate the automatic decision-making of the UI commands in a script by testing the following functions, specifically added for the purpose and used in the UI routines:

Sketch.isPointOnCurve(icurve,x,y)

isPointOnCurve tests if a virtual point, given by sketch coordinates x,y (float values), happens to satisfy a virtual point-on-object constraint - i.e. lies on curve specified by curve index icurve. Returns True if the point is on curve, and False if it doesn't.

Sketch.calculateConstraintError(iconstr)

calculateConstraintError evaluates an error function of a constraint specified by its index iconstr in the sketch. If there is only one error function in the constraint, the return value is the signed return value of the error function. If there is more than one error function associated with the constraint (i.e. the constraint removes more than one degree of freedom), the return value is the RMS of all the error functions (always positive).

Version

Helper constraints were introduced in v0.15.4387