Jump to content

Std VerknüpfungErstellen

From FreeCAD Documentation
This page is a translated version of the page Std LinkMake and the translation is 100% complete.

Std VerknüpfungErstellen

Menüeintrag
Keine
Arbeitsbereich
Alle
Standardtastenkürzel
Keiner
Eingeführt in Version
0.19
Siehe auch
Standard Teil, Std Gruppe, PartDesign Körper

Beschreibung

Std VerknüpfungErstellen erstellt ein App-Link-Objekt, das auf ein anderes Objekt innerhalb desselben Dokuments oder in einem anderen Dokument verweist oder eine Verknüpfung zu ihm erzeugt. Es ist speziell dafür entwickelt worden einzelne Objekte effizient zu vervielfältigen, was bei der Erstellung komplexer Baugruppen aus kleineren Unterbaugruppen und vielen Wiederholteilen wie Schrauben, Muttern und ähnlichen Befestigungselementen hilft.

Das App-Link-Objekt wurde mit der Version 0.19 eingeführt; in der Vergangenheit wurde das einfache Duplizieren von Objekten durch Draft Klonen erreicht, aber das ist eine weniger effiziente Lösung, da sie entsprechend ihrer Implementierung zwingend eine Kopie der internen Form des Quellobjekts erzeugt. Stattdessen referenziert ein App-Link direkt auf die originale Form und ist dadurch speichereffizienter.

Das App-Link-Objekt allein kann schon wie ein Array genutzt werden um das Basisobjekt zu vervielfältigen; das kann erreicht werden, durch das Ändern der Daten-EigenschaftElement Count auf 1 oder größer. Dieses "Link-Array"-Objekt kann auch mit den verschiedenen Array-Werkzeugen des Draft-Arbeitsbereichs erzeugt werden, z. B. Draft Rechtwinklige Anordnung, Draft Polare Anordnung, und Draft Kreisanordnung.

Im PartDesign Arbeitsbereich sind Verknüpfungen zur Verwendung mit PartDesign Körper vorgesehen. Es empfiehlt sich daher AnsichtDisplay Mode Body auf Tip zu setzen, um Eigenschaften des gesamten Körpers und nicht einzelner Eigenschaften auszuwählen. Um Muster interner PartDesign Formelemente zu erstellen, verwendet man PartDesign Lineares Muster, PartDesign Polares Muster, und PartDesign MehrfachTransformation.

Das Std LinkMake-Werkzeug ist nicht durch einen bestimmten Arbeitsbereich definiert, sondern durch das Basissystem. Daher befindet es sich in der Struktur-Symbolleiste, die in allen Arbeitsbereichen verfügbar ist.

Anwendung

Mit Auswahl:

  1. Ein Objekt in der Baumansicht oder der 3D-Ansicht auswählen, für das eine Verknüpfung erstellt werden soll.
  2. Die Schaltfläche Verknüpfung erstellen drücken. Das erzeugte Objekt hat dasselbe Symbol wie das Originalobjekt, ist jedoch mit einem Pfeil überlagert, der darauf hinweist, dass es sich um eine Verknüpfung handelt.

Ohne Auswahl:

  1. Wenn kein Objekt ausgewählt wurde, wird durch das Drücken der Schaltfläche Verknüpfung erstellen eine leere Verknüpfung erstellt.
  2. Zur Eigenschaften-Ansicht wechseln, dann auf die Daten-EigenschaftLinked Object klicken, um den Dialog Link zu öffnen (siehe Auswahlmethoden) und ein Objekt auszuwählen, anschließend OK drücken.
  3. Anstatt ein komplettes Objekt in der Baumansicht auszuwählen, kann man auch Unterelemente (Knoten, Kanten oder Flächen) eines einzigen Objekts in der 3D-Ansicht auswählen. In diesem Falle dupliziert die Verknüpfung nur diese Unterelemente und der überlagerte Pfeil sieht anders aus. Dies kann auch mit Unterverknüpfung erstellen erreicht werden.

(1) Ein Objekt, (2) eine leere Verknüpfung, (3) eine vollständige Verknüpfung zum ersten Objekt (mit überlagerndem Material) und (4) eine Verknüpfung nur mit einzelnen Unterelementen des Objektes. Die leere Verknüpfung ist nicht an das reale Objekt gebunden und wird daher nicht in der 3D Ansicht angezeigt.

