Part Module/cs: Difference between revisions
No edit summary |
(Redirected.) Tag: New redirect |
||
(101 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
#REDIRECT [[Part_Workbench/cs]] |
|||
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|Modulu Síť]], jsou mnohem komplexnější a proto umožňují mnohem dokonalejší operace, jako jsou logické boolean operace, modifikace historie a parametrické chování. |
|||
[[Image:Part example.jpg]] |
|||
Příklad tvaru Díl ve FreeCADu |
|||
=== Nástroje === |
|||
Nástroje modulu Díl jsou všechny umístěny v menu '''Díl''', který se zobrazí když natáhnete modul Díl. |
|||
{{Part Tools}} |
|||
=== Logické Operace === |
|||
[[Image:Part_BooleanOperations.png|500px|left|Příklad sjednocení (Fuse), průniku (Common) a rozdílu (Cut)]] |
|||
{{clear}} |
|||
Příklad sjednocení (Fuse), průniku (Common) a rozdílu (Cut) |
|||
=== Vysvětlení pojmů === |
|||
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, okraj, 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 okraj může být zkonstruován z linky nebo z části kružnice. |
|||
Souhrnně se dá říct, že geometrické primitivy jsou "beztvaré" stavební bloky. A tvary jsou prostorové konstrukce na prvcích vystavěné. |
|||
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 základní geometrické prvky) a '''TopoDS_*''' (pro tvary). Můžete se tam také dočíst o rozdílech mezi základními geometrickými prvky 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. |
|||
Geometrické typy mohou být rozděleny do dvou hlavních skupin: čáry a povrchy. Nad čárami (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. |
|||
Z hran nebo povrchů se můžete také vrátit k jeho původním geometrickým primitivům. |
|||
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ů. |
|||
==Skriptování== |
|||
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 Čáry, 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. |
|||
=== Příklady === |
|||
Pro vytvoření čárového elementu přepněte do konzoly Pythonu a zapište: |
|||
<syntaxhighlight> |
|||
import Part,PartGui |
|||
doc=App.newDocument() |
|||
l=Part.Line() |
|||
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() |
|||
</syntaxhighlight> |
|||
Projděme si výše uvedený příklad v Pythonu krok po kroku: |
|||
<syntaxhighlight> |
|||
import Part,PartGui |
|||
doc=App.newDocument() |
|||
</syntaxhighlight> |
|||
natáhne modul Díl (Part) a vytvoří nový dokument |
|||
<syntaxhighlight> |
|||
l=Part.Line() |
|||
l.StartPoint=(0.0,0.0,0.0) |
|||
l.EndPoint=(1.0,1.0,1.0) |
|||
</syntaxhighlight> |
|||
čára je ve skutečnosti čárový sehment, proto má počáteční a koncový bod. |
|||
<syntaxhighlight> |
|||
doc.addObject("Part::Feature","Line").Shape=l.toShape() |
|||
</syntaxhighlight> |
|||
Přidá do dokumentu objektový typ Díl (Part) a přiřadí přidanému objektu reprezentaci tvaru čárového segmentu do vlastnosti 'Tvar' (Shape). Zde je důležité pochopit, že jsme použili geometrický primitiv (Čára - 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. |
|||
<syntaxhighlight> |
|||
doc.recompute() |
|||
</syntaxhighlight> |
|||
Aktualizuje dokument. Také připravuje vizuální reprezentaci nového dílu. |
|||
Všimněte si také, že Čára 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 čáru a pak jí dodatečně přiřadit vlastnosti, jako jsme to udělali zde. |
|||
Kružnice může být vytvořena podobně: |
|||
<syntaxhighlight> |
|||
import Part |
|||
doc = App.activeDocument() |
|||
c = Part.Circle() |
|||
c.Radius=10.0 |
|||
f = doc.addObject("Part::Feature", "Circle") |
|||
f.Shape = c.toShape() |
|||
doc.recompute() |
|||
</syntaxhighlight> |
|||
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: |
|||
<syntaxhighlight> |
|||
s = f.Shape |
|||
e = s.Edges[0] |
|||
c = e.Curve |
|||
</syntaxhighlight> |
|||
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í křivku. Každá hrana má křivku, 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]]. |
|||
{{docnav|Mesh Module|Drawing Module}} |
|||
[[Category:User Documentation|Kategore:Uživatelská dokumentace]] |
|||
<languages/> |
Latest revision as of 14:52, 27 April 2024
Redirect to: