Std LinkMake/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "{{Emphasis|Zobacz również:}} Podstawy tworzenia skryptów FreeCAD, oraz Obiekty skryptowe.")
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 169: Line 169:
===Dane===
===Dane===


{{TitleProperty| Link}}
{{TitleProperty|Łącze}}


* {{PropertyData|Powiązane Obiekty|XLink}}: wskazuje obiekt źródłowy [[App_Link/pl|App: Łącze]]. Może to być cały obiekt lub jego element ''(wierzchołek, krawędź lub ściana)''.
* {{PropertyData|Powiązane Obiekty|XLink}}: wskazuje obiekt źródłowy [[App_Link/pl|App: Łącze]]. Może to być cały obiekt lub jego element ''(wierzchołek, krawędź lub ściana)''.
Line 188: Line 188:
* {{PropertyData|_ChildCache|LinkList|Ukryte}}:
* {{PropertyData|_ChildCache|LinkList|Ukryte}}:


{{TitleProperty|Podstawowe}}
{{TitleProperty|Podstawa}}


* {{PropertyView|Proxy|PythonObject|Ukryte}}: klasa własna związana z tym obiektem. Istnieje wyłącznie dla wersji środowiska [[Python/pl|Python]]. Zobacz sekcję [[#Tworzenie_skrypt.C3.B3w|tworzenie skryptów]].
* {{PropertyView|Proxy|PythonObject|Ukryte}}: klasa własna związana z tym obiektem. Istnieje wyłącznie dla wersji środowiska [[Python/pl|Python]]. Zobacz sekcję [[#Tworzenie_skrypt.C3.B3w|tworzenie skryptów]].
Line 197: Line 197:
===Widok===
===Widok===


{{TitleProperty| Link}}
{{TitleProperty|Łącze}}


* {{PropertyView|Styl kreślenia|Enumeration}}: domyślnie {{Value|Brak}}. Może przyjąć wartości {{value|Pełna}}, {{value|Kreskowana}}, {{value|Kropkowana}}, {{value|Kreska Kropka}}. Definiuje styl krawędzi w oknie [[3D_view/pl|widoku 3D]].
* {{PropertyView|Styl kreślenia|Enumeration}}: domyślnie {{Value|Brak}}. Może przyjąć wartości {{value|Pełna}}, {{value|Kreskowana}}, {{value|Kropkowana}}, {{value|Kreska Kropka}}. Definiuje styl krawędzi w oknie [[3D_view/pl|widoku 3D]].
Line 213: Line 213:
** {{PropertyView|Przezroczystość}}, wartość domyślna to {{Value|0.0}}.
** {{PropertyView|Przezroczystość}}, wartość domyślna to {{Value|0.0}}.


{{TitleProperty|Podstawowe}}
{{TitleProperty|Podstawa}}


* {{PropertyView|Child View Provider|PersistentObject|Ukryte}}:
* {{PropertyView|Child View Provider|PersistentObject|Ukryte}}:
Line 247: Line 247:
{{Emphasis|Zobacz również:}} [[FreeCAD_Scripting_Basics/pl|Podstawy tworzenia skryptów FreeCAD]], oraz [[Scripted_objects/pl|Obiekty skryptowe]].
{{Emphasis|Zobacz również:}} [[FreeCAD_Scripting_Basics/pl|Podstawy tworzenia skryptów FreeCAD]], oraz [[Scripted_objects/pl|Obiekty skryptowe]].


See [[Part_Feature|Part Feature]] for the general information.
Zapoznaj się z artykułem [[Part_Feature/pl|Część: Cecha]], aby uzyskać ogólne informacje.


An App Link is created with the {{incode|addObject()}} method of the document. It can define its {{PropertyData|Linked Object}} by overriding its {{incode|LinkedObject}} attribute, or by using its {{incode|setLink}} method.
Obiekt App Łącze jest tworzony za pomocą metody {{incode|addObject()}} dokumentu. Może on zdefiniować swój {{PropertyData|Połączony obiekt}} poprzez nadpisanie atrybutu {{incode|LinkedObject}} lub poprzez użycie metody {{incode|setLink}}.
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App
Line 270: Line 270:
}}
}}


The basic {{incode|App::Link}} doesn't have a Proxy object so it can't be fully used for sub-classing.
Podstawowy {{incode|App::Link}} nie ma obiektu Proxy, więc nie może być w pełni wykorzystany do tworzenia klas podrzędnych.