Verwendung externer Dokumente

  1. Mit einem Dokument beginnen, das mindestens ein Objekt enthält, das die Quelle der Verknüpfung darstellt.
  2. Ein neues oder bereits existierendes Dokument öffnen. Zur Vereinfachung wird Std BaumMehrfachdokument verwendet, um beide Dokumente in der Baumansicht anzuzeigen. Bevor es weitergeht, beide Dokumente speichern. Die Verknüpfung ist nicht in der Lage ihre Quelle und ihr Ziel zu finden, wenn nicht beide Dokumente auf der Festplatte gespeichert wurden.
  3. Im ersten Dokument das Objekt auswählen, das verknüpft werden soll; dann den Reiter im Hauptansichtsbereich wechseln, um zum zweiten Dokument zu wechseln.
  4. Die Schaltfläche Std VerknüpfungErstellen drücken. Das erstellte Objekt besitzt dasselbe Symbol, wie das Originalobjekt, aber mit einem zusätzlichen, überlagerten Pfeil, der es als Verknüpfung aus einem externen Dokument kennzeichnet.

Hinweise:

  • Wenn das Dokument mit der Verknüpfung gespeichert wird, wird ebenfalls gebeten, das Quelldokument mit dem Originalobjekt zu Std Speichern.
  • Um das Originalobjekt in das Dokument mit der Verknüpfung einzufügen, betätigen wir die Schaltfläche Std VerknüpfungImportieren oder Std AlleVerknüpfungenImportieren.
  • Die Schaltfläche Std VerknüpfungErstellen kann auf eine existierende Verknüpfung angewendet werden, um eine Verknüpfung auf eine Verknüpfung zu erstellen, die sich letztendlich in eine Verknüpfung auf das Originalobjekt im Quelldokument auflöst. Das kann auch mit der Schaltfläche Std UnterverknüpfungErstellen verwendet werden, um nur einzelne Unterelemente zu verknüpfen.

(1, 2) Zwei Objekte eines Quelldokumentes verknüpft mit einem Zieldokument, (3) eine Verknüpfung auf eine zweite Verknüpfung (mit überlagerndem Material) und (4) eine Verknüpfung zu einem Unterelement der zweiten Verknüpfung.

Ziehen und Loslassen (dragging and dropping)

Anstatt zwischen den Dokumentenreitern hin und her zu schalten, können Verknüpfungen auch durch Ziehen und Loslassen in der Baumansicht erstellt werden: das Quellobjekt des ersten Dokumentes wählen, die Alt-Taste gedrückt halten, ziehen und auf dem Namen des zweiten Dokumentes loslassen.

Abhängig von der gedrückten Zusatztaste werden unterschiedliche Aktionen beim Ziehen und Loslassen aufgerufen.

  • Ohne die Zusatztaste wird das Objekt von einem Dokument in das andere nur verschoben. Dabei wird ein geneigter Pfeil im Cursor gezeigt.
  • Mit der gedrückten Strg-Taste wird das Objekt kopiert. Dabei wird ein Pluszeichen im Cursor gezeigt.
  • Mit der gedrückten Alt-Taste wird eine Verknüpfung erstellt. Zwei Kettenglieder werden im Cursor angezeigt.

Ziehen und Loslassen mit den Zusatztasten Strg und Alt kann auch in einem einzelnen Dokument gearbeitet werden. Ziehen und Loslassen im selben Dokument erstellen damit mehrere Kopien oder mehrere Verknüpfungen.

Bei Änderung kopieren

Die Funktion Bei Veränderung Kopieren (engl. Copy on change) ermöglicht es einem Link, zunächst als leichtgewichtige Referenz zu beginnen und sich dann bei bestimmten Änderungen in ein unabhängiges Objekt zu verzweigen. Dies folgt der „Copy-on-Write”-Philosophie, die sicherstellt, dass Varianten nur dann Speicherplatz und Dateiraum belegen, wenn sie tatsächlich vom Original abweichen (siehe ursprüngliche Ankündigung im FreeCAD-Forum).

Eigenschaft-Auswahl

Damit dieser Mechanismus funktioniert, müssen bestimmte Eigenschaften des Quellobjekts als kopierbar markiert werden.

  • Dazu in der Eigenschaften-Ansicht mit der rechten Maustaste auf eine Eigenschaft klicken und Status → CopyOnChange wählen.
  • Wenn dieser Status aktiv ist, überwacht jeder Link, der auf dieses Objekt verweist, diese Eigenschaft auf Änderungen. Das genaue Verhalten wird durch die Eigenschaft Daten-EigenschaftLinkCopyOnChange des Links definiert.

Arbeitsablauf

