Part Module/pl

From FreeCAD Documentation
Revision as of 17:26, 26 February 2019 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

Możliwości CAD FreeCADa wynikają z jądra OpenCasCade. Moduł Part pozwala FreeCADowi uzyskać dostęp do obiektów i funkcji OpenCasCade. OpenCascade jest profesjonalnym jądrem CAD, pozwalającym na zaawansowaną manipulację geometrią 3D i obiektami. Obiekty Części (Part), w przeciwieństwie do obiektów modułu Mesh, są dużo bardziej skomplikowane, zatem pozwalają na znacznie bardziej zaawansowane operacje, jak spójne operacje Boole'a, modyfikacje historii i zachowanie parametryczne.

The Part Workbench allows the user to access and use the OCCT objects and functions. Part objects, unlike Mesh objects, are more complex, and therefore permit more advanced operations like coherent boolean operations, modifications history, and parametric behaviour.

Narzędzia

Narzędzia modułu zlokalizowane są w menu Part, które pojawia się po załadowaniu modułu.

These are tools for creating primitive objects.

  • Box: Draws a box by specifying its dimensions
  • Cone: Draws a cone by specifying its dimensions
  • Cylinder: Draws a cylinder by specifying its dimensions
  • Sphere: Draws a sphere by specifying its dimensions
  • Torus: Draws a torus (ring) by specifying its dimensions
  • CreatePrimitives: A tool to create various parametric geometric primitives
  • 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.

  • Booleans: Performs boolean operations on objects
  • Union: Fuses (unions) two objects
  • Common: Extracts the common (intersection) part of two objects
  • Cut: Cuts (subtracts) one object from another
  • Join features: smart booleans for walled objects (e.g., pipes) (v0.16)
    • Connect: Connects interiors of objects (v0.16)
    • Embed: Embeds a walled object into another walled object (v0.16)
    • Cutout: Creates a cutout in a wall of an object for another walled object (v0.16)
  • Splitting tools: (v0.17)
    • Boolean fragments: makes all the pieces that can be obtained by Boolean operations between objects (v0.17)
    • Slice: Splits an object into pieces by intersections with another object (v0.17)
    • XOR: removes space shared by even number of objects (symmetric version of Cut) (v0.17)
  • Compound
    • Make compound: Creates a compound from the selected objects.
    • Compound Filter: The CompoundFilter can be used to extract the individual pieces.
  • Extrude: Extrudes planar faces of an object
  • Fillet: Fillets (rounds) edges of an object
  • Revolve: Creates a solid by revolving another object (not solid) around an axis
  • Section: Creates a section by intersecting an object with a section plane
  • Cross sections...:
  • Chamfer: Chamfers edges of an object
  • Mirror: Mirrors the selected object on a given mirror plane
  • Ruled Surface:
  • Sweep: Sweeps one or more profiles along a path
  • Loft: Lofts from one profile to another
  • Offset tools:
    • 3D Offset: Constructs a parallel shape at a certain distance from original.
    • 2D Offset: Constructs a parallel wire at certain distance from original, or enlarges/shrinks a planar face. (v0.17)
    • Thickness: Hollows out a solid, leaving openings next to select faces.

Other tools

File:Part Boolean example.png
Przykład unii (Fuse), części wspólnej (Common) i różnicy (Cut)
Przykład unii (Fuse), części wspólnej (Common) i różnicy (Cut)

Preferences

Objaśnienie koncepcji

W terminologii OpenCasCade , rozróżniamy geometryczne prymitywy (primitives) i (topologiczne) kształty (shapes). Prymityw geometryczny może być punktem, prostą, okręgiem, płaszczyzną itp. lub trochę bardziej skomplikowanym typem jak krzywa czy powierzchnia. B-Spline. Kształt może być wierzchołkiem, krawędzią, przewodem (wire), ścianą, bryłą lub składać się z innych kształtów. Prymitywy geometryczne nie są stworzone w celu bezpośredniego wyświetlania w scenie 3D, a raczej do budowania geometrii dla kształtów. Na przykład, krawędź może być skonstruowana z linii lub z kawałka okręgu.

W celu podsumowania, powinniśmy powiedzieć, że prymitywy są "bezkształtnymi" klockami budującymi, kształtu są rzeczywistą geometrią zbudowaną na nich.