Therefore, for [[Python|Python]] subclassing, you should create the {{incode|App::LinkPython}} object.
Dlatego też, dla klasy podrzędnej [[Python/pl|Python]], powinieneś stworzyć obiekt {{incode|App::LinkPython}}.


{{Code|code=
{{Code|code=
Line 285: Line 285:
==Dodatkowe informacje==
==Dodatkowe informacje==


The [[App_Link|App Link]] object was introduced after 2 years of development and prototyping. This component was thought and developed almost single-handedly by user {{Emphasis|realthunder}}. The motivations and design implementations behind this project are described in his GitHub page, [https://github.com/realthunder/FreeCAD_assembly3/wiki/Link Link]. In order to accomplish this feature, several core changes to FreeCAD were made; these were also extensively documented in [https://github.com/realthunder/FreeCAD_assembly3/wiki/Core-Changes Core-Changes].
Obiekt [[App_Link/pl|App Łącze]] został wprowadzony po 2 latach rozwoju i prototypowania. Komponent ten został wymyślony i opracowany niemal samodzielnie przez użytkownika {{Emphasis|realthunder}}. Motywacje i implementacje stojące za tym projektem zostały opisane na jego stronie GitHub, [https://github.com/realthunder/FreeCAD_assembly3/wiki/Link Link]. Aby wdrożyć funkcję, wprowadzono kilka podstawowych zmian w programie FreeCAD. Zostały one również obszernie udokumentowane w artykule [https://github.com/realthunder/FreeCAD_assembly3/wiki/Core-Changes Core-Changes].


Projekt związany z App Łącze rozpoczął się po tym, jak przeprojektowanie środowiska pracy [[PartDesign_Workbench/pl|Projekt Części]] zostało ukończone w wersji 0.17. Historię App Łącze można prześledzić w kilku istotnych wątkach na forum:
The App Link project started after the redesign of the [[PartDesign Workbench|PartDesign Workbench]] was complete in v0.17. The history of App Link can be traced to some essential forum threads:
* [https://forum.freecadweb.org/viewtopic.php?f=19&t=21505 Why an object can only be inside one App::Part?] (March 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=19&t=21505 Dlaczego obiekt może znajdować się tylko w jednym App::Part?] ''(marzec 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=21586 Introducing App::Link/XLink] (March 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=21586 Wprowadzenie App::Link/XLink] ''(marzec 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=22216 Links] (May 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=22216 Linki] ''(maj 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=23015 Realthunder Link implementation: Architecture discussion] (June 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=23015 Implementacja Realthunder Link: Dyskusja o architekturze] ''(czerwiec 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23419 PR #876: Link, stage one, context aware selection] (July 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23419 PR #876: Link, etap pierwszy, wybór świadomy kontekstu] ''(lipiec 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23626 Preview: Link, stage two, API groundwork] (July 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23626 Preview: Link, etap drugi, podstawy API] ''(lipiec 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=25712 Assembly3 preview] (December 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=25712 Podgląd Assembly3] ''(grudzień 2017)''
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=29542 Merging of my Link branch] (June 2018)
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=29542 Scalanie mojej gałęzi Link] ''(czerwiec 2018)''


Finally, the pull request and merge happened:
W końcu nastąpiło zgłoszenie pull request i scalenie:
* [https://forum.freecadweb.org/viewtopic.php?f=27&t=38621 App::Link: the big merge], old thread (July 2019), [https://github.com/FreeCAD/FreeCAD/pull/2350 pull request #2350] (the BIG merge), [https://github.com/realthunder/FreeCAD/tree/LinkMerge LinkMerge branch].
* [https://forum.freecadweb.org/viewtopic.php?f=27&t=38621 App::Link: the big merge], stary wątek (lipiec 2019), [https://github.com/FreeCAD/FreeCAD/pull/2350 pull request #2350] (the BIG merge), [https://github.com/realthunder/FreeCAD/tree/LinkMerge LinkMerge branch].
* [https://forum.freecadweb.org/viewtopic.php?f=8&t=37757 App::Link: the big merge], main thread (July 2019)
* [https://forum.freecadweb.org/viewtopic.php?f=8&t=37757 App::Link: the big merge], główny wątek (lipiec 2019)
* [https://forum.freecadweb.org/viewtopic.php?p=329054#p329054 A simple path description of Link, 019, Link stage, Asm3, merge?] (August 2019)
* [https://forum.freecadweb.org/viewtopic.php?p=329054#p329054 Prosty opis ścieżki Link, 019, Link stage, Asm3, merge?] (sierpień 2019)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=39672 PR#2559: expose link and navigation actions], an introduction to the Link feature in 0.19 (September 2019).
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=39672 PR#2559: ujawnienie linków i akcji nawigacyjnych], wprowadzenie do funkcji Link w wersji 0.19 (wrzesień 2019).


Inne różne "odnośniki internetowe" dotyczące Łącza obejmują:
Other miscellaneous "links" about Link include:
* [[Dynamic_linked_object|Obiekty łączone dynamicznie]] - Wzorzec z Łączem i złożeniami, który ma na celu zmniejszenie duplikacji logiki związanej ze złożeniem, takiej jak orientacja, pozycjonowanie lub liczba instancji.
* [[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.





Latest revision as of 16:38, 29 November 2023

Std: Utwórz łącze

Lokalizacja w menu
brak
Środowisko pracy
wszystkie
Domyślny skrót
brak
Wprowadzono w wersji
0.19
Zobacz także
Część, Grupa, Zawartość

Opis

Narzędzie Utwórz łącze tworzy obiekt App: Łącze (klasa App::Link), typ obiektu, który odwołuje się lub łączy z innym obiektem, w tym samym dokumencie lub w innym dokumencie. Jest specjalnie zaprojektowany do wydajnego wielokrotnego powielania pojedynczego obiektu, co pomaga w tworzeniu skomplikowanych złożeń z mniejszych złożeń podrzędnych i wielu komponentów wielokrotnego użytku, takich jak śruby, nakrętki i podobne elementy złączne.

Obiekt App: Łącze został nowo wprowadzony w wersji 0.19. W przeszłości proste duplikowanie obiektów można było osiągnąć za pomocą Klonu, ale jest to mniej wydajne rozwiązanie ze względu na jego implementację, która zasadniczo tworzy kopię wewnętrznego kształtu obiektu źródłowego. Z drugiej strony, obiekt Łącze odwołuje się bezpośrednio do oryginalnego Kształtu, więc jest bardziej wydajny pamięciowo.

Sam obiekt Łącze może zachowywać się jak szyk, powielając swój obiekt bazowy wiele razy. Można to zrobić, ustawiając jego właściwość DANEIlość elementów na wartość 1 lub większą. Ten obiekt "Szyk łączy" może być również tworzony za pomocą różnych narzędzi do tworzenia szyków w środowisku pracy Rysunek Roboczy, na przykład Szyk ortogonalny, Szyk biegunowy, oraz Szyk kołowy.

W przypadku korzystania ze środowiska Projekt Części, Łącza są przeznaczone do użycia z obiektem Zawartości, więc zaleca się ustawienie WIDOKTryb wyświetlania Zawartości na wrtość Czubek w celu wybrania cech całej Zawartości, a nie indywidualnych cech. Aby utworzyć szyk wewnętrznych cech, użyj narzędzi . Szyk liniowy, Szyk kołowy, oraz Transformacja wielokrotna.

Narzędzie Utwórz łącze nie jest definiowane przez konkretne środowisko pracy, ale przez system bazowy, dlatego znajduje się na pasku narzędzi Konstrukcja, który jest dostępny we wszystkich środowiskach pracy. Obiekt Łącze, używany w połączeniu z Częścią do grupowania różnych obiektów, stanowi podstawę środowiska pracy Złożenie 3 i Złożenie 4.

Użycie

Przy użyciu zaznaczenia:

  1. Wybierz obiekt w oknie widoku drzewa lub widoku 3D, dla którego chcesz utworzyć Łącze.
  2. Naciśnij przycisk Utwórz Łącze. Utworzony obiekt ma taką samą ikonę jak oryginalny obiekt, ale posiada strzałkę wskazującą, że jest to Łącze.

Bez użycia zaznaczenia:

  1. Jeśli żaden obiekt nie jest zaznaczony, naciśnij przycisk Utwórz łącze, aby utworzyć puste Łącze.
  2. Przejdź do edytora właściwości, następnie kliknij na właściwość DANEPowiązane obiekty, aby otworzyć okienko dialogowe Wybór obiektu i wybrać obiekt, a następnie naciśnij OK.
  3. Zamiast wybierać cały obiekt w oknie Widoku drzewa, można również wybrać elementy podrzędne (wierzchołki, krawędzie lub ściany) pojedynczego obiektu w oknie widoku 3D. W takim przypadku Łącze powieli tylko te elementy podrzędne, a ikonka strzałki będzie inna. Można to również zrobić za pomocą narzędzia Utwórz łącze względne.

(1) obiekt, (2) puste łącze, (3) pełne łącze do pierwszego obiektu (z nadrzędnym materiałem) i (4) łącze tylko do niektórych elementów podrzędnych obiektu. Puste łącze nie jest powiązane z rzeczywistym obiektem, więc nie jest wyświetlane w oknie widoku 3D.

Użycie: dokumenty zewnętrzne

  1. Zacznij od dokumentu, który ma co najmniej jeden obiekt, który będzie źródłem łącza.
  2. Otwórz nowy lub istniejący dokument. Dla łatwiejszej obsługi, użyj opcji Wiele dokumentów, aby wyświetlić oba dokumenty w oknie Widoku drzewa. Zanim przejdziesz dalej, zapisz oba dokumenty. Łącze nie będzie w stanie znaleźć swojego źródła i celu, jeśli oba dokumenty nie zostaną zapisane na dysku.
  3. W pierwszym dokumencie wybierz obiekt, który chcesz powiązać. Następnie przełącz zakładki w głównego obszaru widoku, aby przejść do drugiego dokumentu.
  4. Naciśnij przycisk Utwórz link. Utworzony obiekt ma taką samą ikonę jak oryginalny obiekt, ale ma dodatkową nakładkę ze strzałką wskazującą, że jest to łącze pochodzące z zewnętrznego dokumentu.

Uwaga:

  • Podczas zapisywania dokumentu z łączem, program poprosi również o zapisanie dokumentu źródłowego zawierającego oryginalny obiekt.
  • Aby dołączyć oryginalny obiekt do dokumentu z łączem, należy użyć przycisku Importuj łącza lub Importuj wszystkie łącza.
  • Narzędzie Utwórz łącze może być użyte na istniejącym obiekcie łącza, w celu utworzenia łącza do łącza, które ostatecznie prowadzi do oryginalnego obiektu w dokumencie źródłowym. Można tego użyć z Utwórz łącze względne, aby wybrać tylko określone elementy podrzędne.

(1, 2) dwa obiekty z dokumentu źródłowego połączone z dokumentem docelowym, (3) łącze do drugiego łącza (z nadrzędnym materiałem) oraz (4) łącze do elementów podrzędnych drugiego łącza.

Przeciąganie i upuszczanie

Zamiast przełączać zakładki dokumentów, można tworzyć Łącza wykonując operację przeciągnij i upuść w oknie Widoku drzewa: wybierz obiekt źródłowy z pierwszego dokumentu, przeciągnij go, a następnie upuść na nazwę drugiego dokumentu przytrzymując klawisz Alt na klawiaturze.

Przeciąganie i upuszczanie powoduje różne działania w zależności od trzymanego klawisza modyfikatora.

  • Bez klawisza modyfikatora po prostu przenosi obiekt z jednego dokumentu do drugiego. Na kursorze wyświetlana jest pochylona strzałka.
  • Przytrzymanie klawisza Ctrl kopiuje obiekt. Na kursorze wyświetlany jest znak plus.
  • Przytrzymanie klawisza Alt tworzy łącze. Na kursorze wyświetlana jest para ogniw łańcucha.

W przypadku modyfikatorów Ctrl i Alt, przeciąganie i upuszczanie może być również wykonywane w pojedynczym dokumencie. Oznacza to, że przeciągnięcie obiektu i upuszczenie go na nazwę tego samego dokumentu może być użyte do utworzenia wielu kopii lub wielu linków do niego.

Grupy

Utwórz łącze można użyć na obiekcie Część w celu szybkiego duplikowania grup obiektów umieszczonych w przestrzeni, czyli złożeniach.

Łącze utworzone z obiektu Część. Obiekty nie są duplikowane, ale są przedstawione pod oryginalną zawartością i pod zawartością Łącze.

Zwykła Grupa nie posiada właściwości DANEUmiejscowienie, więc nie może kontrolować pozycji obiektów wewnątrz niego. Jednakże, gdy narzędzie Utwórz link zostanie użyte z Grupą, wynikowe łącze zachowuje się zasadniczo jak obiekt Część, a także może być przemieszczane w przestrzeni.

Łącze utworzone z Grupy. Obiekty nie są duplikowane, ale są wymienione pod oryginalną zawartością i pod zawartością Łącza. Łącze (z nadrzędnym materiałem) może być przesuwane w przestrzeni, tak jak obiekt Część.

Łącze do Części utrzyma widoczność obiektów zsynchronizowaną z oryginalnym obiektem Część, więc jeśli ukryjesz jeden obiekt w Łączu, będzie on ukryty we wszystkich Łączach i w oryginalnym obiekcie. Z drugiej strony, łącze do Grupy pozwoli na niezależną kontrolę widoczności.

Po lewej: Część z dwoma obiektami i dwoma linkami do Części, gdzie widoczność obiektów jest zsynchronizowana. Po prawej: Grupa z dwoma obiektami i dwoma linkami do Grupy, gdzie widoczność obiektów jest kontrolowana niezależnie w każdej grupie.

Kontrola wyglądu

Gdy tworzone jest łącze, domyślnie właściwość WIDOKZastępuj materiał ma wartość FAŁSZ, więc obiekt łącza będzie miał taki sam wygląd jak oryginalny DANEPołączony obiekt.

Gdy właściwość WIDOKZastępuj materiał jest ustawione na PRAWDA, właściwość WIDOKMateriał kształtu będzie teraz kontrolować wygląd obiektu Łącza.

Niezależnie od stanu właściwości WIDOKZastępuj materiał, możliwe jest indywidualne ustawienie wyglądu elementów podrzędnych (wierzchołków, krawędzi, ścian) dla obiektu Łącza.

  1. Wybierz obiekt Łącza w oknie Widoku drzewa. Otwórz menu kontekstowe (kliknij prawym przyciskiem myszy) i wybierz Zastąp kolory ....
  2. Teraz wybierz w oknie widoku 3D poszczególne elementy podrzędne, których chcesz użyć, naciśnij Edycja i zmień właściwości, w tym przezroczystość.
  3. Aby usunąć niestandardowe atrybuty, zaznacz elementy na liście i naciśnij Usuń.
  4. Gdy wynik będzie zadowalający, naciśnij OK, aby zamknąć okno dialogowe.

Uwaga: od wersji 0.19 kolorowanie elementów podrzędnych podlega regułom problemu nazewnictwa topologicznego, więc powinno być wykonywane jako ostatni krok modelowania, gdy model nie podlega już zmianom.

(1) Oryginalny obiekt, (2) obiekt Łącza z nadrzędnym materiałem i (3) drugi obiekt Łącza ze zmodyfikowanymi poszczególnymi elementami podrzędnymi.

Szyk łączy

Zobacz również: Szyk ortogonalny.

Gdy tworzone jest Łącze, domyślnie jego DANELiczba elementów wynosi 0, więc tylko pojedynczy obiekt Łącze będzie widoczny w Widoku drzewa.

Biorąc pod uwagę, że wartość DANEWyświetl element jest domyślnie ustawiona na true, gdy DANELiczba elementów jest ustawiona na 1 lub więcej, automatycznie więcej obiektów Łącze zostanie utworzonych poniżej pierwszego. Każdy nowy obiekt Łącze może zostać umieszczony w żądanej pozycji poprzez zmianę jego własnej właściwości DANEUmiejscowienie.

W podobny sposób każdy element szyku może mieć zmieniony wygląd, albo przez właściwości WIDOKZastępuj materiał i WIDOKMateriał kształtu, albo przez użycie menu Zastąp kolory ... na całym szyku, a następnie wybranie poszczególnych ścian. Zostało to opisane w akapicie Kontrola wyglądu.

(1) Oryginalny obiekt i (2, 3, 4) szyk Łączy z trzema elementami, każdy w innej pozycji. Pierwszy obiekt Łącza ma nadpisany materiał i przezroczyste ściany, a dwa pozostałe mają niestandardowe kolory ścian.

Gdy jesteś zadowolony z rozmieszczenia i właściwości elementów Łącza w szyku, możesz zmienić wartość właściwości DANEWyświetl element na FAŁSZ, aby ukryć poszczególne Łącza w oknie Widoku drzewa. Ma to tę zaletę, że system jest bardziej dynamiczny, zwłaszcza jeśli w dokumencie znajduje się wiele obiektów.

Tworząc tego typu szyk Łączy, musisz umieścić każdy z elementów samodzielnie. Jeśli jednak chcesz użyć określonych wzorców do umieszczenia kopii, możesz użyć narzędzi szyku w środowisku pracy Rysunek Roboczy, takich jak Szyk ortogonalny, Szyk biegunowy, oraz Szyk kołowy. Polecenia te mogą tworzyć normalne kopie lub kopie Łącz w zależności od opcji w czasie tworzenia.

Widoczność

Gdy właściwość DANEWyświetl element ma wartość true, a poszczególne elementy są wyświetlane w Widoku drzewa w szyku łączy, każde Łącze można wyświetlić lub ukryć, naciskając klawisz Spacja na klawiaturze.

Innym sposobem na ukrycie poszczególnych elementów jest użycie menu Zastąp kolory ....

  1. Wybierz szyk, otwórz z menu podręcznego Zastąp kolory ... (kliknij prawym przyciskiem myszy).
  2. W oknie widoku 3D wybierz dowolny element podrzędny z dowolnego Łącza w szyku.
  3. Naciśnij Ukryj. Powinna pojawić się ikona oka wskazująca, że ten element został ukryty w widoku 3D. Obiekt tymczasowo pokaże się, gdy kursor najedzie na ikonę .
  4. Możesz kliknąć OK, aby potwierdzić operację i zamknąć okno dialogowe. Łącze pozostanie ukryte, nawet jeśli jest wyświetlane jako widoczne w widoku drzewa.

Okno dialogowe koloru elementu dostępne po otwarciu menu kontekstowego obiektu Łącze w Widoku drzewa.

Jeśli chcesz przywrócić widoczność tego elementu szyku, wejdź ponownie do okna dialogowego, wybierz ikonę oka, a następnie kliknij Usuń, aby usunąć status ukrycia, i kliknij OK, aby potwierdzić i zamknąć okno dialogowe. Element będzie ponownie widoczny w oknie widoku 3D.

Gdy Łącze odnosi się do obiektu Część lub Grupa, narzędzie z menu Zastąp kolory ... działa podobnie jak w przypadku szyków. Pozwala kontrolować kolor ściany, kolor całego obiektu i widoczność obiektów w grupie.

Obiekt Część zawierający trzy obiekty i Łącze do tej części. W Łączu (1) pierwszy obiekt jest niewidoczny, (2) drugi obiekt ma kilka elementów podrzędnych o różnych kolorach, (3) cały trzeci obiekt ma inny kolor i poziom przezroczystości.

Właściwości

Obiekt App: Łącze (klasa App::Link) wywodzi się z podstawowej klasy App: DocumentObject (App::DocumentObject), dlatego posiada podstawowe właściwości tej ostatniej, takie jak DANEEtykieta i DANEEtykieta2.

Są to właściwości dostępne w edytorze właściwości. Ukryte właściwości można wyświetlić za pomocą polecenia Wyświetl wszystko w menu podręcznym edytora właściwości.

Dane

Łącze

  • DANEPowiązane Obiekty (XLink): wskazuje obiekt źródłowy App: Łącze. Może to być cały obiekt lub jego element (wierzchołek, krawędź lub ściana).
  • DANEPrzekształcanie łączy (Bool): domyślnie ustawiona na wartość FAŁSZ, w którym to przypadku Łącze zastąpi własne położenie DANEPowiązaniem Obiektu. Jeśli właściwość jest ustawiona na PRAWDA, Łącze zostanie umieszczone w tej samej pozycji co DANEPowiązane Obiekty, a jego położenie będzie względne w stosunku do położenia DANEPowiązanych Obiektów. Można to również osiągnąć za pomocą narzędzia . Utwórz łącze względne.
  • DANEUmiejscowienie (Placement): umiejscowienie odnośnika we współrzędnych bezwzględnych.
  • DANE (Ukryte)Umiejscowienie łącza (Placement): jest to przesunięcie nałożone na DANEUmiejscowienie DANEPowiązanego obiektu. Ta właściwość jest normalnie ukryta, ale pojawia się, jeśli właściwość DANEPrzekształcanie łączy jest ustawiona na wartość PRAWDA. W tym przypadku właściwość DANEUmiejscowienie staje się teraz ukryta.
  • DANEWyświetl element (Bool): właściwość domyślnie ustawiona na wartość PRAWDA, w którym to przypadku widok drzewa pokaże poszczególne kopie Łącza, tak długo jak właściwość DANELiczba elementów jest równa 1 lub większa.
  • DANELiczba elementów (IntegerConstraint): domyślnie 0. Jeśli wartość wynosi 1 lub jest większa, obiekt App: Łącze będzie zachowywać się jak szyk i powieli ten sam DANEPowiązany obiekt wiele razy. Jeśli właściwośćDANEWyświetl element ma wartość PRAWDA, każdy element w tablicy będzie wyświetlany w Widoku drzewa, a każdy z nich może mieć zmodyfikowane własne DANEUmiejscowienie. Każda kopia Łącza będzie miała nazwę opartą na właściwości Nazwa Łącza, powiększoną o _iN, gdzie N jest liczbą zaczynającą się od 0. Na przykład, z pojedynczym obiektem Łącze, kopie będą miały nazwy Link_i0, Link_i1, Link_i2 itd.
  • DANELink Execute (String): nazwa funkcji execute, która zostanie uruchomiona dla tego konkretnego obiektu Łącza. Domyślnie jest to 'appLinkExecute'. Ustaw ją na 'None', aby ją wyłączyć.
  • DANE (Ukryte)Colored Elements (LinkSubHidden): lista elementów Łącza, których kolor został nadpisany.
  • DANESkala (Float): domyślnie przyjmuje wartość 1.0. Jest to współczynnik równomiernego skalowania w każdym kierunku X, Y i Z. Na przykład, sześcian o wymiarach 2 mm x 2 mm x 2 mm, który jest skalowany przez 2.0, da w wyniku kształt o wymiarach 4 mm x 4 mm x 4 mm.
  • DANE (Ukryte)Wektor skali (Vector): współczynnik skali dla każdego elementu (X, Y, Z) dla wszystkich elementów Łącza, gdy właściwość DANELiczba elementów ma wartość 1 lub większą. Jeśli DANESkala ma wartość inną niż 1.0, ta sama wartość zostanie użyta w trzech komponentach.
  • DANELista skali (VectorList): współczynnik skali dla każdego elementu Łącza.
  • DANE (Ukryte)Lista wyświetlania (BoolList): (tylko do odczytu) stan widoczności każdego elementu Łącza, każdy element przyjmuje wartości albo PRAWDA albo FAŁSZ.
  • DANE (Ukryte)Lista umiejscowienia (PlacementList): (tylko do odczytu) the placement for each Link element.
  • DANE (Ukryte)Lista elementów (LinkList): lista elementów Łącza.
  • DANE (Ukryte)_LinkTouched (Bool):
  • DANE (Ukryte)_ChildCache (LinkList):

Podstawa

  • WIDOK (Ukryte)Proxy (PythonObject): klasa własna związana z tym obiektem. Istnieje wyłącznie dla wersji środowiska Python. Zobacz sekcję tworzenie skryptów.

Obiekt App: Łącze będzie dodatkowo pokazywał właściwości oryginalnego DANEPowiązanego obiektu, więc edytor właściwości może mieć grupy właściwości takie jak Dołączenie, Sześcian, Draft, itd.

Widok

Łącze

  • WIDOKStyl kreślenia (Enumeration): domyślnie Brak. Może przyjąć wartości Pełna, Kreskowana, Kropkowana, Kreska Kropka. Definiuje styl krawędzi w oknie widoku 3D.
  • WIDOKSzerokość linii (FloatConstraint): wartość zmiennoprzecinkowa określająca szerokość w pikselach krawędzi w oknie widoku 3D. Domyślnie 2.0.
  • WIDOKZastępuj materiał (Bool): wartość domyślna to FAŁSZ. Jeśli zostanie ustawiona na PRAWDA, zastąpi materiał DANEPołączonego Obiektu i wyświetli kolory zdefiniowane w właściwości WIDOKMateriał kształtu.
  • WIDOKRozmiar punktu (FloatConstraint): podobnie jak WIDOKSzerokość linii, definiuje rozmiar wierzchołków.
  • WIDOKWybieralność (Bool): jeśli przyjmie wartość PRAWDA, obiekt może zostać wybrany w oknie widoku 3D za pomocą kursora. W przeciwnym razie obiekt nie może zostać wybrany, dopóki wartość tej opcji nie zostanie ustawiona na PRAWDA.
  • WIDOKMateriał kształtu (Material): Ta właściwość zawiera właściwości podrzędne, które opisują wygląd obiektu.
    • WIDOKBarwa rozproszenia, domyślnie (0.4, 1.0, 1.0), co jest wyświetlane jako [102, 255, 255] na bazie 255, light blue .
    • WIDOKBarwa otoczenia, wartość domyślna to (0.2, 0.2, 0.2), co jest wyświetlane jako [51, 51, 51] na bazie 255, dark gray .
    • WIDOKBarwa odbicia, wartość domyślna to (0.0, 0.0, 0.0), co jest wyświetlane jako [0, 0, 0] ona bazie 255, black .
    • WIDOKKolor emisji, wartość domyślna to (0.0, 0.0, 0.0), co jest wyświetlane jako [0, 0, 0] na bazie 255, black .
    • WIDOKStopień połysku, wartość domyślna to 0.2
    • WIDOKPrzezroczystość, wartość domyślna to 0.0.

Podstawa

  • WIDOK (Ukryte)Child View Provider (PersistentObject):
  • WIDOK (Ukryte)Material List (MaterialList): (tylko do odczytu) jeśli poszczególne materiały zostały dodane, będą one wymienione tutaj.
  • WIDOK (Ukryte)Override Color List (ColorList): (tylko do odczytu) jeśli poszczególne ściany lub krawędzie łącza zostały nadpisane, zostaną one wymienione tutaj.
  • WIDOK (Ukryte)Override Material List (BoolList): (tylko do odczytu) jeśli poszczególne materiały Łącza zostały nadpisane, zostaną one wymienione tutaj.

Opcje wyświetlania

  • WIDOKTryb wyświetlania (Enumeration): przyjmuję wartości 'Link' lub 'ChildView'.
  • WIDOKWyświetl w Drzewie (Bool): zobacz informacje na stronie Właściwości Python.
  • WIDOKWidoczność (Bool): zobacz informacje na stronie Właściwości Python.

Wybieranie

Dodatkowo wyświetli właściwości widoku oryginalnego DANEPowiązanego obiektu.

Dziedziczenie

Obiekt App: Łącze jest formalnie instancją klasy App::Link, której rodzicem jest podstawowy App: DocumentObject (klasa App::DocumentObject). Jest to obiekt bardzo niskiego poziomu, który może być używany z większością innych obiektów dokumentów.

Uproszczony schemat zależności pomiędzy głównymi obiektami w programie. Obiekt App::Link jest głównym składnikiem systemu, nie zależy on od żadnego środowiska pracy, a może być użyty z większością obiektów stworzonych we wszystkich środowiskach pracy.

Tworzenie skryptów

Zobacz również: Podstawy tworzenia skryptów FreeCAD, oraz Obiekty skryptowe.

Zapoznaj się z artykułem Część: Cecha, aby uzyskać ogólne informacje.

Obiekt App Łącze jest tworzony za pomocą metody addObject() dokumentu. Może on zdefiniować swój DANEPołączony obiekt poprzez nadpisanie atrybutu LinkedObject lub poprzez użycie metody setLink.

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

Podstawowy App::Link nie ma obiektu Proxy, więc nie może być w pełni wykorzystany do tworzenia klas podrzędnych.

Dlatego też, dla klasy podrzędnej Python, powinieneś stworzyć obiekt App::LinkPython.

import FreeCAD as App

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

Dodatkowe informacje

Obiekt App Łącze został wprowadzony po 2 latach rozwoju i prototypowania. Komponent ten został wymyślony i opracowany niemal samodzielnie przez użytkownika realthunder. Motywacje i implementacje stojące za tym projektem zostały opisane na jego stronie GitHub, Link. Aby wdrożyć tę funkcję, wprowadzono kilka podstawowych zmian w programie FreeCAD. Zostały one również obszernie udokumentowane w artykule Core-Changes.

Projekt związany z App Łącze rozpoczął się po tym, jak przeprojektowanie środowiska pracy Projekt Części zostało ukończone w wersji 0.17. Historię App Łącze można prześledzić w kilku istotnych wątkach na forum:

W końcu nastąpiło zgłoszenie pull request i scalenie:

Inne różne "odnośniki internetowe" dotyczące Łącza obejmują:

  • Obiekty łączone dynamicznie - Wzorzec z Łączem i złożeniami, który ma na celu zmniejszenie duplikacji logiki związanej ze złożeniem, takiej jak orientacja, pozycjonowanie lub liczba instancji.