Tutoriel Squelette cinématique

From FreeCAD Documentation
Revision as of 12:20, 15 July 2022 by David69 (talk | contribs)
Other languages:
Tutoriel
Thème
Assembly3, un squelette cinématique
Niveau
Une connaissance de base d'Assembly3 et des outils Sketcher est utile.
Temps d'exécution estimé
40 minutes
Auteurs
FBXL5
Version de FreeCAD
0.20 et ultérieure
Fichiers exemples
None
Voir aussi
None

Introduction

Ce tutoriel explique comment mettre en place un mécanisme simple en 2D et attacher des objets en 3D, principalement à l'aide de les outils de l' atelier Assembly3 externe.

Ce tutoriel n'utilise pas le principe du schéma squelette (voir Assembly3 Create-Skeleton-Sketch sur GitHub).

Nous utiliserons plutôt des PartDesign Corps ne contenant qu'une seule esquisse, pour construire un mécanisme en 2D, un squelette multi esquisse.

Les dimensions, ainsi que les couleurs, sont tirées du tutoriel SolveSpace auquel il est fait référence sur la page GitHub de Assembly3 (voir ci-dessus).

Squelette à plusieurs esquisses

Ce squelette dit "multi esquisses" se compose de plusieurs Corps individuels et un conteneur Assemblage. Pour pouvoir attacher d'autres objets, chaque corps est placé dans un conteneur d'assemblage distinct.

Objets du corps 2D

Les corps, et leurs esquisses, qui sont utilisés dans ce montage :

  • Une plaque de base (vert)
  • Une manivelle (bleue)
  • Deux plaques mobiles (rouge et gris)
  • Quatre bielles (blanche, jaune, violette et marron)

Les huit esquisses sont colorées individuellement et positionnées manuellement en déplaçant leurs corps parents

La forme peut s'écarter de celle de la pièce réelle, mais la position du joint définissant la géométrie doit être précise.

Conteneurs d'assemblage

Assemblage parent

Pour fixer ou contrôler la position de tous les corps, il faut un objet Assembly. Il ajoute une branche Assembly à la Vue en arborescence.

Sous-assemblages

Répétez l'action ci-dessus pour créer un objet Assembly pour chaque corps et faites glisser le corps dans son conteneur Parts. Fixez ensuite le corps à son assemblage :

  1. Activez l'objet Assembly (double-cliquez).
  2. Sélectionnez un cercle/arc appartenant à l'objet Body.
  3. Appuyez sur le bouton Create "Locked" constraint pour fixer le corps dans son sous-assemblage.

L'assemblage de la manivelle, par exemple, doit ressembler à ceci :

La branche du sous-assemblage de la manivelle dans l'arborescence et la manivelle avec son élément verrouillé dans la vue 3D

Arborescence Assembly

Dans la vue en arborescence, faites glisser toutes les branches du sous-assemblage dans le conteneur Parts de l'objet Assembly parent.

Branche Assembly dans la vue en arborescence

Ils sont maintenant prêts à être arrangés.

Plaque de base fixe

Tout d'abord, nous avons besoin d'une partie fixe. Pour fixer complètement la base, nous sélectionnons habituellement une face, mais dans ce cas, un cercle fera aussi bien l'affaire.

  1. Sélectionnez un cercle de la base.
  2. Appuyez sur le bouton Create "Locked" constraint pour fixer la base.

Cercle sélectionné → Base fixée avec l'objet Element créé et le système de coordonnées de l'élément (ECS) affiché (vert)

Liaisons

Pour les articulations de type charnière, nous sélectionnons un cercle de chaque esquisse et utilisons la contrainte Plane Coincidence. Non seulement elle rend les plans XY des deux éléments coplanaires, mais elle rend également leurs axes Z colinéaires.

  1. Sélectionnez un cercle de chaque objet à connecter.
  2. Appuyez sur le bouton Create "Plane Coincidence" constraint.

Base - Manivelle

Cercles sur la base et la manivelle sélectionnés → Manivelle relocalisée avec les objets Élément et ECS créés affichés (vert)

Base - Plateau supérieur

Cercles sur la plaque de base et la plaque supérieure sélectionnés → Plaque supérieure relocalisée

Les liaisons déjà créées peuvent être identifiées par leurs représentations de contraintes (rouge).

Base - Plateau supérieur

Cercles sur la manivelle et la tige 1 sélectionnés → Tige 1 déplacée et manivelle inclinée

Plaque supérieure - tige 1

