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.


 * The Main Toolbar contains tools that cover the most often used features of the workbench. The tooltips will give the keyboard short cuts.


 * [[Image:Assembly Add Existing Part.svg‎‎|32px]] Create assembly: Add an assembly folder
 * [[Image:Assembly New Group.svg‎‎|32px]] Group objects: Group objects
 * [[Image:Assembly New Element.svg‎‎|32px]] Create element: Create element.
 * Import from STEP. This has two settings
 * [[Image:Assembly Import.svg‎‎|32px]] Import STEP files: Import STEP files
 * [[Image:Assembly ImportMulti.svg‎‎|32px]] Import as multi-document: Import as multi-document
 * [[Image:Assembly3_workbench_icon.svg‎‎|32px]] Resolve constraints: Resolve constraints
 * [[Image:Assembly QuickSolve.svg‎‎|32px]] Quick solve: Quick resolve constraints
 * [[Image:Assembly Move.svg‎‎|32px]] Move part: Move parts in 3D, this is specific to Assembly3
 * [[Image:Assembly AxialMove.svg‎‎|32px]] Axial move: Axial move parts in 3D, this is the classical tool available elsewhere in FreeCAD
 * [[Image:Assembly QuickMove.svg‎‎|32px]] Quick move: This will attach the part selected in the tree to the mouse cursor. It will change the position of the part when you click.
 * Often added parts are stacked upon each other in the origin. Use this function to grab a part you can not see.
 * [[Image:Assembly LockMover.svg‎‎|32px]] Lock mover: Lock mover for fixed part. Toggle Button. When this is un-selected you can move the parts that have a "Locked" constraint.
 * [[Image:Assembly_TogglePartVisibility.svg‎‎|32px]] Toggle part visibility: This toggles the visiblity of the selected part on/off.
 * Note that this differs from using space. Using space with selected items from a sub-assembly in the 3D view often does not behave as expected. Use this function in those cases (or shortcut A-Space)
 * [[Image:Assembly Trace.svg‎‎|32px]] Trace part move: Trace part move (TBD)
 * [[Image:Assembly AutoRecompute.svg‎‎|32px]] Auto recompute: Auto recompute. Usually enabled.
 * May be un-selected when repairing constraints or fixing parts where the solver gives a "do not converge" message (e.g. by turning the part 180deg)
 * [[Image:Assembly SmartRecompute.svg‎‎|32px]] Smart recompute: Smart recompute. Usually enabled.
 * [[Image:Assembly AutoFixElement.svg‎‎|32px]] Auto fix element: Element Auto Fixing. Experimental feature in 0.19_pre
 * Element Style. This has two settings
 * [[Image:Assembly AutoElementVis.svg‎‎|32px]] Auto element visibility: Auto element visibility
 * [[Image:Assembly ShowElementCS.svg‎‎|32px]] Show element coordinate system: Show element coordinate system
 * Workplane and origin. Adds a workplane, placement or origin. A part must be selected. This has five settings
 * [[Image:Assembly Add Workplane.svg‎‎|32px]] Add workplane: Add XY workplane
 * [[Image:Assembly Add WorkplaneXZ.svg‎‎|32px]] Add XZ workplane: Add XZ workplane
 * [[Image:Assembly Add WorkplaneZY.svg‎‎|32px]] Add ZY workplane: Add YZ workplane
 * [[Image:Assembly Add Placement.svg‎‎|32px]] Add placement: Add placement
 * [[Image:Assembly Add Origin.svg‎‎|32px]] Add Origin: Add Origin
 * [[Image:Assembly TreeItemUp.svg‎‎|32px]] Move item up: Move selected tree item up
 * [[Image:Assembly TreeItemDown.svg‎‎|32px]] Move item down: Move selected tree item down
 * Allows to sort Parts, Elements or Constraints in the tree. Element roll over (top to bottom and vice versa). Only works for a single selection.
 * [[Image:Assembly ConstraintMultiply.svg‎‎|32px]] Multiply constraint: Multiply Constraint. This can be selected if multiple parts and suitable Elements are present.
 * It is used e.g. to assign multiple fasteners of the same type into multiple holes with one constraint.


 * Some tools are actutally a menu for more tools.


 * [[Image:Assembly ConstraintLock.svg‎‎|32px]] Locked: Add a "Locked" constraint to fix one or more parts.
 * You must select a geometry element of the part.
 * If you fix a vertex or an edge the part is still free to rotate around the vertex or edge.
 * Fixing a face will completely lock the part.
 * ([[Image:Assembly ConstraintAlignment.svg‎‎|24px]]) Plane Alignment: Add a "Plane alignment" constraint to align planar faces of two or more parts.
 * The faces become coplanar or parallel with an optional distance.
 * ([[Image:Assembly ConstraintCoincidence.svg‎‎|24px]]) Plane Coincidence: Add a "Plane coincidence" constraint to coincide planar faces of two or more parts.
 * The faces are coincided at their centers with an optional distance.
 * [[Image:Part Attachment.svg‎‎|32px]] Attachment: Add an "Attachment" constraint to attach two parts by the selected geometry elements.
 * This constraint completely fixes the parts relative to each other.
 * [[Image:Assembly ConstraintAxial.svg‎‎|32px]] Axial Alignment: Add an "Axial alignment" constraint to align edges/faces of two or more parts.
 * The constraint accepts
 * linear edges, which become collinear,
 * planar faces, which are aligned using their surface normal axis,
 * and cylindrical face, which are aligned using the axial direction.
 * Different types of geometry elements can be mixed.
 * ([[Image:Assembly ConstraintOrientation.svg‎‎|24px]]) Orientation: Add an "Orientation" constraint to align faces of two or more parts.
 * The planes are aligned to have the same orientation (i.e. rotation)
 * [[Image:Assembly ConstraintMultiParallel.svg‎‎|32px]] Multi parallel: Add a "Multi parallel" constraint to make planar faces or linear edges of two or more parts parallel.
 * ([[Image:Assembly ConstraintAngle.svg‎‎|24px]]) Angle: Add an "Angle" constraint to set the angle of planar faces or linear edges of two parts.
 * ([[Image:Assembly ConstraintPerpendicular.svg‎‎|24px]]) Perpendicular: Add a "Perpendicular" constraint to make planar faces or linear edges of two parts perpendicular.
 * [[Image:Assembly ConstraintPointCoincident.svg‎‎|32px]] Point coincident: Add a "Point coincident" constraint to coincide two points in 2D or 3D.
 * [[Image:Assembly ConstraintPointInPlane.svg‎‎|32px]] Point on plane: Add a "Point on plane" to constrain one or more point onto a plane.
 * [[Image:Assembly ConstraintPointOnLine.svg‎‎|32px]] Point on line: Add a "Point on line" to constrain a point onto a line in 2D or 3D.
 * [[Image:Assembly ConstraintPointOnCircle.svg‎‎|32px]] Point on circle: Add a "Point on circle" to constrain one or more points on to a clyndrical surface defined by a cricle.
 * Note that you must select a point (any geometry element can define a point), and then select the circle (or clyndrical surface),
 * after which you can add more points to your selection if you want.
 * [[Image:Assembly ConstraintPointsDistance.svg‎‎|32px]] Points distance: Add a "Points distance" to constrain the distance of two or more points.
 * [[Image:Assembly ConstraintPointPlaneDistance.svg‎‎|32px]] Point plane distance: Add a "Point plane distance" to constrain the distance between one or more points and a plane.
 * [[Image:Assembly ConstraintPointLineDistance.svg‎‎|32px]] Point line distance: Add a "Point line distance" to constrain the distance between a point and a linear edge in 2D or 3D.
 * [[Image:Assembly ConstraintSymmetric.svg‎‎|32px]] Symmetric: Add a "Symmetric" constraint to make geometry elements of two parts symmetric about a plane.
 * The supported elements are linear edge and planar face.
 * [[Image:Assembly ConstraintMore.svg‎‎|32px]] More: Toggle toolbars for more constraints
 * Not really a constraint but a toggle switch to show/hide the Additional Constraints Toolbars.


 * You can enable these by selecting the '...' icon on the Main Constraints toolbar.


 * [[Image:Assembly ConstraintPointDistance.svg‎‎|32px]] Point distance: Add a "Point distance" to constrain the distance of two points in 2D or 3D.
 * [[Image:Assembly ConstraintEqualAngle.svg‎‎|32px]] Equal angle: Add an "Equal angle" to equate the angles between two lines or normals.
 * [[Image:Assembly ConstraintPointsSymmetric.svg‎‎|32px]] Points symmetric: Add a "Points symmetric" constraint to make two points symmetric about a plane.
 * [[Image:Assembly ConstraintGeneral.svg‎‎|24px]] Symmetric horizontal: Symmetric horizontal
 * [[Image:Assembly ConstraintGeneral.svg‎‎|24px]] Symmetric vertical: Symmetric vertical
 * [[Image:Assembly ConstraintSymmetricLine.svg‎‎|32px]] Symmetric line: Add a "Symmetric line" constraint to make two points symmetric about a line.
 * [[Image:Assembly ConstraintPointsHorizontal.svg‎‎|32px]] Points horizontal: Add a "Points horizontal" constraint to make two points horizontal with each other when projected onto a plane.
 * [[Image:Assembly ConstraintPointsVertical.svg‎‎|32px]] Points vertical: Add a "Points vertical" constraint to make two points vertical with each other when projected onto a plane.
 * [[Image:Assembly ConstraintLineHorizontal.svg‎‎|32px]] Line horizontal:Add a "Line horizontal" constraint to make a line segment horizontal when projected onto a plane.
 * [[Image:Assembly ConstraintLineVertical.svg‎‎|32px]] Line vertical: Add a "Line vertical" constraint to make a line segment vertical when projected onto a plane.
 * [[Image:Assembly ConstraintArcLineTangent.svg‎‎|32px]] Arc line tangent: Add an "Arc line tangent" constraint to make a line tangent to an arc at the start or end point of the arc.


 * [[Image:Assembly ConstraintSketchPlane.svg‎‎|32px]] Sketch plane: Add a "Sketch plane" to define the work plane of any draft element inside or following this constraint.
 * Add an empty "Sketch plane" to undefine the previous work plane.
 * [[Image:Assembly ConstraintLineLength.svg‎‎|32px]] Line length: Add a "Line length" constrain the length of a non-subdivided Draft.Wire.
 * [[Image:Assembly ConstraintEqualLength.svg‎‎|32px]] Equal length: Add an "Equal length" constraint to make two lines of the same length.
 * [[Image:Assembly ConstraintLengthRatio.svg‎‎|32px]] Length ratio: Add a "Length ratio" to constrain the length ratio of two lines.
 * [[Image:Assembly ConstraintLengthDifference.svg‎‎|32px]] Length difference: Add a "Length difference" to constrain the length difference of two lines.
 * [[Image:Assembly ConstraintLengthEqualPointLineDistance.svg‎‎|32px]] Length Equal Point Line Distance: Add a "Length Equal Point Line Distance" to constrain the distance
 * between a point and a line to be the same as the length of a another line.
 * [[Image:Assembly ConstraintGeneral.svg‎‎|24px]] ( [[Image:Assembly ConstraintEqualLineArcLength.svg‎‎|32px]] )Equal Line Arc Length: Add an "Equal Line Arc Length" constraint to make a line of the same length as an arc.
 * [[Image:Assembly ConstraintMidPoint.svg‎‎|32px]] Mid point: Add a "Mid point" to constrain a point to the middle point of a line.
 * [[Image:Assembly ConstraintDiameter.svg‎‎|32px]] Diameter: Add a "Diameter" to constrain the diameter of a circle/arc.
 * [[Image:Assembly ConstraintEqualRadius.svg‎‎|32px]] Equal radius: Add an "Equal radius" constraint to make two circles/arcs of the same radius.
 * [[Image:Assembly ConstraintPointsProjectDistance.svg‎‎|32px]] Points project distance: Add a "Points project distance" to constrain the distance of two points projected on a line.
 * [[Image:Assembly ConstraintEqualPointLineDistance.svg‎‎|32px]] Equal point line distance: Add an "Equal point line distance" to constrain the distance
 * between a point and a line to be the same as the distance between another point and line.
 * [[Image:Assembly ConstraintColinear.svg‎‎|32px]] Collinear: Add a "Collinear" constraint to make two lines collinear.


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


 * Theses functions are useful when working with an assembly with a hierarchy of linked external files


 * [[Image:Assembly_GotoRelation.svg‎‎|32px]] Go to relation: Select the corresponding part object in the relation group
 * [[Image:LinkSelect.svg‎‎|32px]] Select linked object: Select the linked object
 * [[Image:LinkSelectFinal.svg‎‎|32px]] Select linked final: Select the deepest linked object


 * The Measurement toolbar adds functions to measure the distance or the angle between two objects


 * [[Image:Assembly MeasurePointDistance.svg‎‎|32px]] Measure points: Add a "Measure points" to measure the distance of two points in 2D or 3D.
 * [[Image:Assembly MeasurePointLineDistance.svg‎‎|32px]] Measure point to line: Add a "Measure point to line" to measure the distance between a point and a linear edge in 2D or 3D.
 * [[Image:Assembly MeasurePointPlaneDistance.svg‎‎|32px]] Measure point to plane: Add a "Measure point to plane" to measure the distance between a point and a plane.
 * [[Image:Assembly MeasureAngle.svg‎‎|32px]] Measure angle: Add a "Measure angle" to measure the angle of planar faces or linear edges of two parts.


 * There is no function to measure a radius or diameter.
 * The measurement tools survive part changes, e.g. the distance between edges of a cube when the cube is re-sized.
 * As the constraints the calculations are done in real time and updated upon any change. Behind the scenes, the function is very similar to the constraints. The distance or angle is calculated between Elements in the same way as for constraints. The display in the tree works in the same way.

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