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 :
 * solveur dynamique/interactif. 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.
 * liens. 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.
 * liens externes. 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.
 * assemblages hiérarchiques. 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.
 * blocage des assemblages. 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'Assembly4_workbench_icon.svger Assembly4.

En haut

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

Barre d'outils principale

 * Assembly3_ToolbarMain.png

La Barre d'outils principale contient des outils qui couvrent les fonctions les plus souvent utilisées de l'établi. Les infobulles donnent des raccourcis clavier.


 * [[Image:Assembly_New_Assembly.svg|32px]] Create assembly : Ajouter un dossier d'assemblage
 * [[Image:Assembly_New_Group.svg|32px]] Group objects : Objets de groupe
 * [[Image:Assembly_New_Element.svg|32px]] Create element : Crée un élément.
 * Importer depuis STEP. Cela a deux paramètres
 * [[Image:Assembly_Import.svg|32px]] Import STEP files : Importer des fichiers STEP
 * [[Image:Assembly_ImportMulti.svg|32px]] Import as multi-document : Importer en tant que multi-document
 * [[Image:Assembly3_workbench_icon.svg|32px]] Résoudre les contraintes : Résoudre les contraintes
 * [[Image:Assembly_QuickSolve.svg|32px]] Quick resolution: Contraintes de résolution rapide
 * [[Image:Assembly_Move.svg|32px]] Move part : Déplacer les pièces en 3D, ceci est spécifique à Assembly3
 * [[Image:Assembly_AxialMove.svg|32px]] Axial move : Déplacement axial des pièces en 3D, c'est l'outil classique disponible ailleurs dans FreeCAD
 * [[Image:Assembly_QuickMove.svg|32px]] Quick move : Ceci attachera la pièce sélectionnée dans l'arborescence au curseur de la souris. Cela changera la position de la pièce lorsque vous cliquerez.
 * Souvent, les pièces ajoutées sont empilées les unes sur les autres à l'origine. Utilisez cette fonction pour saisir une partie que vous ne pouvez pas voir.
 * [[Image:Assembly_LockMover.svg|32px]] Lock mover : Dispositif de verrouillage pour partie fixe. Bouton à bascule. Lorsque cette option n'est pas sélectionnée, vous pouvez déplacer les pièces qui ont une contrainte "Verrouillé".
 * [[Image:Assembly_TogglePartVisibility.svg|32px]] Basculer la visibilité de la pièce : Ceci active/désactive la visibilité de la pièce sélectionnée.
 * Notez que cela diffère de l'utilisation de l'espace. L'utilisation de l'espace avec des éléments sélectionnés d'un sous-assemblage dans la vue 3D ne se comporte souvent pas comme prévu. Utilisez cette fonction dans ces cas (ou le raccourci A-Space)
 * [[Image:Assembly_Trace.svg|32px]] Trace part move: Trace part move (TBD)
 * [[Image:Assembly_AutoRecompute.svg|32px]] Auto recompute : Recalcul automatique. Habituellement activé.
 * Peut être désélectionné lors de la réparation de contraintes ou de la fixation de pièces où le solveur donne un message  "ne convergent pas"  (par exemple en tournant la pièce à 180 degrés)
 * [[Image:Assembly_SmartRecompute.svg|32px]] Smart recompute : Recalcul intelligent. Habituellement activé.
 * [[Image:Assembly_AutoFixElement.svg|32px]] Auto fix element : Élément auto réparation. Fonctionnalité expérimentale dans 0.19_pre.
 * Style d'élément. Cela a deux paramètres
 * [[Image:Assembly_AutoElementVis.svg|32px]] Visibilité d'élément automatique : Visibilité d'élément automatique
 * [[Image:Assembly_ShowElementCS.svg|32px]] Afficher le système de coordonnées de l'élément : Afficher le système de coordonnées de l'élément
 * Plan de travail et origine. Ajoute un plan de travail, un placement ou une origine. Une pièce doit être sélectionnée. Cela a cinq paramètres
 * [[Image:Assembly_Add Workplane.svg|32px]] Add workplane : Ajouter un plan de travail XY
 * [[Image:Assembly_Add WorkplaneXZ.svg|32px]] Add XZ workplane : Ajouter un plan de travail XZ
 * [[Image:Assembly_Add WorkplaneZY.svg|32px]] Add ZY workplane : Ajouter un plan de travail YZ
 * [[Image:Assembly_Add Placement.svg|32px]] Add placement : Ajouter un emplacement
 * [[Image:Assembly_Add Origin.svg|32px]] Add Origin: Ajouter l'origine
 * [[Image:Assembly_TreeItemUp.svg|32px]] Move item up : Déplacer l'élément d'arborescence sélectionné vers le haut
 * [[Image:Assembly_TreeItemDown.svg|32px]] Déplacer l'élément vers le bas : Déplacer l'élément sélectionné de l'arborescence vers le bas
 * Permet de trier les pièces, éléments ou contraintes dans l'arborescence. Élément retourné (de haut en bas et vice versa). Ne fonctionne que pour une seule sélection.
 * [[Image:Assembly_ConstraintMultiply.svg|32px]] Multiply constraint : Contrainte de multiplication. Cela peut être sélectionné si plusieurs pièces et éléments appropriés sont présents.
 * Il est utilisé par ex. pour affecter plusieurs fixations du même type dans plusieurs trous avec une seule contrainte.

