Assembly3 Workbench/fr

Introduction
Assembly3 est un Atelier externe utilisé pour effectuer l'assemblage de différents corps contenus dans un seul fichier ou dans plusieurs documents. L'atelier est basé sur plusieurs changements de fonctions de base effectués pour la version de FreeCAD 0.19 (par exemple App Link), de sorte que Assembly3 Workbench ne peut pas être utilisé avec les versions antérieures.

Les principales caractéristiques de l'atelier Assembly3 sont:
 * dynmamic/interactive solver. Cela signifie que vous pouvez déplacer des pièces avec la souris pendant que le solveur contraint le mouvement. Cela permet par exemple de connecter une roue à un axe et de faire tourner la roue de manière interactive avec la souris.
 * links. Cela signifie que vous pouvez utiliser une seule pièce, par ex. une vis plusieurs fois dans un assemblage (à différents endroits) sans dupliquer la géométrie.
 * external links. Il est possible d'avoir un document Freecad contenant uniquement un assemblage et non des pièces. Toutes les pièces peuvent être dans des fichiers uniques. Les fichiers peuvent même être dans une bibliothèque ou n'importe quoi d'autre dans le système de fichiers. La seule exigence est que le fichier doit être chargé lorsque le lien est établi. Une fois le lien établi, le fichier doit être ouvert pour mettre à jour les liens impliquant le fichier. Assembly3 résout ce problème en ouvrant les fichiers en arrière-plan selon les besoins.
 * hierarchical assemblies. Comme dans la vraie vie, un ensemble mécanique peut être constitué de sous-ensembles. Ceux-ci pourraient se composer de sous-assemblages encore et ainsi de suite.
 * assembly freeze. Comme le processeur ne peut gérer qu'un nombre limité de contraintes simultanées en temps réel, figer un assemblage permet d'utiliser des contraintes même pour des assemblages volumineux. En gelant des assemblages finis ou des contraintes qui ne sont pas tenus de rester dynamiques (par exemple des pièces soudées, boulonnées ou collées), ceux-ci sont exclus des calculs de mise à jour et considérés comme une géométrie fixe par le solveur Assembly3.
 * Notez que d'autres approches offrent une solution différente à ce problème, par exemple l'Atelier Assembly4.

En haut

Barres d'outils
À partir de 2020, l'atelier Assembly3 comprend les barres d'outils suivantes.


 * Assembly3_ToolbarMain.png
 * Barre d'outils principale


 * La barre d'outils principale contient des outils pour
 * ajouter un dossier d'assemblage
 * importer des fichiers STEP
 * outils pour déplacer des pièces en 3D
 * contrôle pour l'apparence et le solveur.
 * outils pour trier les éléments de l'arbre


 * Assembly3_ToolbarConstraints_1.jpg
 * Barre d'outils des contraintes principales. Certains outils sont en fait un menu pour plus d'outils.


 * Assembly3_ToolbarConstraints_2.jpg
 * Barre d'outils des Contraintes supplémentaires. Vous pouvez l'activer en sélectionnant l'icône '...' dans la barre d'outils des contraintes principales.


 * Les Barre d'outils Contraintes seront l'interface principale utilisée lors de l'assemblage des pièces. Elles sont masquées par défaut mais sont activées une fois qu'au moins une face, une ligne ou un point d'une pièce est sélectionné. En général, vous sélectionnez les éléments à joindre puis vous sélectionnez le type de contrainte. Les différents cadres colorés marquent différentes caractéristiques des contraintes: si 2D/3D si plus de 2 éléments peuvent être ajoutés. Une description détaillée peut être trouvée dans le wiki Gibhub.


 * Lock La toute première contrainte. Dans chaque assemblage, une pièce doit être verrouillée pour servir de pièce de base. Le verrouillage signifie rien de plus que de contraindre cette partie en 6DOF à sa position et à son orientation courantes. Elle devient le point de départ de la


 * Assembly3_ToolbarNavigation.jpg
 * Navigation Toolbar
 * Ces fonctions sont utiles lorsque vous travaillez avec un assemblage avec une hiérarchie de fichiers externes liés
 * Sélectionnez l'objet pièce correspondant dans le groupe de relations
 * Sélectionnez l'objet lié
 * Sélectionnez l'objet de liens le plus profond


 * Assembly3_ToolbarMeasurement.jpg
 * Measurement Toolbar
 * The Measurement toolbar ajoute des fonctions pour mesurer les distances entre deux points, un point et une ligne ou un point et une face. L'outil 'Measure Angle' mesure l'angle entre deux faces ou lignes. Il n'y a pas de fonction pour mesurer un rayon ou un diamètre.
 * Les outils de mesure survivent aux changements de pièces, par ex. la distance entre les bords d'un cube lorsque le cube est redimensionné. Comme les contraintes les calculs sont effectués en temps réel et les mis à jour se font à chaque changement. En coulisse, la fonction est très similaire aux contraintes. La distance ou l'angle est calculé entre Elements de la même manière que pour Contraintes. L'affichage dans l'arborescence fonctionne de la même manière.

