Part Module/cs: Difference between revisions
(Updating to match new version of source page) |
(Redirected.) Tag: New redirect |
||
(67 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
#REDIRECT [[Part_Workbench/cs]] |
|||
<languages/> |
|||
{{docnav|[[OpenSCAD Module|OpenSCAD Module]]|[[PartDesign Workbench|PartDesign Workbench]]|IconL=OpenSCADWorkbench.svg|IconR=Workbench_PartDesign.svg}} |
|||
[[Image:Workbench_Part.svg|64px]] |
|||
<div class="mw-translate-fuzzy"> |
|||
CAD možnosti FreeCADu jsou založeny na jádře [http://en.wikipedia.org/wiki/Open_CASCADE OpenCasCade]. Modul Díl umožňuje FreeCADu přístup a používání objektů a funkcí OpenCasCade. OpenCascade je profesionální CAD jádro, jehož vlastnosti umožňují pokročilou manipulaci s 3D konstrukcemi a objekty. Objekty Díl, narozdíl od objektů [[Mesh Module/cs|Modulu Síť]], jsou mnohem komplexnější a proto umožňují mnohem dokonalejší operace, jako jsou logické boolean operace, modifikace historie a parametrické chování. |
|||
</div> |
|||
The [[Part Workbench]] allows the user to access and use the OCCT objects and functions. Part objects, unlike [[Mesh Workbench|Mesh objects]], are more complex, and therefore permit more advanced operations like coherent boolean operations, modifications history, and parametric behaviour. |
|||
{{TOCright}} |
|||
[[Image:Part example.jpg]] |
|||
<div class="mw-translate-fuzzy"> |
|||
=== Nástroje === |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Nástroje modulu Díl jsou všechny umístěny v menu '''Díl''', který se zobrazí když natáhnete modul Díl. |
|||
</div> |
|||
===Primitives=== |
|||
These are tools for creating primitive objects. |
|||
* [[Image:Part_Box.png|32px]] [[Part_Box|Box]]: Draws a box by specifying its dimensions |
|||
* [[Image:Part_Cylinder.png|32px]] [[Part_Cylinder|Cylinder]]: Draws a cylinder by specifying its dimensions |
|||
* [[Image:Part_Sphere.png|32px]] [[Part_Sphere|Sphere]]: Draws a sphere by specifying its dimensions |
|||
* [[Image:Part_Cone.png|32px]] [[Part_Cone|Cone]]: Draws a cone by specifying its dimensions |
|||
* [[Image:Part_Torus.png|32px]] [[Part_Torus|Torus]]: Draws a torus (ring) by specifying its dimensions |
|||
* [[Image:Part_CreatePrimitives.png|32px]] [[Part_CreatePrimitives|CreatePrimitives]]: A tool to create various parametric geometric primitives |
|||
* [[Image:Part_Shapebuilder.png|32px]] [[Part_Shapebuilder|Shapebuilder]]: A tool to create more complex shapes from various parametric geometric primitives |
|||
===Modifying objects=== |
|||
These are tools for modifying existing objects. They will allow you to choose which object to modify. |
|||
* [[Image:Part_Extrude.png|32px]] [[Part_Extrude|Extrude]]: Extrudes planar faces of an object |
|||
* [[Image:Part_Revolve.png|32px]] [[Part_Revolve|Revolve]]: Creates a solid by revolving another object (not solid) around an axis |
|||
* [[Image:Part_Mirror.png|32px]] [[Part_Mirror|Mirror]]: Mirrors the selected object on a given mirror plane |
|||
* [[Image:Part_Fillet.png|32px]] [[Part_Fillet|Fillet]]: Fillets (rounds) edges of an object |
|||
* [[Image:Part_Chamfer.png|32px]] [[Part_Chamfer|Chamfer]]: Chamfers edges of an object |
|||
* [[Image:Part_RuledSurface.png|32px]] [[Part_RuledSurface|Ruled Surface]]: |
|||
* [[Image:Part_Loft.png|32px]] [[Part_Loft|Loft]]: Lofts from one profile to another |
|||
* [[Image:Part_Sweep.png|32px]] [[Part_Sweep|Sweep]]: Sweeps one or more profiles along a path |
|||
* [[Image:Part_CompOffsetTools.png|48px]] [[Part_CompOffsetTools|Offset tools]]: |
|||
** [[Image:Part_Offset.png|32px]] [[Part_Offset|3D Offset]]: Constructs a parallel shape at a certain distance from original. |
|||
** [[Image:Part_Offset2D.png|32px]] [[Part_Offset2D|2D Offset]]: Constructs a parallel wire at certain distance from original, or enlarges/shrinks a planar face. (v0.17) |
|||
* [[Image:Part_Thickness.png|32px]] [[Part_Thickness|Thickness]]: Hollows out a solid, leaving openings next to select faces. |
|||
* [[Image:Part_CompCompoundTools.png|48px]] [[Part_CompCompoundTools|Compound Tools]]: |
|||
** [[Image:Part MakeCompound.png|32px]] [[Part MakeCompound|Make compound]]: Creates a compound from the selected objects. |
|||
** [[Image:Part_ExplodeCompound.svg|32px]] [[Part_ExplodeCompound|Explode Compound]]: Tool to split up compounds of shapes |
|||
** [[Image:Part CompoundFilter.png|32px]] [[Part CompoundFilter|Compound Filter]]: The CompoundFilter can be used to extract the individual pieces. |
|||
* [[Image:Part_Booleans.png|32px]] [[Part_Booleans|Booleans]]: Performs boolean operations on objects |
|||
* [[Image:Part_Union.png|32px]] [[Part_Union|Union]]: Fuses (unions) two objects |
|||
* [[Image:Part_Common.png|32px]] [[Part_Common|Common]]: Extracts the common (intersection) part of two objects |
|||
* [[Image:Part_Cut.png|32px]] [[Part_Cut|Cut]]: Cuts (subtracts) one object from another |
|||
* [[Image:Part_CompJoinFeatures.png|48px]] [[Part CompJoinFeatures|Join features]]: smart booleans for walled objects (e.g., pipes) (v0.16) |
|||
** [[Image:Part JoinConnect.png|32px]] [[Part_JoinConnect|Connect]]: Connects interiors of objects (v0.16) |
|||
** [[Image:Part JoinEmbed.png|32px]] [[Part_JoinEmbed|Embed]]: Embeds a walled object into another walled object (v0.16) |
|||
** [[Image:Part JoinCutout.png|32px]] [[Part_JoinCutout|Cutout]]: Creates a cutout in a wall of an object for another walled object (v0.16) |
|||
* [[Image:Part_CompSplittingTools.png|48px]] [[Part CompSplittingTools|Splitting tools]]: (v0.17) |
|||
** [[Image:Part BooleanFragments.png|32px]] [[Part_BooleanFragments|Boolean fragments]]: makes all the pieces that can be obtained by Boolean operations between objects (v0.17) |
|||
** [[Image:Part SliceApart.svg|32px]] [[Part_SliceApart|Slice a part]]: tool to split shapes by intersection with other shapes |
|||
** [[Image:Part Slice.png|32px]] [[Part_Slice|Slice]]: Splits an object into pieces by intersections with another object (v0.17) |
|||
** [[Image:Part XOR.png|32px]] [[Part_XOR|XOR]]: removes space shared by even number of objects (symmetric version of [[Part_Cut|Cut]]) (v0.17) |
|||
* [[Image:Part Defeaturing.svg|32px]] [[Part_Defeaturing|Defeaturing]]: (v0.18) |
|||
* [[Image:Part_Section.png|32px]] [[Part_Section|Section]]: Creates a section by intersecting an object with a section plane |
|||
* [[Image:Part_SectionCross.png|32px]] [[Part_SectionCross|Cross sections...]]: |
|||
===Other tools=== |
|||
* [[Image:Part ImportCAD.png|32px]] [[Part ImportCAD|Import CAD]]: This tool allows you to add a file *.IGES, *.STEP, *.BREP to the current document. |
|||
* [[Image:Part ExportCAD.png|32px]] [[Part ExportCAD|Export CAD]]: This tool allows you to export a part object in a *.IGES, *.STEP, *.BREP file. |
|||
* [[Image:Part ShapeFromMesh.png|32px]] [[Part ShapeFromMesh|Shape from Mesh]]: Creates a shape object from a mesh object. |
|||
* [[Part ConvertToSolid|Convert to solid]]: Converts a shape object to a solid object. |
|||
* [[Part ReverseShapes|Reverse shapes]]: Flips the normals of all faces of the selected object. |
|||
* [[Image:Part CreateSimpleCopy.svg|32px]] [[Part CreateSimpleCopy|Create simple copy]]: Creates a simple copy of the selected object. |
|||
* [[Image:Part RefineShape.png|32px]] [[Part RefineShape|Refine shape]]: Cleans faces by removing unnecessary lines. |
|||
* [[Image:Part CheckGeometry.png|32px]] [[Part CheckGeometry|Check geometry]]: Checks the geometry of selected objects for errors. |
|||
* [[Std Measure Menu|Measure]]: Allows linear and angular measurement between points/edges/faces. |
|||
* [[Image:Part Attachment.svg|32px]] [[Part Attachment|Attachment]]: Attachment is a utility to attach an object to another one. |
|||
[[Image:Part_Boolean_example.png|600px|none]] |
|||
<div class="mw-translate-fuzzy"> |
|||
[[Image:Part_BooleanOperations.png|500px|left|Příklad sjednocení (Fuse), průniku (Common) a rozdílu (Cut)]] |
|||
</div> |
|||
== Preferences == |
|||
* [[Image:Preferences-import-export.svg|32px]] [[Import_Export_Preference|Preference ...]] Import Export |
|||
<div class="mw-translate-fuzzy"> |
|||
=== Vysvětlení pojmů === |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
V terminologii OpenCasCade odlišujeme geometrické primitivy a (topologické) tvary. Geometrický primitiv může být bod, linka, kružnice, rovina atd. nebo i komplexnější typy jako je B-Spline (aproximační) křivka nebo plocha. Topologický tvar může být vrchol, hrana, drát, povrch, těleso nebo složenina z jiných tvarů. Geometrické primitivy nejsou určeny k přímému zobrazení ve 3D zobrazení, ale hlavně k použití jako stavební prvek pro 3D tvary. Například hrana může být zkonstruována z linky nebo z části kružnice. |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Souhrnně se dá říct, že geometrické primitivy jsou "beztvaré" stavební bloky. A tvary jsou prostorové konstrukce na prvcích vystavěné. |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Jejich kompletní seznam je na [http://www.opencascade.org/org/doc/ OCC documentation] (Alternativně: [http://opencascade.sourcearchive.com/documentation/6.3.0.dfsg.1-1/classes.html sourcearchive.com]) a hledání textů '''Geom_*''' (pro geometrické primitivy) a '''TopoDS_*''' (pro tvary). Můžete se tam také dočíst o rozdílech mezi geometrickými primitivy a tvary. Všimněte si také, prosím, že naneštěstí oficiální OCC dokumentace není dostupná online (musíte si stáhnout archiv) a je hlavně určena pro programátory a ne pro koncové uživatele. Ale pro začátek naštěstí najdete dost informací zde. |
|||
</div> |
|||
Geometrické typy mohou být rozděleny do dvou hlavních skupin: linky a povrchy. Nad linkami (přímka, kružnice,...) můžete přímo budovat hrany, na plochách (rovina, válec, ...) zase povrchy. Například základní přímka je nekonečná, tj. je definována základním vektorem a směrovým vektorem, zatímco jeho tvarová reprezentace musí být nějak omezena počátečním a koncovým bodem. A kvádr -- těleso -- může být vytvořeno šesti omezenými rovinami. |
|||
<div class="mw-translate-fuzzy"> |
|||
Z hran nebo povrchů se můžete také vrátit k jeho původním geometrickým primitivům. |
|||
</div> |
|||
Tudíž, z tvarů můžete stavět velmi komplexní díly nebo opačně odebírat všechny poddíly pro vytváření ještě komplexnějších dílů. |
|||
<div class="mw-translate-fuzzy"> |
|||
==Skriptování== |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Hlavní datová struktura použitá v modulu Díl je datový typ |
|||
[http://en.wikipedia.org/wiki/Boundary_representation BRep] z OpenCascade. |
|||
Téměř celý obsah a objektové typy modulu Díl jsou dostupné skriptování v Pythonu. Zahrnuje to geometrické primitivy, jako jsou Linky, Kružnice (nebo Úhly) a celá oblast TopoTvarů, jako jsou Vrcholy, Hrany, Dráty, Plochy, Tělesa a Složeniny. Pro každý z těchto objektů existuje několik metod pro jejich vytváření a pro některé z nich, zvláště pro TopoTvary, jsou dostupné rozšířené operace jako logické sjednocení/rozdíly/průniky. Projděte si obsah modulu Díl jak je popsán na stránce [[FreeCAD Scripting Basics]] abyste jej lépe pochopili. |
|||
</div> |
|||
=== Příklady === |
|||
Pro vytvoření přímkového elementu přepněte do konzoly Pythonu a zapište: |
|||
{{Code|code= |
|||
import Part,PartGui |
|||
doc=App.newDocument() |
|||
l=Part.LineSegment() |
|||
l.StartPoint=(0.0,0.0,0.0) |
|||
l.EndPoint=(1.0,1.0,1.0) |
|||
doc.addObject("Part::Feature","Line").Shape=l.toShape() |
|||
doc.recompute() |
|||
}} |
|||
Projděme si výše uvedený příklad v Pythonu krok po kroku: |
|||
{{Code|code= |
|||
import Part,PartGui |
|||
doc=App.newDocument() |
|||
}} |
|||
natáhne modul Díl (Part) a vytvoří nový dokument |
|||
{{Code|code= |
|||
l=Part.LineSegment() |
|||
l.StartPoint=(0.0,0.0,0.0) |
|||
l.EndPoint=(1.0,1.0,1.0) |
|||
}} |
|||
přímka je ve skutečnosti přímkový segment, proto má počáteční a koncový bod. |
|||
{{Code|code= |
|||
doc.addObject("Part::Feature","Line").Shape=l.toShape() |
|||
}} |
|||
<div class="mw-translate-fuzzy"> |
|||
Přidá do dokumentu objektový typ Díl (Part) a přiřadí přidanému objektu reprezentaci tvaru přímkového segmentu do vlastnosti 'Tvar' (Shape). Zde je důležité pochopit, že jsme použili geometrický primitiv (Přímka - Part.Line) k vytvoření TopoTvaru ( metoda toShape() ). Do dokumentu mohou být přidávány pouze tvary. Ve FreeCADu jsou geometrické primitivy používány jako "stavební struktury" pro Tvary. |
|||
</div> |
|||
{{Code|code= |
|||
doc.recompute() |
|||
}} |
|||
Aktualizuje dokument. Také připravuje vizuální reprezentaci nového dílu. |
|||
<div class="mw-translate-fuzzy"> |
|||
Všimněte si také, že přímka může být vytvořena přímo zadáním jejího počátečního a koncového bodu v konstruktoru, např. Part.Line(point1,point2) nebo můžeme vytořit obecnou přímku a pak jí dodatečně přiřadit vlastnosti, jako jsme to udělali zde. |
|||
</div> |
|||
Kružnice může být vytvořena podobně: |
|||
{{Code|code= |
|||
import Part |
|||
doc = App.activeDocument() |
|||
c = Part.Circle() |
|||
c.Radius=10.0 |
|||
f = doc.addObject("Part::Feature", "Circle") |
|||
f.Shape = c.toShape() |
|||
doc.recompute() |
|||
}} |
|||
Znovu si všimněte, že jsme použili kružnici (geometrický primitiv) ke konstrukci tvaru nad ní. Samozřejmě stále zůstává přístup ke geometrii konstrukce, zadáním: |
|||
{{Code|code= |
|||
s = f.Shape |
|||
e = s.Edges[0] |
|||
c = e.Curve |
|||
}} |
|||
Zde si vezmeme tvar(Shape) našeho objektu f, potom si z něho vezmeme seznam hran. V tomto případě to bude jen jedna hrana, protože celý tvar děláme z jedné kružnicem a proto si vezmeme ze seznamu pouze první hranu a z ní její přímku. Každá hrana má přímku, což je geometrický primitiv, na kterém je hrana založena. |
|||
Chcete-li vědět více jděte na stránku [[Topological data scripting]]. |
|||
== Tutorials == |
|||
* [[Import_from_STL_or_OBJ|Import from STL or OBJ]] : How to import STL/OBJ files in FreeCAD |
|||
* [[Export_to_STL_or_OBJ|Export to STL or OBJ]] : How to export STL/OBJ files from FreeCAD |
|||
* [[Whiffle_Ball_tutorial|Whiffle Ball tutorial]] : How to use the Part Module |
|||
<div class="mw-translate-fuzzy"> |
|||
{{docnav/cs|[[Mesh_Workbench/cs|Pracovní plocha Sít]]|[[Drawing Module/cs|Modul Výkres]]}} |
|||
</div> |
|||
{{Userdocnavi}} |
|||
[[Category:Part]] |
|||
[[Category:Workbenches]] |
Latest revision as of 14:52, 27 April 2024
Redirect to: