Part BooleanFragments/pl: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav
{{Docnav/pl
|[[Part_CompSplittingTools|CompSplittingTools]]
|[[Part_CompSplittingTools/pl|Komponent Podziel obiekty]]
|[[Part_SliceApart|SliceApart]]
|[[Part_SliceApart/pl|Rozetnij]]
|[[Part_Workbench|Part]]
|[[Part_Workbench/pl|środowisko pracy Część]]
|IconL=Part_CompSplittingTools.png
|IconL=Part_CompSplittingTools.png
|IconR=Part_SliceApart.svg
|IconR=Part_SliceApart.svg
Line 10: Line 10:
}}
}}


{{GuiCommand
{{GuiCommand/pl
|Name=Part BooleanFragments
|Name=Part BooleanFragments
|Name/pl=Część: Fragmentacja funkcją logiczną
|MenuLocation=Part → Split → Boolean Fragments
|MenuLocation=Część → Rozdziel → Fragmentacja funkcją logiczną
|Workbenches=[[Part_Workbench|Part]]
|Workbenches=[[Part_Workbench/pl|Część]]
|Version=0.17
|Version=0.17
|SeeAlso=[[Part_Slice|Part Slice]], [[Part_XOR|Part XOR]], [[Part_CompJoinFeatures|Part Join features]], [[Part_Boolean|Part Boolean]]
|SeeAlso=[[Part_Slice/pl|Krojenie]], [[Part_XOR/pl|Logiczny XOR]], [[Part_CompJoinFeatures/pl|Połącz obiekty]], [[Part_Boolean/pl|Operacje logiczne na bryłach]]
}}
}}


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


Narzędzie do obliczania wszystkich fragmentów, które mogą wynikać z zastosowania operacji logicznych między kształtami wejściowymi. Na przykład dla dwóch przenikających się kul generowane są trzy nienakładające się, ale stykające się bryły.
Tool to compute all fragments that can result from applying Boolean operations between input shapes. For example, for two intersecting spheres, three non-overlapping but touching solids are generated.


[[image:Part_BooleanFragments_Demo.png|600px]]
[[image:Part_BooleanFragments_Demo.png|600px]]


{{Caption|Na powyższym obrazku poszczególne elementy zostały ręcznie rozsunięte, aby uwidocznić cięcie.}}
{{Caption|In the image above, the pieces were moved apart manually afterwards, to reveal the slicing.}}


Kształt wyjściowy jest zawsze złożony. Zawartość złożenia zależy od typu kształtu wejściowego i trybu działania. Oznacza to, że nie masz natychmiastowego dostępu do poszczególnych elementów wyniku - elementy pozostają zgrupowane. Poszczególne elementy można wyodrębnić poprzez rozbicie złożenia funkcją ''([[Draft_Downgrade/pl|Rozbij kształt]])''.
The output shape is always a compound. The content of the compound depends on input shape types and operation mode. That means, you don't immediately get access to individual pieces of the result - the pieces remain grouped together. The individual pieces can be extracted by exploding the compound ([[Draft_Downgrade|Draft Downgrade]]).


The tool has three modes: "Standard", "Split", and "CompSolid".
Narzędzie ma trzy tryby pracy: "Standardowy", "Podziel" i "BryłaZłożona".


'''Standard''' i '''Podziel''' różnią się działaniem narzędzia na linach, powłokach i bryłach. W przypadku opcji "Podziel " są one rozdzielane. W przypadku opcji "Standard" są one utrzymywane razem ''(otrzymują dodatkowe segmenty)''.
"Standard" and "Split" differ by the action of the tool on wires, shells and compsolids. If "Split", those are separated. If "Standard", they are kept together (get extra segments).


