Assembly3 Workbench/de: Difference between revisions

From FreeCAD Documentation
(Created page with "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 Free...")
No edit summary
 
(272 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


[[File:Assembly3_workbench_icon.svg|128px]]
[[Image:Assembly3_workbench_icon.svg|thumb|128px|Symbol des Arbeitsbereichs Assembly3]]


{{TOCright}}
{{TOCright}}


<span id="Introduction"></span>
== Einleitung ==
==Einleitung==


[[Assembly3_Workbench|Assembly3]] ist ein [[External_workbenches|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|App Link]]), so dass der Assembly3-Arbeitsbereich nicht mit älteren Versionen verwendet werden kann.
[[Image:Assembly3_workbench_icon.svg|24px]] [[Assembly3_Workbench/de|Assembly3]] ist ein [[External_workbenches/de|externer Arbeitsbereich]], der dem Zusammenbau von verschiedenen Körpern dient, die entweder in einem einzigen oder in mehreren separaten Dokumenten gespeichert sind. Der Arbeitsbereich basiert auf einigen Änderungen der Kernfunktionen, die mit FreeCAD 0.19 eingeführt wurden (z.B. [[App_Link/de|App-Link]]), sodass der Arbeitsbereich Assembly3 nicht mit früheren Versionen verwendet werden kann.


Die wichtigsten Eigenschaften der Assembly3-Arbeitsumgebung sind
Die Hauptmerkmale des Assembly3-Arbeitsbereichs 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.
* ein '''dynamischer/interaktiver Löser'''. Das heißt, dass man Teile mit der Maus bewegen kann, während der Löser die Bewegung(sfreiheit) einschränkt. Dies erlaubt z. B. ein Rad mit einer 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.
* '''Verknüpfungen'''. Damit kann ein einzelnes Teil, z. B. eine Schraube, mehrfach (an unterschiedlichen Stellen) in einem Zusammenbau (einer Baugruppe) zu verwenden, 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.
* '''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 Dateien könnten auch in einer Bibliothek oder anderswo im Dateisystem abgelegt sein. 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 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.
* '''hierarchische Baugruppen'''. Wie im wirklichen Leben darf ein mechanischer Zusammenbau aus Unterbaugruppen bestehen. Auch diese können aus Unterbaugruppen bestehen und so weiter.
* '''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.
* das '''Einfrieren von Baugruppen'''. Da die CPU nur eine bestimmte Anzahl gleichzeitiger Bedingungen in Echtzeit verarbeiten kann, ermöglicht das Einfrieren von Baugruppen die Anwendung von Bedingungen sogar für große Baugruppen. Durch das Einfrieren von fertigen Baugruppen oder Bedingungen, die nicht dynamisch verändert werden müssen (z.B. bei verschweißten, vernieteten oder verklebten Bauteilen), werden diese von Aktualisierungsberechnungen ausgenommen und vom Assembly3-Löser als fixierte Geometrie angesehen.
*: Man beachte, dass andere Herangehensweisen andere Lösungen für dieses Problem anbieten, z.B. der [[File:Assembly4_workbench_icon.svg|24px]] [[Assembly4_Workbench|Assembly4-Arbeitsbereich]].
*: Man beachte, dass andere Herangehensweisen andere Lösungen für dieses Problem anbieten, z. B. der Arbeitsbereich [[File:Assembly4_workbench_icon.svg|24px]] [[Assembly4_Workbench/de|Assembly4]].


