Std Part/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "Przykłady, które mogą być częściami: * Drewniany stół, który składa się z pojedynczych drewnianych przedmiotów ''(nóg, blatu)'', które są łączone za pomocą k...")
(Updating to match new version of source page)
 
(95 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/pl
{{Docnav/pl
|
|
|[[Std Group|Grupa]]
|[[Std_Group/pl|Grupa]]
|[[Std_Base/pl|Narzędzia standardowe]]
|[[PartDesign_Workbench/pl|Środowisko pracy Part Design]]
|IconL=
|IconL=
|IconR=Std_Group.svg
|IconC=Workbench_PartDesign.svg
|IconR=Group.svg
|IconC=Freecad.svg
}}
}}


{{GuiCommand/pl
{{GuiCommand/pl
|Name=Std Part
|Name=Std Part
|Name/pl=Std: Part
|Name/pl=Std: Część
|MenuLocation=brak
|MenuLocation=brak
|Workbenches=wszystkie
|Workbenches=wszystkie
|Version=0.17
|Version=0.17
|SeeAlso=[[Std Group|Std: Group]], [[PartDesign Body/pl|PartDesign: Bryła]]
|SeeAlso=[[Std_Group/pl|Grupa]], [[PartDesign_Body/pl|Zawartość]]
}}
}}


<span id="Description"></span>
==Opis==
==Opis==


{{Button|[[File:Std_Part.svg|16px]] [[Std_Part|Std: Part]]}} ''(wewnętrznie nazywany [[App_Part|App: Part]])'' jest to uniwersalny kontener, który gromadzi wspólnie grupę obiektów, dzięki czemu można je przesuwać razem jako całość w oknie [[3D_view/pl|widoku 3D]].
{{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Część]]}} ''(wewnętrznie nazywany [[App_Part/pl|App: Część]])'' jest to uniwersalny kontener, który gromadzi wspólnie grupę obiektów, dzięki czemu można je przesuwać razem jako całość w oknie [[3D_view/pl|widoku 3D]].


Element '''Std: Part''' został opracowany jako podstawowy element konstrukcyjny do tworzenia [[assembly|zespołów]] mechanicznych. W szczególności, ma on za zadanie uporządkować obiekty, które mają kształt [[Part_TopoShape|części TopoShape]], jak [[Part_CreatePrimitives/pl|Part: Bryły pierwotne]], [[PartDesign_Body/pl|PartDesign: Bodies]] i inne [[Part_Feature|cechy Part]]. Std: Part dostarcza [[App_Origin|obiekt Origin]] z lokalnymi osiami X, Y i Z oraz płaszczyznami standardowymi, które mogą być używane jako odniesienie do położenia obiektów zamkniętych. Ponadto Std: Parts mogą być zagnieżdżone wewnątrz innych Std: Parts w celu utworzenia dużego zespołu z mniejszych podzespołów.
Element '''Std: Część''' został opracowany jako podstawowy element konstrukcyjny do tworzenia [[Assembly/pl|zespołów]] mechanicznych. W szczególności, ma on za zadanie uporządkować obiekty, które mają kształt [[Part_TopoShape/pl|części TopoShape]], jak [[Part_Primitives/pl|Część: Bryły pierwotne]], [[PartDesign_Body/pl|Projekt Części: Zawartość]] i inne [[Part_Feature/pl|cechy Części]]. Std: Część dostarcza [[#Odniesienie położenia|obiekt Odniesienie położenia]] z lokalnymi osiami X, Y i Z oraz płaszczyznami standardowymi, które mogą być używane jako odniesienie do położenia obiektów zamkniętych. Ponadto obiekty Std: Część mogą być zagnieżdżone wewnątrz innych obiektów Std: Część w celu utworzenia dużego zespołu z mniejszych podzespołów.


Chociaż jest on przeznaczony głównie dla brył, Std: Part może być użyty do zarządzania dowolnym obiektem, który posiada właściwość [[Placement|Umieszczania]], więc może również zawierać [[Mesh_Feature|cechy siatki]], [[Sketch/pl|szkice]] i inne obiekty pochodzące z klas [[App_GeoFeature|App: GeoFeature]].
Chociaż jest on przeznaczony głównie dla brył, Std: Część może być użyty do zarządzania dowolnym obiektem, który posiada właściwość [[Placement/pl|Umiejscowienie]], więc może również zawierać [[Mesh_Feature/pl|cechy siatki]], [[Sketch/pl|szkice]] i inne obiekty pochodzące z klas [[App_GeoFeature|App: GeoFeature]].


Nie należy mylić elementu {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body/pl|PartDesign: Body]]}} z częścią {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Part]]}}. Pierwszym z nich jest określony obiekt używany w Środowisku pracy [[File:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench/pl|PartDesign]], przeznaczony do modelowania [[PartDesign_Body/pl#Single_contiguous_solid|pojedynczej, ciągłej bryły]] za pomocą funkcji [[PartDesign_Feature|PartDesign]]. Z drugiej strony [[Std_Part/pl|Std: Part]] nie jest używana do modelowania, a jedynie do rozmieszczania różnych obiektów w przestrzeni z zamiarem tworzenia [[assembly|złożeń]].
Nie należy mylić elementu {{Button|[[File:PartDesign_Body.svg|16px]] [[PartDesign_Body/pl|Projekt Części: Zawartość]]}} z częścią {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Część]]}}. Pierwszym z nich jest określony obiekt używany w środowisku pracy [[File:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench/pl|Projekt Części]], przeznaczony do modelowania [[PartDesign_Body/pl#Single_contiguous_solid|pojedynczej, ciągłej bryły]] za pomocą funkcji [[PartDesign_Feature|właściwości]]. Z drugiej strony [[Std_Part/pl|Std: Część]] nie jest używana do modelowania, a jedynie do rozmieszczania różnych obiektów w przestrzeni z zamiarem tworzenia [[Assembly/pl|złożeń]].


Narzędzie {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Part]]}} nie jest zdefiniowane przez konkretne Środowisko pracy, lecz przez system bazowy, a więc znajduje się na pasku {{MenuCommand|narzędzi struktury}}, który jest dostępny we wszystkich [[Workbenches|Środowiskach pracy.]] Aby dowolnie grupować obiekty bez względu na ich położenie, należy użyć funkcji {{Button|[[File:Std_Group.svg|16px]] [[Std_Group|Std: Group]]}}. Obiekt ten nie ma wpływu na rozmieszczenie elementów, które zawiera, w zasadzie jest to tylko folder, który jest używany do utrzymania widoku drzewa w sposób zorganizowany.
Narzędzie {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Część]]}} nie jest zdefiniowane przez konkretne środowisko pracy, lecz przez system bazowy, a więc znajduje się na pasku {{MenuCommand|narzędzi konstrukcja}}, który jest dostępny we wszystkich [[Workbenches/pl|środowiskach pracy.]] Aby dowolnie grupować obiekty bez względu na ich położenie, należy użyć funkcji {{Button|[[File:Std_Group.svg|16px]] [[Std_Group/pl|Std: Grupa]]}}. Obiekt ten nie ma wpływu na rozmieszczenie elementów, które zawiera, w zasadzie jest to tylko folder, który jest używany do utrzymania widoku drzewa w sposób zorganizowany.