Das Verhalten der Verknüpfung wird durch ihre Daten-EigenschaftLinkCopyOnChange-Eigenschaft kontrolliert:

  • Disabled (Standard): Der Link fungiert als reiner Proxy. Jede Änderung an einer Eigenschaft (einschließlich derjenigen, die als „CopyOnChange“ gekennzeichnet sind) wird an das ursprüngliche Quellobjekt weitergeleitet. Er bleibt eine schlanke Referenz. Diese Beziehung ist zu diesem Zeitpunkt noch bidirektional: Eine Änderung einer Eigenschaft am Quellobjekt führt auch zu einer Änderung am Link.
  • Enabled: this is a latent monitoring state.
    • Solange nur die Quelle geändert wird, verfolgt der Link diese Änderungen und bleibt synchron.
    • Sobald eine „CopyOnChange“-Eigenschaft direkt am Link geändert wird, löst der Link eine einmalige tiefe Kopie aus, die das Quellobjekt und dessen Abhängigkeiten umfasst. Dabei wird eine interne, eigenständige Version des Quellobjekts mit den neuen Werten erstellt. Die Verbindung zur Quelle wird unterbrochen, und der Link ist keine „Lightweight“-Referenz mehr. Der Status des Links wechselt automatisch zu Owned.
  • Owned: Dies bedeutet, dass der Link die „Verantwortung“ für seine Daten übernommen hat. Er verfügt nun über ein eigenes, unabhängiges Modell und eine eigene Geometrie. Dieser Status wird in der Regel von der Software gesetzt, sobald die Deep-Kopie erfolgt ist, aber:
    • Manual trigger: Der Benutzer kann einen Link manuell von Enabled auf Owned umstellen, um eine sofortige vollständige Kopie des Originalmodells auf Basis seiner aktuellen Konfiguration zu erzwingen.
  • Tracking: ein vernetzter Synchronisationsmodus, bei dem der Link über eine eigene Kopie verfügt, jedoch versucht, unveränderte Eigenschaften mit künftigen Bearbeitungen am Original synchron zu halten.

Diese abgeleiteten Link-Instanzen werden manchmal auch als Varianten-Links bezeichnet. Sie können optional mit einer Tabellenkalkulation gekoppelt werden, um Konfigurationstabellen zu nutzen.

Der Status der Eigenschaft Daten-EigenschaftLinkCopyOnChange kann in der Benutzeroberfläche auf zwei verschiedene Arten geändert werden:

  • Das zu bearbeitende Link-Objekt entweder in der Baumansicht oder in der 3D-Ansicht auswählen und dann dessen Wert über die Eigenschaften-Ansicht ändern.
  • Mit der rechten Maustaste auf das Link-Objekt in der Baumansicht klicken und im Kontextmenü zum Untermenüeintrag Bei Änderung kopieren navigieren. Dort kann (derzeit) zwischen Aktiviert und Verfolgung gewechselt werden.

Einrichten des konfigurierbaren Objekts

Der Benutzer kann genau steuern, welche Objekte und Abhängigkeiten beim Erstellen der Variante kopiert werden sollen:

  1. Den Link mit der rechten Maustaste anklicken und Daten-EigenschaftLinkCopyOnChange auf Enabled setzen.
  2. Konfigurierbares Objekt einrichten aus dem Kontextmenü wählen.
  3. Es erscheint ein Dialogfeld, in dem ausgewählt werden kann, welches Objekt kopiert werden soll, um gegebenenfalls abhängige oder irrelevante Objekte vom Kopiervorgang auszuschließen.

Schattierung von Eigenschaften

Wenn ein Link für eine bestimmte Eigenschaft einen anderen Wert als seine Quelle haben soll (auch wenn „CopyOnChange“ nicht verwendet wird), kann eine manuelle Überschreibung vorgenommen werden, bei der die ursprüngliche Eigenschaft durch einen Ersatzwert überschrieben wird.

Wenn ein Link eine Eigenschaft besitzt, die genau denselben Namen und Typ hat wie eine Eigenschaft seines Quellobjekts, greift der Link auf seinen eigenen lokalen Wert zurück und hört auf, aus der Quelle zu lesen. (Siehe Ddiskussion im FreeCAD-Forum).

So wird eine Überschreibung in der Benutzeroberfläche hinzugefügt:

  1. Den Link in der Baumansicht auswählen.
  2. Mit der rechten Maustaste auf eine beliebige Stelle in der Eigenschaften-Ansicht klicken und Eigenschaft hinzufügen wählen.
  3. Den Type auswählen und den Name eingeben, der der Eigenschaft entspricht, die überschrieben werden soll.
  4. Die Eigenschaft wird nun in der Liste der Verknüpfungen mit einem eigenen, eigenständigen Wert angezeigt. In der Eigenschaften-Ansicht wird sie nicht mehr in grüner Schrift dargestellt, um diesen neuen Status anzuzeigen.

