Assembly3 Workbench/de

Einleitung
Assembly3 ist ein externer Arbeitsbereich, zum Zusammenbau verschiedener Körper aus einer oder mehreren Dateien. Der Arbeitsbereich basiert auf einigen Änderungen der Kernfunktionen von FreeCAD 0.19 (z.B. App-Link), sodass der Assembly3-Arbeitsbereich nicht mit älteren Versionen verwendet werden kann.

Die wichtigsten Eigenschaften der Assembly3-Arbeitsumgebung sind
 * der dynamische/interaktive Gleichungslöser. Das heißt, dass man Teile mit der Maus bewegen kann, während der Löser die Bewegung einschränkt. Dies erlaubt z.B. ein Rad und eine Achse zu verbinden und das Rad interaktiv mit der Maus zu drehen.
 * Verknüpfungen. Das heißt, dass man ein einzelnes Teil, wie z.B. eine Schraube, mehrfach (an unterschiedlichen Stellen) im Zusammenbau verwenden kann, ohne die Geometrie zu vervielfachen.
 * externe Verknüpfungen. Es ist möglich, dass ein Freecad-Dokument nur einen Zusammenbau und keine Einzelteile enthält. Alle Bauteile können in separaten Dateien abgelegt sein. Die Daten könnten auch in einer Bibliothek oder anderswo im Dateisystem liegen. Die einzige Voraussetzung ist die, dass die Datei geladen sein muss, wenn die Verknüpfung angelegt wird. Nachdem die Verknüpfung erstellt wurde, muss die Datei geöffnet sein um die Verknüpfungen die die Datei betreffen zu aktualisieren. Assembly3 erreicht dies, indem es die Dateien bei Bedarf im Hintergrund öffnet.
 * hierarchische Zusammenbauten. Wie im richtigen Leben darf ein mechanischer Zusammenbau aus Unterbaugruppen bestehen. Diese könnten wiederum weitere Unterbaugruppen enthalten usw.
 * Zusammenbauten einfrieren. Da die CPU nur eine bestimmte Anzahl gleichzeitiger Einschränkungen in Echtzeit bearbeiten kann, ermöglicht das Einfrieren eines Zusammenbaus Einschränkungen sogar für große Zusammenbauten zu verwenden. Durch das Einfrieren fertiger Zusammenbauten oder Einschränkungen, die nicht dynamisch verändert werden müssen (z.B. bei verschweißten, vernieteten oder verklebten Bauteilen), werden diese von den Aktualisierungsbrechnungen ausgenommen und werden vom Assembly3-Löser als fixierte Geometrie angesehen.
 * Man beachte, dass andere Herangehensweisen andere Lösungen für dieses Problem anbieten, z.B. der Assembly4_workbench_icon.svg Assembly4-Arbeitsbereich.

Zum Anfang

Werkzeugleisten
Seit 2020 befinden sich folgende Werkzeugleisten in der Assembly3-Arbeitsumgebung.


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


 * Die Werkzeugleisten der Einschränkungen sind die Hauptschnittstelle für den Zusammenzubau von Einzelteilen. Sie sind standardmäßig ausgegraut, werden aber aktiviert, sobald mindestens eine Fläche, eine Linie oder ein Punkt eines Teiles ausgewählt wird. Normalerweise werden erst die zu verbindenden Elemente ausgewählt und danach die art der Einschränkung. Die unterschiedlich gefärbten Rahmen weisen auf unterschiedliche Eigenschaften der Einschränkungen hin: ob 2D / 3D oder ob mehr als 2 Elemente zusammengefügt werden können. Eine ausführliche Beschreibung ist im GitHub-Wiki zu finden.


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

Wie gewohnt, kann die Werkzeugleiste geändert und einzelne Werkzeuge hinzugefügt oder entfernt werden. Im Assembly3-Menü sind weitere Funktionen vorhanden, die sich nicht in den Werkzeugleisten befinden.

Zum Anfang

Einschränkungen
Der Konstrukteur benutzt Einschränkungen (Festlegungen) um zwei Teile zueinander auszurichten. Die Kunst besteht darin, die Einschränkungen zu wählen, die am besten zu den jeweiligen Anforderungen passen. Jeder bestimmte Freiheitsgrad sollte theoretisch nur einmal zwischen zwei Objekten festgelegt sein, aber in der Praxis vieler CAD-Werkzeuge erzeugen die ausgewählten Einschränkungen überbestimmte Kombinationen, die oft durch komplexe Algorithmen ausgeglichen werden können, manchmal aber auch nicht. Assembly3 benutzt solche Algorithmen, um überbestimmte Einschränkungen zu entdecken und auszugleichen, aber sie sind bisher noch nicht besonders ausgereift. Also sollte man im Umgang mit Assembly3-Einschränkungen Schwierigkeiten vermeiden, indem man darauf achtet, wieviele Freiheitsgrade auftreten und welche noch durch Einschränkungen festzulegen sind. Kein Teil sollte eine Verbindung durch Einschränkungen haben, bei der mehr als 6 Freiheitsgrade festlegt werden.


 * Achtung: Wenn der Gleichungslöser auf eine Zusammenstellung trifft, die nicht gelöst werden kann, gibt er eine Fehlermeldung aus. Es ist für den Löser sehr schwierig, die Ursache des Problems herauszufinden, sodass man normalerweise aus dem angegebenen Fehler nicht klar erkennen kann, "wo" sich das Problem befindet. Bei größeren Zusamenbauten kann dies zu aufwändigen Fehlersuchen führen. Leider gibt es keinen einfachen Weg, diese zu vermeiden. Allerdings hilft es, im Blick zu behalten, wie das System funktioniert (siehe z.B. Elemente weiter unten), eindeutige Namen für alle betroffenen Komponenten zu vergeben und nur dann weitere Einschränkungen hinzuzufügen, wenn der Gleichungslöser den aktuellen Zusammenbau berechnet. Um ein Problem nachverfolgen zu können, ist die "ContexMenu/Deactivate"-Funktion der jeweiligen Einschränkung sehr hilfreich.

Assembly3-Einschränkungen definieren Festlegungen bezüglich der Position oder der Orientierung zweier Elemente zueinander. Einige Einschränkungen arbeiten sogar mit mehr als zwei Elementen. Ein Element kann eine Fläche, eine Linie oder Kante, oder ein Punkt eines Teiles sein. Generell werden Einschränkungen erstellt, in dem man erst die gewünschten Elemente und danach die Einschränkungen aus den Werkzeugleisten der Einschränkungen auswählt.

Other
 * Fixiert 6 Freiheitsgrade, 0 bleiben unbestimmt:
 * Fixierung (Schloss): Die Fixiereinschränkung legt alle Freiheitsgrade einer Fläche. Sie sollte in jedem Zusammenbau zur Festlegung eines Basisteils genutzt werden. Es ist sinnvoll auch gleich die "Bewegung ausschließen für fixierte Teile"-Funktion (in der Werkzeugleiste) zu aktivieren, um damit ein unbeabsichtigtes Verschieben zu verhindern. In der Regel ist es egal welche Fläche, Linie oder Punkt benutzt wird um ein Teil zu fixieren. Man beachte, dass die Fixierung nur auf den aktuellen Zusammenbau wirkt, d.h. im Falle einer Unterbaugruppe braucht der übergeordnete Zusammenbau noch ein eigenes fixiertes Teil.
 * Anhang: Legt die Koordinatensysteme der ausgewählten Elemente (zweier oder mehrerer Teile) deckungsgleich aufeinander. Dies ist die für die Berechnung günstigste Funktion und sollte, wo immer möglich, benutzt werden. Man beachte, dass man die Eigenschaften der Elemente nutzen kann, um Abstände und Winkel einzustellen, wenn die Elemente nicht optimal zueinander ausgerichtet sind.
 * Fixiert 5 Freiheitsgrade, 1 bleibt unbestimmt:
 * Lagegleiche Ebenen: fixes Tx,Ty,Tz, Rx,Ry. Only Rz is free. There remains the rotation around the normal passing through the ‘‘center of the plane’’.
 * Fixiert 4 Freiheitsgrade, 2 bleiben unbestimmt:
 * Axial Alignment: fixes Tx,Ty, Rx,Ry. Only Tz, Rz are free. There remains the rotation around the axis of the shape and the translation along this same axis. Two PointOnLine constraints (if the two points are different) give the same result. The '‘Colinear'’ constraint too.
 * PointOnLine: This eliminates the translation and rotation along the normals to the reference line. Only the translation and rotation along the line axis is allowed.
 * Fixiert 3 Freiheitsgrade, 3 bleiben unbestimmt:
 * Same Orientation: fixes Rx,Rz,Rz. All T's remain free.
 * Points Coincident: fixes Tx,Ty,Tz. All R's remain free.
 * PointOnPoint constraint eliminates the 3 translations.
 * Plane Alignment: fixes Tz, Rx,Ry. In plane motion and Rz. This eliminates the translation along the normal to the reference plane and the two rotations around the axes of this plane.
 * Fixiert 2 Freiheitsgrade, 4 bleiben unbestimmt:
 * Multi Parallel: fixes Rx,Ry. all T's and Rz remain. This eliminates the two rotations around the axes of the reference plane.
 * Fixiert 1 Freiheitsgrad, 5 bleiben unbestimmt:
 * Points in Plane: Fixes Tz. This eliminates the translation along the normal to the reference plane.
 * Points Distance: fixes the distance between the Element origins.
 * This gives you more freedom than Points in Plane
 * Points on Circle: fixes Tz and partially Tx,Ty. Freezes the point translation (or several points) on a circle or disk area. You must pick the circle second. This leaves all rotations free and gives limited translation in the circle reference plane.