Struktura łączenia w trybach "Standard" i "Podziel" jest zgodna ze strukturą łączenia krojonego kształtu. Oznacza to, że jeśli wprowadzisz dwa złożenia, każde zawierające kulę, jak w powyższym przykładzie, wynik będzie również zawierał dwa złożenia, każde zawierające kawałki pierwotnie zawartej kuli. Oznacza to, że wspólny element zostanie powtórzony dwukrotnie w wyniku. Tylko jeśli kule wejściowe nie są częścią złożenia, wynik będzie zawierał wspólny element tylko raz.
Compounding structure in "Standard" and "Split" modes follows the compounding structure of inputs. That is, if you feed in two compounds, each containing a sphere like on example above, the result will also contain two compounds, each containing the pieces of the originally contained sphere. That means, the common piece will be repeated twice in the result. Only if the input spheres are both not in compounds, the result will contain the common piece once.


W trybie "BryłaZłożona" bryły są łączone w bryłę złożoną ''(bryła złożona to zestaw brył połączonych ścianami. Są one powiązane z bryłami tak, jak linie są powiązane z krawędziami, a powłoki są powiązane ze ścianami. Nazwa pochodzi więc od wyrażenia "bryła złożona")''. Wynikiem jest nie zagnieżdżony zbiór brył złożonych
In "CompSolid" mode, the solids are joined into a compsolid (compsolid is a set of solids connected by faces; they are related to solids like wires are related to edges, and shells are related to faces; the name is probably a shortened phrase "composite solid"). The output is a non-nested compound of compsolids


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


# Wybierz obiekty do przecięcia.
# Select objects to be intersected. <br /> The order of selection is not important, since the action of the tool is symmetric. It is enough to select one sub-shape of each object (e.g., faces). You can also select a compound containing all the shapes to be connected, e.g. [[Draft_OrthoArray|Draft OrthoArray]].
<br> Kolejność wyboru nie ma znaczenia, ponieważ działanie narzędzia jest symetryczne. Wystarczy wybrać jeden kształt podrzędny każdego obiektu ''(np. ściany)''. Możesz także wybrać złożenie zawierające wszystkie kształty do połączenia, np. [[Draft_OrthoArray/pl|w Szyku ortogonalnym]].
# Invoke the Part BooleanFragments command several ways:
# Polecenie '''Fragmentacja funkcją logiczną''' można wywołać na kilka sposobów:
#* Pressing the [[Image:Part_BooleanFragments.svg|24px|link=Part_BooleanFragments]] button in the toolbar
#* Naciskając przycisk [[Image:Part_BooleanFragments.svg|24px|link=Part_BooleanFragments/pl]] na pasku narzędzi.
#* Using the {{MenuCommand|Part → Split → Boolean Fragments}} entry in the Part menu
#* Używając pozycji {{MenuCommand|Część → Podziel → Fragmentacja funkcją logiczną}} w menu głównym.


Tworzony jest obiekt parametryczny ```FragmentyLogiczne```. Oryginalne obiekty są ukrywane, a wynik połączenia jest wyświetlany w oknie [[3D_view/pl|widoku 3D]].
A Boolean Fragments parametric object is created. Original objects are hidden, and the result of intersection is shown in [[3D_view|3D view]].


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