[[File:Std Part-tree.png]][[File:Std Part example.png]]
[[File:Std Part-tree.png]][[File:Std Part example.png]]


{{Caption|Z lewej: elementy wewnątrz Std: Part w [[tree_view/pl|widoku drzewa]]. <br>Z prawej: obiekty umieszczone w przestrzeni, odnoszące się do pochodzenia ''(Origin)'' Std: Part.}}
{{Caption|Z lewej: elementy wewnątrz obiektu Std: Część w [[Tree_view/pl|widoku drzewa]]. <br>Z prawej: obiekty umieszczone w przestrzeni, odnoszące się do odniesienia położenia Std: Części.}}


<span id="Usage"></span>
==Użycie==
==Użycie==


# Naciśnij przycisk {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Std: Part]]}}. Zostanie utworzona pusta część, która automatycznie stanie się ''[[Std_Part/pl#Status aktywności|aktywna]]''.
# Naciśnij przycisk {{Button|[[File:Std_Part.svg|16px]] [[Std_Part/pl|Utwórz Część]]}}.
# Zostanie utworzona pusta część, która automatycznie stanie się ''[[Std_Part/pl#Status aktywności|aktywna]]''.
# Aby dodać obiekty do nowo utworzonej pozycji Części, zaznacz ją w [[tree_view/pl|widoku drzewa]], a następnie przeciągnij je i upuść nad Częścią.
# Aby usunąć obiekty z części, przeciągnij je poza część, na etykietę dokumentu u góry [[tree_view/pl|widoku drzewa]].
# Aby dodać obiekty do nowo utworzonej pozycji Części, zaznacz w [[Tree_view/pl|widoku drzewa]], a następnie przeciągnij je i upuść nad Częścią.
# Aby usunąć obiekty z części, przeciągnij je poza część, na etykietę dokumentu u góry [[Tree_view/pl|widoku drzewa]].
# Obiekty można także dodawać i usuwać, edytując właściwość {{PropertyData|Grupa}} części.


<span id="Notes"></span>
==Uwagi==
==Uwagi==