Comme d'habitude, vous pouvez modifier les barres d'outils et ajouter ou supprimer des outils individuellement. Veillez à vérifier dans le menu Assembly3 les fonctions qui ne sont pas présentes dans les barres d'outils.

En haut

Contraintes
Le concepteur utilise des contraintes pour atteindre le résultat souhaité pour la relation de deux parties. Tout l'art est de sélectionner les bonnes contraintes, les mieux adaptées pour faire face à chaque problème. Chaque DOF éliminé ne devrait en théorie être éliminé qu'une seule fois entre deux objets. En pratique, avec de nombreux outils de CAO, les contraintes sélectionnées entraînent des combinaisons de sur-contraintes souvent compensées par des algorithmes complexes, parfois non. Assembly3 utilise des algorithmes pour détecter et compenser les sur-contraintes mais il est clair qu'ils ne sont pas encore très aboutis. Ainsi, en pratique, pour les contraintes Assembly3, évitez les problèmes en sachant combien de degrés de liberté (DOF) ont été utilisés et lesquels doivent encore être verrouillés par les contraintes. Aucune pièce ne doit avoir une connexion par des contraintes de plus de 6DOF.


 * Remarque: Si le solveur rencontre une combinaison qui ne peut pas être résolue, il donnera une erreur. Il est très difficile pour le solveur de découvrir ce qui a causé le problème donc généralement à partir de cette erreur, il ne sera pas clair «d'où» vient le problème. Dans les assemblages plus volumineux, cela peut conduire à des recherches de problèmes complexes. Malheureusement, il n'y a pas de moyen simple d'éviter cela. Cependant, il est utile d'être pleinement conscient du fonctionnement du système (par exemple, voir Elements ci-dessous), d'utiliser des noms clairs pour tous les composants impliqués et d'ajouter des contraintes supplémentaires uniquement lorsque le solveur résout l'assemblage en cours. La fonction «ContexMenu/Deactivate» de chaque contrainte est très utile pour repérer un problème.

Les contraintes Assembly3 définissent les restrictions de position ou d'orientation entre deux Elements. Certaines contraintes fonctionnent même avec plus de deux Elements. Un Element peut être une face, une ligne ou une arête ou un point d'une pièce. En général, les contraintes sont définies en sélectionnant les Elements souhaités puis en sélectionnant la contrainte dans la barre d'outils des Contraintes.