{{TitleProperty|Boolean Fragments}}
{{TitleProperty|Fragmenty logiczne}}
* {{PropertyData|Objects}}: List of objects to be intersected. Generally, at least two objects are needed, but a single compound containing the shapes to intersect will do as well. (as of FreeCAD v0.17.8053, this property is not displayed in property editor, and can only be accessed via Python).
* {{PropertyData|Obiekty}}: Lista obiektów do przecięcia. Ogólnie rzecz biorąc, potrzebne co najmniej dwa obiekty, ale pojedyncze złożenie zawierające kształty do przecięcia również się nada. ''(od wersji FreeCAD v0.17.8053 właściwość ta nie jest wyświetlana w edytorze właściwości i można uzyskać do niej dostęp tylko za pośrednictwem środowiska Python)''.
* {{PropertyData|Tryb}}: '''Standartowy''', '''Podziel''' lub '''BryłaZłożona'''. Wartość "Standardowy" jest ustawieniem domyślnym. Standartowy i Podziel różnią się działaniem narzędzia na kształcie typu zbiorczego: jeśli wybrano Podziel, są one rozdzielane. W przeciwnym razie są trzymane razem ''(otrzymują dodatkowe segmenty)''.
* {{PropertyData|Mode}}: "Standard", "Split", or "CompSolid". "Standard" is default. Standard and Split differ by the action of the tool on aggregation type shapes: if Split, those are separated; otherwise they are kept together (get extra segments).
* {{PropertyData|Tolerancja}}: wartość '''Rozmyj'''. Jest to dodatkowa tolerancja stosowana podczas wyszukiwania przecięć, oprócz tolerancji przechowywanych w kształtach wejściowych.
* {{PropertyData|Tolerance}}: "fuzziness" value. This is an extra tolerance to apply when searching for intersections, in addition to tolerances stored in the input shapes.


<span id="Implementation_details"></span>
==Implementation details==
==Szczegóły realizacji==


Boolean Fragments tool in "Standard mode" is OpenCascade's General Fuse Operator (GFA). It accepts a combination of probably all shape types, and the logic of output is quite convoluted. See [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__boolean_operations.html OpenCascade user guide: Boolean operations].
Narzędzie Boolean Fragments w "trybie standardowym" to Ogólny Operator Scalenia ''('''G'''eneral '''F'''use '''O'''perator GFA)'' OpenCascade. Akceptuje on kombinację prawdopodobnie wszystkich typów kształtów, a logika wyjścia jest dość zawiła. Zobacz [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__boolean_operations.html Podręcznik użytkownika OpenCascade: Operacje logiczne] jeśli ten temat Cię zainteresował.


W trybach "Podziel" i "BryłaZłożona" przeprowadzane jest przez FreeCAD dodatkowe przetwarzanie końcowe.
For "Split" and "CompSolid" modes, extra post-processing is done by FreeCAD.


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


Narzędzie '''Fragmentacja funkcją logiczną''' może być używane w [[macros/pl|makrodefinicjach]] i z konsoli [[Python/pl|Python]] za pomocą następującej funkcji:
The tool can by used in [[Macros|macros]] and from the [[Python|python]] console by using the following function:
'''BOPTools.SplitFeatures.makeBooleanFragments(name)'''
'''BOPTools.SplitFeatures.makeBooleanFragments(name)'''


* Tworzy pustą cechę Fragmentacja funkcją logiczną. Właściwość "Obiekty" musi zostać przypisana jawnie, a następnie.
* Creates an empty BooleanFragments feature. The 'Objects' property must be assigned explicitly, afterwards.
* Zwraca nowo utworzony obiekt.
* Returns the newly created object.


Funkcja Fragmentacja funkcją logiczną może być również stosowana do zwykłych kształtów, bez konieczności posiadania obiektu dokumentu:
BooleanFragments can also be applied to plain shapes, without the need to have a document object, via:


{{code|code=
{{code|code=
Line 78: Line 85:
# pieces receives a compound of shapes; map receives a list of lists of shapes, defining list_of_shapes <--> pieces correspondence
# pieces receives a compound of shapes; map receives a list of lists of shapes, defining list_of_shapes <--> pieces correspondence
}}
}}
Może to być przydatne do tworzenia niestandardowych funkcji skryptowych Python.
This can be useful for making custom Python scripted features.


Przykład:
Example:
{{code|code=
{{code|code=
import BOPTools.SplitFeatures
import BOPTools.SplitFeatures
Line 87: Line 94:
}}
}}


The tool itself is implemented in Python, see /Mod/Part/BOPTools/SplitFeatures.py under where FreeCAD is installed.
Samo narzędzie jest zaimplementowane w środowisku Python, patrz /Mod/Part/BOPTools/SplitFeatures.py w miejscu instalacji FreeCAD.


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


