Part JoinCutout/pl: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{Docnav |
{{Docnav |
||
|[[Part_JoinEmbed|JoinEmbed]] |
|[[Part_JoinEmbed|JoinEmbed]] |
||
Line 20: | Line 21: | ||
The [[Image:Part_JoinCutout.svg|24px]] [[Part_JoinCutout|Part JoinCutout]] tool creates a cutout in a walled object (e.g., a pipe) to fit another walled object. |
The [[Image:Part_JoinCutout.svg|24px]] [[Part_JoinCutout|Part JoinCutout]] tool creates a cutout in a walled object (e.g., a pipe) to fit another walled object. |
||
[[image:JoinFeatures_Cutout.png|600px]] |
[[image:JoinFeatures_Cutout.png|600px]] |
||
==Usage== |
==Usage== |
||
Line 37: | Line 36: | ||
{{TitleProperty|Base}} |
{{TitleProperty|Base}} |
||
* {{PropertyData|Base}}: Reference to base object (the one to make the cutout in). The object should be a single solid. |
* {{PropertyData|Base}}: Reference to base object (the one to make the cutout in). The object should be a single solid. |
||
* {{PropertyData|Tool}}: Reference to tool object (the object that is to fit into the cutout). The object can be a single solid, or a [[Part_Compound|valid compound]] of solids. |
* {{PropertyData|Tool}}: Reference to tool object (the object that is to fit into the cutout). The object can be a single solid, or a [[Part_Compound|valid compound]] of solids. |
||
Line 68: | Line 68: | ||
The Join tools can by used in [[macros]] and from the python console by using the following function: |
The Join tools can by used in [[macros]] and from the python console by using the following function: |
||
{{Code|code=JoinFeatures.makePartJoinFeature(name = 'Cutout', mode = 'Cutout')}} |
{{Code|code=JoinFeatures.makePartJoinFeature(name = 'Cutout', mode = 'Cutout')}} |
||
* Creates an empty Cutout feature (or other Join feature, depending on mode passed). The properties Base and Tool must be assigned explicitly, afterwards. |
* Creates an empty Cutout feature (or other Join feature, depending on mode passed). The properties Base and Tool must be assigned explicitly, afterwards. |
||
Line 79: | Line 80: | ||
j.Tool = FreeCADGui.Selection.getSelection()[1] |
j.Tool = FreeCADGui.Selection.getSelection()[1] |
||
}} |
}} |
||
The tool itself is implemented in Python, see {{FileName|/Mod/Part/JoinFeatures.py}} ([https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Part/JoinFeatures.py Github link]) under where FreeCAD is installed. |
The tool itself is implemented in Python, see {{FileName|/Mod/Part/JoinFeatures.py}} ([https://github.com/FreeCAD/FreeCAD/blob/master/src/Mod/Part/JoinFeatures.py Github link]) under where FreeCAD is installed. |
||
Line 91: | Line 93: | ||
}} |
}} |
||
{{clear}} |
|||
{{Part Tools navi{{#translation:}}}} |
{{Part Tools navi{{#translation:}}}} |
||
{{Userdocnavi{{#translation:}}}} |
{{Userdocnavi{{#translation:}}}} |
Revision as of 09:50, 12 September 2021
Part JoinCutout |
Menu location |
---|
Part → Join → Cutout for Object |
Workbenches |
Part |
Default shortcut |
None |
Introduced in version |
0.16 |
See also |
Part JoinConnect, Part JoinEmbed, Part Boolean, Part Thickness |
Description
The Part JoinCutout tool creates a cutout in a walled object (e.g., a pipe) to fit another walled object.
Usage
- Select the base object first, then the object to define the cutout.
The order of selection is important. It is enough to select one sub-shape of each object (e.g., faces). - Invoke the Part JoinCutout command several ways:
- Pressing on the Part JoinCutout button in the Part toolbar
- Using the Part → Join → Cutout for Object entry in the Part menu
A Part JoinFeature object is created, with Mode set to 'Cutout'. Original objects are hidden, and the result of cutting is shown in 3D view.
Properties
Base
- DANEBase: Reference to base object (the one to make the cutout in). The object should be a single solid.
- DANETool: Reference to tool object (the object that is to fit into the cutout). The object can be a single solid, or a valid compound of solids.
- DANEMode: The mode of operation, equals 'Cutout' (Changing that will transform the tool into another Part_JoinXXX). The value of 'bypass' can be used to temporarily disable the long computations (a compound of Base and Tool will be created, which is a fast operation).
- DANERefine: Sets whether to apply Refine operation or not, to the final shape. The default value is determined by a 'Automatically refine shape after boolean operation' checkbox in PartDesign preferences. When Mode property is 'bypass', Refine is ignored (never applied).
Example
- Create a pipe by applying thickness to a cylinder:
- Create another, smaller diameter pipe, and place it so that it pierces the wall of the first pipe:
- Select the first pipe, then the second pipe (order of selection is important), and click the 'Cutout for object' option from the Join tools dropdown toolbar button.
Algorithm
The algorithms behind Join tools are quite simple, and understanding them is important to use the tools correctly.
1. Base object is boolean-cut with Tool object. The resulting shape is a set (compound) of non-intersecting solids (typically, two).
2. The resulting compound is filtered: only the largest solid is kept.
3. If Refine property is true, the resulting shape is refined.
Notes
- If after step 1, the object remains in one piece, the result of Cutout will be equivalent to boolean cut of Base with Tool.
- Now, the tool will produce unexpected result, if a compound is supplied as Base. This may be changed in the future.
- Because the largest piece is determined by comparing volumes of pieces, the tool can only work with solids. This may be changed in the future.
Scripting
The Join tools can by used in macros and from the python console by using the following function:
JoinFeatures.makePartJoinFeature(name = 'Cutout', mode = 'Cutout')
- Creates an empty Cutout feature (or other Join feature, depending on mode passed). The properties Base and Tool must be assigned explicitly, afterwards.
- Returns the newly created object.
Example:
import JoinFeatures
j = JoinFeatures.makePartJoinFeature(name = 'Cutout', mode = 'Cutout' )
j.Base = FreeCADGui.Selection.getSelection()[0]
j.Tool = FreeCADGui.Selection.getSelection()[1]
The tool itself is implemented in Python, see /Mod/Part/JoinFeatures.py (Github link) under where FreeCAD is installed.
- Bryły pierwotne: Prostopadłościan, Walec, Sfera, Stożek, Torus, Rura, Bryły pierwotne, Konstruktor kształtu
- Tworzenie i modyfikacja: Wyciągnij, Wyciągnij przez obrót, Odbicie lustrzane, Zaokrąglenie, Fazka, Utwórz ścianę z linii łamanych, Powierzchnia prostokreślna, Wyciągnięcie przez profile, Wyciągnięcie po ścieżce, Przecięcie, Przekrój poprzeczny, Odsunięcie 3D, Odsunięcie 2D, Grubość, Rzutowanie na powierzchnię, Mocowanie
- Funkcje logiczne: Utwórz złożenie, Rozbij złożenie, Filtr złożeń, Funkcje logiczne, Wytnij, Połączenie, Część wspólna, Przyłącz, Dołącz do osadzenia, Wycięcie połączenia, Funkcja logiczna rozdzielająca, Pokrój część, Krojenie, XOR
- Wymiarowanie: Wymiarowanie liniowe, Wymiarowanie kątowe, Odśwież wymiary, Usuń wymiary, Przełącz widoczność wymiaru, Przełącz widoczność wymiarów przestrzennych, Przełącz widoczność wymiarów przyrostowych
- Jak zacząć
- Instalacja: Pobieranie programu, Windows, Linux, Mac, Dodatkowych komponentów, Docker, AppImage, Ubuntu Snap
- Podstawy: Informacje na temat FreeCAD, Interfejs użytkownika, Profil nawigacji myszką, Metody wyboru, Nazwa obiektu, Edytor ustawień, Środowiska pracy, Struktura dokumentu, Właściwości, Pomóż w rozwoju FreeCAD, Dotacje
- Pomoc: Poradniki, Wideo poradniki
- Środowiska pracy: Strona Startowa, Architektura, Assembly, CAM, Rysunek Roboczy, MES, Inspekcja, Siatka, OpenSCAD, Część, Projekt Części, Punkty, Inżynieria Wsteczna, Robot, Szkicownik, Arkusz Kalkulacyjny, Powierzchnia 3D, Rysunek Techniczny, Test Framework