Mit dieser Überschreibung können sich Links weiterhin wie einfache Verweise verhalten, ohne eine vollständige Kopie auszulösen. Dennoch können sie gezielt ihre eigenen, vom Quellobjekt unabhängigen Eigenschaften nutzen.

Prototyp-Arbeitsablauf

Für Projekte, die verschiedene Links erfordern, wird eine zweistufige Struktur empfohlen:

  1. Das Inventar (Prototypen): Erstellt im Stammverzeichnis des Dokuments eine Gruppe, die als Bestand dient. Hier die Basisteile platzieren. Wenn eine Variante benötigt wird (z. B. eine Schraube mit anderer Länge), erstellt man eine Verknüpfung zum Basisteil und legt deren Daten-EigenschaftLinkCopyOnChange auf Enabled (oder Owned) fest, und ändert die Länge. Diese Verknüpfung ist der Prototyp.
  2. Die Instanzen: Reguläre (Daten-EigenschaftLinkCopyOnChange=Disabled)-Verknüpfungen nutzen, die auf die Prototypen verweisen, um diese im Modell zu platzieren.

Dies ist vorteilhaft in Bezug auf:

  • Leistung: In den meisten Fällen handelt es sich um Lightweight-Referenzen auf einen gemeinsam genutzten Prototyp.
  • Wartung: Wenn Änderungen am grundlegenden Design eines Bauteils erforderlich sind, muss nur der ursprüngliche Quellprototyp geändert werden. Alle Instanzen im gesamten Projekt werden automatisch aktualisiert.

Gruppen

Std VerknüpfungErstellen kann auf Standard Teil angewendet werden, um schnell Objektgruppen im Raum zu vervielfältigen, wie z. B. Zusammenbauten.

Eine Verknüpfung, die aus einem Standard Teil erstellt wurde. Die Objekte wurden nicht kopiert, sondern sie werden unter der Originalgruppierung und unter der verknüpften Gruppierung angezeigt.

Ein normale Std Gruppe besitzt keine Daten-EigenschaftPlacement-Eigenschaft. Daher kann es die Position der Objekte darin nicht steuern. Wenn jedoch Std VerknüpfungErstellen mit Std Gruppe verwendet wird, verhält sich die daraus entstandene Verknüpfung wie ein Standard Teil und kann ebenso im Raum bewegt werden.

Eine Verknüpfung, erstellt aus Std Grupppe; die Objekte sind nicht vervielfältigt, werden aber sowohl im Ursprungsbehälter als auch im verknüpften Behälter angezeigt. Die Verknüpfung (mit überlagerndem Material) kann im Raum bewegt werden, ebenso wie Standardd Teil.

Eine Verknüpfung auf ein Standard Teil hält die Sichtbarkeit der Objekte synchron zum Originalteil. Wird also ein Objekt in einer Verknüpfung verborgen, so wird es in allen dazugehörigen Verknüpfungen und dem Originalteil verborgen. Dem gegenüber erlaubt eine Verknüpfung auf eine Std Gruppe unabhängige Kontrolle auf die Sichtbarkeit.

Links: ein Standard Teil mit zwei Objekten und zwei Verknüpfungen auf das Teil; die Sichtbarkeit der Objekte ist synchron. Rechts: Std Gruppe mit zwei Objekten und zwei Verknüpfungen auf die Gruppe; die Sichtbarkeit der Objekte ist unabhängig in jeder Gruppe einstellbar.

Darstellung der Überlagerung

Wenn eine Verknüpfung erstellt wird, ist die Eigenschaft AnsichtOverride Material mit false voreingestellt. Daher wird die Verknüpfung genauso aussehen, wie das originale DatenLinked Object.

Wenn die Eigenschaft AnsichtOverride Material auf true gesetzt ist, wird die Eigenschaft AnsichtShape Material nun das Erscheinungsbild der Verknüpfung steuern.

Unabhängig vom Status der Ansicht-EigenschaftOverride Material ist es möglich, das Erscheinungsbild der Unterelemente, wie Punkte, Kanten oder Oberflächen einer Verknüpfung individuell zu bestimmen.

  1. Die Verknüpfung in der Baumansicht wählen. Das Kontextmenü mit einem Rechtsklick öffnen und Override colors wählen.
  2. Nun die einzelnen Unterelemente in der 3D Ansicht wählen, die Schaltfläche Edit anklicken und die Eigenschaften einschließlich der Transparenz ändern.
  3. Um geänderte Attribute wieder zu entfernen, werden die Elemente in der Liste gewählt und die Schaltfläche Remove angeklickt.
  4. Mit dem Betätigen der Schaltfläche OK wird der Vorgang abgeschlossen.