By uzyskać pełną listę, zapoznaj się z dokumentacją OCC i szukaj Geom_Geometry oraz TopoDS_Shape. Możesz tam także więcej przeczytać o różnicach pomiędzy obiektami geometrycznymi a kształtami. Proszę odnotować, że dokumentacja OCC niestety nie jest dostępna online (musisz ściągnąć archiwum) i celuje głównie w programistów, nie użytkowników końcowych. Ale miejmy nadzieję, że znajdziesz dość informacji by zacząć tutaj.

Typy geometryczne są aktualnie podzielone na dwie główne grupy: krzywe i powierzchnie. wychodząc z krzywych (prosta, okrąg, ...) możesz bezpośredni zbudować krawędź, wychodząc z powierzchni (płaszczyzna, walec, ...) może być zbudowana ściana. Np. geometryczny prymityw prostej jest nieograniczony, innymi słowy jest zdefiniowany przez wektor bazowy i wektor kierunku kiedy jego reprezentacja kształtu ograniczona jest przez punkty: początkowy o koncowy. i sześcian -- bryła -- może być stworzony z sześciu ograniczonych płaszczyzn.

Z krawędzi lub ściany możesz wrócić do postaci prymitywu.

W ten sposób, z kształtów możesz zbudować bardzo skomplikowane części lub, innym razem zaokrąglić, wyciągnąć cały podkształt by uzyskać bardziej skomplikowany kształt.

Skryptowanie

Główna sktuktura danych używana w module Part to BRep pochodzące z OpenCascade. Wszelkie treści i typy obiektów modułu Part są aktualnie dostępne przez skryptowanie w pythonie. Zawiera ono prymitywy geometryczne, jak Linia lub Okrąg (lub Łuk) i cały zakres TopoKształtów (TopoShapes), jak Wierzchołki, Krawędzie, Przewody, Ściany, Bryły lite i Złożenia. Dla każdego z tych obiektów, istnieje kilka metod tworzeni. Niektóre z nich, szczególnie TopoKształty, zaawansowane operacje jak unie/różnice/wycięcia są także dostępne. Eksploracja treści modułu Part, jest opisana szerzej na stronie Podstawy skryptowania we FreeCADzie.

Examples

By stworzyć prostą, włącz konsolę Pythona i wpisz:

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()

Przejdźmy przez przykład pythona, krok po kroku:

import Part,PartGui
doc=App.newDocument()

ładuje moduł Part i tworzy nowy dokument

l=Part.LineSegment()
l.StartPoint=(0.0,0.0,0.0)
l.EndPoint=(1.0,1.0,1.0)

Prosta jest aktualnie odcinkiem, stąd punkt startowy i końcowy.

doc.addObject("Part::Feature","Line").Shape=l.toShape()

To dodaje do dokumentu obiekt typu Part i przypisuje reprezentację kształtu odcinka do właściwości 'Shape' dodanego obiektu. Ważne jest zrozumienie, że tutaj używamy geometrycznych prymitywów (Part.line) do stworzenia z nich TopoKształtu (metoda toShape()). Tylko Kształty mogą być dodane do dokumentu. We FreeCADzie, geometryczne prymitywy są "strukturami budującymi" dla Kształtów.

doc.recompute()

Aktualizuje dokument. Także przygotowuje wizualizację nowej części.

Zauważ, że Prosta (Line) może być stworzona przez sprecyzowanie punktu startowego i końcowego bezpośrednio. Dla przykładu Part.Line(point1,point2) lub możemy stworzyć domyślną prostą ustawić jej właściwości później, jak zrobiliśmy tutaj.

Okrąg może być stworzony w podobny sposób:

import Part
doc = App.activeDocument()
c = Part.Circle() 
c.Radius=10.0  
f = doc.addObject("Part::Feature", "Circle")
f.Shape = c.toShape()
doc.recompute()

Zauważ znów, użyliśmy okręgu (geometryczny prymitiw) do stworzenia kształtu z niego. Oczywiście później możemy uzyskać dostęp do naszej konstrukcji, przez zrobienie:

s = f.Shape
e = s.Edges[0]
c = e.Curve

Tutaj wzieliśmy kształt naszego obiektu f, następnie pobraliśmy listę krawędzi, w tym przypadku będzie tylko jedna, bo zrobiliśmy cały kształt tylko z jednego okręgu, więc bierzemy tylko pierwszy element z listy Krawędzi (Edges list), i bierzemy jego Krzywą (Curve). Każda Krawędź ma Krzywą, która jest bazą dla prymitywu.

Przejdź do Topologicznego skryptowania danych jeśli chcesz wiedzieć więcej.

Tutorials

Mesh Module/pl
Drawing Module/pl