'': Hinweis: In der folgenden Liste werden Tx,Ty,Tz und Rx,Ry,Rz benutzt, um Translations- (Verschiebe-) und Rotations- (Dreh-) Bewegungen bezogen auf die Koordinatenachsen des betreffenden Elements zu beschreiben. Dies ist nicht immer exakt oder vollständig beschrieben, wie z.B. wenn es eine Linie betrifft, ist es nicht definiert, ob sie in X-Richtung, Y-Richtung oder einem beliebigen Winkel dazwischen verläuft. Das System sorgt eher für Kürze und einfache Vergleichbarkeit, als für eine korrekte aber komplexere Definition. So ist Z normalerweise die Richtung der Flächennormalen der betroffenen Flächen.

Zum Anfang

Elemente
Elemente wird in der Assembly3-Arbeitsumgebung als besonderer Begriff benutzt, und Elemente zu verstehen ist wichtig für das Verständnis, wie Assembly3 benutzt werden sollte.

Es ist hilfreich ein Element als einen generellen Begriff für 'auswählbarer Bestandteil' eines Teiles zu sehen wie z.B. eine Fläche, eine Kante, ein Kreis, eine Ecke oder ein Punkt. Dies sind die Elemente, die ausgewählt werden, um Teile zueinander in Beziehung zu setzen. Im Baum hat ein 'Assembly'-Ordner drei Unterordner. Neben 'Parts' und 'Constraints' gibt es einen Ordner namens 'Elements', der leer bleibt, solange keine Einschränkungen hinzugefügt werden. Wenn eine Einschränkungen hinzugefügt wird, erhält sie selbst zwei (oder mehr) Blätter, dies sind die ausgewählten Elemente. Auch werden diese Elemente dem 'Elements'-Ordner hinzugefügt, der eine Liste aller im Zusammenbau benutzten Elemente darstellt. Es ist eine gute Idee, ihre Namen zu ändern (mit der F2-Taste), besonders in größeren Zusammenbauten.

Sehen wir uns ein Beispiel an
 * Es wird eine neue Datei erstellt und mit der Part-Arbeitsumgebung ein Würfel und ein Zylinder hinzugefügt. Es soll der Zylinder auf den Würfel gestellt werden. Zuerst wird das Basisteil fixiert, in diesem Fall der Würfel. Dazu wird die Unterseite des Würfels und danach die Fixiereinschränkung (das erste Symbol in der Werkzeugleiste der Haupteinschränkungen) ausgewählt. Es werden die Oberseite des Würfels und die Oberseite des Zylinders ausgewählt. Danach wird die 'Plane Coincident'-Einschränkung ausgewählt. Nun hat sich der Zylinder in den Würfel hinein bewegt und im Baum wurde ein neues Blatt mit zwei Kindknoten unter 'Constraints' hinzugefügt. Zusätzlich wurden die selben zwei Kindknoten unter 'Elements' hinzugefügt. Falls der Zylinder im Inneren des Würfels liegt, anstatt auf seiner Oberseite wird dies als nächstes korrigiert: Den Kindknoten unter 'Constraints' auswählen, zu dem die Zylinderfläche gehört, und mit einem Rechtsklick im Kontextmenü 'Flip Part' auswählen.  Nun wurde der Zylinder auf die Würfeloberseite gestapelt.

Der Schlüsselgedanke ist, zu verstehen, dass eine Einschränkung mit den Verweisen zu den Elementen in der Liste im 'Elements'-Baumabschnitt arbeiten. Dies erlaubt es die Struktur aus Einschränkungen intakt zu halten, während Teile ausgetauscht werden. Ohne Beispiel ist dies nur schwer zu begreifen.

