Std VerknüpfungErstellen

From FreeCAD Documentation
Revision as of 07:18, 18 June 2023 by Wollhaar (talk | contribs) (Created page with "Wenn Position und Eigenschaften der Verküpfungen im Muster passen, kann die Eigenschaft {{PropertyData|Show 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.")

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

Verknüpfung erstellen erstellt ein App-Link-Objekt (App::Link class), 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-Object wurde mit der Version 0.19 neu 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. Dagegen 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"-Object kann auch mit den verschiedenen Array-Werkzeugen des Draft-Arbeitsbereichs erzeugt werden, z.B. Draft Rechtwinklige Anordnung, Draft Polare Anordnung, and 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, and PartDesign MultiTransform

Std LinkMake ist nicht für einen speziellen Arbeitsbereich vorgesehen, sondern für das grundlegende System. Deshalb kann es aus der Strukturellen Werkzeugleiste verwendet werden, die in allen Arbeitsbereichen enthalten ist. Das Verknüpfungsobjekt (link object) zusammen mit Std Teil zur Gruppierung verschiedener Objekte, stellt die Grundlage der Arbeitsbereich Assembly3 und Arbeitsbereich Assembly4 Arbeitsbereiche dar.

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. Zum Eigenschafteneditor 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. Wir beginnen mit einem Dokument, das mindestens ein Objekt enthält, das die Quelle der Verknüpfung darstellt.
  2. Wir öffnen ein neues oder bereits existierendes Dokument. Zur Vereinfachung nutzen wir die Schaltfläche Std TreeMultiDocument, um beide Dokumente in der Baumansicht anzuzeigen. Wir Speichern beide Dokumente, bevor wir weitergehen. Das Verknüpfungswerkzeug kann seine Quelle und sein Ziel nicht finden, wenn die Dokumente nicht gespeichert wurden.
  3. Im ersten Dokument wählen wir das Objekt, das wir verknüpfen wollen. Dann wählen wir den Reiter im Hauptansichtsbereich, um zum zweiten Dokument zu wechseln.
  4. Nun die Schaltfläche Std VerknüpfungErstellen anklicken. Das erstellte Ojekt hat dasselbe Icon, wie das Originalobjekt, hat aber einen zusätzlichen, überlagernden Pfeil, der es als Verknüpfung aus einem externen Dokument anzeigt.

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

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

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 DatenPositionierungs-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 Eigenschaft AnsichtOverride 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.

When creating this type of Link array, you must place each of the elements manually; however, if you would like to use specific patterns to place the copies, you may use the array tools of the Draft Workbench, like Draft OrthoArray, Draft PolarArray, and Draft CircularArray; these commands can create normal copies or Link copies depending on the options at creation time.

Sichtbarkeit

When DatenShow Element is true and individual elements are listed in the tree view in a Link Array, each Link can be shown or hidden by pressing the Space bar in the keyboard.

Another way to hide the individual elements is using the Override colors menu.

  1. Select the array, open the Override colors menu (right click).
  2. In the 3D view, pick any subelement from any Link in the array.
  3. Press Hide. An icon of an eye should appear, indicating that this element has been hidden from the 3D view. The object will temporarily show itself when the cursor hovers over the icon.
  4. You can click OK to confirm the operation and close the dialog. The Link will remain hidden even if it is shown as visible in the tree view.

Element color dialog that is available when opening the context menu of a Link object in the tree view.

If you wish to restore the visibility of this array element, enter the dialog once more, pick the eye icon, then click on Remove to remove the hidden status, and click OK to confirm and close the dialog. The element will be visible in the 3D view again.

When the Link is for a Std Part or a Std Group, the Override colors menu works in similar way as with arrays; it allows controlling the face color, entire object color, and visibility of the objects in the group.

A Std Part containing three objects, and a Link to that Part; in the Link, (1) the first object is made invisible, (2) the second object has some subelements with different colors, (3) the entire third object has a different color and level of transparency.

Eigenschaften

An App Link (App::Link class) is derived from the basic App DocumentObject (App::DocumentObject class), therefore it has the latter's basic properties like DatenLabel and DatenLabel2.

The following are the specific properties available in the property editor. Hidden properties can be shown by using the Show all command in the context menu of the property editor.

Daten