Barre d'outils des contraintes principales

 * [[Image:Assembly3_ToolbarConstraints_1.jpg|700px]]

Certains outils sont en fait un menu pour d'autres outils.


 * [[Image:Assembly_ConstraintLock.svg|32px]] Contrainte de verrouillage : Ajoute une contrainte "Vérouillée" pour corriger une ou plusieurs pièces.
 * Vous devez sélectionner un élément de géométrie de la pièce.
 * Si vous fixez un sommet ou une arête, la pièce est toujours libre de tourner autour du sommet ou de l'arête.
 * La fixation d'une face verrouille complètement la pièce.
 * [[Image:Assembly_ConstraintAlignment.svg|32px]] Contrainte d'alignement : Ajoute une contrainte "Alignement plan" pour aligner les faces planes de deux pièces ou plus.
 * Les faces deviennent coplanaires ou parallèles avec une distance optionnelle.
 * [[Image:Assembly_ConstraintCoincidence.svg|32px]] Contrainte de coïncidence : Ajoute une contrainte "Coïncidence de plan" pour faire coïncider les faces planes de deux pièces ou plus.
 * Les faces coïncident en leurs centres avec une distance facultative.
 * [[Image:Assembly_ConstraintAttachment.svg‎‎|32px]] Contrainte d'accrochage : Ajoute une contrainte "Attachment" pour accrocher deux pièces par les éléments géométriques sélectionnés.
 * Cette contrainte fixe complètement les pièces les unes par rapport aux autres.
 * [[Image:Assembly_ConstraintAxial.svg|32px]] Contrainte axiale : Ajoute une contrainte "Alignement axial" pour aligner les arêtes/faces de deux pièces ou plus.
 * La contrainte accepte
 * arêtes linéaires, qui deviennent colinéaires,
 * faces planes, alignées en utilisant leur axe normal de surface,
 * et face cylindrique, alignés dans la direction axiale.
 * Différents types d'éléments géométriques peuvent être mélangés.
 * [[Image:Assembly_ConstraintSameOrientation.svg‎‎|32px]] Contrainte orientation identique : Ajoute une contrainte "Même orientation" pour aligner les faces de deux pièces ou plus.
 * Les plans sont alignés pour avoir la même orientation (c.-à-d. Rotation)
 * [[Image:Assembly_ConstraintMultiParallel.svg|32px]] Contrainte parallèle : Ajoute une contrainte "Multi parallèle" pour rendre parallèles les faces planes ou les arêtes linéaires de deux pièces ou plus.
 * [[Image:Assembly_ConstraintAngle.svg|32px]] Contrainte d'angle : Ajoute une contrainte "Angle" pour définir l'angle des faces planes ou des arêtes linéaires de deux pièces.
 * [[Image:Assembly_ConstraintPerpendicular.svg|32px]] Contrainte perpendiculaire : Ajoute une contrainte "Perpendiculaire" pour rendre perpendiculaires les faces planes ou les arêtes linéaires de deux pièces.
 * [[Image:Assembly_ConstraintPointCoincident.svg|32px]] Contrainte de points coïncidents : Ajoute une contrainte "Point coincident" pour faire coïncider deux points en 2D ou 3D.
 * [[Image:Assembly_ConstraintPointInPlane.svg|32px]] Contrainte point sur un plan : Ajoute un "Point sur plan" pour contraindre un ou plusieurs points sur un plan.
 * [[Image:Assembly_ConstraintPointOnLine.svg|32px]] Contrainte point sur une ligne : Ajoute un "Point sur ligne" pour contraindre un point sur une ligne en 2D ou 3D.
 * [[Image:Assembly_ConstraintPointOnCircle.svg|32px]] Contrainte point sur un cercle : Ajoute un "Point sur cercle" pour contraindre un ou plusieurs points sur une surface clyndrique définie par un cricle.
 * Notez que vous devez sélectionner un point (tout élément de géométrie peut définir un point), puis sélectionner le cercle (ou la surface clyndrique),
 * après quoi vous pouvez ajouter plus de points à votre sélection si vous le souhaitez.
 * [[Image:Assembly_ConstraintPointsDistance.svg|32px]] Contrainte distance entre points : Ajoute une "Distance de points" pour contraindre la distance de deux points ou plus.
 * [[Image:Assembly_ConstraintPointPlaneDistance.svg|32px]] Contrainte distance entre point et plan : Ajoute une "Distance plan à point" pour contraindre la distance entre un ou plusieurs points et un plan.
 * [[Image:Assembly_ConstraintPointLineDistance.svg|32px]] Contrainte distance entre point et ligne : Ajoute une "Distance de ligne de point" pour contraindre la distance entre un point et une arête linéaire en 2D ou 3D.
 * [[Image:Assembly_ConstraintSymmetric.svg|32px]] Contrainte de symétrie : Ajoute une contrainte "Symétrique" pour rendre les éléments géométriques de deux pièces symétriques par rapport à un plan.
 * Les éléments pris en charge sont l'arête linéaire et la face plane.
 * [[Image:Assembly_ConstraintMore.svg|32px]] Plus de contraintes : Basculer les barres d'outils pour plus de contraintes
 * Pas vraiment une contrainte mais une bascule pour afficher/masquer la barre d'outils des contraintes supplémentaires.