Zurück zum obigen Beispiel
 * Achtung: Es sollte darauf geachtet werden, dass die Fixiereinschränkung zum Würfel hinzugefügt wurde, andernfalls wird es verwirrend aussehen.
 * Im CAD-Fenster wird eine weitere Fläche des Würfels ausgewählt. Ab jetzt wird nur noch in der Baumansicht gearbeitet. Im Baum wird die Maus über dem auszuwählenden Würfel platziert. Der Würfel wird per 'Drag&Drop' auf den 'Elements'-Ordner gezogen und abgelegt. Das Ablegen sollte auf dem Namen des 'Elements' erfolgen, nicht anderswo im Ordner - warum, sehen wir später. Es sollte erkennbar sein, das ein weiteres Element zur 'Elements'-Liste hinzugefügt wurde. Nun wird im 'Constraints'-Ordner der Kindknoten der Würfelfläche in der 'Plane Coincident'-Einschränkung ausgewählt und aus der Liste entfernt. Die Einschränkung ist nun mit einem Ausrufezeichen gekennzeichnet, da ihr ein Element fehlt. Hierbei ist zu beachten, dass ein Element, das aus der Einschränkung entfernt wurde, nicht auch aus der (Element-)Liste gelöscht wurde. Der Grund dafür ist, dass in der Einschränkung nur ein Verweis zum Element in der Liste abgelegt wird. Nun kann das neu zur 'Elements'-Liste hinzugefügte Element per 'drag&drop' auf die 'Plane Coincident'-Einschränkung gezogen und abgelegt. Damit bewegt sich der Zylinder zu der anderen Fläche des Würfels, die vorher ausgewählt wurde. Wenn der Zylinder im Inneren des Würfels liegt, muss nochmals im Kontextmenü 'flip part' ausgewählt werden.

Das Beispiel zeigt, dass man die zur Einschränkung gehörenden Elemente austauschen kann, ohne die Einschränkung zu Löschen. Auf dieselbe Weise kann der Zylinder auch zu einem ganz anderen Teil bewegt werden. Nachdem man etwas mit diesem Beispiel herumgespielt hat, wird man noch zusätzliche Möglichkeiten entdecken, wie z.B.
 * Wenn ein Element in der Liste umbenannt wird, wird es auch in allen Einschränkungen umbenannt
 * Ein Element der Liste kann für mehrere Einschränkungen verwendet werden.
 * Das Eigenschaftsfenster eines Elements kann verwendet werden, um Versatzangaben  (Offsets) hinzuzufügen. Z.B. kann hiermit der Zylinder auf unterschiedliche Positionen auf der gewählten Würfelfläche platziert werden.
 * Man kann den 'Show Element Coordinate System'-Knopf der Hauptwerkzeugleiste benutzen, um zu sehen, wie sich 'Flip Part' und 'Flip Element' aus dem Kontextmenü auswirken. Nicht vergessen, die Änderungen im Eigenschaftsfenster zu beobachten.
 * Eine Einschränkung kann auch in einer ganz anderen Reihenfolge hinzugefügt werden: Zuerst werden Elemente zur 'Elements'-Liste hinzugefügt (Eine Benennung ist hier nützlich, z.B. "Würfel-Oberseite" oder "Würfel-Unterseite"), dann wird eine Einschränkung hinzugefügt, ohne etwas auszuwählen - Das ergibt eine leere Einschränkung. Dann werden Elemente aus der Liste per 'Drag&Drop' hierher gezogen und abgelegt. Das Ergebnis ist das gleiche, wie in dem ersten Beispiel. Nach dieser Übung sollte klar sein, wie Einschränkungen und Elemente zusammenarbeiten.
 * Eine bestehende Einschränkung zwischen bestehenden Elementen kann einfach ausgetauscht werden, indem man eine andere Auswahl in der 'ConstraintType'-Eigenschaft im Eigenschaftsfenster trifft.

Zum Anfang

Kompatibilität
Assembly3 wurde vom Assembly2-Arbeitsbereich inspiriert, ist aber nicht mit diesem kompatibel. Wenn ältere Baugruppen in Assembly2 erstellt wurden, sollte man bei FreeCAD 0.16 bleiben und Assembly2 verwendet.

Neue Baugruppen, die mit Assembly3 erstellt wurden, sollten nur in diesem Arbeitsbereich geöffnet und bearbeitet werden.