Autre
 * Corrige 6 DOF, laisse 0 DOF:
 * Lock: la contrainte de verrouillage corrige tous les DOF ​​pour une face. Elle doit être utilisée pour une pièce de base dans chaque assemblage. Vous pouvez également activer la fonction "MoveLock" (dans la barre d'outils) afin que la pièce ne puisse pas être déplacée accidentellement. Normalement, peu importe la face/ligne/point que vous utilisez pour fixer une pièce. Notez également que le verrou n'est valide que pour l'assemblage direct, c'est-à-dire que dans le cas d'un sous-assemblage, l'assemblage parent nécessiterait toujours une pièce verrouillée seule.
 * Attachment: rend les systèmes de coordonnées des deux éléments égaux pour tous les axes. C'est la fonction la moins coûteuse en termes de calcul et elle doit être utilisée dans la mesure du possible. Notez que vous pouvez utiliser les propriétés des éléments pour compenser les décalages et les angles si les deux Elements ne sont pas parfaitement alignés.
 * Corrige 5 DOF, laisse 1 DOF:
 * Plane Coincident: corrige Tx, Ty, Tz, Rx, Ry. Seul Rz est libre. Il reste la rotation autour de la normale passant par le «centre du plan».
 * Corrige 4 DOF, laisse 2 DOF:
 * Axial Alignment: corrige Tx, Ty, Rx, Ry. Seuls Tz, Rz sont libres. Reste la rotation autour de l'axe de la forme et la translation le long de ce même axe. Deux contraintes «PointOnLine» (si les deux points sont différents) donnent le même résultat. La contrainte «Colinear» aussi.
 * PointOnLine: Ceci élimine la translation et la rotation le long des normales à la ligne de référence. Seules la translation et la rotation le long de l'axe de la ligne sont autorisées.
 * Corrige 3 DOF, laisse 3 DOF:
 * Same Orientation: corrige Rx, Rz, Rz. Tous les T restent libres
 * Points Coincident: corrige Tx, Ty, Tz. Tous les R restent libres
 * La contrainte ‘PointOnPoint’ élimine les 3 traductions.
 * Plane Alignment: corrige Tz, Rx, Ry. En mouvement d'avion et Rz. Cela élimine la translation le long de la normale au plan de référence et les deux rotations autour des axes de ce plan.
 * Corrige 2 DOF, laisse 4 DOF:
 * Multi Parallel: corrige Rx, Ry. tous les T et Rz restent. Cela élimine les deux rotations autour des axes du plan de référence
 * Corrige 1 DOF, laisse 5 DOF:
 * Points in Plane: corrige Tz. Cela élimine la translation le long de la normale au plan de référence.
 * Points Distance: fixe la distance entre les origines des éléments.
 * Cela vous donne plus de liberté que Points in Plane
 * Points on Circle: corrige Tz et partiellement Tx, Ty. Gèle la translation de points (ou plusieurs points) sur un cercle ou une zone de disque. Vous devez choisir le cercle en second. Cela laisse toutes les rotations libres et donne une translation limitée dans le plan de référence du cercle.

'':Remarque: dans la liste suivante, Tx, Ty, Tz et Rx, Ry, Rz sont utilisés pour décrire les translations et les rotations concernant les systèmes de coordonnées de référence des éléments impliqués. Ce n'est pas toujours exact ou entièrement défini, par ex., lorsqu'il s'agit d'une ligne, elle n'est pas définie si elle s'étend en X, Y ou tout angle entre les deux. Le système est utilisé pour la convivialité et la comparaison facile en faveur d'une définition correcte mais plus complexe. Donc Z est généralement la direction normale de toutes les faces impliquées. N'hésitez pas à modifier cela avec une meilleure approche avec une meilleure lisibilité.''

En haut

Elements
Elements est un terme spécifique utilisé dans l'atelier Assembly 3 et il est important de comprendre les Elements pour comprendre comment Assembly 3 doit être utilisé.

Il est utile de penser à un Element comme un mot général pour un 'élément sélectionnable' d'une pièce, c'est-à-dire une face, une arête, un cercle ou un coin ou un autre point. Les éléments que vous sélectionnez pour les contraindre sont ces éléments. Dans l'arborescence, un dossier d'assemblage comporte trois sous-dossiers. À côté de 'Parts' et 'Constraints', il y a un dossier nommé 'Elements', qui est vide tant qu'aucune contrainte n'est ajoutée. Lors de l'ajout d'une contrainte, la contrainte elle-même obtient deux (ou plus) feuilles, ce sont les 'Elements' sélectionnés. Ces derniers sont également ajoutés dans le dossier 'Elements' qui n'est qu'une liste de tous les éléments utilisés dans l'assemblage. C'est le bon moment pour changer leurs noms (avec la touche F2), en particulier dans les grands assemblages.

Regardons un exemple
 * Créez un nouveau fichier et ajoutez à partir de l'atelier Part un cube et un cylindre. Nous empilerons le cylindre sur le tube. Nous fixons d'abord la partie de base, en aucun cas le cube. Sélectionnez la face inférieure du cube et sélectionnez les contraintes "Verrouiller" (première icône dans la barre d'outils des Contraintes). Sélectionnez la face supérieure du cylindre et la face supérieure du cube. Sélectionnez ensuite la contrainte "Plain Conincident". Maintenant, le cylindre est déplacé dans le cube et dans l'arbre une nouvelle feuille avec deux nœuds enfants a été ajoutée sous «Contraintes». De plus, les deux mêmes nœuds enfants ont été ajoutés sous «Éléments». Si votre cylindre est à l'intérieur du cube au-dessus du cube, corrigez d'abord cela: sélectionnez le nœud enfant sous 'Constraints' qui montre la face du cylindre et avec un clic droit dans le menu contextuel sélectionnez 'Retourner la pièce'. Maintenant, le cylindre est empilé sur la boîte.

Il est important de comprendre que la contrainte s'applique aux liens vers les Elements de la liste du dossier 'Elements' de l'arborescence. Cela permet de garder la structure de la contrainte intacte tout en changeant les parties. C'est très difficile à voir sans un exemple.

Revenons à l'exemple ci-dessus
 * Remarque: assurez-vous que vous avez ajouté la contrainte "Lock" au cube ou cela semblera déroutant
 * Dans la fenêtre CAD, sélectionnez une autre face du cube. Désormais, nous ne travaillons que dans l'arborescence. Allez avec votre souris dans l'arborescence où le cube doit être sélectionné. Glissez-déposez le cube dans le dossier 'Elements'. Déposez-le sur le nom «Elements», pas n'importe où ailleurs dans le dossier - nous verrons pourquoi plus tard. Vous devriez voir qu'un autre élément est ajouté à la liste 'ELements'. Sélectionnez maintenant dans le dossier 'Contraintes', le nœud enfant de la face de cube dans la contrainte "Plane Coincident" et supprimez-le. La contrainte affichera un point d'exclamation car il manque un élément. Notez qu'en supprimant l'élément dans la contrainte, nous ne l'avons «pas» supprimé de la liste. C'est parce que dans la contrainte était seulement un lien vers l'élément dans la liste. Maintenant, prenez l'élément nouvellement ajouté dans la liste des 'Elements' et faites-le glisser sur la contrainte "Plane Coincident". Maintenant, le cylindre se déplace vers l'autre face que nous avons sélectionnée. Nous devrons peut-être sélectionner à nouveau 'context menu/flip part' (menu contextuel/retourner la pièce) si le cylindre est à nouveau à l'intérieur du cube.

L'exemple a montré que sans supprimer la contrainte, nous pouvons changer les Elements utilisés pour la contrainte. De la même manière, nous pouvons déplacer le cylindre vers une pièce totalement différente. Après avoir joué un peu plus avec cet exemple, vous noterez quelques éléments supplémentaires comme
 * si vous renommez un Element dans la liste, le nom sera changé dans toutes les contraintes.
 * vous pouvez utiliser un Element de la liste dans plusieurs contraintes.
 * Vous pouvez utiliser la fenêtre des propriétés d'un Element pour ajouter des décalages. Dans l'exemple, cela pourrait déplacer le cylindre sur la face du cube.
 * vous pouvez utiliser le bouton "Show Element Coordinate System" (Afficher le système de coordonnées de l'élément) dans la barre d'outils principale pour voir ce que font 'ContextMenu/Flip Part' et 'ContextMenu/Flip Element'. Assurez-vous de regarder ce qui se passe dans la fenêtre des propriétés.
 * vous pouvez ajouter une contrainte dans un ordre totalement différent: commencez par ajouter quelques éléments à la 'Elements List' (la dénomination est utile, par exemple "Face supérieure du cube" ou "Face avant du cube") puis ajoutez une contrainte sans rien sélectionner - ce sera une contrainte vide. Faites ensuite glisser Elements de la liste 'Elements'. Le résultat est le même que ce que nous avons fait dans le premier exemple. Après avoir fait cet exercice, la nature du fonctionnement des contraintes avec les éléments doit être claire.
 * vous pouvez modifier une contrainte existante entre des éléments existants en sélectionnant simplement un élément différent dans la propriété PropertyWindow/ConstraintType.

En haut

Compatibilité
Assembly3 a été inspiré par Assembly2 mais il n'est pas compatible avec lui. Si vous avez des modèles plus anciens fabriqués dans Assembly2, vous devriez rester avec FreeCAD 0.16 et utiliser Assembly2.

Les nouveaux modèles développés avec Assembly3 ne doivent être ouverts et modifiés qu'avec cet atelier.

Bien qu'ils puissent avoir des outils similaires, Assembly3 n'est pas compatible avec A2plus ni Assembly4. Les modèles créés avec ces ateliers ne doivent être ouverts qu'avec leur atelier respectif.

top

Test
Atelier Assembly3 est en cours de développement et n'est pas encore disponible (avril 2020) via le Gestionnaire d'Addon. Il est prévu que cela se produise à un moment donné.

Vous pouvez le tester de deux manières:
 * Un fork spécial de FreeCAD faite par realthunder; voir FreeCAD_assembly3 releases. Ce fork est basé sur un commit particulier de la branche master de FreeCAD, mais il a également des fonctionnalités supplémentaires qui ne sont actuellement pas présentes dans la branche master. Étant donné que ce fork est basé sur un instantané de développement particulier, il n'a pas les dernières fonctionnalités fusionnées quotidiennement à la branche principale.
 * Le développement AppImage est basé sur la branche principale actuelle et inclut les dépendances nécessaires pour travailler avec Assembly3, comme le solveur SolveSpace.

Étant donné que l'AppImage ne fonctionne que pour Linux, pour les utilisateurs de Windows pour le moment, la seule option pour tester Assembly3 est la première option (le fork de realthunder).

top

Get Started
There are many ways to create an assembly with Assembly3. Here is the most simple one you can do.


 * Assembly3_Example-GettingStarted.jpg
 * Final Result of the Getting Started Example. In the image the Assembly3 Worksbench is selected, so its multiple toolbars are visible. Note that the vertical "TabBar" left of the tree view is an AddOn Workbench that is not contained in standard FreeCAD (/but can be installed with the Addon-Manager).

We omitted one important step that should be done in larger assemblies: locking a base part. That means define one part that should not be moved by constraints. In your case we use the cube for that: Done. If you like you can move the "Locked" constraint upwards in the tree. Use the "MoveItemUp" button on the Main Toolbar for that.
 * Create a new FreeCAD file
 * Select assembly WB. Select CreateAssembly (first icon)
 * Select Part WB and add a cylinder and a cube
 * Save the file with any filename you like. Close and open and the file.
 * The tree view should look like this
 * Now Draw&Drop with the mouse both Cylinder and Cube onto the Parts folder. They are moved into that folder.
 * That is the quickest way. Please note that a better way is to open the Context menu on both and select ContetxMenu/LinkActions/MakeLink. This adds two link files. Then Drag/Drop the link files to the Parts folder. For simple cases like this it does not really matter.
 * Click both top surfaces of Cylinder and Cube (keep Ctrl pressed)
 * Select assembly WB. Select "PlaceCoincident" from the Constraint Toolbar.
 * Now the parts should be joined into each other and your tree should look like this
 * Right click "_Element" (any of the two) and select "Flip Part".
 * Now the Cylinder should be on top of the box. If the whole thing is upside down, go back and select "Flip Part" on the other Element.
 * Right click "_Element" (any of the two) and select "Flip Part".
 * Now the Cylinder should be on top of the box. If the whole thing is upside down, go back and select "Flip Part" on the other Element.
 * Select the lower face of the cube. Only the lower face, not the whole cube.
 * select the "Lock" constraint from the constraint tool bar
 * The finished assembly tree should look like in the image above

Note: all new external files must be saved, closed and re-opend at least once, so that Assembly3 can find it. Without doing that FreeCAD can not give a file handle to the Assembly3 Workbench and it can not find the new part. When all parts are in the same file, you should save and re-open the file.

top

Add an Offset
Assembly3 does not offer Offset with the constaints in the way the A2plus Workbench workbench or other CAD tools do. Instead it offers a more general and flexible system to add offsets translations but also angles.


 * Add the offet in the properties of one Elements of a Constraint.
 * you can chose which one of the two you want to use.

Example:
 * Add 2 cubes to an assembly and select their side faces.
 * select "PlaneCoincident". The cubes will be attached inside each other.
 * select one Element and ContextMenu/Flip Part. The cubes will be attached side-by-side
 * select one Element property Offset/Position/Zz and set to 5mm. The cubes will be 5mm apart.
 * Test with other axes or the angle/axis fields. Also verify that you get the same result when using the other Element.

This is the same approach for all other constraints.

top

Solve a Solver Failure
This often happens when parts are over-constraints, i.e. more than 6 DOF are locked.

The easiest way to find the problem is to click relevant constraints in the tree and select ContextMenu/Disable and re-calculate. It is helpful to know the last added constraints before the solver failed and just undo them.

Note: as Assembly3 tries to compensate for over-constraint parts behind the scenes, sometimes the problem was just triggered by a new constraint but the root cause is somewhere different. Before deleting all and starting again, remember that you can re-use Elements. If you named them you can identify the required elements and re-build the constraints without using the 3D view at all. See Elements seciton above.

top

Tips & Tricks

 * Using hierarchical assemblies helps in avoiding solver issues and keeping you model fluid. You can freeze a subassembly with one click and save CPU resources easily. Also note that Assembly3 does not need to keep external files for frozes subassemblies open. For large assemblies with large MB files this can be a severe advantage.
 * Using external files makes it easier to re-use a parts or do part versioning with systems like git or subversion. The workflow in FreeCAD with Assembly feels quite the same as with files that have all parts in the same file. For exchanging files often with other parties, single files might be more convenient.
 * Multiply linked parts. If you added a link into the assembly, it will have a property value named "Element Count", default 0. If you set this to 3 you get 3 instances of that part. They will be added into a subfolder and can be used like fully separte parts. Use this feature to keep the data footprint of your file low, because the part is saved only once. Each instance only contain the differences.
 * Insert multiple Screws with one click. Check out the Assembly3 Wiki on the Github site. This is not only a stunning function (even a bit magic), but really really useful.


 * Using the TabBar Workbench speeds up working with assembly. This adds a Toolbar with one button for each workbench. You can sort the toolbar and can put it where every you want it. Many people put it vertically on the left side just beside the tree view. Of you have Assembly3, Part, PartDesign and other often used workbenches close to the top switching between them becomes extremely easy.

top

Liens

 * L'objet App Link qui fait fonctionner Assembly3.
 * FreeCAD_assembly3 dépôt et documentation.
 * Assembly3 preview, grand fil de discussion.
 * Tutoriel de test pour Assembly 3 WB par jpg87.
 * État actuel de l'assemblage
 * Ateliers externes
 * Liste des ateliers externes
 * Old Assembly project plan de développement, pour se familiariser avec l'historique du problème.