Contraintes supplémentaires Barres d'outils

 * [[Image:Assembly3_ToolbarConstraints_2.jpg|700px]]

Vous pouvez les activer en sélectionnant l'icône "..." dans la barre d'outils des Contraintes principales.


 * [[Image:Assembly_ConstraintPointDistance.svg‎‎|32px]] Point distance : Ajoute une "distance de point" pour contraindre la distance de deux points en 2D ou 3D.
 * [[Image:Assembly_ConstraintEqualAngle.svg|32px]] Equal angle : Ajoute un "Angle égal" pour égaliser les angles entre deux lignes ou normales.
 * [[Image:Assembly_ConstraintPointsSymmetric.svg|32px]] Points symetric : Ajoute une contrainte "Points symétriques" pour rendre deux points symétriques par rapport à un plan.
 * [[Image:Assembly_ConstraintGeneral.svg|32px]] Symmetric horizontal : Symmétrie horizontale.
 * [[Image:Assembly_ConstraintGeneral.svg|32px]] Symmetric vertical : Symmétrie verticale.
 * [[Image:Assembly_ConstraintSymmetricLine.svg|32px]] Symmetric line : Ajoute une contrainte "Ligne symétrique" pour rendre deux points symétriques par rapport à une ligne.
 * [[Image:Assembly_ConstraintPointsHorizontal.svg|32px]] Points horizontal : Ajoute une contrainte "Points horizontaux" pour rendre deux points horizontaux l'un par rapport à l'autre lorsqu'ils sont projetés sur un plan.
 * [[Image:Assembly_ConstraintPointsVertical.svg|32px]] Points vertical : Ajoute une contrainte "Points verticaux" pour rendre deux points verticaux l'un avec l'autre lorsqu'ils sont projetés sur un plan.
 * [[Image:Assembly_ConstraintLineHorizontal.svg|32px]] Line horizontal : Ajoute une contrainte "Ligne horizontale" pour rendre un segment de ligne horizontal lorsqu'il est projeté sur un plan.
 * [[Image:Assembly_ConstraintLineVertical.svg|32px]] Line vertical : Ajoute une contrainte "Line vertical" pour rendre un segment de ligne vertical lorsqu'il est projeté sur un plan.
 * [[Image:Assembly_ConstraintArcLineTangent.svg|32px]] Arc line tangent : Ajoute une contrainte "Arc ligne tangence" pour rendre une ligne tangente à un arc au point de début ou de fin du arc.


 * [[Image:Assembly_ConstraintSketchPlane.svg|32px]] Sketch plane : Ajoute un "plan d'esquisse" pour définir le plan de travail de tout élément de dépouille à l'intérieur ou suivant cette contrainte.
 * Ajoute un "plan d'esquisse" vide pour annuler la définition du plan de travail précédent.
 * [[Image:Assembly_ConstraintLineLength.svg|32px]] Line length : Ajoute une contrainte "Line length" pour limiter la longueur d'un Draft.Wire non subdivisé.
 * [[Image:Assembly_ConstraintEqualLength.svg|32px]] Equal length : Ajoute une contrainte "Longueur égale" pour créer deux lignes de même longueur.
 * [[Image:Assembly_ConstraintLengthRatio.svg|32px]] Length ratio : Ajoute un "Rapport de longueur" pour contraindre le rapport de longueur de deux lignes.
 * [[Image:Assembly_ConstraintLengthDifference.svg|32px]] Length difference : Ajoute une "Différence de longueur" pour contraindre la différence de longueur de deux lignes.
 * [[Image:Assembly_ConstraintLengthEqualPointLineDistance.svg|32px]] Length Equal Point Line Distance: Ajoute une "Length Equal Point Line Distance" pour contraindre la distance
 * entre un point et une ligne pour être la même que la longueur d'une autre ligne.
 * [[Image:Assembly_ConstraintGeneral.svg|32px]] ([[Image:Assembly ConstraintEqualLineArcLength.svg|32px]]) Equal Line Arc Length : Ajoute une "Longueur d'arc de ligne égale "contrainte de faire une ligne de même longueur qu'un arc.
 * [[Image:Assembly_ConstraintMidPoint.svg|32px]] Mid point : Ajoute un "Milieu" pour contraindre un point au milieu d'une ligne.
 * [[Image:Assembly_ConstraintDiameter.svg|32px]] Diameter : Ajoute un "Diamètre" pour contraindre le diamètre d'un cercle/arc.
 * [[Image:Assembly_ConstraintEqualRadius.svg|32px]] Equal radius : Ajoute une contrainte "Equal radius" pour créer deux cercles/arcs de même rayon.
 * [[Image:Assembly_ConstraintPointsProjectDistance.svg|32px]] Points project distance : Ajoute une "distance du projet de points" pour contraindre la distance de deux points projetés sur une ligne.
 * [[Image:Assembly_ConstraintEqualPointLineDistance.svg|32px]] Equal point line distance : Ajoute une "Equal point line distance" pour contraindre la distance
 * entre un point et une ligne pour être identique à la distance entre un autre point et une ligne.
 * [[Image:Assembly_ConstraintColinear.svg|32px]] Collinear : Ajoute une contrainte "Colinéaire" pour rendre deux lignes colinéaires.


 * Les Barre d'outils Contraintes seront l'interface principale utilisée lors de l'assemblage des pièces.
 * Elles sont grisées par défaut mais sont activées dès 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 qui doivent être assemblés, puis vous sélectionnez le type de contrainte.
 * Les différents cadres colorés marquent différentes caractéristiques des contraintes :
 * si 2D/3D ou si plus de 2 éléments peuvent être ajoutés.

