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.
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.
Bauteil bewegen: Bewegt das Bauteil in 3D; dies ist ein spezielles Assembly3-Werkzeug.
Axial bewegen: Bewegt das Bauteil axial in 3D; dies ist das übliche Werkzeug, das auch anderen Bereichen von FreeCAD zur Verfügung steht.
Schnelles Bewegen: Dies hängt das im Baum ausgewählte Bauteil an den Mauszeiger. Es verändert die Position des Bauteils, mit einem Mausklick.
Oft befinden sich hinzugefügte Bauteile übereinander gestapelt im Ursprung. Diese Funktion kann benutzt werden, um nicht sichtbare Teile zu erreichen.
Bewegung verhindern: Schließt die Bewegung für fixierte Bauteile aus. Umschaltknopf. Wenn dieser abgewählt ist, können auch Teile bewegt werden, die durch die Bedingung Festsetzen verankert sind.
Sichtbarkeit umschalten: Dies schaltet die Sichtbarkeit des ausgewählten Teils ein bzw. 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)
Kann deaktiviert werden für die Reparatur von Bedingungen oder das Festsetzen von Bauteilen, für die der Löser Die Nachricht "do not converge" ausgibt (z.B. wenn das Bauteil um 180° gedreht wird)
Arbeitsebene und Ursprung. Fügt eine Arbeitsebene, ein Bezugssystem oder einen Ursprung hinzu. Es muss ein Bauteil ausgewählt sein. Hier gibt es fünf Einstellungen.
Erlaubt es Bauteile, Elemente oder Bedingungen im Baum umzusortieren. Mit "Element roll over" (von der ersten zur letzten Position und umgekehrt). Funktioniert nur mit einer einzelnen Auswahl.
Bedingung vervielfältigen: Bedingung vervielfältigen. Dies kann ausgewählt werden, wenn Bauteile und geeignete Elemente mehrfach vorhanden sind. Es kann z.B. eingesetzt werden, um mehrfach vorhandene Befestigungselemente mehrfach vorhandenen Löchern mit nur einer Bedingung zuzuordnen.
Hauptwerkzeugleiste für Bedingungen
Einige dieser Werkzeuge sind eigentlich Menüs für weitere Werkzeuge.
Festsetzen: Zum Fixieren eines oder mehrerer Bauteile.
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 Knotenpunkt 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
Befestigen: Zum Befestigen eines Teils an ein zweites mittels der ausgewählten (Geometrie-) Elemente.
Diese Bedingung verbindet beide Teile starr miteinander.
Versetzt befestigen: Wie die Bedingung "Befestigen", aber unter Beibehaltung der relativen Ausrichtung der beteiligten Teile durch Anpassung der Offset-Werte eines Elements.
Diese Bedingung verbindet beide Teile starr miteinander.
Axial ausrichten: 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.
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 zugehörigen Elemente des Arbeitsbereichs Draft.
Eine weitere hinzufügte leere Skizzierebene löst die vorherige als Arbeitsebene ab.
Linienlänge: Zum Festlegen der Länge eines nicht unterteilten Draft-Linienzuges.
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: Zum Festlegen, dass zwei Linien kollinear verlaufen (fluchten).
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 Bauteiles 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.
Zur Beziehung gehen: Zeigt die Beziehungsgruppe an (standardmäßig ausgeblendet) und wählt ein Beziehungsobjekt aus.
Winkel messen: Zum Messen des Winkels zwischen ebenen Flächen oder linearen Kanten zweier Bauteile zu messen.
Es gibt keine Funktion, um einen Radius oder Durchmesser zu messen.
Die Messwerkzeuge überdauern Bauteiländerungen, z.B. den Abstand zwischen Kanten eines Würfels, wenn die die Größe des Würfels geändert wird.
Wie die Bedingungen werden diese Berechnungen in Echtzeit ausgeführt und bei jeder Änderung aktualisiert. Hinter den Kulissen ist die Funktion den Bedingungen sehr ähnlich. Der Abstand oder Winkel zwischen Elementen wird auf die gleiche Weise berechnet wie bei Bedingungen. 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.
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.
Legt 6 Freiheitsgrade fest, 0 bleiben unbestimmt:
Festsetzen (Schloss): Die Bedingung Festsetzen legt alle Freiheitsgrade einer Fläche fest. Sie sollte in jedem Zusammenbau zum Verankern eines Basisteils genutzt werden. Es ist sinnvoll auch gleich die Funktion "Bewegung verhindern" (in der Werkzeugleiste) zu aktivieren, um damit ein unbeabsichtigtes Verschieben zu verhindern. In der Regel ist es egal welche Fläche, Linie oder welcher Punkt benutzt wird, um ein Teil zu verankern. Man beachte, dass das Festsetzen nur auf den aktuellen Zusammenbau wirkt, d.h. im Falle einer Unterbaugruppe braucht der übergeordnete Zusammenbau noch ein eigenes festgesetztes Teil.
Befestigung: Legt die Koordinatensysteme der ausgewählten Elemente (zweier oder mehrerer Bauteile) deckungsgleich aufeinander. Dies ist die für die Berechnung günstigste Funktion und sollte, wo immer möglich, eingesetzt 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.
Deckungsgleiche Ebenen: Legt Tx,Ty,Tz, Rx,Ry fest, nur Rz bleibt unbestimmt. Es bleibt die Drehung um die Normale durch den "Mittelpunkt der Fläche" übrig.
Legt 4 Freiheitsgrade fest, 2 bleiben unbestimmt:
Axial ausrichten: Legt Tx,Ty, Rx,Ry fest, nur Tz, Rz bleiben unbestimmt. Es bleibt die Drehung um die Achse der Form unbestimmt sowie die Verschiebung entlang dieser Achse. Zwei Bedingungen "Punkt auf Linie" führen zum gleichen Ergebnis (wenn die Punkte unterschiedlich sind),die Bedingung "Kollinear" ebenfalls.
Punkt auf Linie: Dies verhindert die Verschiebung entlang der Normalen auf der Referenzlinie. Nur die Verschiebung entlang der Linie und die Drehung um sie herum sind möglich.
Legt 3 Freiheitsgrade fest, 3 bleiben unbestimmt:
Richtungen angleichen: Legt Rx,Rz,Rz fest, alle Ts bleiben unbestimmt.
Punkt auf Punkt: Legt Tx,Ty,Tz fest, alle Rs bleiben unbestimmt.
Ebenen ausrichten: Legt Tz, Rx,Ry fest (Verschiebung auf der Ebene). Dies verhindert die Verschiebung entlang der Normalen der Referenzebene sowie die Drehung um die Achsen dieser Ebene.
Legt 2 Freiheitsgrade fest, 4 bleiben unbestimmt:
Mehrfach Parallel: Legt Rx,Ry fest, alle Ts und Rz bleiben unbestimmt. Dies verhindert die Drehung um die Achsen der Referenzebene.
Legt 1 Freiheitsgrad fest, 5 bleiben unbestimmt:
Punkt auf Ebene: Legt Tz fest. Dies verhindert die Verschiebung entlang der Normalen der Referenzebene.
Punkt zu Punkt Abstand: Legt den Abstand zwischen den Ursprüngen der Elemente fest.
Dies gibt einem mehr Freiheiten als Punkt auf Ebene.
Weitere
Punkt auf Kreis: Legt Tz und teilweise Tx,Ty fest. Begrenzt die Verschiebung eines Punktes (oder mehrerer Punkte) auf einen Kreis oder einen Scheibenbereich (? disk area). Der Kreis muss als zweites ausgewählt werden. Dies lässt alle Drehungen unbestimmt und ermöglicht begrenzte Verschiebung innerhalb der kreisförmigen Referenzfläche.
: 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.
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 Bauteils 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 Bedingungen hinzugefügt werden. Wenn eine Bedingungen hinzugefügt wird, erhält sie selbst zwei (oder mehr) Blätter, dies sind die ausgewählten Elemente. Auch werden diese Elemente dem Ordner 'Elements' 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 Baugruppen.
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.
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.
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) .
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).
Schaltfläche Neu drücken, um eine neue FreeCAD-Datei zu erstellen
Die Datei unter einem selbstgewählten Dateinamen speichern. Anschließend die Datei schließen und erneut öffnen
Die Baumansicht sollte so aussehen (0.20.pre and Link Branch):
Nun mit der Maus per Drag&DropZylinder 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))
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:
Auswahl der Unterseite des Würfels. Nur die Unterseite, nicht der ganze Würfel
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.
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.
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
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).
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.