Hinweis: da in Version v0.19 die Färbung der Unterelemente Teil des Topologisches Benennungsproblems ist, sollte dies der letzte Schritt der Gestaltung des Models sein, wenn nichts mehr am Modell geändert werden soll.

(1) das Original, (2) eine Verknüpfung mit überlagerndem Material und (3) eine weitere Verknüpfung mit individuell angepaßten Unterelementen.

Muster aus Verknüpfungen

Siehe auch: Draft RechtwinkligeAnordnung.

Wenn eine Verknüpfung erstellt wird, ist seine Eigenschaft DatenElement Count mit 0 voreingestellt. Daher wird nur eine Verknüpfung in der Baumansicht angezeigt.

Wenn, wie voreingestellt die Eigenschaft DatenShow Element true ist und der Wert der Eigenschaft DatenElement Count auf 1 oder mehr gesetzt ist, werden automatisch mehrere Verknüpfungen unter der ersten erstellt. Jede neue Verknüpfung kann in die gewünschte Position über ihre eigene Eigenschaft DatenPlacement verschoben werden.

In gleicher Weise kann die Erscheinung jedes Elementes des Musters verändert werden, entweder über die Eigenschaften AnsichtOverride Material und AnsichtShape Material oder über das Menü Override colors auf das ganze Muster und anschließender Wahl einzelner Oberflächen. Das ist in Darstellung der Überlagerung beschrieben.

(1) das Original und (2, 3, 4) ein Muster mit drei Verknüpfungen als deren Elemente, jede in einer anderen Position. Die erste Verknüpfung hat ein überlagerndes Material und transparente Oberflächen. Die beiden anderen haben selbst geänderte Oberflächenfarben.

Wenn Position und Eigenschaften der Verküpfungen im Muster passen, kann die Eigenschaft DatenShow Element auf false gesetzt werden, um die einzelnen Verknüpfungen in der Baumansicht auszublenden. Dadurch reagiert das System schneller, vor allem, wenn es viele Objekte im Dokument gibt.

Bei diesem Muster mit Verknüpfungen muß jedes Element manuell positioniert werden. Soll aber ein spezielles Muster der Verknüpfungen entstehen, können die Werkzeuge des Arbeitsbereiches Draft, wie Draft RechtwinkligeAnordnung, Draft PolareAnordnung und Draft KreisAnordnung verwendet werden. Diese Anweisungen erstellen normale Kopien oder Kopien der Verknüpfungen, abhängig von den eingestellten Optionen während der Erstellung.

Sichtbarkeit

Wenn die Eigenschaft DatenShow Element true ist und einzelne Elemente eines Musters aus Verknüpfungen in der Baumansicht angezeigt werden, kann jede Verknüpfung durch die Leertaste gezeigt oder verborgen werden.

Ein anderer Weg einzelne Elemente zu verbergen ist die Verwendung des Override colors-Menüs.

  1. Das Muster wählen und mit einem Rechtsklick das Override colors-Menü öffnen.
  2. In der 3D Ansicht ein Unterelement einer Verknüpfung im Musters anklicken.
  3. Die Schaltfläche Hide klicken. Ein Icon eines Auges erscheint und zeigt an, daß dieses Element in der 3D-Ansicht verborgen ist. Das Element wird kurz angezeigt, wenn der Cursor über das Icon gezogen wird.
  4. Mit einem Klick auf die Schaltfläche OK wird die Ausführung bestätigt und der Vorgang verlassen. Die Verknüpfung bleibt verborgen, auch wenn sie in der Baumansicht als sichtbar angezeigt wird.

Die Elementenfarbwahl zeigt sich beim Öffnen des Kontextmenüs zu einer Verknüpfung in der Baumansicht.

Soll die Sichtbarkeit des Elementes in einem Muster wiederhergestellt werden, dann muß das Kontextmenü wieder geöffnet werden und das Augenicon angeklickt werden. Danach auf die Schaltfläche Remove klicken, um das Verbergen abzuschalten, und auf die Schaltfläche OK klicken, um den Vorgang zu bestätigen und zu abzuschließen. Das Element zeigt sich in der 3D Anischt wieder.

Weist die Verknüpfung auf ein Standard Teil oder eine Std Gruppe, verhält sich das Farben überschreiben-Menü ähnlich zu den Mustern. Es ermöglicht die Einstellung einer Oberflächenfarbe, der Farbe des ganzen Objektes und die Sichtbarkeit des Objektes in der Gruppe.

