Sketcher Aide pour contraindre

From FreeCAD Documentation
Revision as of 21:23, 6 November 2018 by Renatorivo (talk | contribs)

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.

Des contraintes d'aide sont actuellement requises pour

Scripting

Lorsque des contraintes nécessitant des aides sont ajoutées à partir de Python, aucune contrainte d'aide n'est automatiquement ajoutée. On peut répliquer la prise de décision automatique des commandes de l'interface utilisateur dans un script en testant les fonctions suivantes, spécifiquement ajoutées dans le but et utilisées dans les routines de l'interface utilisateur:

Sketch.isPointOnCurve(icurve,x,y)

isPointOnCurve teste si un point virtuel, donné par les coordonnées d'esquisse x, y </ tt> (valeurs flottantes), satisfait une contrainte point-sur-objet virtuelle - ie se trouve sur la courbe spécifiée par l'index de courbe icurve.

Renvoie True si le point est sur la courbe et False si ce n'est pas le cas.
Sketch.calculateConstraintError(iconstr)

calculateConstraintError évalue une fonction d'erreur d'une contrainte spécifiée par son index iconstr </ tt> dans l'esquisse.

S'il n'y a qu'une seule fonction d'erreur dans la contrainte, la valeur de retour est la valeur de retour signée de la fonction d'erreur. ndex iconstr </ tt> dans l'esquisse.

S'il n'y a qu'une seule fonction d'erreur dans la contrainte, la valeur de retour est la valeur de retour signée de la fonction d'erreur.

S'il y a plus d'une fonction d'erreur associée à la contrainte (c'est-à-dire que la contrainte supprime plus d'un degré de liberté), la valeur de retour est le RMS de toutes les fonctions d'erreur (toujours positif).

Version

Les contraintes d'aide ont été introduites dans v0.15.4387