Dans ce tutoriel, nous allons regarder de plus près les contraintes. Dans SolveSpace, nous allons presque toujours utiliser des contraintes pour spécifier la géométrie de notre dessin. Il est également possible juste de faire glisser les points avec la souris, ou de les placer sur une grille d'alignements réguliers, mais un choix judicieux des contraintes rendra l'intention de conception du dessin évident, et nous épargnera de recalculer la géométrie de notre pièce à chaque fois, lors de changements de dimension .
Une contrainte est un fait géométrique sur le croquis. Par exemple, une contrainte de longueur indique que le programme de calcul d'un segment de ligne donné doit avoir une longueur donnée. Le solveur va essayer de déplacer les points et les autres entités de l'esquisse de manière à satisfaire toutes les contraintes. Mais selon la façon dont les contraintes sont spécifiées, il peut être impossible pour le solveur de le faire, ou le résultat peut ne pas être la solution envisagée.
Dans ce tutoriel, nous allons contraindre un simple croquis, et examiner quelques-unes des façons dont nos contraintes peuvent échouer. Nous commençons par un triangle, fabriqué à partir de trois segments de ligne. L'esquisse contient déjà trois contraintes: l'extrémité de chaque segment de ligne est reliée à la suivante en utilisant une contrainte de point coïncidents, qui a été inséré automatiquement comme nous avons dessiné la ligne (en choisissant Sketch → segment de droite, et cliquant les sommets A, B, C , puis une nouvelle fois A). Les contraintes points coïncidents sont dessinées comme des points minuscules magenta dans les centres des points carrés verts.
Une contrainte est un fait géométrique sur le croquis. Par exemple, une contrainte de longueur indique que le programme de calcul d'un segment de ligne donné doit avoir une longueur donnée. Le solveur va essayer de déplacer les points et les autres entités de l'esquisse de manière à satisfaire toutes les contraintes. Mais selon la façon dont les contraintes sont spécifiées, il peut être impossible pour le solveur de le faire, ou le résultat peut ne pas être la solution envisagée.
Dans ce tutoriel, nous allons contraindre un simple croquis, et examiner quelques-unes des façons dont nos contraintes peuvent échouer. Nous commençons par un triangle, fabriqué à partir de trois segments de ligne. L'esquisse contient déjà trois contraintes: l'extrémité de chaque segment de ligne est reliée à la suivante en utilisant une contrainte de point coïncidents, qui a été inséré automatiquement comme nous avons dessiné la ligne (en choisissant Sketch → segment de droite, et cliquant les sommets A, B, C , puis une nouvelle fois A). Les contraintes points coïncidents sont dessinées comme des points minuscules magenta dans les centres des points carrés verts.
Au départ, nous pouvons faire glisser un des trois sommets du triangle. Chaque point se trouve dans le plan XY, donc chaque point a deux degrés de liberté, X et Y. Cela signifie que l'esquisse d'ensemble a six degrés de liberté.
Nous pouvons limiter les degrés de liberté avec des contraintes. Sélectionnez l'un des segments de ligne par un clic gauche, puis sélectionnez Contraindre → Distance. Cela limite la longueur de ce bord, d'abord à quelle longueur, il a été dessiné avec. Nous pouvons modifier cette longueur en double-cliquant sur la dimension et en tapant une nouvelle valeur, et le solveur va alors modifier le schéma en conséquence.
Cette contrainte élimine un degré de liberté, de sorte que le croquis a maintenant cinq degrés de liberté. Pour confirmer cela, allez dans l'écran d'accueil dans la fenêtre de texte (en appuyant sur Echap, ou en cliquant sur le lien "home" en haut à gauche), et sélectionnez le dessin, probablement g002-sketch en plan, à partir de la liste. Une liste de contraintes apparaît, et le nombre de degrés de liberté est indiqué.
Nous pouvons même contraindre deux angles intérieurs du triangle, par un clic gauche pour sélectionner les deux bords adjacents, puis en choisissant Contrainte → Angle pour chaque sommet. Chaque contrainte d'angle enlève un degré de liberté, de sorte que le croquis a maintenant trois degrés de liberté.
Nous pouvons encore faire glisser un des trois sommets du triangle, et il se translaterait; mais maintenant l'ensemble du triangle se déplace avec lui, et la forme du triangle ne change pas. Cela a un sens. De la trigonométrie de l'école secondaire, nous savons que nous pouvons décrire complètement un triangle par angle-côté-angle. Cela signifie que les seuls degrés de liberté restants sont la translation (deux degrés de liberté, X et Y) et rotation (un degré de liberté, rotation theta autour de l'axe Z) du triangle, qui se déplace comme un corps rigide dans le plan. Donc, le triangle doit avoir trois degré de liberté, et il le fait.
Nous pourrions essayer de limiter la longueur de l'autre côté du triangle, encore une fois en choisissant Contrainte → Distance. Si nous le faisons, alors nous voyons que le fond de l'esquisse devient rouge, pour indiquer une erreur. Dans la fenêtre de texte, nous sommes informés que le solveur a échoué. C'est parce que nous avons tenté de sur-contraindre l'esquisse. Nous avions déjà indiqué suffisamment de contraintes pour décrire exactement notre triangle. Cela signifie que les contraintes supplémentaires ne sont pas utiles, soit qu'elles sont redondantes, auquel cas ils n'ajoutent aucune information, ou qu'elles sont incompatibles, dans ce cas, elles ne peuvent pas toujours être satisfaites.
Par commodité, SolveSpace détermine les contraintes qui pourraient être supprimées pour résoudre le problème. Bien sûr, il est possible de résoudre le problème en supprimant la contrainte que nous venons d'ajouter, car l'esquisse était correcte avant. Mais il est également possible de régler le problème en supprimant l'une des contraintes d'angle, par exemple. Cela fait encore sens, puisque nous savons que nous pouvons décrire complètement un triangle par côté-côté-angle.
Notez que même si des parties de l'esquisse sont contraintes, il y a toujours contrainte de degrés de liberté. Il n'y a toujours pas de contraintes qui spécifient la translation du triangle par rapport à l'origine, par exemple, ou de sa rotation par rapport aux axes de coordonnées. Il y aurait toujours une erreur si nous avions essayé, par exemple, pour contraindre cinq degrés de liberté dans un schéma avec seulement quatre degrés de liberté pour commencer. Mais il est toujours possible d'avoir une erreur avec moins de contraintes que de degrés de liberté, si ces contraintes sur-contraignent certains degré de liberté et laissent les autres libres.
Si l'esquisse ne parvient pas à être résolue, alors il est important de régler le problème immédiatement. Si plus de contraintes sont ajoutées tandis que le croquis est incompatible, alors il deviendra très difficile de déterminer ce qui ne va pas. Il est toujours possible de revenir à la précédente série de contraintes en choisissant Édition → Annuler.
Une erreur liée survient lorsque les contraintes ne sont pas incompatibles, mais ne peuvent pas être satisfaites. Ci-dessous, nous avons essayé de dessiner un triangle dont les côtés mesurent 2, 3, et 7. C'est impossible, puisque 2 + 3 = 5 est inférieur à 7 le triangle ne peut pas être fermé. Un triangle pourrait normalement être spécifiée en termes de ces trois longueurs de ligne (côté - côté- côté), mais les valeurs particulières des dimensions spécifiées ici ne sont pas valides. Cela provoque un autre type d'erreur, techniquement, le résultat est que la solution ne converge pas.
Le solveur signale une fois de plus l'erreur, et présente à nouveau une liste de contraintes problématiques. En enlevant une ou plusieurs des contraintes non satisfaites, ou tout simplement en choisissant Édition → Annuler, nous restaurons l'esquisse pour une configuration légale.
Il était relativement facile de compter degrés de liberté avec notre triangle: chaque point a commencé avec deux degrés de liberté, et chaque longueur ou de contrainte d'angle enlève un degré de liberté. Mais pour certaines entités et les contraintes, la situation est plus complexe. Une contrainte de point de symétrie, par exemple (Contrainte → symétrique) détermine entièrement l'emplacement d'un point sur le plan de l'emplacement de l'autre point. Depuis ce moment-là il y avait à l'origine deux degrés de liberté, ce qui signifie que la contrainte doit se limiter à deux degrés de liberté, pas seulement un. La plupart des contraintes restreignent un seul degré de liberté, mais certaines limitent à deux, et certaines contraintes en 3D se limitent à trois.
Les entités d'esquisse peuvent être tout aussi complexe. Un arc, par exemple, est dessiné avec trois points (centre du cercle, et deux extrémités de l'arc), mais il a cinq degrés de liberté (par exemple, son centre X, le centre Y, l'angle départ, l'angle de fin, et le rayon) , pas six. Prenons l'arc illustré ci-dessous. Nous avons spécifié son diamètre, et nous avons contraint son centre pour être à l'origine (en sélectionnant son centre, en sélectionnant l'origine, et en choisissant Contrainte → Le Point), et nous avons limité la distance entre ses extrémités. Nous souhaitons maintenant placer les deux extrémités de l'arc symétrique sur l'axe horizontal.
Nous pourrions penser d'abord à choisir Contrainte → symétrique. Mais si nous le faisons, alors nous trouverons que l'esquisse ne parvient pas à être résolue. Ce comportement est correct, puisque nous avons-contraint l'esquisse. Nous pouvons nous en convaincre de cette justesse en comptant. L'arc a commencé à cinq degrés de liberté. Nous avons placé son centre à l'origine, qui a enlevé deux, nous laissant avec trois. La contrainte de diamètre supprime une plus, et la contrainte de distance entre ses points d'extrémité supprime l'autre. Cela nous laisse avec un seul degré de liberté, et nous avons déterminé ci-dessus que la contrainte de point symétrie supprime deux. Il faut donc sur-contraindre l'esquisse.
Nous devrions plutôt juste contraindre les deux extrémités de l'arc pour être alignées verticalement (en les sélectionnant, puis en choisissant Contrainte → Vertical). Cela supprime un seul degré de liberté, et puisque les points sont situés sur le cercle, en contraignant les verticales ils finissent aussi à égale distance de l'axe horizontal et sont donc symétriques.
Comme nous l'avons vu, il est très difficile de déterminer à l'avance exactement combien de degrés de liberté aura une partie donnée d'une esquisse , et où les contraintes sont appropriées. Cela signifie que quand nous dessinons et contraignons l'esquisse, nous allons rencontrer périodiquement ces types d'erreurs. Ce n'est pas un très gros problème quand nous le faisons, nous pouvons utiliser la liste des contraintes par défaut (ou, sinon, Édition → Annuler) pour affiner notre croquis, et choisissez les contraintes qui sont correctes et reflètent notre intention de conception.
Dans certains cas, les contraintes qui nous spécifions seront ambigües. Considérons le triangle ci-dessous:
Dans certains cas, les contraintes qui nous spécifions seront ambigües. Considérons le triangle ci-dessous:
Un bord de ce triangle est horizontal, et un autre est vertical, de sorte que nous avons spécifié un de ses angles d'être à 90°, et nous avons précisé sa rotation. Nous avons dimensionné deux longueurs des côtés, ce qui signifie que la forme du triangle est entièrement déterminée, côté-angle-côté. Le 90° du sommet est à l'origine, donc nous avons précisé sa translation. Cela signifie que le triangle doit être entièrement contraint, avec zéro degrés de liberté, et c'est ce que rapporte SolveSpace.
Mais en fait, trois autres solutions existent qui répondraient à ces contraintes. Le bord horizontal pourrait tout aussi bien aller vers la gauche que vers la droite, et le bord vertical descendre que monter.
Lorsque le dessin est ambigu, avec un nombre fini de solutions possibles, SolveSpace choisit parmi eux selon la configuration initiale de l'esquisse. Avant, nous avions placé nos contraintes, nous avions dessiné notre triangle dans le quadrant supérieur droit. SolveSpace donc choisi la solution avec le triangle dans ce quadrant. Si nous avions initialement dessiné le croquis dans un autre quadrant, SolveSpace aurait choisi une solution différente.
Un croquis de n'importe quelle complexité aura presque toujours plusieurs solutions. Ci-dessous, par exemple, nous avons dessiné une figure à cinq côtés, avec la longueur des côtés égaux et avec l'ensemble de ses sommets situés sur un cercle. Nous avions l'intention de dessiner un pentagone régulier.
Un croquis de n'importe quelle complexité aura presque toujours plusieurs solutions. Ci-dessous, par exemple, nous avons dessiné une figure à cinq côtés, avec la longueur des côtés égaux et avec l'ensemble de ses sommets situés sur un cercle. Nous avions l'intention de dessiner un pentagone régulier.
Mais le solveur peut aussi retourner une étoile à cinq branches, ou un triangle avec un des bords retracé deux fois ou cinq segments de longueur nulle en un seul point sur le cercle. Le choix dépendra de la configuration initiale de l'esquisse, il est donc important de dessiner l'esquisse aussi proche que possible de la géométrie désirée avant de la contraindre.
Tout en faisant glisser un point sur un croquis, le solveur peut parfois passer d'une solution à l'autre. Parfois, cela est souhaité, mais d'autres fois il ne l''est pas. Si le croquis "flipe", essayez de le faire glisser lentement. Cela signifie que la demande de changement se produira avec plusieurs petits changements, au lieu d'un grand changement. Le solveur est donc capable de tout ramener à une configuration valide après chaque petit changement, et est plus susceptible d'obtenir la même solution à chaque fois.
De même, si un "flip" indésirable se produit lors d'un changement de dimension, essayez de faire le changement en plusieurs étapes. Par exemple, au lieu de changer 1-2, changer de 1 à 1,5, puis 1,5 à 2. Cela peut être automatisé en choisissant Analyser → Dimension du pas.
Certaines contraintes sont plus sujettes à de multiples solutions que d'autres. Distance de point à point (et de manière équivalente, la longueur des lignes) les contraintes ont tendance à générer des solutions multiples, mais distance de point ou de ligne contraintes de distance Point-face n'en font pas, car elles fonctionnent à l'intérieur de "distance signée". Cela signifie que si un point est contraint de se trouver un pouce au-dessus de la ligne, le solveur n'acceptera pas une solution à ce moment-là un pouce au-dessous de la ligne. Cela réduit le nombre de solutions possibles.
Jusqu'à présent, nous avons travaillé entièrement avec des contraintes dans le plan. Nous sommes arrivés à dessiner dans le plan XY, comme nous le pourrions, par exemple, si nous dessinons une pièce 2D. Mais si nous avions dessiné dans certains plan de travail dans un cadre 3D complexe, alors tout se comporterait de manière identique, à condition que nos contraintes référencent seulement les entités au sein de ce plan de travail.
Mais les contraintes peuvent également s'appliquer en 3D, ou à des entités en dehors de notre plan de travail. Considérons, par exemple, la pièce ci-dessous. Nous avons dessiné un croquis trapézoïdale (avec un trou dedans) et extrudé, et nous sommes sur le point d'esquisser sur la face en surbrillance du solide résultant.
Nous avons tracé un segment de droite dans notre nouvelle esquisse, qui apparaît en blanc. Nous tenons à le contraindre à avoir la même longueur que la ligne qui est indiquée en rouge ci-dessous. Nous pouvons le faire en choisissant notre nouvelle ligne, en sélectionnant la ligne rouge, et en choisissant Contrainte → Egalité. Si nous le faisons, alors les deux lignes semblent maintenant avoir la même longueur.
Mais si nous faisons tourner la vue et nous en 3d, nous voyons que le bord d'origine (ce qui est surligné en rouge ci-dessous) est en fait beaucoup plus long. Il est apparu plus court qu'en raison de notre point de vue, où nous le cherchions que sur le bord. La contrainte est exploitée sur cette longueur projetée, et non la vraie longueur des lignes.
Dans de nombreux cas, c'est ce qui est souhaité. Par exemple, on peut vouloir contraindre les deux points indiqués ci-dessous pour le situer au-dessus de l'autre, afin de placer notre segment de ligne blanche. En regardant le croquis sur notre plan de travail, cela semble être une chose raisonnable à faire.
Mais en fait, le point le plus bas ne réside pas dans notre plan de travail. Nous dessinons sur le sommet du trapèze, et c'est un point à partir du bas. Cela signifie qu'il serait impossible de faire que ces deux points coïncident vraiment. Mais puisque la contrainte de point coïncident s'applique projeté dans notre plan de travail, il fonctionnera comme prévu.
Si nous voulons appliquer une contrainte en 3D, et non projetée dans notre plan de travail, alors nous pouvons choisir Dessin → Partout en 3D. Cela entraînera des contraintes à s'appliquer en véritable 3D. Donc, si nous faisons cela, et puis supprimons notre contrainte de longueur égale et la recréons, nous allons nous retrouver avec un résultat différent.
Notre ligne est maintenant beaucoup plus longue, sa longueur est égale à la longueur effective de cet autre côté. N'oubliez pas de revenir au plan de travail (Sketch → Dans Plan de travail) après avoir créé les contraintes en 3D. Sinon, nous pourrions créer des contraintes ou des entités en 3D par accident. (Par défaut, quand on esquisse dans un plan de travail, une ligne, un cercle ou une autre entité seront créés de telle sorte qu'il se trouvent toujours dans ce plan de travail. Mais quand on esquisse en 3D, l'entité créée sera entièrement libre. Cela signifie qu'il faudra plus de contraintes pour le placer.)
Les dimensions sont généralement utilisées pour piloter la géométrie. Lorsque nous avons dimensionné la longueur d'une ligne, par exemple, nous voulions changer la longueur de cette ligne de ce que nous indiquons avec la dimension. La dimension était une entrée de l'esquisse.
Dans certains cas, nous pourrions faire l'inverse: nous pourrions faire que la géométrie de conduise la dimension, de sorte que la dimension indique juste pour nous ce que certaines longueur ou d'angle se trouvent. La dimension serait dans ce cas un résultat de l'esquisse. Ces dimensions peuvent être créées, comme les dimensions de référence. Pour ce faire, créez d'abord la dimension normalement. Ensuite, sélectionnez la dimension, puis choisissez Contrainte → Basculer la dimension de référence.
Considérons le schéma ci-dessous. Nous avons tracé deux lignes. Nous avons placé une dimension régulière sur la ligne de fond, et une dimension de référence sur celle du haut. Nous sommes sur le point de faire glisser le point qui est indiquée en rouge.
Comme nous dessinons, la dimension 1,000 pouce sur la ligne inférieure maintient la longueur de cette ligne à un pouce. Cette dimension ne sera donc pas changée. Mais la dimension de référence changera quand nous dessinerons, pour indiquer quelle que soit la longueur, nous avons dessiné cette ligne. Les versions de référence sont disponibles sur toutes les dimensions, y compris la longueur, l'angle et le rapport de longueur.
Pour en savoir plus sur une contrainte particulière, consultez son entrée dans le manuel de référence, ou tout simplement la placer dans un croquis simple et expérimenter.
Ce tutoriel a surtout discuté des contraintes pour le dessin, mais les mêmes contraintes sont également utilisés pour l'assemblage.
Voir le tutoriel de montage pour des exemples.
Pour en savoir plus sur une contrainte particulière, consultez son entrée dans le manuel de référence, ou tout simplement la placer dans un croquis simple et expérimenter.
Ce tutoriel a surtout discuté des contraintes pour le dessin, mais les mêmes contraintes sont également utilisés pour l'assemblage.
Voir le tutoriel de montage pour des exemples.