Ein Standard Teil enthält drei Objekte und eine Verknüpfung zu diesem Teil. In der Verknüpfung (1) ist das erste Objekt unsichtbar. (2) das zweite Objekt hat einige Unterelemente mit unterschiedlichen Farben. (3) das ganze dritte Objekt hat unterschiedliche Farben und einen gewissen Grad an Transparenz.

Eigenschaften

Eine Anwendung Verknüpfung (App::Link Klasse) ist aus der zugrunde liegenden App DocumentObject (App::DocumentObject Klasse) abgeleitet. Deshalb hat es die grundlegenden Eigenschaften, wie DatenLabel und DatenLabel2.

Das Folgende sind die speziellen Eigenschaften, die im Eigenschafteneditor eingestellt werden können. Ausgeblendete Eigenschaften können mit dem Befehl Ausgeblendete anzeigen im Kontextmenü des Eigenschafteneditors angezeigt werden.

Siehe Part-Formelement für Erklärungen zu einigen der folgend gelisteten Eigenschaften.

Daten

Link

  • Daten-EigenschaftLinked Object (XLink): Es gibt das Quellobjekt des App Link an; dies kann ein gesamtes Objekt oder ein Unterelement davon sein (Eckpunkt, Kante oder Fläche).
  • Daten-EigenschaftLink Claim Child (Bool): Das verknüpfte Objekt als untergeordnetes Element beanspruchen.
  • Daten-EigenschaftLink Transform (Bool): Die Standardeinstellung ist false, in diesem Fall überschreibt der Link die eigene Positionierung des Daten-EigenschaftLinked Object. Wenn er auf true gesetzt ist, wird der Link an derselben Position wie das Daten-Eigenschaftverknüpfte Objekt platziert, und seine Positionierung ist relativ zur Positionierung des Daten-Eigenschaftverknüpften Objekts. Dies kann auch mit Std UnterverknüpfungErstellen erreicht werden.
  • Daten-Eigenschaft (ausgeblendet)Link Placement (Placement): Es handelt sich um einen Versatz, der zusätzlich zum Daten-EigenschaftPlacement des Daten-EigenschaftLinked Object angewendet wird. Diese Eigenschaft ist normalerweise ausgeblendet, wird jedoch angezeigt, wenn Daten-EigenschaftLink Transform auf true gesetzt ist. In diesem Fall wird Daten-EigenschaftPlacement ausgeblendet.
  • Daten-EigenschaftPlacement (Placement)
  • Daten-EigenschaftShow Element (Bool): Der Standardwert ist true. In diesem Fall zeigt die Baumansicht die einzelnen Link-Kopien an, sofern Daten-EigenschaftElement Count den Wert 1 oder größer hat.
  • Daten-EigenschaftElement Count (IntegerConstraint): Elementanzahl. Der Standardwert ist 0. Wenn der Wert 1 oder größer ist, verhält sich der App Link wie eine Anordnung und dupliziert dasselbe Daten-EigenschaftLinked Object mehrfach. Wenn Daten-EigenschaftShow Elements true ist, wird jedes Element in der Anordnung in der Baumansicht angezeigt, und jedes kann seine eigene Daten-EigenschaftPlacement geändert werden. Jede Link-Kopie erhält einen Namen, der auf dem Namen des Links basiert und um _iN ergänzt wird, wobei N eine Zahl ist, die bei 0 beginnt. Bei einem einzelnen Link werden die Kopien beispielsweise Link_i0, Link_i1, Link_i2 usw. genannt.
  • Daten-EigenschaftLink Execute (String): Name der Ausführungsfunktion, die für dieses bestimmte Link-Objekt ausgeführt wird. Der Standardwert ist 'appLinkExecute'. Ihn auf 'None' setzen, um ihn zu deaktivieren.
  • Daten-Eigenschaft (ausgeblendet)Colored Elements (LinkSubHidden): Liste der Link-Elemente, deren Farbe überschrieben wurde.
  • Daten-EigenschaftLink Copy On Change (Enumeration):
    • Disabled: Die Erstellung einer Kopie des verknüpften Objekts deaktivieren, die durch eine Änderung einer seiner Eigenschaften ausgelöst wird, die als CopyOnChange festgelegt sind.
    • Enabled: Eine tiefe Kopie des verknüpften Objekts aktivieren, wenn eine seiner als CopyOnChange gekennzeichneten Eigenschaften geändert wird. Nach der tiefen Kopie besteht keine Verknüpfung mehr zwischen dem Original und dem kopierten Objekt. Daher werden Änderungen am Originalobjekt nicht in den Kopien übernommen. Hinweis: Dies ist ein vorbereitender Zustand, die eigentliche Kopie erfolgt erst, wenn die CopyOnChange-Eigenschaften geändert werden. Siehe den Zustand Owned.
    • Owned: Gibt an, dass das verknüpfte Objekt kopiert wurde und die Kopie Eigentum des Links ist. Dieser Status wird automatisch vom Link festgelegt, nicht vom Benutzer. Der Arbeitsablauf ist wie folgt: Wenn der Status Enabled ist und der Benutzer Eigenschaften ändert, die zuvor als CopyOnChange festgelegt wurden, wird der Status in Owned geändert. Zu diesem Zeitpunkt führt der Link eine vollständige Kopie des verknüpften Objekts durch. In diesem Status versucht der Link nicht, Änderungen am ursprünglichen verknüpften Objekt mit der Kopie zu synchronisieren.
    • Tracking: Wie Enabled, jedoch wird die Kopie zusätzlich automatisch aktualisiert, wenn sich das ursprüngliche Quellobjekt ändert.
  • Daten-Eigenschaft (ausgeblendet)Link Copy On Change Source (XLink): Die Kopie beim Ändern des Quellobjekts.
  • Daten-Eigenschaft (ausgeblendet)Link Copy On Change Group (Link): Mit einem internen Gruppenobjekt verknüpft, um Kopien bei Änderungen aufzubewahren.
  • Daten-Eigenschaft (ausgeblendet)Link Copy On Change Touched (Bool): zeigt an, dass die Kopie des Quellobjekts geändert wurde.
  • Daten-EigenschaftScale (Float): Der Standardwert ist 1.0. Es handelt sich um einen Faktor für die einheitliche Skalierung in jeder Richtung X, Y und Z. Beispielsweise ergibt ein Würfel mit den Abmessungen 2 mm x 2 mm x 2 mm, der um 2,0 skaliert wird, eine Form mit den Abmessungen 4 mm x 4 mm x 4 mm.
  • Daten-Eigenschaft (ausgeblendet)Scale Vector (Vector): Der Skalierungsfaktor für jede Komponente (X, Y, Z) für alle Link-Elemente, wenn Daten-EigenschaftElement Count 1 oder größer ist. Wenn Daten-EigenschaftScale ungleich 1.0 ist, wird derselbe Wert für alle drei Komponenten verwendet.
  • Daten-EigenschaftScale List (VectorList): Der Skalierungsfaktor für jedes Link-Element.
  • Daten-EigenschaftVisibility List (BoolList): Der Sichtbarkeitsstatus jedes Link-Elements.
  • Daten-EigenschaftPlacement List (PlacementList): Die Positionierung für jedes Link-Element.
  • Daten-Eigenschaft (ausgeblendet)Element List (LinkList): Die Liste der Link-Elemente.
  • Daten-Eigenschaft (ausgeblendet)_ Link Touched (Bool): Noch festzulegen.
  • Daten-Eigenschaft (ausgeblendet)_ Child Cache (LinkList): Noch festzulegen.
  • Daten-Eigenschaft (ausgeblendet)_ Link Owner (Integer): Noch festzulegen.