Obwohl sie möglicherweise über ähnliche Werkzeuge verfügen, ist Assembly3 nicht kompatibel mit A2plus und Assembly4. Baugruppen, die in diesen Arbeitsbereichen erstellt wurden, sollten nur in dem jeweiligen Arbeitsbereich geöffnet werden.

Zum Anfang

Testen
Der Assembly3 Arbeitsbereich befindet sich in der Entwicklung und ist noch nicht (April 2020) über den Addon Manager verfügbar.

Assembly3 kann auf zwei Arten getest werden:
 * Eine spezielle Abspaltung von FreeCAD von realthunder; siehe FreeCAD_assembly3 releases. Dieser Fork basiert auf einem bestimmten Commit des Master-Zweiges von FreeCAD, hat aber auch zusätzliche Funktionen, die derzeit im Master-Zweig nicht vorhanden sind. Da dieser Fork auf einem bestimmten Entwicklungs-Snapshot basiert, verfügt er nicht über die neuesten Funktionen, die täglich in den Master-Zweig eingebunden werden.
 * Die Entwicklung AppImage; diese basiert auf dem aktuellen Master-Zweig und beinhaltet die Abhängigkeiten, die für die Arbeit mit Assembly3 benötigt werden, wie z.B. den SolveSpace Solver.