* Od wersji programu v0.19, dany obiekt może należeć tylko do jednej pozycji Części.
* Dany obiekt może należeć tylko do jednej pozycji Części.
* Operacje 3D, takie jak [[Part_Boolean/pl|operacje logiczne]] środowiska Część, nie mogą być stosowane do części. Na przykład nie można wybrać dwóch części i wykonać operacji [[Part_Fuse/pl|Scalenie]] lub [[Part_Cut/pl|Cięcie]].
* Kliknij dwukrotnie w pozycję Część w [[tree view|widoku drzewa]] lub otwórz menu kontekstowe ''(klikając prawym przyciskiem myszy)'' i wybierz {{MenuCommand|Przełącz aktywność części}} aby uaktywnić lub dezaktywować wybraną Część. Jeśli aktywna jest inna część, jej aktywność zostanie wyłączona. Aby uzyskać więcej informacji, zobacz akapit [[Std_Part/pl#Status aktywności|status aktywności]].

==Ograniczenia==

* Aktualnie metody [[Draft_Snap/pl|Draft: Przyciąganie]] nie działają na wybranych kontenerach części ani na obiektach znajdujących się wewnątrz nich.
* Część nie ma kształtu topologicznego, dlatego też operacje przestrzenne, takie jak [[Part_Boolean/pl|Część: Działania logiczne na bryłach]], nie mogą być bezpośrednio użyte na samej części. Na przykład nie można wybrać dwóch Części i wykonać za ich pomocą operacji [[Part_Union/pl|Część: Suma]] lub [[Part_Cut/pl|Część: Wytnij]].
** Te operacje logiczne działają tylko na zawartych obiektach, o ile pochodzą one z obiektu [[Part_Feature|Część: funkcjonalność]] i mają [[Part_TopoShape|kształt topologiczny]].


<span id="Properties"></span>
==Właściwości==
==Właściwości==


[[Std_Part/pl|Std: Część]] jest wewnętrznie nazywana [[App_Part|App: Part]] ''(klasa App::Part)'', i pochodzi z [[App_GeoFeature|App: GeoFeature]] ''(klasa App::GeoFeature)'', dlatego też posiada większość właściwości tej ostatniej.
[[Std_Part/pl|Std: Część]] jest wewnętrznie nazywana [[App_Part/pl|App: Part]] ''(klasa App::Part)'', i pochodzi z [[App_GeoFeature/pl|App: GeoFeature]] ''(klasa App::GeoFeature)'', ioraz dziedziczy wszystkie jego właściwości. Posiada również kilka dodatkowych właściwości. W szczególności właściwości, które pomagają zarządzać informacjami w kontekście złożenia, na przykład {{PropertyData|Typ}}, {{PropertyData|Id}}, {{PropertyData|Licencja}}, {{PropertyData|LicencjaURL}} i {{PropertyData|Grupa}}.

Oprócz właściwości opisanych w [[App_GeoFeature|App: GeoFeature]], klasa App Part posiada pewne właściwości, które pomagają w zarządzaniu informacjami w kontekście zespołu, na przykład: {{PropertyData|Typ}}, {{PropertyData|Id}}, {{PropertyData|Licencja}}, {{PropertyData|LicencjaURL}}, {{PropertyData|Kolor}}, oraz {{PropertyData|Grupa}}.


Są to właściwości dostępne w [[Property_editor/pl|edytorze właściwości]]. Ukryte właściwości można wyświetlić za pomocą polecenia {{MenuCommand|Wyświetl wszystko}} w menu kontekstowym [[Property_editor/pl|edytora właściwości]].
Są to właściwości dostępne w [[Property_editor/pl|edytorze właściwości]]. Ukryte właściwości można wyświetlić za pomocą polecenia {{MenuCommand|Wyświetl wszystko}} w menu kontekstowym [[Property_editor/pl|edytora właściwości]].


<span id="Data"></span>
===Dane===
===Dane===


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

* {{PropertyData|Type|String}}: a description for this object. By default, it is an empty string {{value|""}}.
* {{PropertyData|Id|String}}: an identification or part number for this object. By default, it is an empty string {{value|""}}.
* {{PropertyData|License|String}}: a field to specify the license for this object. By default, it is an empty string {{value|""}}.
* {{PropertyData|LicenseURL|String}}: a field to specify the web address to the license or contract for this object. By default, it is an empty string {{value|""}}.
* {{PropertyData|Color|Color}}: a tuple of four floating point RGBA values {{value|(r,g,b,a)}} to define the color of the object; by default it is {{value|(1.0, 1.0, 1.0, 1.0)}}, which is displayed as {{value|[255,255,255]}} on base 255, <span style="background-color:#fff; color:#000; border: 1px solid #888888; width:3em; height:12pt; padding: 2px 1em 2px;">white color</span>.
* {{PropertyData|Placement|Placement}}: the position of the object in the [[3D view|3D view]]. The placement is defined by a {{incode|Base}} point (vector), and a {{incode|Rotation}} (axis and angle). See [[Placement|Placement]].
** {{PropertyData|Angle}}: the angle of rotation around the {{PropertyData|Axis}}. By default, it is {{value|0°}} (zero degrees).
** {{PropertyData|Axis}}: the unit vector that defines the axis of rotation for the placement. Each component is a floating point value between {{value|0}} and {{value|1}}. If any value is above {{value|1}}, the vector is normalized so that the magnitude of the vector is {{value|1}}. By default, it is the positive Z axis, {{value|(0, 0, 1)}}.
** {{PropertyData|Position}}: a vector with the 3D coordinates of the base point. By default, it is the origin {{value|(0, 0, 0)}}.
* {{PropertyData|Label|String}}: the user editable name of this object, it is an arbitrary UTF8 string.
* {{PropertyData|Group|LinkList}}: a list of referenced objects. By default, it is empty {{value|[]}}.

====Dane Właściwości ukryte====


* {{PropertyData|Material|Map}}: map with material properties. By default, it is empty <code>{}</code>.
* {{PropertyData|Typ|String}}: opis dla obiektu. Domyślnie jest to pusty łańcuch znaków {{value|""}}.
* {{PropertyData|Meta|Map}}: map with additional meta information. By default, it is empty <code>{}</code>.
* {{PropertyData|Materiał|Link}}: materiał wybrany dla tego obiektu.
* {{PropertyData|Meta|Map|Ukryte}}: wprowadza dodatkowe informacje meta. Domyślnie jest ona pusta. <code>{}</code>.
* {{PropertyData|Uid|UUID}}: the [https://en.wikipedia.org/wiki/Universally_unique_identifier universally unique identifier] (UUID) (128-bit number) of the object. This is assigned at creation time.
* {{PropertyData|Label2|String}}: a longer, user editable description of this object, it is an arbitrary UTF8 string that may include newlines. By default, it is an empty string {{value|""}}.
* {{PropertyData|Id|String}}: numer identyfikacyjny lub numer części dla obiektu. Domyślnie jest to pusty łańcuch znaków {{value|""}}.
* {{PropertyData|Uid|UUID|Hidden}}: [https://en.wikipedia.org/wiki/Universally_unique_identifier uniwersalny, niepowtarzalny identyfikator] ''(UUID)'' ''(liczba 128-bitowa)'' obiektu. Jest on nadawany w czasie tworzenia.
* {{PropertyData|Expression Engine|ExpressionEngine}}: a list of expressions. By default, it is empty {{value|[]}}.
* {{PropertyData|Visibility|Bool}}: whether to display the object or not.
* {{PropertyData|Licencja|String}}: pole do określenia licencji dla obiektu. Domyślnie jest to pusty łańcuch znaków {{value|""}}.
* {{PropertyData|Origin|Link}}: the [[App_Origin|App Origin]] object that is the positional reference for all elements listed in {{PropertyData|Group}}.
* {{PropertyData|LicencjaURL|String}}: pole do podania adresu strony internetowej z licencją lub umową dla tego obiektu. Domyślnie jest to pusty łańcuch znaków {{value|""}}.
* {{PropertyData|Kolor|Color}}: tupla czterech zmiennoprzecinkowych wartości RGBA {{value|(r,g,b,a)}} do określenia koloru obiektu. Domyślnie jest to {{value|(1.0, 1.0, 1.0, 1.0)}}, która jest wyświetlana jako {{value|[255,255,255]}} w bazie 255, <span style="background-color:#fff; color:#000; ramka: 1px solid #888888; width:3em; height:12pt; padding: 2px 1em 2px;">white color</span>.
* {{PropertyData|_ Group Touched|Bool}}: whether the group is touched or not.
* {{PropertyData|Umieszczenie|Placement}}: ustawienie obiektu w oknie [[3D view|widoku 3D]]. Umieszczenie jest określone przez punkt ''(wektor)'' {{incode|Baza}} i {{incode|Obrót}} ''(oś i kąt)''. Patrz: [[Placement|Umiejscowienie]].
** {{PropertyData|Kąt}}: kąt obrotu wokół {{PropertyData|Osi}}. Domyślnie jest to {{value|0°}} ''(zero stopni)''.
** {{PropertyData|Oś}}: wektor jednostkowy, który określa oś obrotu dla położenia. Każdy komponent jest wartością zmiennoprzecinkową pomiędzy {{value|0}} a {{value|1}}. Jeśli jakaś wartość znajduje się powyżej {{value|1}}, wektor jest normalizowany tak, że jego wielkość wynosi {{value|1}}. Domyślnie ustawiono dodatnią oś Z, {{value|(0, 0, 1)}}.
** {{PropertyData|Pozycja}}: wektor ze współrzędnymi przestrzennymi punktu bazowego. Domyślnie, jest to punkt startowy {{value|(0, 0, 0)}}.
* {{PropertyData|Etykieta|String}}: edytowalna przez użytkownika nazwa obiektu, jest to dowolny ciąg znaków w standardzie UTF8.
* {{PropertyData|Etykieta2|String|Ukryte}}: dłuższy, edytowalny przez użytkownika opis tego obiektu, jest to dowolny ciąg znaków UTF8, który może zawierać znaki nowej linii. Domyślnie jest to pusty łańcuch {{value|""}}.
* {{PropertyData|Silnik wyrażeń|ExpressionEngine|Ukryte}}: lista wyrażeń. Domyślnie jest ona pusta {{value|[]}}.
* {{PropertyData|Widoczność|Bool|Ukryte}}: określa, czy obiekt ma być wyświetlany, czy nie.
* {{PropertyData|Odniesienie położenia|Link|Ukryte}}: obiekt [[App_OriginGroupExtension/pl|App: Odniesienie położenia]], który jest pozycyjnym odniesieniem dla wszystkich elementów wymienionych w {{PropertyData|Grupie}}.
* {{PropertyData|Grupa|LinkList}}: lista obiektów, których dotyczą odniesienia. Domyślnie jest pusta {{value|[]}}.
* {{PropertyData|_ Group Touched|Bool|Ukryte}}: określa czy grupa jest poddana edycji, czy nie.


<span id="View"></span>
===Widok===
===Widok===


{{TitleProperty|Opcje wyświetlania}}
App: Część ma tylko pięć podstawowych właściwości [[App_FeaturePython|App: FeaturePython]], i nie ma właściwości ukrytych.


* {{PropertyView|Tryb wyświetlania|Enumeration}}: {{value|Grupa}}.
{{TitleProperty|Podstawowe}}
* {{PropertyView|Wyświetl w drzewie|Bool}}: jeśli ma wartość {{TRUE/pl}}, obiekt pojawia się w widoku [[Tree_view/pl|Widok drzewa]]. W przeciwnym razie jest on niewidoczny..
* {{PropertyView|Widoczność|Bool}}: jeśli ma wartość {{TRUE/pl}}, obiekt pojawia się w oknie [[3D_view/pl|widoku 3D]]. W przeciwnym razie jest niewidoczny. Domyślnie właściwość ta może być włączana i wyłączana przez naciśnięcie klawisza {{KEY|Spacja}} na klawiaturze.


{{TitleProperty|Wybieranie}}
* {{PropertyView|Display Mode|Enumeration}}: {{value|Group}}.
* {{PropertyView|On Top When Selected|Enumeration}}: {{value|Disabled}} (default), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
* {{PropertyView|Selection Style|Enumeration}}: {{value|Shape}} (default), {{value|BoundBox}}. If the option is {{value|Shape}}, the entire shape (vertices, edges, and faces) will be highlighted in the [[3D view|3D view]]; if it is {{value|BoundBox}} only the bounding box will be highlighted.
* {{PropertyView|Show In Tree|Bool}}: if it is {{TRUE}}, the object appears in the [[tree view|tree view]]. Otherwise, it is set as invisible.
* {{PropertyView|Visibility|Bool}}: if it is {{TRUE}}, the object appears in the [[3D view|3D view]]; otherwise it is invisible. By default this property can be toggled on and off by pressing the {{KEY|Space}} bar in the keyboard.


* {{PropertyView|Na wierzchu po wybraniu|Enumeration}}: {{value|Wyłączone}} ''(domyślnie)'', {{value|Wyłączone}}, {{value|Objekt}}, {{value|Element}}.
==Koncepcja złożeń==
* {{PropertyView|Styl wyboru|Enumeration}}: {{value|Kształt}} ''(domyślnie)'', {{value|BoundBox}}. Jeśli opcja ma wartość {{value|Kształt}}, cały kształt ''(wierzchołki, krawędzie i ściany)'' zostanie podświetlony w oknie [[3D_view/pl|widoku 3D]]. Jeśli wartość to {{value|Ramka otaczająca}}, podświetlone zostanie tylko pole ograniczające.

Std: Część ma być podstawowym elementem konstrukcyjnym do tworzenia złożeń. W przeciwieństwie do [[PartDesign_Body/pl|PartDesign: Zawartość]], zespół ma być zbiorem oddzielnych, rozróżnialnych elementów, które są w jakiś sposób połączone w świecie fizycznym, na przykład za pomocą nacisku, śrub lub kleju.

Przykłady, które mogą być częściami:
* Drewniany stół, który składa się z pojedynczych drewnianych przedmiotów ''(nóg, blatu)'', które są łączone za pomocą kleju lub metalowych wkrętów.
* Łożysko kulkowe, które składa się z wielu stalowych kulek, pierścienia wewnętrznego, koszyka, uszczelki i pierścienia zewnętrznego.
* Zespół śruby z podkładką i odpowiednią nakrętką.

[[File:PartDesign_Body_contiguous_separate.png|x200px]] [[File:PartDesign_Body_contiguous_assembly.png|x200px]]
{{Caption|Left: three individual contiguous solids, each of them modelled by a [[PartDesign_Body|PartDesign Body]]. Right: the individual Bodies put together inside a Std Part to create an assembly.}}

In general terms, when importing a STEP file into the program, the main assembly and its sub-assemblies will be imported as Part containers, each of them containing a simple [[Part_Feature|Part Feature]].


<span id="Detailed_explanation"></span>
==Szczegółowe wyjaśnienia==
==Szczegółowe wyjaśnienia==


<span id="Active_status"></span>
===Status aktywności===
===Status aktywności===


Otwarty dokument może zawierać wiele części. Aktywna Część zostanie wyświetlona w [[tree view|widok drzewa]] przy zastosowaniu koloru tła określonego w [[Preferences_Editor#Colors|edytorze preferencji]] przez wartość {{MenuCommand|Aktywny kontener}} ''(domyślnie, jasnoniebieski)''. Etykieta aktywnej części zostanie również wyświetlona pogrubionym tekstem.
Otwarty dokument może zawierać wiele części. Ale tylko jedna Część może być aktywna. Aktywna Część zostanie wyświetlona w [[Tree_view/pl|widoku drzewa]] przy zastosowaniu koloru tła określonego w [[Preferences_Editor/pl#Kolory|edytorze preferencji]] przez wartość {{MenuCommand|Aktywny kontener}} ''(domyślnie, jasnoniebieski)''. Etykieta aktywnej części zostanie również wyświetlona pogrubionym tekstem.


Aby uaktywnić lub dezaktywować Część:
Aby uaktywnić lub dezaktywować Część:
* Kliknij dwukrotnie na jej pozycję w [[tree_view/pl|widoku drzewa]], lub
* Kliknij dwukrotnie na jej pozycję w [[Tree_view/pl|widoku drzewa]], lub
* Otwórz menu kontekstowe ''(klikając prawym przyciskiem myszy)'' i wybierz {{MenuCommand|Przełącz aktywność części}}.
* Otwórz menu kontekstowe ''(klikając prawym przyciskiem myszy)'' i wybierz {{MenuCommand|Przełącz aktywność części}}.

{{Emphasis|Uwagi:}}
* {{emphasis|Aktywny status}} Części opracowano w v0.17 równolegle z {{emphasis|aktywnym statusem}} [[PartDesign_Body|PartDesign: Zawartość]], jednakże od v0.19 status ten nie ma rzeczywistego przeznaczenia dla Części.
* Nawet gdy część jest aktywna, nowo wytworzone obiekty nie są automatycznie umieszczane w jej wnętrzu. W tym przypadku, po prostu przeciągnij wybrane nowe obiekty i upuść je do żądanej Części.
* W danym momencie może być aktywna tylko pojedyncza Część.


[[File:Std_Part_active.png]]
[[File:Std_Part_active.png]]
Line 131: Line 113:
{{Caption|Dokument z dwiema Częściami Std, wśród których aktywna jest druga część.}}
{{Caption|Dokument z dwiema Częściami Std, wśród których aktywna jest druga część.}}


===Origin===
<span id="Origin"></span>
===Odniesienie położenia===


Początek układu współrzędnych składa się z trzech standardowych osi ''(X, Y, Z)'' oraz trzech standardowych płaszczyzn ''(XY, XZ i YZ)''. [[Sketch/pl|Szkic]] i inne obiekty mogą być dołączone do tych elementów w trakcie ich tworzenia.
Początek układu współrzędnych składa się z trzech standardowych osi ''(X, Y, Z)'' oraz trzech standardowych płaszczyzn ''(XY, XZ i YZ)''. [[Sketch/pl|Szkic]] i inne obiekty mogą być dołączone do tych elementów w trakcie ich tworzenia.
Line 137: Line 120:
[[File:Part_Origin_tree.png]] [[File:Part_Origin_view.png]]
[[File:Part_Origin_tree.png]] [[File:Part_Origin_view.png]]


{{Caption|Z lewej: Początek układu współrzędnych Części w [[tree view/pl|widoku drzewa]]. <br>Z prawej: reprezentacja początku układu współrzędnych w oknie [[3D view/pl|widoku 3D]].}}
{{Caption|Z lewej: Początek układu współrzędnych Części w [[Tree_view/pl|widoku drzewa]]. <br>Z prawej: reprezentacja początku układu współrzędnych w oknie [[3D_view/pl|widoku 3D]].}}




{{Emphasis|Uwaga:}} Początek układu współrzędnych jest obiektem [[App_Origin|App Origin]] ''(klasa {{incode|App::Origin}})'', podczas gdy osie i płaszczyzny są obiektami odpowiednio typu {{incode|App::Line}} oraz {{incode|App::Plane}}. Każdy z tych elementów może być ukryty i nieujawniany indywidualnie przy użyciu klawisza {{KEY|spacja}}. Jest to przydatne przy tworzeniu innych obiektów, aby wybrać właściwe odniesienie.
{{Emphasis|Uwaga:}} Początek układu współrzędnych jest obiektem [[App_OriginGroupExtension|App: Odniesienie położenia]] ''(klasa {{incode|App::Origin}})'', podczas gdy osie i płaszczyzny są obiektami odpowiednio typu {{incode|App::Line}} oraz {{incode|App::Plane}}. Każdy z tych elementów może być ukryty i nieujawniany indywidualnie przy użyciu klawisza {{KEY|spacja}}. Jest to przydatne przy tworzeniu innych obiektów, aby wybrać właściwe odniesienie.


{{Emphasis|Uwaga 2:}} Wszystkie elementy składowe Części są powiązane z jej początkiem, co oznacza, że Część może być przesuwana i obracana w odniesieniu do globalnego układu współrzędnych, bez wpływu na rozmieszczenie jej elementów składowych.
{{Emphasis|Uwaga 2:}} Wszystkie elementy składowe Części są powiązane z jej początkiem, co oznacza, że Część może być przesuwana i obracana w odniesieniu do globalnego układu współrzędnych, bez wpływu na rozmieszczenie jej elementów składowych.


<span id="Visibility_Management"></span>
===Zarządzanie wyświetlaniem===
===Zarządzanie wyświetlaniem===


Parametr wyświetlania Części ma pierwszeństwo określania wyświetlania dowolnego obiektu, który zawiera. Jeśli wyświetlanie Części zostanie ukryte, to obiekty, które zawiera będą również ukryte, nawet jeśli ich indywidualna właściwość {{PropertyView|Widoczność}} jest ustawiona na {{TRUE}}. Jeśli Część jest widoczna, to właściwość każdego obiektu {{PropertyView|Widoczność}} określa, czy obiekt jest prezentowany na ekranie okna [[3D_view|widoku 3D]] czy nie.
Parametr wyświetlania Części ma pierwszeństwo określania wyświetlania dowolnego obiektu, który zawiera. Jeśli wyświetlanie Części zostanie ukryte, to obiekty, które zawiera będą również ukryte, nawet jeśli ich indywidualna właściwość {{PropertyView/pl|Widoczność}} jest ustawiona na {{TRUE}}. Jeśli Część jest widoczna, to właściwość każdego obiektu {{PropertyView|Widoczność}} określa, czy obiekt jest prezentowany na ekranie okna [[3D_view/pl|widoku 3D]] czy nie.


[[File:Part_Visibility_off.png]] [[File:Part_Visibility_on.png]]
[[File:Part_Visibility_off.png]] [[File:Part_Visibility_on.png]]
{{Caption|Parametr widoczności Std Części określa, czy zgrupowane pod nią obiekty są prezentowane w oknie [[3D_view|widoku 3D]], czy też nie. <br>Po lewej: Część została ukryta, więc żaden z obiektów nie będzie widoczny w oknie [[3D_view|widoku 3D]]. <br>Po prawej: Część jest widoczna, więc każdy obiekt kontroluje indywidualnie swoje właściwości w zakresie wyświetlania.}}
{{Caption|Parametr widoczności Std Części określa, czy zgrupowane pod nią obiekty są prezentowane w oknie [[3D_view/pl|widoku 3D]], czy też nie. <br>Po lewej: Część została ukryta, więc żaden z obiektów nie będzie widoczny w oknie [[3D_view/pl|widoku 3D]]. <br>Po prawej: Część jest widoczna, więc każdy obiekt kontroluje indywidualnie swoje właściwości w zakresie wyświetlania.}}


<span id="Scripting"></span>
===Dziedziczenie===
==Tworzenie skryptów==


{{Emphasis|Zobacz również:}} [[FreeCAD_Scripting_Basics/pl|Podstawy tworzenia skryptów FreeCAD]], oraz [[Scripted_objects/pl|Obiekty tworzone skryptami]].
Obiekt [[Std_Part/pl|Std: Część]] jest formalnie instancją klasy {{incode|App::Part}}, której rodzicem jest podstawowa klasa [[App_GeoFeature|App GeoFeature]] ''({{incode|App::GeoFeature}})'', i jest wzbogacona o rozszerzenie Origin.

[[File:FreeCAD_core_objects.svg|800px]]

{{Caption|Uproszczony schemat relacji między głównymi obiektami w programie. Klasa {{incode|App::Part}} jest prostym kontenerem, który ma swoją pozycję w przestrzeni 3D i posiada zdefiniowany punkt początku w układzie współrzędnych ''(Origin)'', kontrolujący położenie zgrupowanych pod nim obiektów.}}

==Tworzenie skryptów==


Ogólne informacje na temat dodawania obiektów do dokumentu można znaleźć na stronie [[Part_Feature/pl|Część: właściwość]].
{{Emphasis|Zobacz również:}} [[FreeCAD Scripting Basics|Podstawy tworzenia skryptów FreeCAD]], oraz [[Scripted objects|Obiekty skryptowe]].


Element Std: Part ([[App_Part|App Part]]) jest tworzony przy pomocy metody {{incode|addObject()}} dokumentu. Gdy istnieje element Part, inne obiekty mogą być do niego dodane za pomocą metod {{incode|addObject()}} lub {{incode|addObjects()}} tej Części.
Ogólne informacje na temat dodawania obiektów do dokumentu można znaleźć w [[Part_Feature|Part: właściwość]].


Element Std: Part ([[App_Part|App Part]]) jest tworzony przy pomocy metody {{incode|addObject()}} dokumentu. Gdy istnieje element Part, inne obiekty mogą być do niego dodane za pomocą metod {{incode|addObject()}} lub {{incode|addObjects()}}.
{{Code|code=
{{Code|code=
import FreeCAD as App
import FreeCAD as App


doc = App.newDocument()
doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::Part", "Part")
part = App.ActiveDocument.addObject("App::Part", "Part")


bod1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
bod2 = App.ActiveDocument.addObject("Part::Box", "Box")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")


obj.addObjects([bod1, bod2])
part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()
App.ActiveDocument.recompute()
}}
}}


Nie można utworzyć skryptu {{incode|App::Part}}. Można jednak dodać zachowanie {{incode|App::Part}} do obiektu skryptowego {{incode|Part::FeaturePython}} za pomocą następującego kodu:
Element Part jest kontenerem dla innych obiektów, więc nie ma własnego [[Shape|Kształtu]] ''([[Part_TopoShape|Part TopoShape]])''. Jednak w wyrażeniach lub w Środowisku [[Spreadsheet_Workbench/pl|arkusza kalkulacyjnego]] przydatne jest uzyskanie złożonego kształtu wszystkich obiektów znajdujących się wewnątrz Part. Można to osiągnąć za pomocą pseudo-kształtu {{incode|_shape}}, który może być następnie użyty do wyodrębnienia innych atrybutów.

{{Code|code=
{{Code|code=
class MyGroup(object):
=Part._shape.Edges[0].Length
def __init__(self, obj=None):
self.Object = obj
if obj:
self.attach(obj)

def dumps(self):
return

def loads(self, _state):
return

def attach(self, obj):
obj.addExtension("App::OriginGroupExtensionPython")
obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")

def onDocumentRestored(self, obj):
self.Object = obj

class ViewProviderMyGroup(object):
def __init__(self, vobj=None):
if vobj:
vobj.Proxy = self
self.attach(vobj)
else:
self.ViewObject = None

def attach(self, vobj):
vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
self.ViewObject = vobj

def dumps(self):
return None

def loads(self, _state):
return None

App.ActiveDocument.addObject("Part::FeaturePython",
"Group",
group.MyGroup(),
group.ViewProviderMyGroup(),
True)
}}
}}



{{Docnav/pl
{{Docnav/pl
|
|
|[[Std Group|Grupa]]
|[[Std_Group/pl|Grupa]]
|[[Std_Base/pl|Narzędzia standardowe]]
|[[PartDesign_Workbench/pl|Środowisko pracy Part Design]]
|IconL=
|IconL=
|IconR=Std_Group.svg
|IconC=Workbench_PartDesign.svg
|IconR=Group.svg
|IconC=Freecad.svg
}}
}}


{{Std_Base_navi{{#translation:}}}}

<!--T:19-->
{{Std Base navi{{#translation:}}}}
{{PartDesign Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 09:01, 27 January 2024

Std: Część

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

Opis

Std: Część (wewnętrznie nazywany App: Część) jest to uniwersalny kontener, który gromadzi wspólnie grupę obiektów, dzięki czemu można je przesuwać razem jako całość w oknie widoku 3D.

Element Std: Część został opracowany jako podstawowy element konstrukcyjny do tworzenia zespołów mechanicznych. W szczególności, ma on za zadanie uporządkować obiekty, które mają kształt części TopoShape, jak Część: Bryły pierwotne, Projekt Części: Zawartość i inne cechy Części. Std: Część dostarcza obiekt Odniesienie położenia z lokalnymi osiami X, Y i Z oraz płaszczyznami standardowymi, które mogą być używane jako odniesienie do położenia obiektów zamkniętych. Ponadto obiekty Std: Część mogą być zagnieżdżone wewnątrz innych obiektów Std: Część w celu utworzenia dużego zespołu z mniejszych podzespołów.

Chociaż jest on przeznaczony głównie dla brył, Std: Część może być użyty do zarządzania dowolnym obiektem, który posiada właściwość Umiejscowienie, więc może również zawierać cechy siatki, szkice i inne obiekty pochodzące z klas App: GeoFeature.

Nie należy mylić elementu Projekt Części: Zawartość z częścią Std: Część. Pierwszym z nich jest określony obiekt używany w środowisku pracy Projekt Części, przeznaczony do modelowania pojedynczej, ciągłej bryły za pomocą funkcji właściwości. Z drugiej strony Std: Część nie jest używana do modelowania, a jedynie do rozmieszczania różnych obiektów w przestrzeni z zamiarem tworzenia złożeń.

Narzędzie Std: Część nie jest zdefiniowane przez konkretne środowisko pracy, lecz przez system bazowy, a więc znajduje się na pasku narzędzi konstrukcja, który jest dostępny we wszystkich środowiskach pracy. Aby dowolnie grupować obiekty bez względu na ich położenie, należy użyć funkcji Std: Grupa. Obiekt ten nie ma wpływu na rozmieszczenie elementów, które zawiera, w zasadzie jest to tylko folder, który jest używany do utrzymania widoku drzewa w sposób zorganizowany.

Z lewej: elementy wewnątrz obiektu Std: Część w widoku drzewa.
Z prawej: obiekty umieszczone w przestrzeni, odnoszące się do odniesienia położenia Std: Części.

Użycie

  1. Naciśnij przycisk Utwórz Część.
  2. Zostanie utworzona pusta część, która automatycznie stanie się aktywna.
  3. Aby dodać obiekty do nowo utworzonej pozycji Części, zaznacz ją w widoku drzewa, a następnie przeciągnij je i upuść nad Częścią.
  4. Aby usunąć obiekty z części, przeciągnij je poza część, na etykietę dokumentu u góry widoku drzewa.
  5. Obiekty można także dodawać i usuwać, edytując właściwość DANEGrupa części.

Uwagi

  • Dany obiekt może należeć tylko do jednej pozycji Części.
  • Operacje 3D, takie jak operacje logiczne środowiska Część, nie mogą być stosowane do części. Na przykład nie można wybrać dwóch części i wykonać operacji Scalenie lub Cięcie.

Właściwości

Std: Część jest wewnętrznie nazywana App: Part (klasa App::Part), i pochodzi z App: GeoFeature (klasa App::GeoFeature), ioraz dziedziczy wszystkie jego właściwości. Posiada również kilka dodatkowych właściwości. W szczególności właściwości, które pomagają zarządzać informacjami w kontekście złożenia, na przykład DANETyp, DANEId, DANELicencja, DANELicencjaURL i DANEGrupa.

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 kontekstowym edytora właściwości.

Dane

Podstawa

  • DANETyp (String): opis dla obiektu. Domyślnie jest to pusty łańcuch znaków "".
  • DANEMateriał (Link): materiał wybrany dla tego obiektu.
  • DANE (Ukryte)Meta (Map): wprowadza dodatkowe informacje meta. Domyślnie jest ona pusta. {}.
  • DANEId (String): numer identyfikacyjny lub numer części dla obiektu. Domyślnie jest to pusty łańcuch znaków "".
  • DANE (Hidden)Uid (UUID): uniwersalny, niepowtarzalny identyfikator (UUID) (liczba 128-bitowa) obiektu. Jest on nadawany w czasie tworzenia.
  • DANELicencja (String): pole do określenia licencji dla obiektu. Domyślnie jest to pusty łańcuch znaków "".
  • DANELicencjaURL (String): pole do podania adresu strony internetowej z licencją lub umową dla tego obiektu. Domyślnie jest to pusty łańcuch znaków "".
  • DANEKolor (Color): tupla czterech zmiennoprzecinkowych wartości RGBA (r,g,b,a) do określenia koloru obiektu. Domyślnie jest to (1.0, 1.0, 1.0, 1.0), która jest wyświetlana jako [255,255,255] w bazie 255, white color.
  • DANEUmieszczenie (Placement): ustawienie obiektu w oknie widoku 3D. Umieszczenie jest określone przez punkt (wektor) Baza i Obrót (oś i kąt). Patrz: Umiejscowienie.
    • DANEKąt: kąt obrotu wokół DANEOsi. Domyślnie jest to (zero stopni).
    • DANE: wektor jednostkowy, który określa oś obrotu dla położenia. Każdy komponent jest wartością zmiennoprzecinkową pomiędzy 0 a 1. Jeśli jakaś wartość znajduje się powyżej 1, wektor jest normalizowany tak, że jego wielkość wynosi 1. Domyślnie ustawiono dodatnią oś Z, (0, 0, 1).
    • DANEPozycja: wektor ze współrzędnymi przestrzennymi punktu bazowego. Domyślnie, jest to punkt startowy (0, 0, 0).
  • DANEEtykieta (String): edytowalna przez użytkownika nazwa obiektu, jest to dowolny ciąg znaków w standardzie UTF8.
  • DANE (Ukryte)Etykieta2 (String): dłuższy, edytowalny przez użytkownika opis tego obiektu, jest to dowolny ciąg znaków UTF8, który może zawierać znaki nowej linii. Domyślnie jest to pusty łańcuch "".
  • DANE (Ukryte)Silnik wyrażeń (ExpressionEngine): lista wyrażeń. Domyślnie jest ona pusta [].
  • DANE (Ukryte)Widoczność (Bool): określa, czy obiekt ma być wyświetlany, czy nie.
  • DANE (Ukryte)Odniesienie położenia (Link): obiekt App: Odniesienie położenia, który jest pozycyjnym odniesieniem dla wszystkich elementów wymienionych w DANEGrupie.
  • DANEGrupa (LinkList): lista obiektów, których dotyczą odniesienia. Domyślnie jest pusta [].
  • DANE (Ukryte)_ Group Touched (Bool): określa czy grupa jest poddana edycji, czy nie.

Widok

Opcje wyświetlania

  • WIDOKTryb wyświetlania (Enumeration): Grupa.
  • WIDOKWyświetl w drzewie (Bool): jeśli ma wartość PRAWDA, obiekt pojawia się w widoku Widok drzewa. W przeciwnym razie jest on niewidoczny..
  • WIDOKWidoczność (Bool): jeśli ma wartość PRAWDA, obiekt pojawia się w oknie widoku 3D. W przeciwnym razie jest niewidoczny. Domyślnie właściwość ta może być włączana i wyłączana przez naciśnięcie klawisza Spacja na klawiaturze.

Wybieranie

  • WIDOKNa wierzchu po wybraniu (Enumeration): Wyłączone (domyślnie), Wyłączone, Objekt, Element.
  • WIDOKStyl wyboru (Enumeration): Kształt (domyślnie), BoundBox. Jeśli opcja ma wartość Kształt, cały kształt (wierzchołki, krawędzie i ściany) zostanie podświetlony w oknie widoku 3D. Jeśli wartość to Ramka otaczająca, podświetlone zostanie tylko pole ograniczające.

Szczegółowe wyjaśnienia

Status aktywności

Otwarty dokument może zawierać wiele części. Ale tylko jedna Część może być aktywna. Aktywna Część zostanie wyświetlona w widoku drzewa przy zastosowaniu koloru tła określonego w edytorze preferencji przez wartość Aktywny kontener (domyślnie, jasnoniebieski). Etykieta aktywnej części zostanie również wyświetlona pogrubionym tekstem.

Aby uaktywnić lub dezaktywować Część:

  • Kliknij dwukrotnie na jej pozycję w widoku drzewa, lub
  • Otwórz menu kontekstowe (klikając prawym przyciskiem myszy) i wybierz Przełącz aktywność części.

Dokument z dwiema Częściami Std, wśród których aktywna jest druga część.

Odniesienie położenia

Początek układu współrzędnych składa się z trzech standardowych osi (X, Y, Z) oraz trzech standardowych płaszczyzn (XY, XZ i YZ). Szkic i inne obiekty mogą być dołączone do tych elementów w trakcie ich tworzenia.

Z lewej: Początek układu współrzędnych Części w widoku drzewa.
Z prawej: reprezentacja początku układu współrzędnych w oknie widoku 3D.


Uwaga: Początek układu współrzędnych jest obiektem App: Odniesienie położenia (klasa App::Origin), podczas gdy osie i płaszczyzny są obiektami odpowiednio typu App::Line oraz App::Plane. Każdy z tych elementów może być ukryty i nieujawniany indywidualnie przy użyciu klawisza spacja. Jest to przydatne przy tworzeniu innych obiektów, aby wybrać właściwe odniesienie.

Uwaga 2: Wszystkie elementy składowe Części są powiązane z jej początkiem, co oznacza, że Część może być przesuwana i obracana w odniesieniu do globalnego układu współrzędnych, bez wpływu na rozmieszczenie jej elementów składowych.

Zarządzanie wyświetlaniem

Parametr wyświetlania Części ma pierwszeństwo określania wyświetlania dowolnego obiektu, który zawiera. Jeśli wyświetlanie Części zostanie ukryte, to obiekty, które zawiera będą również ukryte, nawet jeśli ich indywidualna właściwość WIDOKWidoczność jest ustawiona na true. Jeśli Część jest widoczna, to właściwość każdego obiektu WIDOKWidoczność określa, czy obiekt jest prezentowany na ekranie okna widoku 3D czy nie.

Parametr widoczności Std Części określa, czy zgrupowane pod nią obiekty są prezentowane w oknie widoku 3D, czy też nie.
Po lewej: Część została ukryta, więc żaden z obiektów nie będzie widoczny w oknie widoku 3D.
Po prawej: Część jest widoczna, więc każdy obiekt kontroluje indywidualnie swoje właściwości w zakresie wyświetlania.

Tworzenie skryptów

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

Ogólne informacje na temat dodawania obiektów do dokumentu można znaleźć na stronie Część: właściwość.

Element Std: Part (App Part) jest tworzony przy pomocy metody addObject() dokumentu. Gdy istnieje element Part, inne obiekty mogą być do niego dodane za pomocą metod addObject() lub addObjects() tej Części.

import FreeCAD as App

doc = App.newDocument()
part = App.ActiveDocument.addObject("App::Part", "Part")

obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")

part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()

Nie można utworzyć skryptu App::Part. Można jednak dodać zachowanie App::Part do obiektu skryptowego Part::FeaturePython za pomocą następującego kodu:

class MyGroup(object):
    def __init__(self, obj=None):
        self.Object = obj
        if obj:
            self.attach(obj)

    def dumps(self):
        return

    def loads(self, _state):
        return

    def attach(self, obj):
        obj.addExtension("App::OriginGroupExtensionPython")
        obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")

    def onDocumentRestored(self, obj):
        self.Object = obj

class ViewProviderMyGroup(object):
    def __init__(self, vobj=None):
        if vobj:
            vobj.Proxy = self
            self.attach(vobj)
        else:
            self.ViewObject = None

    def attach(self, vobj):
        vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
        self.ViewObject = vobj

    def dumps(self):
        return None

    def loads(self, _state):
        return None

App.ActiveDocument.addObject("Part::FeaturePython",
                             "Group",
                             group.MyGroup(),
                             group.ViewProviderMyGroup(),
                             True)