Une description détaillée peut être trouvée dans le wiki Github.

Barre d'outils de navigation

 * [[Image:Assembly3_ToolbarNavigation.jpg|100px]]


 * Ces fonctions sont utiles lorsque vous travaillez avec un assemblage comportant une hiérarchie de fichiers externes liés.


 * [[Image:Assembly_GotoRelation.svg|32px]] Go to relation : Sélectionne l'objet pièce correspondant dans le groupe de relations
 * [[Image:LinkSelect.svg|32px]] Select linked object: Sélectionne l'objet lié
 * [[Image:LinkSelectFinal.svg|32px]] Select linked final : Sélectionne l'objet lié le plus profond

Barre d'outils de mesure

 * [[Image:Assembly3_ToolbarMeasurement.jpg|150px]]


 * La Barre d'outils de mesure ajoute des fonctions permettant de mesurer la distance ou l'angle entre deux objets.


 * [[Image:Assembly_MeasurePointDistance.svg|32px]] Measure points : Ajoute un "Point de mesure" pour mesurer la distance de deux points en 2D ou 3D.
 * [[Image:Assembly_MeasurePointLineDistance.svg|32px]] Measure point to line : Ajoute un "Mesurer point à ligne" pour mesurer la distance entre un point et une arête linéaire en 2D ou 3D.
 * [[Image:Assembly_MeasurePointPlaneDistance.svg|32px]] Measure point to plane : Ajoute un "Mesurer point à plan" pour mesurer la distance entre un point et un plan.
 * [[Image:Assembly_MeasureAngle.svg|32px]] Measure angle : Ajoute un "Mesurer l'angle" pour mesurer l'angle des faces planes ou des arêtes linéaires de deux pièces.
 * 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 mis à jour à tout 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.


 * 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 exemple la distance entre les bords d'un cube lorsque le cube est redimensionné.
 * Comme les contraintes les calculs sont faits en temps réel et mis à jour à chaque changement. En coulisses, la fonction est très similaire à celle des Contraintes. La distance ou l'angle est calculé entre les Elements de la même manière que pour les Contraintes. L'affichage dans l'arbre 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 sur le « 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 depuis 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
 * PointOnPoint élimine les 3 translations.
 * 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 "Verrouillées" (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 "Plan coïncident". 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.

En haut

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).