Base

  • Daten-Eigenschaft (ausgeblendet)Proxy (PythonObject)

Das App Link-Objekt zeigt zusätzlich die Eigenschaften des original Daten-EigenschaftLinked Object an, so dass die Eigenschaften-Ansicht Gruppen von Eigenschaften haben kann wie Attachment, Box, Draft, etc.

Ansicht

Link

  • Ansicht-EigenschaftDraw Style (Enumeration)
  • Ansicht-EigenschaftLine Width (FloatConstraint)
  • Ansicht-EigenschaftOverride Material (Bool): Der Standardwert ist false. Bei Einstellung auf true wird das Material des Daten-EigenschaftLinked Object überschrieben und es werden die in AnsichtShape Material definierten Farben angezeigt.
  • Ansicht-EigenschaftPoint Size (FloatConstraint)
  • Ansicht-EigenschaftShape Material (Material)

Base

  • Ansicht (Hidden)Child View Provider (PersistentObject): TBD.
  • Ansicht (Hidden, ReadOnly)Material List (MaterialList): Wenn einzelne Materialien hinzugefügt wurden, werden sie hier aufgelistet.
  • Ansicht (Hidden, ReadOnly)Override Color List (ColorList): Wenn einzelne Flächen oder Kanten der Verbindung überschrieben wurden, werden sie hier aufgelistet.
  • Ansicht (Hidden, ReadOnly)Override Material List (BoolList): Wenn die einzelnen Materialien des Links überschrieben wurden, werden sie hier aufgelistet.