Link

  • DatenLinked Object (XLink): it indicates the source object of the App Link; this can be an entire object, or a subelement of it (vertex, edge, or face).
  • DatenLink Transform (Bool): it defaults to false, in which case the Link will override the DatenLinked Object's own placement. If it is set to true, the Link will be placed in the same position as the DatenLinked Object, and its placement will be relative to the DatenLinked Object's placement. This can also be achieved with Std LinkMakeRelative.
  • DatenPlacement (Placement): the placement of the Link in absolute coordinates.
  • Daten (Hidden)Link Placement (Placement): it is an offset applied on top of the DatenPlacement of the DatenLinked Object. This property is normally hidden but appears if DatenLink Transform is set to true; in this case, DatenPlacement now becomes hidden.
  • DatenShow Element (Bool): it defaults to true, in which case the tree view will show the individual Link copies, as long as DatenElement Count is 1 or larger.
  • DatenElement Count (IntegerConstraint): it defaults to 0. If it is 1 or larger, the App Link will behave like an array, and will duplicate the same DatenLinked Object many times. If DatenShow Elements is true, each element in the array will be displayed in the tree view, and each can have its own DatenPlacement modified. Each Link copy will have a name based on the Link's Name, augmented by _iN, where N is a number starting from 0. For example, with a single Link, the copies will be named Link_i0, Link_i1, Link_i2, etc.
  • DatenLink Execute (String): name of the execute function that will run for this particular Link object. It defaults to 'appLinkExecute'. Set it to 'None' to disable it.
  • Daten (Hidden)Colored Elements (LinkSubHidden): list of Link elements that have had their color overriden.
  • DatenScale (Float): it defaults to 1.0. It is a factor for uniform scaling in each direction X, Y, and Z. For example, a cube of 2 mm x 2 mm x 2 mm, that is scaled by 2.0, will result in a shape with dimensions 4 mm x 4 mm x 4 mm.
  • Daten (Hidden)Scale Vector (Vector): the scale factor for each component (X, Y, Z) for all Link elements when DatenElement Count is 1 or larger. If DatenScale is other than 1.0, this same value will be used in the three components.
  • DatenScale List (VectorList): the scale factor for each Link element.
  • Daten (Hidden)Visibility List (BoolList): (read-only) the visibility state of each Link element, either true or false.
  • Daten (Hidden)Placement List (PlacementList): (read-only) the placement for each Link element.
  • Daten (Hidden)Element List (LinkList): the list of Link elements.
  • Daten (Hidden)_LinkTouched (Bool):
  • Daten (Hidden)_ChildCache (LinkList):

Base

  • Daten (Hidden)Proxy (PythonObject): a custom class associated with this object. This only exists for the Python version. See Scripting.

The App Link object will additionally show the properties of the original DatenLinked Object, so the property editor may have groups of properties like Attachment, Box, Draft, etc.

Ansicht

Link

  • AnsichtDraw Style (Enumeration): it defaults to None; it can be Solid, Dashed, Dotted, Dashdot; defines the style of the edges in the 3D view.
  • AnsichtLine Width (FloatConstraint): a float that determines the width in pixels of the edges in the 3D view. It defaults to 2.0.
  • AnsichtOverride Material (Bool): it defaults to false; if set to true it will override the DatenLinked Object's material, and it will display the colors defined in AnsichtShape Material.
  • AnsichtPoint Size (FloatConstraint): similar to AnsichtLine Width, defines the size of the vertices.
  • AnsichtSelectable (Bool): if it is true, the object can be picked with the pointer in the 3D view. Otherwise, the object cannot be selected until this option is set to true.
  • AnsichtShape Material (Material): this property includes sub-properties that describe the appearance of the object.
    • AnsichtDiffuse Color, it defaults to (0.4, 1.0, 1.0), which is displayed as [102, 255, 255] on base 255, light blue .
    • AnsichtAmbient Color, it defaults to (0.2, 0.2, 0.2), which is displayed as [51, 51, 51] on base 255, dark gray .
    • AnsichtSpecular Color, it defaults to (0.0, 0.0, 0.0), which is displayed as [0, 0, 0] on base 255, black .
    • AnsichtEmissive Color, it defaults to (0.0, 0.0, 0.0), which is displayed as [0, 0, 0] on base 255, black .
    • AnsichtShininess, it defaults to 0.2
    • AnsichtTransparency, it defaults to 0.0.

Base

  • Ansicht (Hidden)Child View Provider (PersistentObject):
  • Ansicht (Hidden)Material List (MaterialList): (read-only) if individual materials have been added, they will be listed here.
  • Ansicht (Hidden)Override Color List (ColorList): (read-only) if the individual faces or edges of the link have been overridden they will be listed here.
  • Ansicht (Hidden)Override Material List (BoolList): (read-only) if the individual materials of the link have been overridden they will be listed here.

Display Options

  • AnsichtDisplay Mode (Enumeration): 'Link' or 'ChildView'.
  • AnsichtShow In Tree (Bool): see the information in App FeaturePython.
  • AnsichtVisibility (Bool): see the information in App FeaturePython.

Selection

It will additionally show the view properties of the original DatenLinked Object.

Vererbung

An App Link is formally an instance of the class App::Link, whose parent is the basic App DocumentObject (App::DocumentObject class). It is a very low level object, which can be used with most other document objects.

Simplified diagram of the relationships between the core objects in the program. The App::Link object is a core component of the system, it does not depend on any workbench, but it can be used with most objects created in all workbenches.

Skripten

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

Für allgemeine Informationen, siehe Part Formelement.

An App Link is created with the addObject() method of the document. It can define its DatenLinked Object by overriding its LinkedObject attribute, or by using its setLink method.

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

The basic App::Link doesn't have a Proxy object so it can't be fully used for sub-classing.

Therefore, for Python subclassing, you should create the App::LinkPython object.

import FreeCAD as App

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

Weiterführende Literatur

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.

The App Link project started after the redesign of the PartDesign Workbench was complete in v0.17. The history of App Link can be traced to some essential forum threads:

Finally, the pull request and merge happened:

Other miscellaneous "links" about Link include:

  • Dynamic linked object - A pattern with Link and assemblies that aims to reduce duplication of assembly related logic such as orientation, positioning, or number of instances.