En haut

Commencez
Il existe de nombreuses façons de créer un assemblage avec Assembly3. Voici la plus simple que vous puissiez faire.


 * Assembly3_Example-GettingStarted.jpg
 * Résultat final de l'exemple de mise en route. Dans l'image, l'atelier Assembly3 est sélectionné, de sorte que ses multiples barres d'outils sont visibles. Notez que la "TabBar" verticale à gauche de l'arborescence est un AddOn qui n'est pas contenu dans FreeCAD standard (peut être installé avec le Gestionnaire d'Addon).


 * Créez un nouveau fichier FreeCAD
 * Sélectionnez l'atelier assembly. Sélectionnez CreateAssembly (première icône)
 * Sélectionnez l'atelier Part et ajoutez un cylindre et un cube
 * Enregistrez le fichier avec n'importe quel nom de fichier que vous aimez. Fermez et ouvrez et le fichier.
 * L'arborescence devrait ressembler à ceci


 * Maintenant, dessinez et déposez avec la souris à la fois Cylinder et Cube dans le dossier Parts. Ils sont déplacés dans ce dossier.
 * C'est le moyen le plus rapide. Veuillez noter qu'une meilleure façon est d'ouvrir le menu contextuel sur les deux et de sélectionner ContetxMenu/LinkActions/MakeLink. Cela ajoute deux fichiers de lien. Faites ensuite glisser/déposer les fichiers de liens vers le dossier Parts. Pour des cas simples comme celui-ci, cela n'a pas vraiment d'importance.
 * Cliquez sur les deux surfaces supérieures du cylindre et du cube (maintenez la touche Ctrl enfoncée)
 * Sélectionnez l'atelier assembly. Sélectionnez "PlaceCoincident" dans la barre d'outils des Contraintes.
 * Maintenant, les parties doivent être jointes les unes aux autres et votre arbre doit ressembler à ceci

Nous avons omis une étape importante à effectuer dans les assemblages plus volumineux: le verrouillage d'une pièce de base. Cela signifie définir une partie qui ne doit pas être déplacée par des contraintes. Dans notre cas, nous prenons le cube pour cela: Terminé. Si vous le souhaitez, vous pouvez déplacer la contrainte "Locked" vers le haut dans l'arborescence. Utilisez pour cela le bouton "MoveItemUp" de la barre d'outils principale.
 * Cliquez avec le bouton droit sur "_Element" (l'un des deux) et sélectionnez "Flip Part".
 * Le cylindre doit maintenant être au-dessus de la boîte. Si tout est à l'envers, revenez en arrière et sélectionnez "Flip Part" sur l'autre élément.
 * Sélectionnez la face inférieure du cube. Seule la face inférieure, pas le cube entier.
 * sélectionnez la contrainte "Locked" dans la barre d'outils de contrainte
 * L'assemblage fini doit ressembler à l'image ci-dessus

Remarque : tous les nouveaux fichiers externes doivent être enregistrés, fermés et rouverts au moins une fois pour que Assembly3 puisse les trouver. Sans cela, FreeCAD ne peut pas donner de descripteur de fichier à l'atelier Assembly3 et il ne peut pas trouver la nouvelle pièce. Lorsque toutes les pièces sont dans le même fichier, vous devez enregistrer et rouvrir le fichier.

En haut

Ajouter un décalage
Assembly3 n'offre pas de décalage avec les contraintes comme le font l'atelier A2plus ou d'autres outils de CAO. Au lieu de cela, il offre un système plus général et plus flexible pour ajouter des traductions de décalages mais aussi des angles.


 * Ajoutez le décalage dans les propriétés d'un Element d'une contrainte (Constraint).
 * vous pouvez choisir lequel des deux vous souhaitez utiliser.

Exemple :
 * ajoutez 2 cubes à un assemblage et sélectionnez leurs faces latérales.
 * sélectionnez "PlaneCoincident". Les cubes seront attachés les uns dans les autres.
 * sélectionnez un Element et ContextMenu/Flip Part. Les cubes seront attachés côte à côte.
 * sélectionnez une propriété d'Element Offset/Position/Zz et définissez-la à 5 mm. Les cubes seront espacés de 5 mm.
 * Testez avec d'autres axes ou les champs angle/axe. Vérifiez également que vous obtenez le même résultat lorsque vous utilisez l'autre élément.

Il s'agit de la même approche pour toutes les autres contraintes.

En haut

Résoudre un échec du solveur
Cela se produit souvent lorsque les pièces sont sur-contraintes, c'est-à-dire que plus de 6 DOF sont verrouillés.

Le moyen le plus simple de trouver le problème est de cliquer sur les contraintes pertinentes dans l'arborescence et de sélectionner ContextMenu/Disable et de recalculer. Il est utile de connaître les dernières contraintes ajoutées avant l'échec du solveur et de les annuler.

Remarque : comme Assembly3 essaie de compenser les pièces de sur-contrainte dans les coulisses, il arrive que le problème soit simplement déclenché par une nouvelle contrainte mais que la cause première soit différente. Avant de tout supprimer et de recommencer, n'oubliez pas que vous pouvez réutiliser Elements. Si vous les avez nommés, vous pouvez identifier les éléments requis et recréer les contraintes sans utiliser la vue 3D. Voir la section Elements ci-dessus.

En haut

Remplacer une pièce ou renommer un nom de fichier
Lorsqu'une pièce est supprimée ou lorsqu'un nom de fichier change, l'assemblage se casse. Il ne peut plus être résolu et le solveur émettra le message "Inconsistent constraints". Le solveur marque les éléments et les contraintes non valides avec un point d'interrogation dans l'arborescence.

Une façon de résoudre ce problème consiste simplement à supprimer toutes les contraintes et tous les éléments non valides, à importer la nouvelle pièce et à tout refaire. Mais il existe un meilleur moyen :


 * Renommer un fichier
 * Utilisez un gestionnaire de fichiers et copiez le fichier que vous souhaitez renommer. Donnez ensuite le nouveau nom à la copie.
 * Ouvrez la copie dans FreeCAD. L'assemblage et l'ancien fichier doivent également être ouverts.
 * Sélectionnez l'ancien objet dans l'arborescence et cliquez pour changer la propriété "Linked object" (contient l'ancien nom de fichier)
 * Une boîte de dialogue de type liste s'ouvre contenant toutes les pièces ouvertes. Elle montre les noms de fichiers et les objets de chaque partie. La pièce et l'objet anciens sont sélectionnés. Localisez la pièce renommée dans l'arborescence et sélectionnez le même objet dans la nouvelle pièce. Confirmez ensuite la sélection.
 * Supprimez l'ancienne partie de l'arborescence. Le fichier peut également être supprimé maintenant.
 * Les contraintes et éléments de l'ancienne pièce sont devenus invalides. Ouvrez la liste de contraintes ou d'éléments dans l'arborescence. Puis séquentiellement:
 * Sélectionnez chaque surface d'élément sur la nouvelle pièce. Un élément de l'arborescence sera mis en évidence.
 * Prenez cet élément et glissez-déposez-le sur l'ancien élément (soit dans la liste des éléments, soit dans l'une des contraintes où il a été utilisé). Cet élément devrait devenir valide.
 * Répétez la procédure pour les éléments restants. Souvent, un seul élément suffit pour permettre à Assembly3 d'identifier automatiquement les éléments restants de la pièce.
 * Si un élément a été assigné à la mauvaise surface par accident, répétez simplement avec la bonne surface.
 * Modifiez le nom de l'objet dans FreeCAD, si vous le souhaitez.


 * Remplacer une pièce par une autre pièce
 * qui est assez similaire à la pièce d'origine pour que les contraintes d'origine aient encore un sens, bien sûr
 * Supprimez l'ancienne partie de l'arborescence. Le fichier peut également être supprimé.
 * Les contraintes et éléments de l'ancienne pièce sont devenus invalides. Ouvrez la liste de contraintes ou d'éléments dans l'arborescence.
 * Sélectionnez une surface d'élément sur la nouvelle pièce. Un élément de l'arborescence sera mis en évidence.
 * Prenez cet élément et glissez-déposez-le sur l'ancien élément (soit dans la liste des éléments, soit dans l'une des contraintes où il a été utilisé). Cet élément devrait devenir valide.
 * Répétez la procédure pour les éléments restants.
 * Si un élément a été assigné à la mauvaise surface par accident, répétez simplement avec la bonne surface.
 * Modifiez le nom de l'objet dans FreeCAD, si vous le souhaitez.

''Remarques ''
 * Ce n'est pas aussi compliqué que cela puisse paraître. Après 2-3 fois, cela devient une seconde nature et on sent que c'est facile à faire.
 * Ce n'est pas seulement généralement plus rapide que de supprimer et de refaire des contraintes, c'est aussi plus sûr car un élément pourrai être utilisé dans un assemblage parent. Supprimer l'original détruirait ce lien, le réassigner le garderait.
 * Cette procédure devient également très rapide et facile à réaliser si des contraintes et des éléments sont nommés. Il n'est pas possible de deviner où les surfaces doivent être glissées et déposées car les noms le disent (voir Trucs et astuces).

En haut

Trucs et astuces
''
 * L'utilisation d'assemblages hiérarchiques permet d'éviter les problèmes de solveur et de maintenir la fluidité du modèle. Vous pouvez figer un sous-assemblage en un seul clic et enregistrer facilement les ressources CPU (utilisez le menu contextuel dans l'arborescence). Lors du chargement d'un assemblage, Assembly3 n'a pas besoin d'ouvrir les fichiers externes pour les sous-assemblages figés, ce qui maintient l'arborescence compacte.
 * Il est très utile de prendre l'habitude de nommer les éléments et les contraintes. Utilisez la touche pour le faire rapidement dans l'arborescence. Vous trouverez les outils de tri d'arbre dans la barre d'outils principale très utiles. Un assemblage avec des contraintes et des éléments entièrement nommés est très facile à comprendre pour d'autres personnes ou pour soi-même lorsque l'on regarde un fichier plus ancien.
 * Des exemples de noms de contraintes pour une table peuvent être "Align_FrontLegs", "Align_FrameBottom-LegTops" et les noms d'élément peuvent être "Leg1_Top" ou "TableTop_Front", "TableTop_Left".
 * Veuillez noter qu'une fois que les fichiers externes sont ouverts par un assemblage, il n'est pas possible de les refermer facilement sans fermer l'assemblage. Étant donné que l'assemblage garde ouvert ces fichiers dans l'arrière-plan, l'onglet peut disparaître mais le fichier reste visible dans l'arborescence. Si vous avez plusieurs couches de sous-assemblages, il devient pratiquement impossible de fermer des fichiers uniques. Ce comportement peut changer, mais jusque-là une approche possible pourrait être d'utiliser régulièrement les commandes Fichier/Enregistrer tout et Fichier/Fermer tout pour nettoyer l'arborescence avant de travailler sur un autre sous-assemblage.
 * ''Exemple: considérez que vous avez une grande machine CNC avec un ensemble principal et un sous-ensemble pour chaque module. Une fois que vous avez ouvert l'assemblage principal, vous pouvez ouvrir des centaines de fichiers jusqu'au roulement à billes. Avant de travailler sur le sous-ensemble de l'armoire électronique de la machine, il est judicieux d'enregistrer et de fermer tous les fichiers pour vider l'arbre. Ouvrez ensuite uniquement le sous-ensemble de l'armoire électronique. Cela ouvrira tous les fichiers dont vous avez besoin sauf ceux-là.
 * L'utilisation de fichiers externes facilite la réutilisation d'une partie ou le contrôle de version d'une partie avec des systèmes comme git ou subversion. Le flux de travail dans FreeCAD avec Assembly est tout à fait le même que celui des fichiers qui ont toutes les parties dans le même fichier. Pour échanger souvent des fichiers avec d'autres parties, des fichiers uniques peuvent être plus pratiques.
 * Multipliez les pièces liées. Si vous avez ajouté un lien dans l'assemblage, il aura une valeur de propriété nommée "Element Count", par défaut 0. Si vous définissez ceci sur 3, vous obtenez 3 instances de cette pièce. Elles seront ajoutées dans un sous-dossier et pourront être utilisées comme des pièces entièrement séparées. Utilisez cette fonction pour réduire l'encombrement des données de votre fichier, car la pièce n'est enregistrée qu'une seule fois. Chaque instance ne contient que les différences.
 * Insérez plusieurs pièces, par ex. des vis, en un seul clic. Consultez le Wiki Assembly3 sur le site Github. Ce n'est pas seulement une fonction étonnante (même un peu magique), mais vraiment très utile.


 * L'utilisation de l'atelier TabBar accélère le travail avec l'assemblage. Cela ajoute une barre d'outils avec un bouton pour chaque atelier. Vous pouvez trier la barre d'outils et la placer où vous le souhaitez. Beaucoup de gens le placent verticalement sur le côté gauche juste à côté de la vue de l'arbre. Si vous disposez de Assembly3, Part, PartDesign et d'autres ateliers souvent utilisés à proximité du premier, il devient extrêmement facile de passer de l'un à l'autre.

En haut

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
 * Old Assembly project plan de développement, pour se familiariser avec l'historique du problème.