Display Options

  • Ansicht-EigenschaftDisplay Mode (Enumeration): 'Link' oder 'ChildView'.
  • Ansicht-EigenschaftShow In Tree (Bool)
  • Ansicht-EigenschaftVisibility (Bool)

Selection

  • Ansicht-EigenschaftOn Top When Selected (Enumeration)
  • Ansicht-EigenschaftSelection Style (Enumeration)

Es zeigt zusätzlich die Ansichtseigenschaften des ursprünglichen DatenLinked Object.

Vererbung

Ein App Link ist formal eine Instanz der Klasse App::Link, dessen Elternteil das Basiselement App DocumentObject (App::DocumentObject class) ist. Es handelt sich um ein Objekt auf sehr niedriger Ebene, das mit den meisten anderen Dokumentobjekten verwendet werden kann.

Vereinfachtes Diagramm der Beziehungen zwischen den Kernobjekten im Programm. Das App::Link Objekt ist eine Kernkomponente des Systems, es ist von keinem Arbeitsbereich abhängig, aber es kann mit den meisten Objekten verwendet werden, die in allen Arbeitsbereichen erstellt werden.

Skripten

Siehe auch: Grundlagen der Skripterstellung in FreeCAD und Skriptgenerierte Objekte.

Für allgemeine Informationen, siehe Part Formelement.

Ein App-Link wird mit der Methode addObject() des Dokuments erstellt. Er kann sein Daten-EigenschaftLinked Object definieren, indem er sein Attribut LinkedObject überschreibt oder seine Methode setLink verwendet.

import FreeCAD as App

doc = App.newDocument()
bod1 = App.ActiveDocument.addObject("Part::Box", "Box")
bod2 = App.ActiveDocument.addObject("Part::Cylinder", "Cylinder")
bod1.Placement.Base = App.Vector(10, 0, 0)
bod2.Placement.Base = App.Vector(0, 10, 0)

obj1 = App.ActiveDocument.addObject("App::Link", "Link")
obj2 = App.ActiveDocument.addObject("App::Link", "Link")

obj1.LinkedObject = bod1
obj2.setLink(bod2)
obj1.Placement.Base = App.Vector(-10, -10, 0)
obj2.Placement.Base = App.Vector(10, -10, 0)
obj1.ViewObject.OverrideMaterial = True
App.ActiveDocument.recompute()

Das Basisobjekt App::Link verfügt nicht über ein Proxy-Objekt, sodass es nicht vollständig für die Unterklassenbildung verwendet werden kann.

Daher sollte man, für die Python-Unterklassenbildung, das Objekt App::LinkPython erstellen.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::LinkPython", "Link")
obj.Label = "Custom label"

Beispiel: Schattieren von Eigenschaften. Die appLinkExecute-Funktion wird ausgeführt, wenn der Link neu berechnet wird.

def appLinkExecute(self, obj, linkObj, index, linkElement)
  properties = linkObj.PropertiesList
  # This is assuming all these properties you want to add exists in obj
  # You don't need to hide the original property. The action of adding a property of the same name will hide the linked property.
  for prop in ("XYZ", "MNO", "PQR"):
    if prop not in properties:
      linkObj.addProperty(obj.getTypeIdOfProperty(prop), prop, obj.getGroupOfProperty(prop))
      
   # now do what you like...

Weiterführende Literatur

Wenn Du die historischen Gründe überspringen möchtest, gehe zur GitHub-Seite user-oriented introduction to links.

Das Objekt Anwendung Verknüpfung wurde nach 2 Jahren Entwicklung und Prototypenfertigung eingeführt. Diese Komponente wurde fast im Alleingang vom Benutzer realthunder ausgedacht und entwickelt. Die Motivationen und Entwurfsimplementierungen hinter diesem Projekt sind in seiner GitHub Seite Link beschrieben. Um dieses Feature zu erreichen, wurden einige Kernänderungen an FreeCAD vorgenommen; diese wurden auch ausführlich dokumentiert in Core-Changes.

Das App Link-Projekt wurde nach der Neugestaltung des Arbeitsbereichs PartDesign in Version 0.17 ins Leben gerufen. Die Geschichte von App Link lässt sich anhand einiger wichtiger Forenbeiträge nachvollziehen:

Schließlich kam es zum Pull Request und zum Merge:

Andere verschiedene „Links“ über Link beinhalten:

  • Dynamic Linked Object: Ein Muster mit Link und Baugruppen, das darauf abzielt, Doppelungen bei der Baugruppenlogik – wie Ausrichtung, Positionierung oder Anzahl der Instanzen – zu reduzieren.