The tool was introduced in FreeCAD v0.17.8053. FreeCAD needs to be compiled with OCC 6.9.0 or later; otherwise, the tool is unavailable.
Narzędzie zostało wprowadzone w wersji FreeCAD v0.17.8053. FreeCAD musi być skompilowany z OCC '''6.9.0''' lub nowszym. W przeciwnym razie narzędzie jest niedostępne.




{{Docnav
{{Docnav/pl
|[[Part_CompSplittingTools|CompSplittingTools]]
|[[Part_CompSplittingTools/pl|Komponent Podziel obiekty]]
|[[Part_SliceApart|SliceApart]]
|[[Part_SliceApart/pl|Rozetnij]]
|[[Part_Workbench|Part]]
|[[Part_Workbench/pl|środowisko pracy Część]]
|IconL=Part_CompSplittingTools.png
|IconL=Part_CompSplittingTools.png
|IconR=Part_SliceApart.svg
|IconR=Part_SliceApart.svg

Latest revision as of 15:56, 6 July 2023

Część: Fragmentacja funkcją logiczną

Lokalizacja w menu
Część → Rozdziel → Fragmentacja funkcją logiczną
Środowisko pracy
Część
Domyślny skrót
brak
Wprowadzono w wersji
0.17
Zobacz także
Krojenie, Logiczny XOR, Połącz obiekty, Operacje logiczne na bryłach

Opis

Narzędzie do obliczania wszystkich fragmentów, które mogą wynikać z zastosowania operacji logicznych między kształtami wejściowymi. Na przykład dla dwóch przenikających się kul generowane są trzy nienakładające się, ale stykające się bryły.

Na powyższym obrazku poszczególne elementy zostały ręcznie rozsunięte, aby uwidocznić cięcie.

Kształt wyjściowy jest zawsze złożony. Zawartość złożenia zależy od typu kształtu wejściowego i trybu działania. Oznacza to, że nie masz natychmiastowego dostępu do poszczególnych elementów wyniku - elementy pozostają zgrupowane. Poszczególne elementy można wyodrębnić poprzez rozbicie złożenia funkcją (Rozbij kształt).

Narzędzie ma trzy tryby pracy: "Standardowy", "Podziel" i "BryłaZłożona".

Standard i Podziel różnią się działaniem narzędzia na linach, powłokach i bryłach. W przypadku opcji "Podziel " są one rozdzielane. W przypadku opcji "Standard" są one utrzymywane razem (otrzymują dodatkowe segmenty).

Struktura łączenia w trybach "Standard" i "Podziel" jest zgodna ze strukturą łączenia krojonego kształtu. Oznacza to, że jeśli wprowadzisz dwa złożenia, każde zawierające kulę, jak w powyższym przykładzie, wynik będzie również zawierał dwa złożenia, każde zawierające kawałki pierwotnie zawartej kuli. Oznacza to, że wspólny element zostanie powtórzony dwukrotnie w wyniku. Tylko jeśli kule wejściowe nie są częścią złożenia, wynik będzie zawierał wspólny element tylko raz.

W trybie "BryłaZłożona" bryły są łączone w bryłę złożoną (bryła złożona to zestaw brył połączonych ścianami. Są one powiązane z bryłami tak, jak linie są powiązane z krawędziami, a powłoki są powiązane ze ścianami. Nazwa pochodzi więc od wyrażenia "bryła złożona"). Wynikiem jest nie zagnieżdżony zbiór brył złożonych

Użycie

  1. Wybierz obiekty do przecięcia.


Kolejność wyboru nie ma znaczenia, ponieważ działanie narzędzia jest symetryczne. Wystarczy wybrać jeden kształt podrzędny każdego obiektu (np. ściany). Możesz także wybrać złożenie zawierające wszystkie kształty do połączenia, np. w Szyku ortogonalnym.

  1. Polecenie Fragmentacja funkcją logiczną można wywołać na kilka sposobów:
    • Naciskając przycisk na pasku narzędzi.
    • Używając pozycji Część → Podziel → Fragmentacja funkcją logiczną w menu głównym.

Tworzony jest obiekt parametryczny ```FragmentyLogiczne```. Oryginalne obiekty są ukrywane, a wynik połączenia jest wyświetlany w oknie widoku 3D.

Właściwości

Fragmenty logiczne

  • DANEObiekty: Lista obiektów do przecięcia. Ogólnie rzecz biorąc, potrzebne są co najmniej dwa obiekty, ale pojedyncze złożenie zawierające kształty do przecięcia również się nada. (od wersji FreeCAD v0.17.8053 właściwość ta nie jest wyświetlana w edytorze właściwości i można uzyskać do niej dostęp tylko za pośrednictwem środowiska Python).
  • DANETryb: Standartowy, Podziel lub BryłaZłożona. Wartość "Standardowy" jest ustawieniem domyślnym. Standartowy i Podziel różnią się działaniem narzędzia na kształcie typu zbiorczego: jeśli wybrano Podziel, są one rozdzielane. W przeciwnym razie są trzymane razem (otrzymują dodatkowe segmenty).
  • DANETolerancja: wartość Rozmyj. Jest to dodatkowa tolerancja stosowana podczas wyszukiwania przecięć, oprócz tolerancji przechowywanych w kształtach wejściowych.

Szczegóły realizacji

Narzędzie Boolean Fragments w "trybie standardowym" to Ogólny Operator Scalenia (General Fuse Operator GFA) OpenCascade. Akceptuje on kombinację prawdopodobnie wszystkich typów kształtów, a logika wyjścia jest dość zawiła. Zobacz Podręcznik użytkownika OpenCascade: Operacje logiczne jeśli ten temat Cię zainteresował.

W trybach "Podziel" i "BryłaZłożona" przeprowadzane jest przez FreeCAD dodatkowe przetwarzanie końcowe.

Tworzenie skryptów

Narzędzie Fragmentacja funkcją logiczną może być używane w makrodefinicjach i z konsoli Python za pomocą następującej funkcji:

BOPTools.SplitFeatures.makeBooleanFragments(name)
  • Tworzy pustą cechę Fragmentacja funkcją logiczną. Właściwość "Obiekty" musi zostać przypisana jawnie, a następnie.
  • Zwraca nowo utworzony obiekt.

Funkcja Fragmentacja funkcją logiczną może być również stosowana do zwykłych kształtów, bez konieczności posiadania obiektu dokumentu:

import BOPTools.SplitAPI
BOPTools.SplitAPI.booleanFragments(list_of_shapes, mode, tolerance = 0.0)

# OR, for Standard mode:

list_of_shapes = [App.ActiveDocument.Sphere.Shape, App.ActiveDocument.Sphere001.Shape]
pieces, map = list_of_shapes[0].generalFuse(list_of_shapes[1:], tolerance)
# pieces receives a compound of shapes; map receives a list of lists of shapes, defining list_of_shapes <--> pieces correspondence

Może to być przydatne do tworzenia niestandardowych funkcji skryptowych Python.

Przykład:

import BOPTools.SplitFeatures
j = BOPTools.SplitFeatures.makeBooleanFragments(name= 'BooleanFragments')
j.Objects = FreeCADGui.Selection.getSelection()

Samo narzędzie jest zaimplementowane w środowisku Python, patrz /Mod/Part/BOPTools/SplitFeatures.py w miejscu instalacji FreeCAD.

Uwagi

Narzędzie zostało wprowadzone w wersji FreeCAD v0.17.8053. FreeCAD musi być skompilowany z OCC 6.9.0 lub nowszym. W przeciwnym razie narzędzie jest niedostępne.