Da das AppImage nur unter Linux funktioniert, ist für Windows-Benutzer im Moment die erste Option (realthunder's fork) die einzige Möglichkeit, Assembly3 zu testen.

Zum Anfang

...Startet
Es gibt viele Wege einen Zusammenbau mit Assembly3 zu erstellen. Hier wird der einfachste gezeigt.


 * Assembly3_Example-GettingStarted.jpg
 * Endergebnis des 'Wie man startet'-Beispiels. In dem Bild ist die Assembly3-Arbeitsumgebung ausgewählt, sodass ihre unterschiedlichen Werkzeugleisten sichtbar sind. Beachte, dass die vertikale 'TabBar'-Leiste links neben der Baumansicht eine zusätzliche Arbeitsumgebung ist und nicht Bestandteil von Standard-FreeCAD (aber mit dem Addon-Manager installiert werden kann).


 * Eine neue FreeCAD-Datei erstellen
 * Assembly3-Arbeitsumgebung auswählen. CreateAssembly auswählen (erstes Symbol)
 * Part-Arbeitsumgebung auswählen und einen Zylinder und einen Würfel hinzufügen
 * Die Datei mit einem beliebigen Namen speichern, danach schließen und wieder öffnen.
 * Die Baumansicht sollte ungefähr so aussehen:


 * Nun mit der Maus per 'Drag&Drop' Zylinder und Würfel auf den PartsOrdner ziehen und ablegen. Beide wurden in den Ordner verschoben.
 * Das ist der schnellste Weg. Bitte beachten, dass es einen besseren Weg gibt, bei dem die Kontextmenüs beider Objekte geöffnet werden und ContetxMenu/LinkActions/MakeLink ausgewählt wird. Dies fügt zwei Verweisdateien hinzu. Dann werden die Verweisdateien auf den Parts-Ordner gezogen und abgelegt. Für einfache Fälle wie diesen speilt es keine große Rolle.
 * Anklicken der beiden Oberseiten von Zylinder und Würfel (Strg gedrückt halten).
 * Assembly3-Arbeitsumgebung auswählen. 'PlaneCoincident' aus der 'Constraint'- Werkzeugleiste auswählen.
 * Jetzt sollten beide Teile miteinander verbunden sein und der Baum sollte so aussehen:

Bisher wurde ein wichtiger Schritt ausgelassen, den man besonders für größere Zusammenbauten nicht vergessen sollte: Das Fixieren eines Basisteils. D.h. ein Teil zu definieren, das nicht durch Einschränkungen bewegt werden soll. In Diesem Fall wird dafür der Würfel benutzt: Fertig. Wenn gewünscht, kann die Fixiereinschränkung im Baum weiter nach oben bewegt werden. Dazu wird der "MoveItemUp"-Knopf der Hauptwerkzeugleiste benutzt.
 * Rechtsklick auf "_Element" (eins der beiden) und "Flip Part" auswählen.
 * Nun sollte sich der Zylinder oben auf dem Würfel befinden. Wenn das Gebilde auf dem Kopf steht, einen Schritt zurückgehen und "Flip Part" auf dem anderen Element auswählen.
 * Auswahl der Unterseite des Würfels. Nur die Unterseite, nicht der ganze Würfel.
 * Auswahl der Fixiereinschränkung aus der 'Constraint'-Werkzeugleiste.
 * Der fertige Zusammenbau sollte so wie auf dem obigen Bild aussehen.

Achtung: Alle neuen externen Dateien müssen wenigstens einmal gespeichert, geschlossen und wieder geöffnet sein, damit Assembly3 sie finden kann. Tut man es nicht, kann FreeCAD keine Datei-Handler an den the Assembly3-Arbeitsbereich übergeben und dieser kann die neuen Bauteile nicht finden. Wenn alle Bauteile in der selben Datei abgelegt werden, sollte diese geschlossen und wieder geöffnet werden.

Zum Anfang

...einen Versatz hinzufügt
Assembly3 bietet nicht die Möglichkeit mit den Einschränkungen einen Versatz zu erstellen, wie man es von der A2plus-Arbeitsumgebung oder anderen CAD-Programmen her kennt. Im Gegensatz dazu bietet es ein allgemeineres und flexibleres System um Abstände, Verschiebungen aber auch Drehungen festzulegen.


 * Einen Versatz in den Eigenschaften eines Elements einer Einschränkung hinzufügen.
 * Es ist gleich, welches der beiden Elemente benutzt wird.

Beispiel:
 * Zwei Würfel zu einem Zusammenbau hinzufügen und ihre Seitenflächen auswählen.
 * "PlaneCoincident" auswählen. Die Würfel werden ineinanderliegend verbunden.
 * Ein Element und ContextMenu/Flip Part auswählen. Die Würfel werden seite-an-seite-liegend verbunden.
 * die Eigenschaft 'Offset/Position/z' eines Elements auswählen und auf 5 mm setzen. Die Würfel liegen nun 5 mm auseinander.
 * Man kann noch den Versatz entlang der anderen Raumachsen und die Drehungen um die Achsen ausprobieren. Und man sollte überprüfen, dass man das gleich Ergebnis erreicht, wenn man die Einstellungen am anderen Element vornimmt.

Dies gilt sinngemäß auch für alle anderen Einschränkungen.

Zum Anfang

...einen Fehler des Gleichungslösers behebt
Dies passiert meistens, wenn Zusammenbauten überbestimmt sind, d.h. mehr als 6 Freiheitsgrade (DOFs) festlegt sind.

Der einfachste Weg das Problem zu finden, ist das Anklicken der entsprechenden Einschränkungen, die Auswahl von ContextMenu/Disable und anschließender Neuberechnung. Es ist hilfreich zu wissen, welche Einschränkungen als letzte hinzugefügt wurden, bevor die Berechnung des Gleichungslösers fehlgeschlagen ist, um diese einfach zurückzunehmen.

Achtung: Da Assembly3 hinter den Kulissen versucht überbestimmte Teile auszugleichen, kann es vorkommen, dass eine neue Einschränkung scheinbar eine Fehlfunktion auslöst, die tatsächliche Ursache aber an einer anderen Stelle zu finden ist. Bevor man nun alles löscht und von vorne beginnt, sollte man daran denken, dass man Elemente wiederverwenden kann. Wenn sie benannt wurden, können die erforderlichen Elemente leicht ermittelt und die Einschränkungen erneut aufgebaut werden, ohne die 3D-Ansicht zu verwenden. Siehe auch obigen Elemente-Abschnitt.

Zum Anfang

...ein Teil austauscht oder einen Dateinamen ändert
Wenn ein Teil entfernt wurde, oder sich ein Dateiname ändert, zerbricht der Zusammenbau; er kann nicht länger berechnet werden und der Gleichungslöser gibt die Meldung "Inconsistent constraints" aus. Der Gleichnungslöser markiert ungültige Elemente und Einschränkungen im Baum mit einem Fragezeichen.

Ein Weg die Aufgabe zu lösen, ist einfach alle ungültigen Einschränkungen und Elemente zu löschen und anschließend das neue Teil zu laden und alle nötigen Schritte zu wiederholen. Aber es gibt einen besseren Weg:


 * Eine Datei umbenennen
 * Einen Dateimanager benutzen, um die Datei zu kopieren, umbenannt werden soll. Anschließend gibt man der Kopie den neuen Namen.
 * Öffnen der Kopie in FreeCAD. Der Zusammenbau und die alte Datei sollten auch geöffnet sein.
 * Das alte Objekt im Baum auswählen und per Klick die Eigenschaft 'Linked object' ändern (sie enthält den alten Dateinamen).
 * Ein Dialogfenster mit einer Auflistung aller geöffneten Teile öffnet sich. Es zeigt die Dateinamen und Objekte aller Teile an. Das alte Teil und das zugehörige Objekt sind ausgewählt. Das umbenannte Teil wird im Baum abgelegt und das gleiche Objekt des neuen Teiles ausgewählt. Danach die Auswahl bestätigen.
 * Die alte Datei aus dem Baum entfernen. Die Datei kann jetzt auch gelöscht werden.
 * Die Einschränkungen und Elemente des alten Teiles sind ungültig geworden. Jetzt wird die Einschränkung oder die 'Elements'-Liste im Baum geöffnet und anschließend nacheinander
 * Jede Element-Fläche am neuen Teil ausgewählt. Ein Objekt im Baum wird hervorgehoben.
 * Das Objekt per 'drag&drop' auf das alte Element ziehen und ablegen (entweder in der 'Elements'-Liste oder in einer der Einschränkungen, wo es benutzt wurde). Das Element sollte jetzt gültig werden.
 * Diesen Ablauf für die übrigen Elemente wiederholen. Oft reicht ein einzelnes Element dafür aus, dass Assembly3 die übrigen Elemente des Teiles automatisch erkennen kann.
 * Falls ein Element ausversehen einer falschen Fläche zugeordnet wurde, wird die Zuordnung einfach mit der korrekten Fläche wiederholt.
 * Ändern des Objektnamens in FreeCAD, falls gewünscht


 * Ein Teil durch ein anderes Teil ersetzen
 * Welches dem originalen Teil ähnlich genug ist, dass die originalen Einschränkungen noch sinnvoll sind.
 * Das alteTeil aus dem Baum entfernen. Die Datei kann jetzt auch gelöscht werden.
 * Die Einschränkungen und Elemente des alten Teiles sind ungültig geworden. Jetzt wird die Einschränkung oder die 'Elements'-Liste im Baum geöffnet.
 * Eine Element-Fläche am neuen Teil auswählen. Ein Objekt im Baum wird hervorgehoben.
 * Das Objekt per 'drag&drop' auf das alte Element ziehen und ablegen (entweder in der 'Elements'-Liste oder in einer der Einschränkungen, wo es benutzt wurde). Das Element sollte jetzt gültig werden.
 * Diesen Ablauf für die übrigen Elemente wiederholen.
 * Falls ein Element ausversehen einer falschen Fläche zugeordnet wurde, wird die Zuordnung einfach mit der korrekten Fläche wiederholt.
 * Ändern des Objektnamens in FreeCAD, falls gewünscht

''Hinweise
 * Es ist nicht so kompliziert, wie es hier auf den ersten Blick aussieht. Nach 2-3 Durchläufen sollten die Abläufe in Fleisch und Blut übergehen und die Ausführung leicht von der Hand gehen.
 * Es ist nicht nur viel schneller als das Löschen und erneute Anlegen von Einschränkungen, sondern auch sicherer, da ein Element in einem übergeordneten Zusammenbau eingesetzt sein könnte. Das Original zu löschen, würde den Verweis zerstören, es neu zuzuordnen würde ihn erhalten.
 * Ferner beschleunigt und vereinfacht es diesen Ablauf, wenn Einschränkungen und Elemente benannt werden. Es gäbe kein Raten, wo die Flächen hingezogen und abgelegt werden sollten, da es aus den Namen hervorgeht (siehe auch Tipps & Tricks).

Zum Anfang

Tipps & Tricks

 * Hierarchisch aufgebaute Zusammenbauten helfen dabei, Probleme des Gleichnungslösers zu vermeiden und das Modell schlank zu halten. Man kann eine Unterbaugruppe mit einem Klick einfrieren und so ohne Aufwand CPU-Resourcen einsparen (Im Kontextmenü des Baumes). Wenn ein Zusammenbau geladen wird, muss Assembly3 die externen Dateien der eingefrorenen Unterbaugruppen nicht öffnen, wodurch der Baum kompakt gehalten wird.
 * Es ist sehr hilfreich, sich anzugewöhnen, Einschränkungen und Elemente zu benennen. Im Baum lässt es sich schnell durch Benutzung der -Taste erledigen. Sehr nützlich ist auch das Werkzeug zum Sortieren des Baumes, das man in der Hauptwerkzeugleiste findet. Ein Zusammenbau mit vollständig benannten Einschränkungen und Elementen ist für andere Leute sehr einfach zu verstehen, oder auch für einen selbst, wenn man sich ältere Modelle ansieht.
 * Beispiele für Namen von Einschränkungen für einen Tisch könnten lauten: "Ausrichtung_Beine_vorne", "Ausrichtung_RahmenUnterseite-BeinOberseite" und Elementnamen könnten sein: "Bein1_Oberseite", "Tischplatte_Vorderseite" oder "Tischplatte_linke_Seite".
 * Bitte beachten, dass, sobald externe Dateien durch einen Zusamenbau geöffnet werden, es nicht mehr möglich ist, diese auf einfache Weise zu schließen, ohne auch den Zusammenbau zu schließen. Da der Zusammenbau die Dateien im Hintergrund offen hält, kann der Reiter verschwinden, aber die Dateien bleiben im Baum sichtbar. Wenn man Zusammenbauten über mehrere Ebenen hat, kann es fast unmöglich sein einzelne Dateien zu schließen. Dieses Verhalten kann sich in Zukunft ändern, aber bis dahin bleibt die Möglichkeit, Die Befehle File/Save All und File/Close All zu nutzen, um den Baum aufzuräumen, bevor an einer anderen Unterbaugruppe gearbeitet wird.
 * ''Beispiel: Man hat eine große CNC-Maschine mit einem Hauptzusammenbau und Unterbaugruppen für alle Module. Sobald man den Hauptzusammenbau geladen hat, wird er hunderte Dateien bis hin zur kleinsten Schraube öffnen. Bevor man nun die Baugruppe des Elektronikfachs der Maschine bearbeitet, ist es eine gute Idee, alle Dateien zu speichern und zu schließen, um einen leeren Baum zu erhalten. Dann wird nur die Unterbaugruppe des Elektronikfachs geöffnet. Sie öffnet alle benötigten Dateien, aber auch nur diese.
 * Externe Dateien zu benutzen, macht es einfacher, Teile wiederzuverwenden oder Bauteilversonierung mit Systemen wie git oder subversion zu ermöglichen. Der Arbeitsablauf in FreeCAD mit Assembly3 fühlt sich fast genauso an, wie der mit Dateien, in denen alle zusammengehörigen Teile in jeweils einer Datei enthalten sind. Letzteres bietet sich an, wenn man häufig Baugruppen mit anderen Beteiligten austauscht.
 * Mehrfach verknüpfte Dateien. Wenn man eine Dateiverknüpfung zu einem Zusammenbau hinzufügt, wird eine Eigenschaft "Element Count" angelegt mit Standardwert 0. Wenn man diesen auf 3 setzt, erhält man 3 Instanzen dieses Teils. Sie werden in einem Unterordner hinzugefügt und können wie vollständig unabhängige Teile verwendet werden. Diese Einstellung kann genutzt werden, um den Speicherplatzverbrauch der Datei klein zu halten, da das Teil nur einmal gespeichert wird. Die Instanzen enthalten nur die Unterschiede.
 * Einsetzen mehrfacher Teile, wie z.B. Schrauben, mit einem Klick. Siehe Assembly3 Wiki auf der Github-Seite. Dies ist nicht nur eine erstaunliche Funktion (vielleicht ein bisschen magisch), sondern auch sehr sehr nützlich.


 * Die Benutzung der TabBar-Arbeitsumgebung beschleunigt die Arbeit mit Zusammenbauten. Es wird eine Werkzeugleiste mit je einem Knopf für jede Arbeitsumgebung hinzugefügt. Man kann die Reihenfolge ändern und man kann die Werkzeugleiste nach belieben platzieren. Veile Leute legen sie vertikal an den linken Rand direkt neben der Baumansicht. Wenn man Assembly3, Part, PartDesign und andere oft genutzte Arbeitsumgebungen am oberen Ende platziert, macht es das Umschalten zwischen den Arbeitsumgebungen extrem einfach.

Zum Anfang

Verknüpfungen/Verweise

 * App Link Programm, um die Arbeit mit Assembly3 möglich zu machen.
 * FreeCAD_assembly3 Repository und Dokumentation.
 * Assembly3 preview, große Diskussionsrunde.
 * Test tutorial for Assembly 3 WB von jpg87.
 * Current Assembly Status
 * Externe Arbeitsbereiche
 * Altes Assembly Projekt Entwicklungsablauf, um sich mit der Geschichte des Themas vertraut zu machen.