[[#top|Zum Anfang]]
[[#top|Anfang]]


<span id="Toolbars"></span>
=== Werkzeugleisten ===
===Symbolleisten===
Seit 2020 befinden sich folgende Werkzeugleisten in der Assembly3-Arbeitsumgebung.


Seit 2020 enthält der Arbeitsbereich Assembly3 die folgenden Symbolleisten.


<span id="Main_Toolbar"></span>
:[[File:Assembly3_ToolbarMain.png|700px]]
:''Hauptwerkzeugleiste''
==== Hauptwerkzeugleiste ====


:[[Image:Assembly_New_Assembly.svg‎‎|28px]] [[Image:Assembly_New_Group.svg‎‎|28px]] [[Image:Assembly_New_Element.svg‎‎|28px]] [[Image:Assembly_Import.svg‎‎|28px]][[Image:AngleDown.svg‎‎|14px]][[Image:Assembly3_workbench_icon.svg‎‎|28px]] [[Image:Assembly_QuickSolve.svg‎‎|28px]] [[Image:Assembly_Move.svg‎‎|28px]] [[Image:Assembly_AxialMove.svg‎‎|28px]] [[Image:Assembly_QuickMove.svg‎‎|28px]] [[Image:Assembly_LockMover.svg‎‎|28px]] [[Image:Assembly_TogglePartVisibility.svg‎‎|28px]] [[Image:Assembly_Trace.svg‎‎|28px]] [[Image:Assembly_AutoRecompute.svg‎‎|28px]] [[Image:Assembly_SmartRecompute.svg‎‎|28px]] [[Image:Assembly_AutoFixElement.svg‎‎|28px]] [[Image:Assembly_AutoElementVis.svg‎‎|28px]][[Image:AngleDown.svg‎‎|14px]][[Image:Assembly_Add_Workplane.svg‎‎|28px]][[Image:AngleDown.svg‎‎|14px]][[Image:Assembly_TreeItemUp.svg‎‎|28px]] [[Image:Assembly_TreeItemDown.svg‎‎|28px]] [[Image:Assembly_ConstraintMultiply.svg‎‎|28px]]
:The '''main toolbar''' contains tools that cover the most often used features of the workbench. The tooltips will give the keyboard short cuts.
:* add an assembly folder
:* group objects
:* create a link. This is also available in a context menu
:* import STEP files
:* Resolve constraints
:* Quick resolve constraints
:* tool1 to move parts in 3D, this is specific to Assembly3
:* tool2 to move parts in 3D, this is the classical tool available elsewhere in FreeCAD
:* 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.
:* Lock mover for fixed part. Toggle Button. When this is un-selected you can moved the parts that have a "Locked" constraint.
:* Toggle visibilty. 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)
:* Trace Part Move (TBD)
:* 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)
:* Smart-Recompute. Usually enabled.
:* Element Auto Fixing. Experimental feature in 0.19_pre
:* Element Style. This has two settings
:** Auto element visiblity.
:** Show element coordinate system
:* Workplane Commands. Adds a workplane, placement or origin. A part must be selected
:** add workplane
:** add XZ workplane
:** add YZ workplane
:** add Placement
:** add Origin
:* Move selected tree item up
:* 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.
:* Multiply Constraint. This can be selected if multiple parts and suitable Elements are present. Its used e.g. to assign multiple fasteners of the same type into multiple holes with one constraint.


<div class="mw-collapsible mw-collapsed">
:Die '''Hauptwerkzeugleiste''' enthält Werkzeuge, die die am häufigsten gebrauchten Funktionen des Arbeitsbereiches abdecken. Die zugehörigen Tastaturkürzel findet man in den Tooltips.
<div class="mw-collapsible-content toccolours">


:* [[Image:Assembly_Add Existing Part.svg‎‎|32px]] [[Assembly3_CreateAssembly/de|Baugruppe anlegen]]: Einen Baugruppenordner hinzufügen
:* [[Image:Assembly_New Group.svg‎‎|32px]] [[Assembly3_GroupObjects/de|Objekte gruppieren]]: Eine Objektgruppe erstellen
:* [[Image:Assembly_New Element.svg‎‎|32px]] [[Assembly3_CreateElement/de|Element anlegen]]: Ein Element hinzufügen. Dies ist auch im Kontextmenü verfügbar
:* STEP-Dateien importieren. Hier gibt es zwei Einstellungen
:** [[Image:Assembly_Import.svg‎‎|32px]] [[Assembly3_ImportFromSTEP/de|STEP-Dateien importieren]]: STEP-Dateien importieren
:** [[Image:Assembly_ImportMulti.svg‎‎|32px]] [[Assembly3_ImportMultiDocument/de|Als Mehrfachdokument einfügen]]: STEP-Baugruppen in separate Dokumente importieren
:* [[Image:Assembly3_workbench_icon.svg‎‎|32px]] [[Assembly3_ResolveConstraints/de|Beziehungen anwenden]]: Festgelegte Beziehungen berechnen (auflösen)
:* [[Image:Assembly_QuickSolve.svg‎‎|32px]] [[Assembly3_QuickSolve/de|Schnelle Berechnung]]: Beziehungen schnell berechnen (auflösen)
:* [[Image:Assembly_Move.svg‎‎|32px]] [[Assembly3_MovePart/de|Teil bewegen]]: Teil in 3D bewegen, dies ist ein spezielles Assembly3-Werkzeug
:* [[Image:Assembly_AxialMove.svg‎‎|32px]] [[Assembly3_AxialMove/de|Axial bewegen]]: Teil axial in 3D bewegen, dies ist das übliche Werkzeug, das auch anderen Bereichen von FreeCAD zur Verfügung steht
:* [[Image:Assembly_QuickMove.svg‎‎|32px]] [[Assembly3_QuickMove/de|Schnelles Bewegen]]: Schnelles Bewegen. Dies hängt das im Baum ausgewählte Teil an den Mauszeiger. Es verändert die Position des Teils, mit einem Mausklick.
:*: Oft befinden sich hinzugefügte Teile übereinander gestapelt im Ursprung. Diese Funktion kann benutzt werden, um nicht sichtbare Teile zu erreichen.
:* [[Image:Assembly_LockMover.svg‎‎|32px]] [[Assembly3_LockMover/de|Bewegung verhindern]]: Bewegung ausschließen für fixierte Teile. Umschaltknopf. Wenn dieser abgewählt ist, können auch Teile bewegt werden, die durch die Fixiereinschränkung festgelegt sind.
:* [[Image:Assembly_TogglePartVisibility.svg‎‎|32px]] [[Assembly3_TogglePartVisibility/de|Sichtbarkeit umschalten]]: Dies schaltet die Sichtbarkeit des ausgewählten Teils ein oder aus.
:*: Achtung, dies unterscheidet sich von der Benutzung der Leertaste. Die Benutzung der Leertaste mit ausgewählten Elementen einer Unterbaugruppe in der 3D-Ansicht liefert oft nicht das erwartete Verhalten. In solchen Fällen sollte diese Funktion benutzt werden (oder das Tastenkürzel A, Leertaste)
:* [[Image:Assembly_Trace.svg‎‎|32px]] [[Assembly3_TracePartMove/de|Bewegung aufzeichnen]]:Bewegungsbahn aufzeichnen (TBD)
:* [[Image:Assembly_AutoRecompute.svg‎‎|32px]] [[Assembly3_AutoRecompute/de|Automatische Berechnung]]:Automatische Berechnung. Standardmäßig aktiviert.
:*: Kann deaktiviert werden für die Reparatur von Einschränkungen oder die Fixierung von Teilen, für die der Löser Die Nachricht ''"do not converge"'' ausgibt (z.B. wenn das Teil um 180° gedreht wird)
:* [[Image:Assembly_SmartRecompute.svg‎‎|32px]] [[Assembly3_SmartRecompute/de|Smarte Berechnung]]: Smarte Berechnung. Standardmäßig aktiviert.
:* [[Image:Assembly_AutoFixElement.svg‎‎|32px]] [[Assembly3_AutoFixElement/de|Element automatisch fixieren]]: Automatische Elementfixierung. Experimentelle Funktion in 0.19_pre
:* Element Darstellung. Dies hat zwei Einstellmöglichkeiten:
:** [[Image:Assembly_AutoElementVis.svg‎‎|32px]] [[Assembly3_AutoElementVisibility/de|Element automatisch anzeigen]]: Element automatisch anzeigen
:** [[Image:Assembly_ShowElementCS.svg‎‎|32px]] [[Assembly3_ShowElementCS/de|Element-Koordinatensystem anzeigen]]: Koordinatensystem des Elements anzeigen
:* Arbeitsebene und Ursprung. Fügt eine Arbeitsebene, eine Platzierung oder einen Ursprung hinzu. Es muss ein Teil ausgewählt sein. Hier gibt es fünf Einstellungen.
:** [[Image:Assembly_Add Workplane.svg‎‎|32px]] [[Assembly3_AddWorkplane/de|Arbeitsebene hinzufügen]]: Arbeitsebene hinzufügen
:** [[Image:Assembly_Add WorkplaneXZ.svg‎‎|32px]] [[Assembly3_AddXZWorkplane/de|XZ-Arbeitsebene hinzufügen]]: XZ-Arbeitsebene hinzufügen
:** [[Image:Assembly_Add WorkplaneZY.svg‎‎|32px]] [[Assembly3_AddZYWorkplane/de|ZY-Arbeitsebene hinzufügen]]:YZ-Arbeitsebene hinzufügen
:** [[Image:Assembly_Add Placement.svg‎‎|32px]] [[Assembly3_AddPlacement/de|Bezugssystem hinzufügen]]: Bezugssystem hinzufügen
:** [[Image:Assembly_Add Origin.svg‎‎|32px]] [[Assembly3_AddOrigin/de|Ursprung hinzufügen]]: Ursprung hinzufügen
:* [[Image:Assembly_TreeItemUp.svg‎‎|32px]] [[Assembly3_MoveItemUp/de|Objekt aufwärts bewegen]]: Ausgewähltes Baumobjekt aufwärts bewegen
:* [[Image:Assembly_TreeItemDown.svg‎‎|32px]] [[Assembly3_MoveItemDown/de|Objekt abwärts bewegen]]: Ausgewähltes Baumobjekt abwärts bewegen
:*: Erlaubt es Teile, Elemente oder Einschränkungen im Baum umzusortieren. Mit "Element roll over" (von der ersten zur letzten Position und umgekehrt). Funktioniert nur mit einer einzelnen Auswahl.
:* [[Image:Assembly_ConstraintMultiply.svg‎‎|32px]] [[Assembly3_MultiplyConstraint/de|Beziehung vervielfältigen]]: Beziehung vervielfachen. Dies kann ausgewählt werden, wenn Teile und geeignete Elemente mehrfach vorhanden sind. Es kann z.B. benutzt werden um mehrfach vorhandene Befestigungselemente mehrfach vorhandenen Löchern mit nur einer Beziehung zuzuordnen.


</div> <!-- End of collapsible element for content section. Do not remove! -->
:[[File:Assembly3_ToolbarConstraints_1.jpg|700px]]
</div> <!-- End of collapsible element for ... section. Do not remove! -->
:''Werkzeugleiste der Haupteinschränkungen. Hinter einigen Werkzeugsymbolen verbergen sich allerdings Menüs mit weiteren Werkzeugen.''


<span id="Main_Constraints_Toolbar"></span>
:[[File:Assembly3_ToolbarConstraints_2.jpg|700px]]
==== Hauptwerkzeugleiste für Bedingungen ====
:''Werkzeugleiste mit zusätzlichen Einschränkungen. Sie lassen sich durch Auswahl des '...'-Symbols in der Werkzeugleiste der Haupteinschränkungen aktivieren.


: [[Image:Assembly_ConstraintLock.svg‎‎|28px]] [[Image:Assembly_ConstraintAlignment.svg‎‎|28px]] [[Image:Assembly_ConstraintCoincidence.svg‎‎|28px]] [[Image:Assembly_ConstraintAttachment.svg‎‎|28px]][[Image:AngleDown.svg‎‎|14px]][[Image:Assembly_ConstraintAxial.svg‎‎|28px]] [[Image:Assembly_ConstraintSameOrientation.svg‎‎|28px]] [[Image:Assembly_ConstraintMultiParallel.svg‎‎|28px]] [[Image:Assembly_ConstraintAngle.svg‎‎|28px]] [[Image:Assembly_ConstraintPerpendicular.svg‎‎|28px]] [[Image:Assembly_ConstraintPointCoincident.svg‎‎|28px]] [[Image:Assembly_ConstraintPointInPlane.svg‎‎|28px]] [[Image:Assembly_ConstraintPointOnLine.svg‎‎|28px]] [[Image:Assembly_ConstraintPointOnCircle.svg‎‎|28px]] [[Image:Assembly_ConstraintPointsDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintPointPlaneDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintPointLineDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintSymmetric.svg‎‎|28px]] [[Image:Assembly_ConstraintMore.svg‎‎|28px]]
: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.


<div class="mw-collapsible mw-collapsed">
:* ''Fixierung (Schloss)''. Die allererste Einschränkung. In jedem Zusammenbau sollte ein Teil fixiert werden um als Basisteil zu dienen. Fixieren heißt nichts anderes, als das alle 6 Freiheitsgrade dieses Teiles bezüglich seiner aktuellen Position und Ausrichtung festgesetzt (eingeschränkt) werden. Es wird Startpunkt für... (Original noch unvollständig)
: Einige dieser Werkzeuge sind eigentlich Menüs für weitere Werkzeuge.
<div class="mw-collapsible-content toccolours">


:* [[Image:Assembly ConstraintLock.svg‎‎|32px]] [[Assembly3_ConstraintLock/de|Festsetzen]]: Zum Fixieren eines oder mehrerer Teile.
:*: Es muss ein (Geometrie-) Element eines Teiles ausgewählt werden.
:*: Wird ein Knotenpunkt oder eine Kante festgesetzt, lässt sich das Teil immer noch frei um den Knotenpunk oder die Kante drehen.
:*: Das Festsetzen einer Fläche fixiert das Teil vollständig.
:* [[Image:Assembly ConstraintAlignment.svg‎‎|32px]] [[Assembly3_ConstraintAlignment/de|Ebenen ausrichten]]: Zum Ausrichten ebener Flächen zweier oder mehrerer Teile.
:*: Die Flächen werden komplanar ausgerichtet oder optional parallel mit Abstand.
:* [[Image:Assembly ConstraintCoincidence.svg‎‎|32px]] [[Assembly3_ConstraintCoincidence/de|Deckungsgleiche Ebenen]]: Zum deckungsgleich Festlegen ebener Flächen zweier oder mehrerer Teile.
:*: Die Flächen werden mit deckungsgleichen Ursprüngen komplanar ausgerichtet oder optional parallel mit Abstand.
:* Befestigung. Dies hat zwei Varianten
:** [[Image:Part Attachment.svg‎‎|32px]] [[Assembly3_ConstraintAttachment/de|Befestigung]]: Zum Befestigen eines Teils an ein zweites mittels der ausgewählten (Geometrie-) Elemente.
:**: Diese Bedingung verbindet beide Teile starr miteinander.
:** [[Image:Assembly_ConstraintAttachmentOffset.svg‎‎|32px]] [[Assembly3_ConstraintAttachmentOffset/de|BefestigungVersatz]]: Wie die Bedingung "Befestigung", aber unter Beibehaltung der relativen Ausrichtung der beteiligten Teile durch Anpassung der Offset-Werte eines Elements.
:**: Diese Bedingung verbindet beide Teile starr miteinander.
:* [[Image:Assembly ConstraintAxial.svg‎‎|32px]] [[Assembly3_ConstraintAxial/de|Axiale Ausrichtung]]: Zum axialen Ausrichten (Fluchten) von Kanten und Flächen zweier oder mehrerer Teile.
:*: Die Bedingung akzeptiert:
:*:: lineare Kanten; sie werden kollinear ausgerichtet,
:*:: ebene Flächen; sie werden unter Nutzung ihrer Flächennormalen (Z-Achse) ausgerichtet,
:*:: und zylindrische Flächen; sie werden unter Nutzung ihrer (Z-) Achsrichtung ausgerichtet.
:*: Verschiedene Arten von (Geometrie-) Elementen können gemischt werden.
:* [[Image:Assembly ConstraintSameOrientation.svg‎‎|32px]] [[Assembly3_ConstraintSameOrientation/de|Richtungen angleichen]]: Zum identischen Ausrichten der (ebenen) Flächen zweier oder mehrerer Teile.
:*: Die Ebenen werden so ausgerichtet, dass ihre (Z-) Achsen in dieselbe Richtung zeigen.
:* [[Image:Assembly ConstraintMultiParallel.svg‎‎|32px]] [[Assembly3_ConstraintMultiParallel/de|Mehrfach parallel]]: Zum parallelen Ausrichten von ebenen Flächen oder geraden Kanten zweier oder mehrerer Teile.
:* [[Image:Assembly ConstraintAngle.svg‎‎|32px]] [[Assembly3_ConstraintAngle/de|Winkel festlegen]]: Zum Festlegen des Winkels zwischen ebenen Flächen oder geraden Kanten zweier Teile.
:* [[Image:Assembly ConstraintPerpendicular.svg‎‎|32px]] [[Assembly3_ConstraintPerpendicular/de|Rechtwinklig festlegen]]: Zum rechtwinkligen Festlegen von ebenen Flächen oder geraden Kanten zweier Teile.
:* [[Image:Assembly ConstraintPointCoincident.svg‎‎|32px]] [[Assembly3_ConstraintPointsCoincident/de|Punkt auf Punkt]]: Zum deckungsgleich Festlegen zweier Punkte in 2D oder 3D.
:* [[Image:Assembly ConstraintPointInPlane.svg‎‎|32px]] [[Assembly3_ConstraintPointInPlane/de|Punkt auf Ebene]]: Zum Festlegen eines oder mehrerer Punkte auf einer Ebene (Punktberührung).
:* [[Image:Assembly ConstraintPointOnLine.svg‎‎|32px]] [[Assembly3_ConstraintPointOnLine/de|Punkt auf Linie]]: Zum Festlegen eines oder mehrerer Punkte auf einer Linie in 2D or 3D.
:* [[Image:Assembly ConstraintPointOnCircle.svg‎‎|32px]] [[Assembly3_ConstraintPointOnCircle/de|Punkt auf Kreis]]: Zum Festlegen eines oder mehrerer Punkte auf einer durch einen Kreis definierten zylindrischen Fläche.
:*: Achtung! Es muss ein Punkt (irgendein Geometrieelement, dass einen Punkt definieren kann) ausgewählt werden und dann der Kreis (oder eine zylindrische Fläche),
:*: danach können bei Bedarf weitere Punkte hizugefügt werden.
:* [[Image:Assembly ConstraintPointsDistance.svg‎‎|32px]] [[Assembly3_ConstraintPointsDistance/de|Punkt zu Punkt Abstand]]: Zum Festlegen des Abstands zweier oder mehrerer Punkte zueinander.
:* [[Image:Assembly ConstraintPointPlaneDistance.svg‎‎|32px]] [[Assembly3_ConstraintPointPlaneDistance/de|Punkt zu Ebene Abstand]]: Zum Festlegen des Abstands eines oder mehrerer Punkte zu einer Ebene.
:* [[Image:Assembly ConstraintPointLineDistance.svg‎‎|32px]] [[Assembly3_ConstraintPointLineDistance/de|Punkt zu Linie Abstand]]: Zum Festlegen des Abstands eines Punktes zu einer geraden Kante in 2D oder 3D.
:* [[Image:Assembly ConstraintSymmetric.svg‎‎|32px]] [[Assembly3_ConstraintSymmetric/de|Symmetrie festlegen]]: Zum Festlegen der Symmetrie der (Geometrie-) Elemente zweier Teile bezüglich einer Ebene.
:*: Unterstützte Elemente sind gerade Kanten und ebene Flächen.
:* [[Image:Assembly ConstraintMore.svg‎‎|32px]] [[Assembly3_ConstraintMore/de|Weitere]]: Werkzeugleisten umschalten für weitere Bedingungen
:*: Nicht wirklich eine Bedingung, sondern ein Umschalter zum Anzeigen/Ausblenden der '''Zusatzwerkzeugleisten für Bedingungen'''.


</div> <!-- End of collapsible element for content section. Do not remove! -->
:[[File:Assembly3_ToolbarNavigation.jpg|100px]]
</div> <!-- End of collapsible element for ... section. Do not remove! -->
:''Navigationswerkzeugleiste''
:Diese Funktionen sind nützlich, wenn ein Zusammenbau mit hierarchisch verknüpften externen Dateien bearbeitet wird
:* Auswahl der entsprechenden Part-Objekte in der Beziehungsgruppe
:* Auswahl der verknüpften Objekte
:* Auswahl des am tiefsten verknüpften Objekts


<span id="Additional_Constraints_Toolbars"></span>
==== Zusatzwerkzeugleisten für Bedingungen ====


: [[Image:Assembly_ConstraintPointDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintEqualAngle.svg‎‎|28px]] [[Image:Assembly_ConstraintPointsSymmetric.svg‎‎|28px]] [[Image:Assembly_ConstraintGeneral.svg‎‎|28px]] [[Image:Assembly_ConstraintGeneral.svg‎‎|28px]] [[Image:Assembly_ConstraintSymmetricLine.svg‎‎|28px]] [[Image:Assembly_ConstraintPointsHorizontal.svg‎‎|28px]] [[Image:Assembly_ConstraintPointsVertical.svg‎‎|28px]] [[Image:Assembly_ConstraintLineHorizontal.svg‎‎|28px]] [[Image:Assembly_ConstraintLineVertical.svg‎‎|28px]] [[Image:Assembly_ConstraintArcLineTangent.svg‎‎|28px]] (Assembly3 Constraints2)
:[[File:Assembly3_ToolbarMeasurement.jpg|100px]]
:''Messwerkzeugleiste''
: Die '''Messwerkzeugleiste''' fügt Funktionen zum Messen von Abständen zwischen Zwei Punkten, einem Punkt und einer Linie oder einem Punkt und einer Fläche hinzu. Das 'Winkel messen'-Werkzeug ermittelt den Winkel zwischen zwei Flächen oder Linien. Es gibt keine Funktion um einen Radius oder Durchmesser zu messen.
: Die Messwerkzeuge überdauern Änderungen des Bauteils, z.B. den Abstand zwischen Kanten eines Würfels, wenn die die Größe des Würfels verändert wird. Wie die Einschränkungen werden diese Berechnungen in Echtzeit ausgeführt und bei jeder Änderung aktualisiert. Im Hintergrund ist die Funktion ähnlich zu der der [[#Constraints|Einschränkungen]]. Der Abstand oder Winkel wird zwischen [[#Elements|Elementen]] auf die gleiche Art wie für [[#Constraints|Einschränkungen]] berechnet. Die Anzeige im Baum funktioniert auf die selbe Weise.


:[[Image:Assembly_ConstraintSketchPlane.svg‎‎|28px]] [[Image:Assembly_ConstraintLineLength.svg‎‎|28px]] [[Image:Assembly_ConstraintEqualLength.svg‎‎|28px]] [[Image:Assembly_ConstraintLengthRatio.svg‎‎|28px]] [[Image:Assembly_ConstraintLengthDifference.svg‎‎|28px]] [[Image:Assembly_ConstraintLengthEqualPointLineDistance.svg‎‎|28px]] [[Image:Assembly ConstraintEqualLineArcLength.svg‎‎|28px]] [[Image:Assembly_ConstraintMidPoint.svg‎‎|28px]] [[Image:Assembly_ConstraintDiameter.svg‎‎|28px]] [[Image:Assembly_ConstraintEqualRadius.svg‎‎|28px]] [[Image:Assembly_ConstraintPointsProjectDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintEqualPointLineDistance.svg‎‎|28px]] [[Image:Assembly_ConstraintColinear.svg‎‎|28px]] (Assembly3 Sketch Constraints)

<div class="mw-collapsible mw-collapsed">
:Diese kann man durch Auswählen der Schaltfläche {{Button|[[Image:Assembly_ConstraintMore.svg|16px]] [[Assembly3_ConstraintMore/de|Weitere]]}} in der Hauptwerkzeugleiste für Bedingungen aktivieren.
<div class="mw-collapsible-content toccolours">

:* [[Image:Assembly_ConstraintPointDistance.svg‎‎|32px]] [[Assembly3_ConstraintPointDistance/de|Abstand zweier Punkte]]: Zum Festlegen des Abstands zweier Punkte in 2D oder 3D.
:* [[Image:Assembly_ConstraintEqualAngle.svg‎‎|32px]] [[Assembly3_ConstraintEqualAngle/de|Gleiche Winkel]]: Zum Festlegen von gleichen Winkeln zwischen (je) zwei Linien oder (Flächen-) Normalen.
:* [[Image:Assembly_ConstraintPointsSymmetric.svg‎‎|32px]] [[Assembly3_ConstraintPointsSymmetric/de|Symmetrische Punkte]]: Zum Festlegen der symmetrischen Lage zweier Punkte bezüglich einer Ebene.
:* [[Image:Assembly_ConstraintGeneral.svg‎‎|24px]] () [[Assembly3_ConstraintSymmetricHorizontal/de|Horizontale Symmetrie ]]: (noch nicht fertig...)
:* [[Image:Assembly_ConstraintGeneral.svg‎‎|24px]] () [[Assembly3_ConstraintSymmetricVertical/de|Vertikale Symmetrie]]: (noch nicht fertig...)
:* [[Image:Assembly_ConstraintSymmetricLine.svg‎‎|32px]] [[Assembly3_ConstraintSymmetricLine/de|Achsensymmetrie]]: Zum Festlegen der symmetrischen Lage zweier Punkte bezüglich einer Symmetrieachse.
:* [[Image:Assembly_ConstraintPointsHorizontal.svg‎‎|32px]] [[Assembly3_ConstraintPointsHorizontal/de|Horizontale Punkte]]: Zum Festlegen einer horizontalen Ausrichtung zweier Punkte, wenn sie auf eine Ebene projiziert werden.
:* [[Image:Assembly_ConstraintPointsVertical.svg‎‎|32px]] [[Assembly3_ConstraintPointsVertical/de|Vertikale Punkte]]: Zum Festlegen einer vertikalen Ausrichtung zweier Punkte, wenn sie auf eine Ebene projiziert werden.
:* [[Image:Assembly_ConstraintLineHorizontal.svg‎‎|32px]] [[Assembly3_ConstraintLineHorizontal/de|Horizontale Linie]]: Zum Festlegen einer horizontalen Ausrichtung eines Liniensegments, wenn es auf eine Ebene projiziert wird.
:* [[Image:Assembly_ConstraintLineVertical.svg‎‎|32px]] [[Assembly3_ConstraintLineVertical/de|Vertikale Linie]]: Zum Festlegen einer vertikalen Ausrichtung eines Liniensegments, wenn es auf eine Ebene projiziert wird.
:* [[Image:Assembly_ConstraintArcLineTangent.svg‎‎|32px]] [[Assembly3_ConstraintArcLineTangent/de|Bogen-Linie-Tangente]]: Zum Festlegen eines tangentiellen Übergangs zwischen einer Linie und dem Start- oder Endpunkt eines Bogens.

:* [[Image:Assembly_ConstraintSketchPlane.svg‎‎|32px]] [[Assembly3_ConstraintSketchPlane/de|Skizzierebene]]: Zum Festlegen einer Arbeitsebene für alle Draft-WB-Elemente innerhalb dieser Beziehung oder dieser Beziehung folgend.
:*: Eine weitere hinzufügte leere Skizzenebene löst die vorherige als Arbeitsebene ab.
:* [[Image:Assembly ConstraintLineLength.svg‎‎|32px]] [[Assembly3_ConstraintLineLength/de|Linienlänge]]: Zum Festlegen der Länge eines nicht unterteilten Draft-Drahtes.
:* [[Image:Assembly ConstraintEqualLength.svg‎‎|32px]] [[Assembly3_ConstraintEqualLength/de|Gleiche Länge]]: Zum Festlegen, dass zwei Linien gleich lang sind.
:* [[Image:Assembly ConstraintLengthRatio.svg‎‎|32px]] [[Assembly3_ConstraintLengthRatio/de|Längenverhältnis]]: Zum Festlegen des Verhältnisses der Längen zweier Linien.
:* [[Image:Assembly ConstraintLengthDifference.svg‎‎|32px]] [[Assembly3_ConstraintLengthDifference/de|Längendifferenz]]: Zum Festlegen der Differenz der Längen zweier Linien.
:* [[Image:Assembly_ConstraintLengthEqualPointLineDistance.svg‎‎|32px]] [[Assembly3_ConstraintLengthEqualPointLineDistance/de|Länge gleich Punkt-Linie-Abstand]]: Zum Festlegen, dass der Abstand eines Punktes zu einer Linie gleich der Länge einer weiteren Linie ist.
:* [[Image:Assembly_ConstraintGeneral.svg‎‎|24px]] ( [[Image:Assembly_ConstraintEqualLineArcLength.svg‎‎|32px]] )[[Assembly3_ConstraintEqualLineArcLength/de|Linien- gleich Bogenlänge]]: Zum Festlegen, dass die Länge einer Linie gleich der Länge enes Bogens ist.
:* [[Image:Assembly_ConstraintMidPoint.svg‎‎|32px]] [[Assembly3_ConstraintMidPoint/de|Mittelpunkt]]: Zum Festlegen eines Punktes in der Mitte einer Linie.
:* [[Image:Assembly_ConstraintDiameter.svg‎‎|32px]] [[Assembly3_ConstraintDiameter/de|Durchmesser]]: Zum Festlegen des Durchmessers eines Kreises oder Bogens.
:* [[Image:Assembly_ConstraintEqualRadius.svg‎‎|32px]] [[Assembly3_ConstraintEqualRadius/de|Gleicher Radius]]: Zum Festlegen, dass die Radien zweier Kreise oder Bögen gleich groß sind.
:* [[Image:Assembly_ConstraintPointsProjectDistance.svg‎‎|32px]] [[Assembly3_ConstraintPointsProjectDistance/de|Projizierter Punktabstand]]: Zum Festlegen des Abstands zweier Punkte, die auf eine Linie projiziert werden.
:* [[Image:Assembly_ConstraintEqualPointLineDistance.svg‎‎|32px]] [[Assembly3_ConstraintEqualPointLineDistance/de|Gleicher Punkt-Linien-Abstand]]: Zum Festlegen, dass der Abstand eines Punktes zu einer Linie gleich dem Abstand eines weiteren Punktes zu einer anderen Linie ist.
:* [[Image:Assembly_ConstraintColinear.svg‎‎|32px]] [[Assembly3_ConstraintColinear/de|Kollinear]]: Hinzufügen einer "kollinearen" Beschränkung um zwei Linien kollinear zu machen.

</div> <!-- End of collapsible element for content section. Do not remove! -->
</div> <!-- End of collapsible element for ... section. Do not remove! -->

:Die '''Werkzeugleisten der Bedingungen''' 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 Bedingung.
: Die unterschiedlich gefärbten Rahmen kennzeichnen unterschiedliche Eigenschaften der Bedingungen:
:: ob 2D / 3D oder ob mehr als 2 Elemente zusammengefügt werden können.
: Eine ausführliche Beschreibung ist im GitHub-Wiki zu finden.

<span id="Navigation_Toolbar"></span>
====Navigationswerkzeugleiste====

: [[Image:Assembly_GotoRelation.svg‎‎|28px]] [[Image:LinkSelect.svg‎‎|28px]] [[Image:LinkSelectFinal.svg‎‎|28px]]

<div class="mw-collapsible mw-collapsed">
:Diese Funktionen sind nützlich, wenn eine Baugruppe mit einer Hierarchie von verknüpften externen Dateien bearbeitet wird.
<div class="mw-collapsible-content toccolours">
:* [[Image:Assembly_GotoRelation.svg|32px]] [[Assembly3_GoToRelation/de|Zur Beziehung gehen]]: Zeigt die Beziehungsgruppe an (standardmäßig ausgeblendet) und wählt ein Beziehungsobjekt aus.
:* [[File:Std_LinkSelectLinked.svg|32px]] [[Std_LinkSelectLinked/de|Verknüpftes Objekt auswählen]]: Wählt das verknüpfte Objekt aus und wechselt zu dessen Dokument. {{Version/de|0.19}}
:* [[File:Std_LinkSelectLinkedFinal.svg|32px]] [[Std_LinkSelectLinkedFinal/de|Letztes verknüpftes Objekt auswählen]]: Wählt das Objekt am Ende der Verknüpfungskette aus und wechselt zu dessen Dokument. {{Version/de|0.19}}

</div> <!-- End of collapsible element for content section. Do not remove! -->
</div> <!-- End of collapsible element for ... section. Do not remove! -->

<span id="Measurement_Toolbar"></span>
==== Messwerkzeugleiste ====

: [[Image:Assembly_MeasurePointDistance.svg‎‎|28px]] [[Image:Assembly_MeasurePointLineDistance.svg‎‎|28px]] [[Image:Assembly_MeasurePointPlaneDistance.svg‎‎|28px]] [[Image:Assembly_MeasureAngle.svg‎‎|28px]]

<div class="mw-collapsible mw-collapsed">
: Die '''Messwerkzeugleiste''' fügt Funktionen zum Messen des Abstands oder des Winkels zwischen zwei Objekten hinzu
<div class="mw-collapsible-content toccolours">

:* [[Image:Assembly_MeasurePointDistance.svg‎‎|32px]] [[Assembly3_MeasurePoints/de|Punkte messen]]: Füge ein "Punkte messen" hinzu, um den Abstand zwischen zwei Punkten in 2D oder 3D zu messen.
:* [[Image:Assembly_MeasurePointLineDistance.svg‎‎|32px]] [[Assembly3_MeasurePointLine/de|Punkt zu Linie messen]]: Füge ein "Punkt zu Linie messen" hinzu, um den Abstand zwischen einem Punkt und einer linearen Kante in 2D oder 3D zu messen.
:* [[Image:Assembly_MeasurePointPlaneDistance.svg‎‎|32px]] [[Assembly3_MeasurePointPlane/de|Punkt zu Ebene messen]]: Füge ein "Punkt zu Ebene messen" hinzu, um den Abstand zwischen einem Punkt und einer Ebene zu messen.
:* [[Image:Assembly_MeasureAngle.svg‎‎|32px]] [[Assembly3_MeasureAngle/de|Winkel messen]]: Füge ein "Winkel messen" hinzu, um den Winkel von ebenen Flächen oder linearen Kanten zweier Teile zu messen.

: Es gibt keine Funktion um einen Radius oder Durchmesser zu messen.
: Die Messwerkzeuge überdauern Teiländerungen, z.B. den Abstand zwischen Kanten eines Würfels, wenn die die Größe des Würfels geändert wird.
: Wie die Beschränkungen werden diese Berechnungen in Echtzeit ausgeführt und bei jeder Änderung aktualisiert. Hinter den Kulissen ist die Funktion den [[#Constraints|Beschränkungen]] sehr ähnlich. Der Abstand oder Winkel zwischen [[#Elemente|Elemente]] wird auf die gleiche Weise berechnet wie bei [[#Beschränkungen|Beschränkungen]]. Die Anzeige im Baum funktioniert auf die gleiche Weise.

</div> <!-- End of collapsible element for content section. Do not remove! -->
</div> <!-- End of collapsible element for ... section. Do not remove! -->


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


[[#top|Zum Anfang]]
[[#top|Anfang]]


<span id="Constraints"></span>
=== Einschränkungen ===
===Bedingungen===
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.


Der Konstrukteur benutzt Bedingungen (auch Randbedingung, Einschränkung, Beschränkung, Zwang, Zwangsbedingung, Festlegung genannt) um zwei Teile zueinander auszurichten. Die Kunst besteht darin, die Bedingungen zu wählen, die am besten zu den jeweiligen Anforderungen passen. Jeder bestimmte Freiheitsgrad ('''D'''egree '''O'''f '''F'''reedom) sollte theoretisch nur einmal zwischen zwei Objekten festgelegt sein, aber in der Praxis vieler CAD-Werkzeuge erzeugen die ausgewählten Bedingungen überbestimmte Kombinationen, die oft durch komplexe Algorithmen ausgeglichen werden können, manchmal aber auch nicht. Assembly3 benutzt solche Algorithmen, um überzählige Bedingungen zu entdecken und auszugleichen, aber sie sind bisher noch nicht besonders ausgereift. Am besten vermeidet man Schwierigkeiten im Umgang mit Assembly3-Bedingungen, indem man darauf achtet, wieviele Freiheitsgrade schon bestimmt sind und welche durch weitere Bedingungen noch festzulegen sind. Kein Teil sollte durch Bedingungen so verbunden werden, dass 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. [[#Elements|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.


Hinweis: Wenn der Gleichungslöser auf eine Kombination 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 Baugruppen 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|Elemente]] weiter unten), eindeutige Namen für alle beteiligten Komponenten zu verwenden und nur dann weitere Bedingungen hinzuzufügen, wenn der Gleichungslöser die aktuelle Baugruppe erfolgreich berechnen kann. Sehr hilfreich, um ein Problem zu finden, ist die Funktion "ContexMenu/Deactivate" der jeweiligen Bedingung.
Assembly3-Einschränkungen definieren Festlegungen bezüglich der Position oder der Orientierung zweier [[#Elements|Elemente]] zueinander. Einige Einschränkungen arbeiten sogar mit mehr als zwei [[#Elements|Elementen]]. Ein [[#Elements|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 [[#Elements|Elemente]] und danach die Einschränkungen aus den [[#Toolbars|Werkzeugleisten]] der Einschränkungen auswählt.


Assembly3-Bedingungen definieren, wie die Möglichkeiten der Positionierung oder Orientierung zwischen zwei [[#Elemente|Elementen]] reduziert werden. Einige Bedingungen arbeiten sogar mit mehr als zwei Elementen. Ein Element kann eine Fläche, eine Linie oder Kante oder ein Punkt eines Teils sein. Im Allgemeinen werden Bedingungen definiert, indem man erst die gewünschten Elemente und dann die Bedingung aus einer der [[#Werkzeugleisten|Werkzeugleisten]] für Bedingungen auswählt.
* Fixes 6 DOF, leaves 0 DOF:

** '''Lock''': The lock constraint fixes all DOFs for a face. It should be used for one base part in each assembly. You may also want to enable the "MoveLock" function (in the tool bar) so that the part can not be moved accidentially. Normally it does not matter which face/line/point you use to fix a part. Also note that the lock is only valid for the direct assembly, i.e. in case of a sub-assembly the parent assembly would still require a locked part on its own.
* Fixiert 6 Freiheitsgrade, 0 bleiben unbestimmt:
**'''Attachment''': Makes both elements coordinate systems equal for all axes. This is computation wise the most inexpensive function and should be used where ever possible. Note that you could use the element properties to compensate for offsets and angles if the two [[#Elements|elements]] are not perfectly aligned.
** '''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.
* Fixes 5 DOF, leaves 1 DOF:
**'''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 [[#Elements|Elemente]] nicht optimal zueinander ausgerichtet sind.
** '''Plane Coincident''': 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 5 Freiheitsgrade, 1 bleibt unbestimmt:
* Fixes 4 DOF, leaves 2 DOF:
** '''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.
** '''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.
** '''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.
* Fixes 3 DOF, leaves 3 DOF:
* Fixiert 3 Freiheitsgrade, 3 bleiben unbestimmt:
** '''Same Orientation''': fixes Rx,Rz,Rz. All T's remain free.
** '''Same Orientation''': fixes Rx,Rz,Rz. All T's remain free.
** '''Points Coincident''': fixes Tx,Ty,Tz. All R's remain free.
** '''Points Coincident''': fixes Tx,Ty,Tz. All R's remain free.
** '''PointOnPoint''' constraint eliminates the 3 translations.
** '''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.
** '''Plane Alignment''': fixes Tz, Rx,Ry (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.
* Fixes 2 DOF, leaves 4 DOF:
* 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.
** '''Multi Parallel''': fixes Rx,Ry. all T's and Rz remain. This eliminates the two rotations around the axes of the reference plane.
* Fixes 1 DOF, leaves 5 DOF:
* Fixiert 1 Freiheitsgrad, 5 bleiben unbestimmt:
** '''Points in Plane''': Fixes Tz. This eliminates the translation along the normal to the reference plane.
** '''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.
** '''Points Distance''': fixes the distance between the Element origins.
Line 119: Line 240:
* '''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.
* '''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.
'': Note: In the following list Tx,Ty,Tz and Rx,Ry,Rz are used to describe translations and rotations about the reference coordinate systems of the involved Element's. This is not always exact or fully defined, e.g. when a line is involved it is not defined if it runs in X, Y or any angle in betweeen. The system is used for bevity and easy comparison in favour of a correct but more complex definition. So Z is generally the normal direction of any faces involved. Please feel free to modify this with a better approach with improved readability.''


[[#top|top]]
[[#top|Zum Anfang]]


=== Elements ===
<span id="Elements"></span>
===Elemente===
Elements is a specific term used in the Assembly3 workbench and it is important to understand Elements for understanding how Assembly3 should be used.


Elemente wird in der Arbeitsumgebung Assembly3 als besonderer Begriff benutzt, und Elemente zu verstehen ist wichtig für das Verständnis, wie Assembly3 benutzt werden sollte.
It is helpul to think of an Element as a general word for a 'selectable item' of a part, i.e. a face, an edge, a circle or a corner or other point. The items you select to constrain them, are those Elements. In the tree an Assembly folder has three sub-folders. Beside 'Parts' and 'Constraints' there is a folder named 'Elements', which is emtpy as long as there are no constraints added. When adding a constraint the constraint itself gets two (or more) leafs, these are the selected 'Elements'. Also these get added in the 'Elements' folder which is just a list of all Elements used in the assembly. Its a good idea to change their names (with F2 key), especially in bigger assemblies.


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.
Lets look at an example
: Create a new file and add from the Part workbench a cube and a cylinder. We will stack the cylinder onto the tube. First we fix the base part, in out case the cube. Select the bottom face of the cube and select the "Locked" constraints (first icon in the Constraints [[#Toolbars|toolbar]]). Select the top face of the cylinder and the top face of the cube. Then select the "Plane Coincident" constraint. Now the cylinder is moved into the cube and in the tree a new leaf with two childe nodes was added under 'Constraints'. Additionally the same two child nodes were added under 'Elements'. If you cylinder is inside the cube instread of on top of the cube, lets correct that first: select the child node under 'Constraints' that shows the cylinder face and with a right click in the context menu select 'Flip Part'. Now the cylinder is stacked onto the box.


Sehen wir uns ein Beispiel an
The key think to understand is that the constraint operates on links to Elements in the list in the 'Elements' tree folder. This allows to keep the constraint structure intact while changing the parts. This is very difficult to see without an example.
: 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 [[#Toolbars|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 wesentliche Punkt für das Verständnis ist, dass die Randbedingung mit Verknüpfungen zu Elementen in der Liste des "Elements"-Baumabschnitts arbeitet. Dies erlaubt, die Bindungsstruktur intakt zu halten, während die Teile geändert werden. Dies ist ohne ein Beispiel sehr schwer zu erkennen.
Lets get back to the example above
: Note: make sure you added the "Lock" constraint to the cube or this will look confusing
: In the CAD window select another face of the cube. Now we only work in the tree view. Go with your mouse in the tree where the cube should be selected. Drag&Drop the cube to the 'Elements' folder. Drop it on the 'Elements' name, not anywhere else in the folder - why we see later. You should see that another Element is added to the 'ELements' list. Now select in the 'Constraints' folder the child node of the cube face in out "Plane Coincident" constraint and delete it. The Constraint will show an exclamation mark since its missing one Element. Note that by deleting the Element in the Constraint we did ''not'' delete it in the list. That is because in the constraint was only a link to the Element in the list. Now take the newly added Element in the 'Elements' list and drag&drop it onto the "Plane Coincident" constraint. Now the cylider moves to the other face we selected. We might need to select 'context menu/flip part' again if the cylinder is again inside the cube.


Zurück zum obigen Beispiel
The example showed that without removing the constraint we can change the Elements that are used for the constraint. The same way we can move the cylinder to a totally different part. After playing around with this example a bit more, you will note some additional things as
: Achtung: Es sollte darauf geachtet werden, dass die Fixierbedingung zum Würfel hinzugefügt wurde, andernfalls wird es merkwürdig aussehen.
* If you rename an Element in the list, the name will be changed in all Constraints.
: Im CAD-Fenster wird eine weitere Fläche des Würfels ausgewählt. Ab jetzt wird nur noch in der Baumansicht gearbeitet. In der Baumansicht wird die Maus verwendet; der Würfel sollte ausgewählt sein. 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, dass ein weiteres Element zur 'Elements'-Liste hinzugefügt wurde. Nun wird im 'Constraints'-Ordner der Kindknoten der Würfelfläche in der Bedingung 'Plane Coincident' ausgewählt und aus der Liste entfernt. Die Bedingung ist nun mit einem Ausrufezeichen gekennzeichnet, da ihr ein Element fehlt. Hierbei ist zu beachten, dass ein Element, das aus der Bedingung 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 Bedingung 'Plane Coincident' gezogen und abgelegt werden. 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.
* you can use one Element in the list in several constraints.
* You can use the Property Window of an Element to add '''Offsets'''. In the example this could move the cylinder around on the cube face.
* you can use the "Show Element Coordinate System" button in the main toolbar to see what 'ContextMenu/Flip Part' and 'ContextMenu/Flip Element' are doing. Be sure to look what happens in the Property Window.
* you can add a constraint in a totally different order: First add some Elements to the 'Elements List' (naming is useful, e.g. "Cube Top Face" or "Cube Front Face"), then add a constraint without selecting anything - it will be an empty constraint. Then drag Elements from the 'Elements' list. The result is the same than what we did in the first example. After doing that exercise the nature of how constraints work with Elements should be clear.
* you can change an existing constraint between existing elements by just select a different item in the PropertyWindow/ConstraintType property.


Das Beispiel zeigt, dass man die zur Randbedingung gehörenden Elemente austauschen kann, ohne die Bedingung 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.:
[[#top|top]]
* Wenn ein Element in der Liste umbenannt wird, wird es auch in allen Bedingungen umbenannt
* Ein Element der Liste kann für mehrere Randbedingungen verwendet werden.
* Das Eigenschaftenfenster 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 die Schaltfläche 'Show Element Coordinate System' der Hauptwerkzeugleiste benutzen, um zu sehen, wie sich 'Flip Part' und 'Flip Element' aus dem Kontextmenü auswirken. Nicht vergessen, die Änderungen im Eigenschaftenfenster zu beobachten.
* Eine Randbedingung 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 Bedingung hinzugefügt, ohne etwas auszuwählen - Das ergibt eine leere Randbedingung. 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 Randbedingungen und Elemente zusammenarbeiten.
* Eine bestehende Bedingung zwischen bestehenden Elementen kann einfach ausgetauscht werden, indem man eine andere Auswahl in der 'ConstraintType'-Eigenschaft im Eigenschaftenfenster trifft.


[[#top|Zum Anfang]]

<span id="Compatibility"></span>
== Kompatibilität ==
== Kompatibilität ==


Assembly3 wurde vom [[Assembly2_Workbench|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.
Assembly3 wurde vom [[Assembly2_Workbench|Assembly2]] inspiriert, ist aber nicht mit diesem kompatibel. Wenn du ältere Modelle in Assembly2 erstellt hast, solltest du bei FreeCAD 0.16 bleiben und Assembly2 dort verwenden.


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


Obwohl sie möglicherweise über ähnliche Werkzeuge verfügen, ist Assembly3 nicht kompatibel mit [[A2plus_Workbench|A2plus]] und [[Assembly4_Workbench|Assembly4]]. Baugruppen, die in diesen Arbeitsbereichen erstellt wurden, sollten nur in dem jeweiligen Arbeitsbereich geöffnet werden.
Obwohl sie möglicherweise ähnliche Werkzeuge haben, ist Assembly3 nicht kompatibel mit [[A2plus_Workbench/de|A2plus]] noch mit [[Assembly4_Workbench/de|Assembly4]]. Modelle, die mit diesen Arbeitsbereichen erstellt wurden, sollten nur mit dem jeweiligen Arbeitsbereich geöffnet werden.


[[#top|Zum Anfang]]
[[#top|Zum Anfang]]


== Testen ==
== Installation ==

Der Arbeitsbereich [[Assembly3_Workbench/de|Assembly3]] ist (seit März 2022) über den [[Std_AddonMgr/de|Addon-Manager]] verfügbar. Jede Abhängigkeit von Assembly3 zu (Modulen von) Drittanbietern sollte automatisch durch den Addon_Manager verwaltet werden.


<span id="Alternate_installations"></span>
Der [[Assembly3_Workbench|Assembly3 Arbeitsbereich]] befindet sich in der Entwicklung und ist noch nicht (April 2020) über den [[Std_AddonMgr|Addon Manager]] verfügbar.
====Alternative Installationen====


Es gibt 2 alternative Wege Assembly3 zu installieren:
Assembly3 kann auf zwei Arten getest werden:
* Eine spezielle Abspaltung von FreeCAD von realthunder; siehe [https://github.com/realthunder/FreeCAD_assembly3/releases 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.
* Eine spezielle Abspaltung von FreeCAD von realthunder; siehe [https://github.com/realthunder/FreeCAD/releases hier]. 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|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.
* Das Entwicklungs-[[AppImage/de|App-Image]]; dieses 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.
Da das App-Image nur unter Linux funktioniert, ist für Windows-Benutzer (die gerne eine alternative Assembly3-Installation hätten) die erste Option die einzige Möglichkeit, Assembly3 zu testen (realthunder's fork) .


[[#top|Zum Anfang]]
[[#top|Zum Anfang]]


== HowTo ==
<span id="HowTo"></span>
== GewusstWie ==


<span id="Get_Started"></span>
=== Get Started ===
===Loslegen===
There are many ways to create an assembly with Assembly3. Here is the most simple one you can do.

Es gibt viele Wege einen Zusammenbau mit Assembly3 zu erstellen. Hier ist der einfachste.


:[[File:Assembly3_Example-GettingStarted.jpg|600px]]
:[[File:Assembly3_Example-GettingStarted.jpg|600px]]
:''Endergebnis des 'Wie man startet'-Beispiels. In dem Bild ist die Arbeitsumgebung Assembly3 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).''
:''Final Result of the Getting Started Example. In the image the Assembly3 Worksbench is selected, so its multiple toolbars are visible. Note that the vertical "TabBar" left of the tree view is an AddOn Workbench that is not contained in standard FreeCAD (but can be installed with the Addon-Manager).''


* Schaltfläche {{Button|[[Image:Std_New.svg|16px]] [[Std_New/de|Neu]]}} drücken, um eine neue FreeCAD-Datei zu erstellen
* Create a new FreeCAD file
* Zur Arbeitsumgebung [[Image:Assembly3_workbench_icon.svg|16px]] [[Assembly3_Workbench/de|Assembly3]] wechseln
* Select assembly Workbench. Select ''CreateAssembly'' (first icon)
* Schaltfläche {{Button|[[Image:Assembly_New_Assembly.svg‎‎|16px]] [[Assembly3_CreateAssembly/de|Baugruppe anlegen]]}} drücken
* Select Part Workbench and add a cylinder and a cube
* Zur [[Image:Workbench_Part.svg|16px]] [[Part_Workbench/de|Part Arbeitsumgebung]] wechseln und einen [[Image:Part_Cylinder.svg|16px]] [[Part_Cylinder/de|Zylinder]] und einen [[Image:Part_Box.svg|16px]] [[Part_Box/de|Würfel]] hinzufügen
* Save the file with any filename you like. Close and open and the file.
* Die Datei unter einem selbstgewählten Dateinamen [[Image:Std_Save.svg|16px]] [[Std_Save/de|speichern]]. Anschließend die Datei [[Image:Std_CloseActiveWindow.svg|16px]] [[Std_CloseActiveWindow/de|schließen]] und erneut [[Image:Std_Open.svg|16px]] [[Std_Open/de|öffnen]]
*: The tree view should look like this
{{Code|code=
Assembly
Constraints
Elements
Parts
Cylinder
Cube
}}
* Now Draw&Drop with the mouse both ''Cylinder'' and ''Cube'' onto the ''Parts'' folder. They are moved into that folder.
*: That is the quickest way. Please note that a ''better'' way is to open the Context menu on both and select ''ContetxMenu/LinkActions/MakeLink''. This adds two link files. Then Drag/Drop the link files to the ''Parts'' folder. For simple cases like this it does not really matter.
* Click both top surfaces of Cylinder and Cube (keep Ctrl pressed)
* Select assembly Workbench. Select "PlaceCoincident" from the Constraint [[#Toolbar|Toolbar]].
*: Now the parts should be joined into each other and your tree should look like this
{{Code|code=
Assembly
Constraints
PlaneConicident
_Element
_Element001
Elements
_Element
_Element001
Parts
Cylinder
Cube
}}
* Right click "_Element" (any of the two) and select "Flip Part".
*: Now the Cylinder should be on top of the box. If the whole thing is upside down, go back and select "Flip Part" on the other Element.
We omitted one important step that should be done in larger assemblies: locking a base part. That means define one part that should not be moved by constraints. In your case we use the cube for that:
* Select the lower face of the cube. Only the lower face, not the whole cube.
* select the "Lock" constraint from the constraint tool bar
*: The finished assembly tree should look like in the image above
Done.<br>
If you like you can move the "Locked" constraint upwards in the tree. Use the "MoveItemUp" button on the Main [[#Toolbar|Toolbar]] for that.


Die Baumansicht sollte so aussehen (0.20.pre and Link Branch):
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.


[[Image:Assembly3 Example-Tree-01.png|300px]] [[Image:Assembly3 Example-Tree-02.png|280px]]
[[#top|top]]


* Nun mit der Maus per ''Drag&Drop'' '''Zylinder''' und '''Würfel''' auf den '''Parts'''-Ordner ziehen und ablegen. Beide werden in den Ordner verschoben.
=== Add an Offset ===
*: Das ist der schnellste Weg und geeignet für einfache Fälle wie diesen. Ein besserer Weg geht über die Nutzung von Link-Objekten:
Assembly3 does not offer Offset with the constaints in the way the [[A2plus_Workbench|A2plus Workbench]] or other CAD tools do. Instead it offers a more general and flexible system to add offsets translations but also angles.
*: '''Würfel''' sowie '''Zylinder''' auswählen und dann den Befehl [[Image:Std LinkMake.svg|16px]] [[Std LinkMake/de|Link erstellen]] entweder aus dem '''Kontextmenü''' (-> LinkActions -> MakeLink) oder aus der Symbolleiste '''Struktur''' auswählen
*: Dies fügt zwei Link-Objekte hinzu. Diese werden dann auf den '''Parts'''-Ordner gezogen und abgelegt
* Anklicken der beiden Oberseiten von Zylinder und Würfel (Strg gedrückt halten (Cmd am Mac))
* Zur Arbeitsumgebung [[Image:Assembly3_workbench_icon.svg|16px]] [[Assembly3_Workbench/de|Assembly3]] wechseln.
* Schaltfläche {{Button|[[Image:Assembly_ConstraintCoincidence.svg‎‎|16px]] [[Assembly3_ConstraintCoincidence/de|Deckungsgleiche Ebenen]]}} aus der [[#Main Constraints Toolbar/de|Hauptwerkzeugleiste für Beschränkungen]] auswählen.


Jetzt sollten beide Teile miteinander verbunden sein und der Baum sollte so aussehen (0.20.pre and Link Branch):
* Add the offset in the properties of one [[#Elements|Elements]] of a [[#Constraint|Constraint]].
*: you can choose which one of the two you want to use.


[[Image:Assembly3 Example-Tree-03.png|300px]] [[Image:Assembly3 Example-Tree-04.png|280px]]
Example:
* Add 2 cubes to an assembly and select their side faces.
* select "PlaneCoincident". The cubes will be attached inside each other.
* select one Element and ''ContextMenu/Flip Part''. The cubes will be attached side-by-side.
* select one Element property Offset/Position/Zz and set to 5mm. The cubes will be 5mm apart.
:* Test with other axes or the angle/axis fields. Also verify that you get the same result when using the other Element.
This is the same approach for all other constraints.


* Rechtsklick auf "_Element" (eins der beiden) und "Flip Part" auswählen.
[[#top|top]]


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.
=== Solve a Solver Failure ===
: Bisher wurde ein wichtiger Schritt ausgelassen, den man besonders für größere Baugruppen nicht vergessen sollte: Das Fixieren eines Basisteils.
This often happens when parts are over-constraints, i.e. more than 6 DOF are locked.
: Das bedeutet ein Teil zu definieren, das nicht durch Einschränkungen bewegt werden sollte. In diesem Fall wird dafür der Würfel benutzt:
:* Auswahl der Unterseite des '''Würfels'''. Nur die Unterseite, nicht der ganze '''Würfel'''
:* Schaltfläche {{Button|[[Image:Assembly ConstraintLock.svg‎‎|16px]] [[Assembly3_ConstraintLock/de|Festsetzen]]}} aus der [[#Main Constraints Toolbar/de|Hauptwerkzeugleiste für Beschränkungen]] auswählen.


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


Der fertige Baugruppenbaum sollte so aussehen (0.20.pre and Link Branch):
Note: as Assembly3 tries to compensate for over-constraint parts behind the scenes, sometimes the problem is just triggered by a new constraint but the root cause is somewhere different. Before deleting all and starting again, remember that you can re-use Elements. If you named them you can identify the required elements and re-build the constraints without using the 3D view at all. See [[#Elements|Elements]] seciton above.


[[Image:Assembly3 Example-Tree-05.png|300px]] [[Image:Assembly3 Example-Tree-06.png|280px]]:
[[#top|top]]


Wer möchte, kann die Bedingung '''Festsetzen''' im Baum nach oben verschieben.
=== Replace a part or rename a filename ===
Dafür wird die Schaltfläche {{Button|[[Image:Assembly_TreeItemUp.svg‎‎|16px]] [[Assembly3_MoveItemUp/de|Objekt nach oben bewegen]]}} in der [[#Hauptwerkzeugleiste|Hauptwerkzeugleiste]] verwendet.
When a part is removed or when a filename changes, the assembly breaks, it can not longer be solved and the solver will issue the message "Inconsistent constraints". The solver marks invalid Elements and Constrains with a question mark in the tree.


'''Hinweis:''' Alle neuen externen Dateien müssen mindestens einmal '''gespeichert''', '''geschlossen''' und erneut '''geöffnet''' werden, damit Assembly3 sie finden kann.
One way to solve this is to just delete all invalid constraints and elements, import the new part and redo everything. But there is a better way:
: Andernfalls kann FreeCAD dem Arbeitsbereich Assembly3 kein Datei-Handle übergeben und dieser kann das neue Teil nicht finden.
: Auch wenn sich alle Teile in derselben Datei befinden, sollte man diese Datei '''speichern''', '''schließen''' und erneut '''öffnen'''.


[[#top|Anfang]]
* Rename a file
*# Use a file manager and copy the file you want renamed. Then give the new name to the copy.
*# Open the copy in FreeCAD. The assembly and the old file should also be open
*# Select the old object in the tree and click to change the propery "Linked object" (it does contain the old filename)
*# A list dialog will open containing all open parts. It shows the filenames and objects of each part. The old part and object is selected. Locate the renamed part in the tree and select the same object in the new part. Then confim the selection.
*# Delete the old part in the tree. Also the file can be deleted now.
*# Constraints and elements of te old part became invalid. Open the constraint or Elements list in the tree. Then sequentially
*#* select each element surface on the new part. An item in the tree will be highliged.
*#* Take that item and drag&drop it over the old element (either in the element list or in one of the constraints where it was used). That element should become valid.
*#* Repeat the procedure for the remaining elements. Often a single element is enough to allow Assembly3 to identify the remaining elements of the part automatically.
*#* If an element was assigned to the wrong surface by accident, just repeat with the correct surface.
*# Change the object name in FreeCAD, if desired


<span id="Add_an_Offset"></span>
===Einen Versatz hinzufügen===


Assembly3 sieht es nicht vor, mit den Bedingungen auch einen Versatz festzulegen, wie es der Arbeitsbereich [[A2plus_Workbench/de|A2plus]] oder andere CAD-Werkzeuge vorsehen. Stattdessen verwendet er ein allgemeineres und flexibleres System, um Abstände, Versätze und sogar Winkel festzulegen.
* Replace a part with another part
*: ''which is simular enough to the original part that the original constraints still make sense, of course''
*# Delete the old part in the tree. Also the file can be deleted.
*# Constraints and elements of te old part became invalid. Open the constraint or Elements list in the tree.
*#* Select an element surface on the new part. An item in the tree will be highliged.
*#* Take that item and drag&drop it over the old element (either in the element list or in one of the constraints where it was used). That element should become valid.
*#* repeat the procedure for the remaining elements.
*#* If an element was assigned to the wrong surface by accident, just repeat with the correct surface.
*# Change the object name in FreeCAD, if desired


* Einen Versatz in den Eigenschaften eines [[#Elemente|Elements]] einer [[#Bedingungen|Bedingung]] festlegen.
*: Man kann wählen, welches der beiden man verwenden möchte.


Beispiel:
''Notes<br>
* 2 Würfel zu einer Baugruppe hinzufügen und ihre Seitenflächen auswählen.
* They are not as complicated as it may seem here. After 2-3 times they should become second nature and feel really easy to do.
* Bedingung "Deckungsgleiche Ebenen" auswählen. Die Würfel werden ineinanderliegend zusammengefügt.
* Its not only usually ways quicker than deleting and re-doing constraints, its also safer because an element could have been used in a parent assembly. Deleting the original would destroy that link, re-assingning would keep it.
* Ein Element und anschließend ''KontextMenü/Flip part'' auswählen. Die Würfel werden jetzt Seite an Seite zusammengefügt.
* Also this procedure becomes really quick and easy to do if constraints and elements are named. There is no guessing where the surfaces should be dragged&dropped to because the names tell it (see [[#Tips & Tricks|Tips & Tricks]]).
* Eine Element auswählen und anschließend seine Eigenschaft Offset/Position/z und auf 5mm setzen. Die Würfel sind nun 5mm voneinander entfernt.
''
:* Dies testet man auch mit den anderen Koordinaten der Position oder den Eigenschaften Winkel oder Achse. Man sollte auch überprüfen, ob man das gleiche Ergebnis erhält, wenn das andere Element verwendet wird.
Diese Herangehensweise gilt auch für alle anderen Bedingungen.


[[#top|top]]
[[#top|Anfang]]


<span id="Solve_a_Solver_Failure"></span>
=== Tips & Tricks ===
===Fehler des Lösers beheben===
* Using hierarchical assemblies helps in avoiding solver issues and keeping you model fluid. You can freeze a subassembly with one click and save CPU resources easily (use the context menu in the tree). When loading an assembly Assembly3 does not need to open external files for frozen subassemblies which keeps the tree compact.
* Is very helpful to make it a habit to name the elements and constraints. Use the {{KEY|F2}} key to do this quickly in the tree. You will find the tree sorting tools in the main toolbar very useful. An assembly with fully named constraints and elements is very easy to understand for other people or for oneself when looking at an older file.
*: Examples for constraint names for a table could be "Align_FrontLegs", "Align_FrameBottom-LegTops" and element names could be "Leg1_Top" or "TableTop_Front", "TableTop_Left".
* Please note that once external files are opened by an assembly its not possible easy to close them again without closing the assembly. Since the assembly keeps open those files in the backgound, the tab may disappear but the file remains visible in the tree. If you have several layers of subassemblies it becomes close to impossible to close single files. This behaviour may change, but until then a possible approach could be to regulary use the commands ''File/Save All'' and ''File/Close All'' to clean up the tree before working on another sub-assembly.
*: ''Example: consider you have a large CNC machine with a main assembly and a subassembly for each module. Once you have the main assembly open it may open literally hundreds of files down to a single ball bearing. Before working on the subassembly of the electronics cabinet of the machine it is a good idea to save and close all files to get an empty tree. Then open just the subassembly for the electronics cabinet. This will open all file it needs but ony those.
* Using external files makes it easier to re-use a parts or do part versioning with systems like git or subversion. The workflow in FreeCAD with Assembly feels quite the same as with files that have all parts in the same file. For exchanging files often with other parties, single files might be more convenient.
* Multiply linked parts. If you added a link into the assembly, it will have a property value named "Element Count", default 0. If you set this to 3 you get 3 instances of that part. They will be added into a subfolder and can be used like fully separte parts. Use this feature to keep the data footprint of your file low, because the part is saved only once. Each instance only contain the differences.
* Insert multiple parts, e.g. Screws, with one click. Check out the [https://github.com/realthunder/FreeCAD_assembly3/wiki/Constraints-and-Solvers Assembly3 Wiki] on the Github site. This is not only a stunning function (even a bit magic), but really really useful.


Diese treten häufig auf, wenn Einzelteile überbestimmt sind, d.h. wenn mehr als 6 Freiheitsgrade festgelegt sind.
* Using the [https://github.com/triplus/TabBar TabBar Workbench] speeds up working with assembly. This adds a Toolbar with one button for each workbench. You can sort the toolbar and can put it where every you want it. Many people put it vertically on the left side just beside the tree view. Of you have Assembly3, Part, PartDesign and other often used workbenches close to the top switching between them becomes extremely easy.


Der einfachste Weg das Problem zu finden, ist das Anklicken der entsprechenden Bedingung im Konstruktionsbaum und die Auswahl von ''ContextMenu/Disable'' mit anschließender Neuberechnung. Es hilft zu wissen, welche Bedingungen zuletzt 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 Bedingung 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 Bedingungen erneut aufgebaut werden, ohne die 3D-Ansicht zu verwenden. Siehe auch obigen Abschnitt [[#Elemente|Elemente]].
[[#top|top]]


[[#top|Anfang]]
== Verknüpfungen/Verweise ==


<span id="Replace_a_part_or_rename_a_filename"></span>
* [[App_Link|App Link]] Programm, um die Arbeit mit Assembly3 möglich zu machen.
===Ein Bauteil ersetzen oder einen Dateinamen umbenennen===

Wenn ein Bauteil entfernt wird oder wenn sich ein Dateiname ändert, "zerbricht" die Baugruppe und kann nicht mehr berechnet werden; der Löser gibt die Meldung "Inconsistent constraints" (Widersprüchliche Bedingungen) aus. Der Löser kennzeichnet ungültige Elemente und Bedingungen mit einem Fragezeichen im Baum.

Ein Weg, dieses zu beheben ist, einfach alle ungültigen Bedingungen und Elemente zu löschen, das neue Bauteil zu importieren und alles erneut auzubauen. 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 Bauteil durch ein anderes ersetzen
*: ''Eins das dem originalen Bauteil ähnlich genug ist, dass die originalen Bedingungen noch sinnvoll sind.''
*# Das alte Bauteil aus dem Baum entfernen. Die Datei kann jetzt auch gelöscht werden.
*# Die Bedingungen und Elemente des alten Teiles sind ungültig geworden. Jetzt wird die Bedingung 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 Bedingungen, 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<br>
* 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_.26_Tricks|Tipps & Tricks]]).

[[#top|Zum Anfang]]

<span id="Tips_&amp;_Tricks"></span>
===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 {{KEY|F2}}-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 [https://github.com/realthunder/FreeCAD_assembly3/wiki/Constraints-and-Solvers 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 des Arbeitsbereichs [https://github.com/triplus/TabBar TabBar] beschleunigt die Arbeit mit Zusammenbauten. Es wird eine Werkzeugleiste mit je einem Knopf für jeden Arbeitsbereich hinzugefügt. Man kann die Reihenfolge ändern und man kann die Werkzeugleiste nach belieben platzieren. Viele Leute legen sie vertikal an den linken Rand direkt neben der Baumansicht. Wenn man Assembly3, Part, PartDesign und andere oft genutzte Arbeitsbereiche am oberen Ende platziert, macht es das Umschalten zwischen den Arbeitsbereichen extrem einfach.

[[#top|Zum Anfang]]

<span id="Links"></span>
== Verweise ==

* Das [[App_Link|App-Link]]-Objekt ermöglicht, dass Assembly3 funktioniert.
* [https://github.com/realthunder/FreeCAD_assembly3 FreeCAD_assembly3] Repository und Dokumentation.
* [https://github.com/realthunder/FreeCAD_assembly3 FreeCAD_assembly3] Repository und Dokumentation.
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=25712 Assembly3 preview], große Diskussionsrunde.
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=25712 Assembly3 preview], große Diskussionsrunde.
* [https://forum.freecadweb.org/viewtopic.php?f=36&t=29562 Test tutorial for Assembly 3 WB] von jpg87.
* [http://help-freecad-jpg87.fr/02_ass_ind.php Tutorial for Assembly 3 Workbench] von jpg87.
* Anleitungen zum [[Tutorial_KinematicAssembly/de|kinematischen Zusammenbau]], [[Tutorial_KinematicSkeleton/de|Kinematik-Skelett]] und passender [[Tutorial_KinematicController/de|Kinematiksteuerung]].
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=34583 Current Assembly Status]
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=34583 Current Assembly Status]
* [[External_workbenches|Externe Arbeitsbereiche]]
* [[External_workbenches|Externe Arbeitsbereiche]]

* [[External_workbench_list|Liste der externen Arbeitsbereiche]]
* [[Assembly_project|Altes Assembly Projekt]] Entwicklungsablauf, um sich mit der Geschichte des Themas vertraut zu machen.


{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 08:24, 30 March 2023

Symbol des Arbeitsbereichs Assembly3

Einleitung

Assembly3 ist ein externer Arbeitsbereich, der dem Zusammenbau von verschiedenen Körpern dient, die entweder in einem einzigen oder in mehreren separaten Dokumenten gespeichert sind. Der Arbeitsbereich basiert auf einigen Änderungen der Kernfunktionen, die mit FreeCAD 0.19 eingeführt wurden (z.B. App-Link), sodass der Arbeitsbereich Assembly3 nicht mit früheren Versionen verwendet werden kann.

Die Hauptmerkmale des Assembly3-Arbeitsbereichs sind

  • ein dynamischer/interaktiver Löser. Das heißt, dass man Teile mit der Maus bewegen kann, während der Löser die Bewegung(sfreiheit) einschränkt. Dies erlaubt z. B. ein Rad mit einer Achse zu verbinden und das Rad interaktiv mit der Maus zu drehen.
  • Verknüpfungen. Damit kann ein einzelnes Teil, z. B. eine Schraube, mehrfach (an unterschiedlichen Stellen) in einem Zusammenbau (einer Baugruppe) zu verwenden, 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 Dateien könnten auch in einer Bibliothek oder anderswo im Dateisystem abgelegt sein. 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 Verknüpfungen, die die Datei betreffen, zu aktualisieren. Assembly3 erreicht dies, indem es die Dateien bei Bedarf im Hintergrund öffnet.
  • hierarchische Baugruppen. Wie im wirklichen Leben darf ein mechanischer Zusammenbau aus Unterbaugruppen bestehen. Auch diese können aus Unterbaugruppen bestehen und so weiter.
  • das Einfrieren von Baugruppen. Da die CPU nur eine bestimmte Anzahl gleichzeitiger Bedingungen in Echtzeit verarbeiten kann, ermöglicht das Einfrieren von Baugruppen die Anwendung von Bedingungen sogar für große Baugruppen. Durch das Einfrieren von fertigen Baugruppen oder Bedingungen, die nicht dynamisch verändert werden müssen (z.B. bei verschweißten, vernieteten oder verklebten Bauteilen), werden diese von Aktualisierungsberechnungen ausgenommen und vom Assembly3-Löser als fixierte Geometrie angesehen.
    Man beachte, dass andere Herangehensweisen andere Lösungen für dieses Problem anbieten, z. B. der Arbeitsbereich Assembly4.

Anfang

Symbolleisten

Seit 2020 enthält der Arbeitsbereich Assembly3 die folgenden Symbolleisten.

Hauptwerkzeugleiste

Die Hauptwerkzeugleiste enthält Werkzeuge, die die am häufigsten gebrauchten Funktionen des Arbeitsbereiches abdecken. Die zugehörigen Tastaturkürzel findet man in den Tooltips.
  • Baugruppe anlegen: Einen Baugruppenordner hinzufügen
  • Objekte gruppieren: Eine Objektgruppe erstellen
  • Element anlegen: Ein Element hinzufügen. Dies ist auch im Kontextmenü verfügbar
  • STEP-Dateien importieren. Hier gibt es zwei Einstellungen
  • Beziehungen anwenden: Festgelegte Beziehungen berechnen (auflösen)
  • Schnelle Berechnung: Beziehungen schnell berechnen (auflösen)
  • Teil bewegen: Teil in 3D bewegen, dies ist ein spezielles Assembly3-Werkzeug
  • Axial bewegen: Teil axial in 3D bewegen, dies ist das übliche Werkzeug, das auch anderen Bereichen von FreeCAD zur Verfügung steht
  • Schnelles Bewegen: Schnelles Bewegen. Dies hängt das im Baum ausgewählte Teil an den Mauszeiger. Es verändert die Position des Teils, mit einem Mausklick.
    Oft befinden sich hinzugefügte Teile übereinander gestapelt im Ursprung. Diese Funktion kann benutzt werden, um nicht sichtbare Teile zu erreichen.
  • Bewegung verhindern: Bewegung ausschließen für fixierte Teile. Umschaltknopf. Wenn dieser abgewählt ist, können auch Teile bewegt werden, die durch die Fixiereinschränkung festgelegt sind.
  • Sichtbarkeit umschalten: Dies schaltet die Sichtbarkeit des ausgewählten Teils ein oder aus.
    Achtung, dies unterscheidet sich von der Benutzung der Leertaste. Die Benutzung der Leertaste mit ausgewählten Elementen einer Unterbaugruppe in der 3D-Ansicht liefert oft nicht das erwartete Verhalten. In solchen Fällen sollte diese Funktion benutzt werden (oder das Tastenkürzel A, Leertaste)
  • Bewegung aufzeichnen:Bewegungsbahn aufzeichnen (TBD)
  • Automatische Berechnung:Automatische Berechnung. Standardmäßig aktiviert.
    Kann deaktiviert werden für die Reparatur von Einschränkungen oder die Fixierung von Teilen, für die der Löser Die Nachricht "do not converge" ausgibt (z.B. wenn das Teil um 180° gedreht wird)
  • Smarte Berechnung: Smarte Berechnung. Standardmäßig aktiviert.
  • Element automatisch fixieren: Automatische Elementfixierung. Experimentelle Funktion in 0.19_pre
  • Element Darstellung. Dies hat zwei Einstellmöglichkeiten:
  • Arbeitsebene und Ursprung. Fügt eine Arbeitsebene, eine Platzierung oder einen Ursprung hinzu. Es muss ein Teil ausgewählt sein. Hier gibt es fünf Einstellungen.
  • Objekt aufwärts bewegen: Ausgewähltes Baumobjekt aufwärts bewegen
  • Objekt abwärts bewegen: Ausgewähltes Baumobjekt abwärts bewegen
    Erlaubt es Teile, Elemente oder Einschränkungen im Baum umzusortieren. Mit "Element roll over" (von der ersten zur letzten Position und umgekehrt). Funktioniert nur mit einer einzelnen Auswahl.
  • Beziehung vervielfältigen: Beziehung vervielfachen. Dies kann ausgewählt werden, wenn Teile und geeignete Elemente mehrfach vorhanden sind. Es kann z.B. benutzt werden um mehrfach vorhandene Befestigungselemente mehrfach vorhandenen Löchern mit nur einer Beziehung zuzuordnen.

Hauptwerkzeugleiste für Bedingungen

Einige dieser Werkzeuge sind eigentlich Menüs für weitere Werkzeuge.
  • Festsetzen: Zum Fixieren eines oder mehrerer Teile.
    Es muss ein (Geometrie-) Element eines Teiles ausgewählt werden.
    Wird ein Knotenpunkt oder eine Kante festgesetzt, lässt sich das Teil immer noch frei um den Knotenpunk oder die Kante drehen.
    Das Festsetzen einer Fläche fixiert das Teil vollständig.
  • Ebenen ausrichten: Zum Ausrichten ebener Flächen zweier oder mehrerer Teile.
    Die Flächen werden komplanar ausgerichtet oder optional parallel mit Abstand.
  • Deckungsgleiche Ebenen: Zum deckungsgleich Festlegen ebener Flächen zweier oder mehrerer Teile.
    Die Flächen werden mit deckungsgleichen Ursprüngen komplanar ausgerichtet oder optional parallel mit Abstand.
  • Befestigung. Dies hat zwei Varianten
    • Befestigung: Zum Befestigen eines Teils an ein zweites mittels der ausgewählten (Geometrie-) Elemente.
      Diese Bedingung verbindet beide Teile starr miteinander.
    • BefestigungVersatz: Wie die Bedingung "Befestigung", aber unter Beibehaltung der relativen Ausrichtung der beteiligten Teile durch Anpassung der Offset-Werte eines Elements.
      Diese Bedingung verbindet beide Teile starr miteinander.
  • Axiale Ausrichtung: Zum axialen Ausrichten (Fluchten) von Kanten und Flächen zweier oder mehrerer Teile.
    Die Bedingung akzeptiert:
    lineare Kanten; sie werden kollinear ausgerichtet,
    ebene Flächen; sie werden unter Nutzung ihrer Flächennormalen (Z-Achse) ausgerichtet,
    und zylindrische Flächen; sie werden unter Nutzung ihrer (Z-) Achsrichtung ausgerichtet.
    Verschiedene Arten von (Geometrie-) Elementen können gemischt werden.
  • Richtungen angleichen: Zum identischen Ausrichten der (ebenen) Flächen zweier oder mehrerer Teile.
    Die Ebenen werden so ausgerichtet, dass ihre (Z-) Achsen in dieselbe Richtung zeigen.
  • Mehrfach parallel: Zum parallelen Ausrichten von ebenen Flächen oder geraden Kanten zweier oder mehrerer Teile.
  • Winkel festlegen: Zum Festlegen des Winkels zwischen ebenen Flächen oder geraden Kanten zweier Teile.
  • Rechtwinklig festlegen: Zum rechtwinkligen Festlegen von ebenen Flächen oder geraden Kanten zweier Teile.
  • Punkt auf Punkt: Zum deckungsgleich Festlegen zweier Punkte in 2D oder 3D.
  • Punkt auf Ebene: Zum Festlegen eines oder mehrerer Punkte auf einer Ebene (Punktberührung).
  • Punkt auf Linie: Zum Festlegen eines oder mehrerer Punkte auf einer Linie in 2D or 3D.
  • Punkt auf Kreis: Zum Festlegen eines oder mehrerer Punkte auf einer durch einen Kreis definierten zylindrischen Fläche.
    Achtung! Es muss ein Punkt (irgendein Geometrieelement, dass einen Punkt definieren kann) ausgewählt werden und dann der Kreis (oder eine zylindrische Fläche),
    danach können bei Bedarf weitere Punkte hizugefügt werden.
  • Punkt zu Punkt Abstand: Zum Festlegen des Abstands zweier oder mehrerer Punkte zueinander.
  • Punkt zu Ebene Abstand: Zum Festlegen des Abstands eines oder mehrerer Punkte zu einer Ebene.
  • Punkt zu Linie Abstand: Zum Festlegen des Abstands eines Punktes zu einer geraden Kante in 2D oder 3D.
  • Symmetrie festlegen: Zum Festlegen der Symmetrie der (Geometrie-) Elemente zweier Teile bezüglich einer Ebene.
    Unterstützte Elemente sind gerade Kanten und ebene Flächen.
  • Weitere: Werkzeugleisten umschalten für weitere Bedingungen
    Nicht wirklich eine Bedingung, sondern ein Umschalter zum Anzeigen/Ausblenden der Zusatzwerkzeugleisten für Bedingungen.

Zusatzwerkzeugleisten für Bedingungen

(Assembly3 Constraints2)
(Assembly3 Sketch Constraints)
Diese kann man durch Auswählen der Schaltfläche Weitere in der Hauptwerkzeugleiste für Bedingungen aktivieren.
  • Abstand zweier Punkte: Zum Festlegen des Abstands zweier Punkte in 2D oder 3D.
  • Gleiche Winkel: Zum Festlegen von gleichen Winkeln zwischen (je) zwei Linien oder (Flächen-) Normalen.
  • Symmetrische Punkte: Zum Festlegen der symmetrischen Lage zweier Punkte bezüglich einer Ebene.
  • () Horizontale Symmetrie : (noch nicht fertig...)
  • () Vertikale Symmetrie: (noch nicht fertig...)
  • Achsensymmetrie: Zum Festlegen der symmetrischen Lage zweier Punkte bezüglich einer Symmetrieachse.
  • Horizontale Punkte: Zum Festlegen einer horizontalen Ausrichtung zweier Punkte, wenn sie auf eine Ebene projiziert werden.
  • Vertikale Punkte: Zum Festlegen einer vertikalen Ausrichtung zweier Punkte, wenn sie auf eine Ebene projiziert werden.
  • Horizontale Linie: Zum Festlegen einer horizontalen Ausrichtung eines Liniensegments, wenn es auf eine Ebene projiziert wird.
  • Vertikale Linie: Zum Festlegen einer vertikalen Ausrichtung eines Liniensegments, wenn es auf eine Ebene projiziert wird.
  • Bogen-Linie-Tangente: Zum Festlegen eines tangentiellen Übergangs zwischen einer Linie und dem Start- oder Endpunkt eines Bogens.
  • Skizzierebene: Zum Festlegen einer Arbeitsebene für alle Draft-WB-Elemente innerhalb dieser Beziehung oder dieser Beziehung folgend.
    Eine weitere hinzufügte leere Skizzenebene löst die vorherige als Arbeitsebene ab.
  • Linienlänge: Zum Festlegen der Länge eines nicht unterteilten Draft-Drahtes.
  • Gleiche Länge: Zum Festlegen, dass zwei Linien gleich lang sind.
  • Längenverhältnis: Zum Festlegen des Verhältnisses der Längen zweier Linien.
  • Längendifferenz: Zum Festlegen der Differenz der Längen zweier Linien.
  • Länge gleich Punkt-Linie-Abstand: Zum Festlegen, dass der Abstand eines Punktes zu einer Linie gleich der Länge einer weiteren Linie ist.
  • ( )Linien- gleich Bogenlänge: Zum Festlegen, dass die Länge einer Linie gleich der Länge enes Bogens ist.
  • Mittelpunkt: Zum Festlegen eines Punktes in der Mitte einer Linie.
  • Durchmesser: Zum Festlegen des Durchmessers eines Kreises oder Bogens.
  • Gleicher Radius: Zum Festlegen, dass die Radien zweier Kreise oder Bögen gleich groß sind.
  • Projizierter Punktabstand: Zum Festlegen des Abstands zweier Punkte, die auf eine Linie projiziert werden.
  • Gleicher Punkt-Linien-Abstand: Zum Festlegen, dass der Abstand eines Punktes zu einer Linie gleich dem Abstand eines weiteren Punktes zu einer anderen Linie ist.
  • Kollinear: Hinzufügen einer "kollinearen" Beschränkung um zwei Linien kollinear zu machen.
Die Werkzeugleisten der Bedingungen 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 Bedingung.
Die unterschiedlich gefärbten Rahmen kennzeichnen unterschiedliche Eigenschaften der Bedingungen:
ob 2D / 3D oder ob mehr als 2 Elemente zusammengefügt werden können.
Eine ausführliche Beschreibung ist im GitHub-Wiki zu finden.

Navigationswerkzeugleiste

Diese Funktionen sind nützlich, wenn eine Baugruppe mit einer Hierarchie von verknüpften externen Dateien bearbeitet wird.

Messwerkzeugleiste

Die Messwerkzeugleiste fügt Funktionen zum Messen des Abstands oder des Winkels zwischen zwei Objekten hinzu
  • Punkte messen: Füge ein "Punkte messen" hinzu, um den Abstand zwischen zwei Punkten in 2D oder 3D zu messen.
  • Punkt zu Linie messen: Füge ein "Punkt zu Linie messen" hinzu, um den Abstand zwischen einem Punkt und einer linearen Kante in 2D oder 3D zu messen.
  • Punkt zu Ebene messen: Füge ein "Punkt zu Ebene messen" hinzu, um den Abstand zwischen einem Punkt und einer Ebene zu messen.
  • Winkel messen: Füge ein "Winkel messen" hinzu, um den Winkel von ebenen Flächen oder linearen Kanten zweier Teile zu messen.
Es gibt keine Funktion um einen Radius oder Durchmesser zu messen.
Die Messwerkzeuge überdauern Teiländerungen, z.B. den Abstand zwischen Kanten eines Würfels, wenn die die Größe des Würfels geändert wird.
Wie die Beschränkungen werden diese Berechnungen in Echtzeit ausgeführt und bei jeder Änderung aktualisiert. Hinter den Kulissen ist die Funktion den Beschränkungen sehr ähnlich. Der Abstand oder Winkel zwischen Elemente wird auf die gleiche Weise berechnet wie bei Beschränkungen. Die Anzeige im Baum funktioniert auf die gleiche Weise.

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.

Anfang

Bedingungen

Der Konstrukteur benutzt Bedingungen (auch Randbedingung, Einschränkung, Beschränkung, Zwang, Zwangsbedingung, Festlegung genannt) um zwei Teile zueinander auszurichten. Die Kunst besteht darin, die Bedingungen zu wählen, die am besten zu den jeweiligen Anforderungen passen. Jeder bestimmte Freiheitsgrad (Degree Of Freedom) sollte theoretisch nur einmal zwischen zwei Objekten festgelegt sein, aber in der Praxis vieler CAD-Werkzeuge erzeugen die ausgewählten Bedingungen überbestimmte Kombinationen, die oft durch komplexe Algorithmen ausgeglichen werden können, manchmal aber auch nicht. Assembly3 benutzt solche Algorithmen, um überzählige Bedingungen zu entdecken und auszugleichen, aber sie sind bisher noch nicht besonders ausgereift. Am besten vermeidet man Schwierigkeiten im Umgang mit Assembly3-Bedingungen, indem man darauf achtet, wieviele Freiheitsgrade schon bestimmt sind und welche durch weitere Bedingungen noch festzulegen sind. Kein Teil sollte durch Bedingungen so verbunden werden, dass mehr als 6 Freiheitsgrade festlegt werden.

Hinweis: Wenn der Gleichungslöser auf eine Kombination 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 Baugruppen 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 beteiligten Komponenten zu verwenden und nur dann weitere Bedingungen hinzuzufügen, wenn der Gleichungslöser die aktuelle Baugruppe erfolgreich berechnen kann. Sehr hilfreich, um ein Problem zu finden, ist die Funktion "ContexMenu/Deactivate" der jeweiligen Bedingung.

Assembly3-Bedingungen definieren, wie die Möglichkeiten der Positionierung oder Orientierung zwischen zwei Elementen reduziert werden. Einige Bedingungen arbeiten sogar mit mehr als zwei Elementen. Ein Element kann eine Fläche, eine Linie oder Kante oder ein Punkt eines Teils sein. Im Allgemeinen werden Bedingungen definiert, indem man erst die gewünschten Elemente und dann die Bedingung aus einer der Werkzeugleisten für Bedingungen auswählt.

  • 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 (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

Other

  • 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 Arbeitsumgebung Assembly3 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 wesentliche Punkt für das Verständnis ist, dass die Randbedingung mit Verknüpfungen zu Elementen in der Liste des "Elements"-Baumabschnitts arbeitet. Dies erlaubt, die Bindungsstruktur intakt zu halten, während die Teile geändert werden. Dies ist ohne ein Beispiel sehr schwer zu erkennen.

Zurück zum obigen Beispiel

Achtung: Es sollte darauf geachtet werden, dass die Fixierbedingung zum Würfel hinzugefügt wurde, andernfalls wird es merkwürdig aussehen.
Im CAD-Fenster wird eine weitere Fläche des Würfels ausgewählt. Ab jetzt wird nur noch in der Baumansicht gearbeitet. In der Baumansicht wird die Maus verwendet; der Würfel sollte ausgewählt sein. 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, dass ein weiteres Element zur 'Elements'-Liste hinzugefügt wurde. Nun wird im 'Constraints'-Ordner der Kindknoten der Würfelfläche in der Bedingung 'Plane Coincident' ausgewählt und aus der Liste entfernt. Die Bedingung ist nun mit einem Ausrufezeichen gekennzeichnet, da ihr ein Element fehlt. Hierbei ist zu beachten, dass ein Element, das aus der Bedingung 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 Bedingung 'Plane Coincident' gezogen und abgelegt werden. 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 Randbedingung gehörenden Elemente austauschen kann, ohne die Bedingung 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 Bedingungen umbenannt
  • Ein Element der Liste kann für mehrere Randbedingungen verwendet werden.
  • Das Eigenschaftenfenster 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 die Schaltfläche 'Show Element Coordinate System' der Hauptwerkzeugleiste benutzen, um zu sehen, wie sich 'Flip Part' und 'Flip Element' aus dem Kontextmenü auswirken. Nicht vergessen, die Änderungen im Eigenschaftenfenster zu beobachten.
  • Eine Randbedingung 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 Bedingung hinzugefügt, ohne etwas auszuwählen - Das ergibt eine leere Randbedingung. 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 Randbedingungen und Elemente zusammenarbeiten.
  • Eine bestehende Bedingung zwischen bestehenden Elementen kann einfach ausgetauscht werden, indem man eine andere Auswahl in der 'ConstraintType'-Eigenschaft im Eigenschaftenfenster trifft.

Zum Anfang

Kompatibilität

Assembly3 wurde vom Assembly2 inspiriert, ist aber nicht mit diesem kompatibel. Wenn du ältere Modelle in Assembly2 erstellt hast, solltest du bei FreeCAD 0.16 bleiben und Assembly2 dort verwenden.

Neue Modelle, die mit Assembly3 entwickelt wurden, sollten nur mit diesem Arbeitsbereich geöffnet und bearbeitet werden.

Obwohl sie möglicherweise ähnliche Werkzeuge haben, ist Assembly3 nicht kompatibel mit A2plus noch mit Assembly4. Modelle, die mit diesen Arbeitsbereichen erstellt wurden, sollten nur mit dem jeweiligen Arbeitsbereich geöffnet werden.

Zum Anfang

Installation

Der Arbeitsbereich Assembly3 ist (seit März 2022) über den Addon-Manager verfügbar. Jede Abhängigkeit von Assembly3 zu (Modulen von) Drittanbietern sollte automatisch durch den Addon_Manager verwaltet werden.

Alternative Installationen

Es gibt 2 alternative Wege Assembly3 zu installieren:

  • Eine spezielle Abspaltung von FreeCAD von realthunder; siehe hier. 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.
  • Das Entwicklungs-App-Image; dieses 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 App-Image nur unter Linux funktioniert, ist für Windows-Benutzer (die gerne eine alternative Assembly3-Installation hätten) die erste Option die einzige Möglichkeit, Assembly3 zu testen (realthunder's fork) .

Zum Anfang

GewusstWie

Loslegen

Es gibt viele Wege einen Zusammenbau mit Assembly3 zu erstellen. Hier ist der einfachste.

Endergebnis des 'Wie man startet'-Beispiels. In dem Bild ist die Arbeitsumgebung Assembly3 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).

Die Baumansicht sollte so aussehen (0.20.pre and Link Branch):

  • Nun mit der Maus per Drag&Drop Zylinder und Würfel auf den Parts-Ordner ziehen und ablegen. Beide werden in den Ordner verschoben.
    Das ist der schnellste Weg und geeignet für einfache Fälle wie diesen. Ein besserer Weg geht über die Nutzung von Link-Objekten:
    Würfel sowie Zylinder auswählen und dann den Befehl Link erstellen entweder aus dem Kontextmenü (-> LinkActions -> MakeLink) oder aus der Symbolleiste Struktur auswählen
    Dies fügt zwei Link-Objekte hinzu. Diese werden dann auf den Parts-Ordner gezogen und abgelegt
  • Anklicken der beiden Oberseiten von Zylinder und Würfel (Strg gedrückt halten (Cmd am Mac))
  • Zur Arbeitsumgebung Assembly3 wechseln.
  • Schaltfläche Deckungsgleiche Ebenen aus der Hauptwerkzeugleiste für Beschränkungen auswählen.

Jetzt sollten beide Teile miteinander verbunden sein und der Baum sollte so aussehen (0.20.pre and Link Branch):

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

Bisher wurde ein wichtiger Schritt ausgelassen, den man besonders für größere Baugruppen nicht vergessen sollte: Das Fixieren eines Basisteils.
Das bedeutet ein Teil zu definieren, das nicht durch Einschränkungen bewegt werden sollte. In diesem Fall wird dafür der Würfel benutzt:

Fertig.

Der fertige Baugruppenbaum sollte so aussehen (0.20.pre and Link Branch):

:

Wer möchte, kann die Bedingung Festsetzen im Baum nach oben verschieben. Dafür wird die Schaltfläche Objekt nach oben bewegen in der Hauptwerkzeugleiste verwendet.

Hinweis: Alle neuen externen Dateien müssen mindestens einmal gespeichert, geschlossen und erneut geöffnet werden, damit Assembly3 sie finden kann.

Andernfalls kann FreeCAD dem Arbeitsbereich Assembly3 kein Datei-Handle übergeben und dieser kann das neue Teil nicht finden.
Auch wenn sich alle Teile in derselben Datei befinden, sollte man diese Datei speichern, schließen und erneut öffnen.

Anfang

Einen Versatz hinzufügen

Assembly3 sieht es nicht vor, mit den Bedingungen auch einen Versatz festzulegen, wie es der Arbeitsbereich A2plus oder andere CAD-Werkzeuge vorsehen. Stattdessen verwendet er ein allgemeineres und flexibleres System, um Abstände, Versätze und sogar Winkel festzulegen.

  • Einen Versatz in den Eigenschaften eines Elements einer Bedingung festlegen.
    Man kann wählen, welches der beiden man verwenden möchte.

Beispiel:

  • 2 Würfel zu einer Baugruppe hinzufügen und ihre Seitenflächen auswählen.
  • Bedingung "Deckungsgleiche Ebenen" auswählen. Die Würfel werden ineinanderliegend zusammengefügt.
  • Ein Element und anschließend KontextMenü/Flip part auswählen. Die Würfel werden jetzt Seite an Seite zusammengefügt.
  • Eine Element auswählen und anschließend seine Eigenschaft Offset/Position/z und auf 5mm setzen. Die Würfel sind nun 5mm voneinander entfernt.
  • Dies testet man auch mit den anderen Koordinaten der Position oder den Eigenschaften Winkel oder Achse. Man sollte auch überprüfen, ob man das gleiche Ergebnis erhält, wenn das andere Element verwendet wird.

Diese Herangehensweise gilt auch für alle anderen Bedingungen.

Anfang

Fehler des Lösers beheben

Diese treten häufig auf, wenn Einzelteile überbestimmt sind, d.h. wenn mehr als 6 Freiheitsgrade festgelegt sind.

Der einfachste Weg das Problem zu finden, ist das Anklicken der entsprechenden Bedingung im Konstruktionsbaum und die Auswahl von ContextMenu/Disable mit anschließender Neuberechnung. Es hilft zu wissen, welche Bedingungen zuletzt 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 Bedingung 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 Bedingungen erneut aufgebaut werden, ohne die 3D-Ansicht zu verwenden. Siehe auch obigen Abschnitt Elemente.

Anfang

Ein Bauteil ersetzen oder einen Dateinamen umbenennen

Wenn ein Bauteil entfernt wird oder wenn sich ein Dateiname ändert, "zerbricht" die Baugruppe und kann nicht mehr berechnet werden; der Löser gibt die Meldung "Inconsistent constraints" (Widersprüchliche Bedingungen) aus. Der Löser kennzeichnet ungültige Elemente und Bedingungen mit einem Fragezeichen im Baum.

Ein Weg, dieses zu beheben ist, einfach alle ungültigen Bedingungen und Elemente zu löschen, das neue Bauteil zu importieren und alles erneut auzubauen. Aber es gibt einen besseren Weg:

  • Eine Datei umbenennen
    1. Einen Dateimanager benutzen, um die Datei zu kopieren, umbenannt werden soll. Anschließend gibt man der Kopie den neuen Namen.
    2. Öffnen der Kopie in FreeCAD. Der Zusammenbau und die alte Datei sollten auch geöffnet sein.
    3. Das alte Objekt im Baum auswählen und per Klick die Eigenschaft 'Linked object' ändern (sie enthält den alten Dateinamen).
    4. 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.
    5. Die alte Datei aus dem Baum entfernen. Die Datei kann jetzt auch gelöscht werden.
    6. 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.
    7. Ändern des Objektnamens in FreeCAD, falls gewünscht
  • Ein Bauteil durch ein anderes ersetzen
    Eins das dem originalen Bauteil ähnlich genug ist, dass die originalen Bedingungen noch sinnvoll sind.
    1. Das alte Bauteil aus dem Baum entfernen. Die Datei kann jetzt auch gelöscht werden.
    2. Die Bedingungen und Elemente des alten Teiles sind ungültig geworden. Jetzt wird die Bedingung 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 Bedingungen, 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.
    3. Ä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 F2-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 des Arbeitsbereichs TabBar beschleunigt die Arbeit mit Zusammenbauten. Es wird eine Werkzeugleiste mit je einem Knopf für jeden Arbeitsbereich hinzugefügt. Man kann die Reihenfolge ändern und man kann die Werkzeugleiste nach belieben platzieren. Viele Leute legen sie vertikal an den linken Rand direkt neben der Baumansicht. Wenn man Assembly3, Part, PartDesign und andere oft genutzte Arbeitsbereiche am oberen Ende platziert, macht es das Umschalten zwischen den Arbeitsbereichen extrem einfach.

Zum Anfang

Verweise