La dernière liaison de cette chaîne cinématique relie deux éléments dont les directions Z sont déjà définies et une contrainte Point on line est tout ce dont nous avons besoin.

  1. Sélectionnez un cercle de chaque objet à connecter.
  2. Appuyez sur le bouton Create "PointOnLine" constraint.

Cercles sur la plaque supérieure et la tige 1 sélectionnés → Tige 1 déplacée, manivelle et plaque supérieure inclinées

Si les 3 liaisons sont co-linéaires (celles qui appartiennent à la manivelle et à la tige 1), le solveur peut échouer à réorganiser les objets. Dans ce cas, nous devons aider le solveur et incliner un objet (par exemple la manivelle) manuellement en utilisant l'outil Axial move.

Plaque supérieure - tige 2

Une autre (sous-)chaîne cinématique commence avec des contraintes Plane Coincidence.

Cercles sur la plaque supérieure (ou la base) et tige 2 sélectionnés → Tige 2 relocalisée

Tige 2 - Plaque inférieure

Cercles sur la tige 2 et plaque inférieure sélectionné → Plaque inférieure déplacée et tige 2 inclinée

Plaque supérieure - tige 3

Cercles sur la plaque supérieure et tige 3 sélectionnés → Déplacement de la tige 3 et réorganisation de la sous-chaîne cinématique supérieure

Plaque inférieure - tige 3

Et cette (sous-)chaîne cinématique se termine par une contrainte Point on line aussi.

Cercles sur la plaque inférieure et tige 3 sélectionnés → Relocalisation de la tige 3 et réarrangement des sous-chaînes ukinématiques

Pour relier les deux sous-chaînes cinématiques, nous utilisons la tige 4 avec une contrainte Plane Coincidence à une extrémité et une contrainte Point on line à l'autre extrémité.

Manivelle - tige 4

Cercles sur la manivelle et la tige 4 sélectionnés → Tige 4 relocalisée

Plaque inférieure - tige 4

Cercles sur la plaque inférieure et tige 4 sélectionnés → Tige 4 déplacée et disposition finale de l'assemblage cinématique

Actionneur

Since Assembly3 doesn't provide any means to control kinematic assemblies, we need external assistance such as this kinematic controller. To use this controller we need to mark one constraint's label with the suffix "Driver" to make it a driving constraint. It may be separated by a "." or "-" for clarity, as the controller will only check if the label ends with "Driver".

We therefore change the label of the Base-Crank joint to Base-Crank.Driver.

Finished skeleton

The finished kinematic assembly with deactivated representation of Elements and Constraints should look like this:

Finished assembly in the Tree view and the 3D view

GIF animation made from an image sequence from this kinematic controller

Attaching 3D geometry

My expectations about attaching a new object to a base object belonging to a kinematic assembly were something like:

  • Put the new object into the base objects Parts container.
  • Position the new object in relation to the base object.
  • Fix the relative offset and orientation using the Attachment constraint.

But that would have been too easy.


The Assembly3 ConstraintAttachment tool, like any Assembly3 constraint tool, relies on the use of Element objects and their element coordinate systems (ECSs) for positioning tasks.

And so attaching objects is just another way of adding objects to a (sub-)assembly.


Let's attach Rod 4-3D to Rod 4 for example:

The objects have a different orientation and the 3D object should have an offset from the 2D object.

  1. Put the new object into the base objects Parts container.
  2. Select two corresponding circles or arcs.
  3. Press the Create "Attachment" constraint.

Rod 4 (locked) and Rod 4-3D → Selected arcs → Relocated Rod 4-3D (both ECSs are in the same place with identical orientation)

It is now plain to see that the Assembly3 ConstraintAttachment tool ignores the offset and orientation between both objects.

However the position is already defined as we wanted and so we only need to adapt the angle manually and define the desired offset:

  • Set the DonnéesOffset, Angle of the first Element in the Attachment container to match the orientation.
  • Set the DonnéesOffset, Position, z of the same Element to apply an offset.

In case we set the properties of the second Element, the movement of angle and offset would go in the opposite direction.

As attached → Angle adapted → Offset defined

If there is a 3D object attached to each 2D object, it could look like this:

Notes

The section about attaching 3D geometry just scratches the surface of extending a sub-assembly, and other constraints or combinations of constraints may be more suitable than the attachment constraint.

It is important to move such a kinematic assembly in tiny steps or the solver will give up and fail. It is almost impossible to use Move part or Axial move for this task.

The Assembly3_ConstraintCoincidence constraint is used to drive the kinematic assembly, its property DonnéesAngle (enabled by the property DonnéesLock Angle) accepts positive or negative floating point numbers greater than 360 and so could do several full turns.