Part Module/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "Skrypt ten znajduje się w katalogu instalacyjnym programu i może być badany w celu sprawdzenia, jak budowane są podstawowe elementy pierwotne.")
(Updating to match new version of source page)
(28 intermediate revisions by 2 users not shown)
Line 7: Line 7:
}}
}}


[[Image:Workbench_Part.svg|240px|center]]
[[Image:Workbench_Part.svg|thumb|128px|Ikonka FreeCAD dla Środowiska pracy Part]]
{{TOCright}}
{{Caption|align=center|Ikonka FreeCAD dla Środowiska pracy Part}}

==Wprowadzenie==
==Wprowadzenie==
Funkcje modelowania brył w FreeCAD są oparte na jądrze ''(OCCT)'' [http://en.wikipedia.org/wiki/Open_Cascade_Technology Open Cascade Technology], profesjonalnym systemie CAD, który oferuje możliwość zaawansowanego tworzenia i manipulacji geometrii 3D. <br />Środowisko pracy [[Image:Workbench_Part.svg|24px]] [[Part Workbench|Part]] jest warstwą umieszczoną nad bibliotekami OCCT, która daje użytkownikowi dostęp do geometrycznych prymitywów i funkcji OCCT. Zasadniczo wszystkie funkcje rysowania 2D i 3D w każdym Środowisku roboczym ''([[Image:Workbench_Draft.svg|24px]] [[Draft Workbench|Draft]], [[Image:Workbench_Sketcher.svg|24px]] [[Sketcher Workbench|Sketcher]], [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench|PartDesign]], etc.)'', są oparte na tych funkcjach, które zostały zaprezentowane przez Part Workbench. Dlatego też Środowisko pracy Part jest uważane za kluczowy komponent umiejętności modelowania programu FreeCAD.
Funkcje modelowania brył w FreeCAD są oparte na jądrze ''(OCCT)'' [http://en.wikipedia.org/wiki/Open_Cascade_Technology Open Cascade Technology], profesjonalnym systemie CAD, który oferuje możliwość zaawansowanego tworzenia i manipulacji geometrii 3D. <br />Środowisko pracy [[Image:Workbench_Part.svg|24px]] [[Part Workbench|Part]] jest warstwą umieszczoną nad bibliotekami OCCT, która daje użytkownikowi dostęp do geometrycznych prymitywów i funkcji OCCT. Zasadniczo wszystkie funkcje rysowania 2D i 3D w każdym Środowisku roboczym ''([[Image:Workbench_Draft.svg|24px]] [[Draft Workbench|Draft]], [[Image:Workbench_Sketcher.svg|24px]] [[Sketcher Workbench|Sketcher]], [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench|PartDesign]], etc.)'', są oparte na tych funkcjach, które zostały zaprezentowane przez Part Workbench. Dlatego też Środowisko pracy Part jest uważane za kluczowy komponent umiejętności modelowania programu FreeCAD.
Line 16: Line 15:


Obiekty części są bardziej złożone niż obiekty siatkowe utworzone przy użyciu Środowiska pracy [[Mesh Workbench|Mesh]], ponieważ pozwalają one na bardziej zaawansowane operacje, takie jak spójne operacje logiczne, historia modyfikacji i właściwości parametryczne.
Obiekty części są bardziej złożone niż obiekty siatkowe utworzone przy użyciu Środowiska pracy [[Mesh Workbench|Mesh]], ponieważ pozwalają one na bardziej zaawansowane operacje, takie jak spójne operacje logiczne, historia modyfikacji i właściwości parametryczne.

{{TOCright}}
[[Image:Part example.jpg]]


[[Image:Part_Workbench_relationships.svg|600px]]
[[Image:Part_Workbench_relationships.svg|600px]]
Line 28: Line 24:
Wszystkie narzędzia zostały umieszczone w menu głównym Środowiska pracy {{MenuCommand|Part}}.
Wszystkie narzędzia zostały umieszczone w menu głównym Środowiska pracy {{MenuCommand|Part}}.


===Prymitywy===
===Bryły pierwotne===


to narzędzia do tworzenia obiektów o charakterze pierwotnym/elementarnym.
Menu obejmuje narzędzia do tworzenia obiektów o charakterze pierwotnym/elementarnym.


* [[Image:Part_Box.svg|32px]] [[Part_Box/pl|Sześcian]]: rysuje sześcian określając jego wymiarów.
* [[Image:Part_Box.svg|32px]] [[Part_Box/pl|Sześcian]]: rysuje sześcian określając jego wymiarów.
Line 37: Line 33:
* [[Image:Part_Cone.svg|32px]] [[Part_Cone/pl|Stożek]]: rysuje stożek określając jego wymiarów.
* [[Image:Part_Cone.svg|32px]] [[Part_Cone/pl|Stożek]]: rysuje stożek określając jego wymiarów.
* [[Image:Part_Torus.svg|32px]] [[Part_Torus/pl|Torus]]: rysuje torus określając jego wymiarów.
* [[Image:Part_Torus.svg|32px]] [[Part_Torus/pl|Torus]]: rysuje torus określając jego wymiarów.
* [[Image:Part_CreatePrimitives.svg|32px]] [[Part_CreatePrimitives/pl|Tworzenie brył parametrycznych]]: narzędzie do tworzenia różnych geometrycznych prymitywów parametrycznych.
* [[Image:Part_Primitives.svg|32px]] [[Part_Primitives/pl|Tworzenie brył parametrycznych]]: narzędzie do dodawania zdefiniowanych geometrycznych prymitywów parametrycznych.
* [[Image:Part_Shapebuilder.svg|32px]] [[Part_Shapebuilder/pl|Zaawansowane narzędzie do tworzenia kształtów]]: Narzędzie do tworzenia bardziej złożonych kształtów z różnych parametrycznych prymitywów geometrycznych.
* [[Image:Part_Shapebuilder.svg|32px]] [[Part_Builder/pl|Zaawansowane narzędzie do tworzenia kształtów]]: Narzędzie do tworzenia bardziej złożonych kształtów z różnych parametrycznych prymitywów geometrycznych.


===Modyfikowanie obiektów===
===Modyfikowanie obiektów===
Line 61: Line 57:
* [[Image:Part_ProjectionOnSurface.png|32px]] [[Part_ProjectionOnSurface|Projekcja na powierzchni]]: Wysunięcie logo, tekstu lub dowolnej ścianki, obszaru zamkniętego, krawędzi na powierzchni. Za pomocą występu/wysunięcia można stworzyć bryłę lub obszar zamknięty.
* [[Image:Part_ProjectionOnSurface.png|32px]] [[Part_ProjectionOnSurface|Projekcja na powierzchni]]: Wysunięcie logo, tekstu lub dowolnej ścianki, obszaru zamkniętego, krawędzi na powierzchni. Za pomocą występu/wysunięcia można stworzyć bryłę lub obszar zamknięty.


* [[Image:Part_CompCompoundTools.png|48px]] [[Part_CompCompoundTools|Narzędzie złożone]]: działa z listą kształtów.
* [[Image:Part_Compound.svg|48px]] [[Part_CompCompoundTools|Narzędzie złożone]]: działa z listą kształtów.
** [[Image:Part MakeCompound.png|32px]] [[Part MakeCompound|Utwórz kombinację]]: tworzy element złożony z wybranych obiektów.
** [[Image:Part_Compound.svg|32px]] [[Part_Compound/pl|Utwórz kombinację]]: tworzy element złożony z wybranych obiektów.
** [[Image:Part_ExplodeCompound.svg|32px]] [[Part_ExplodeCompound|Rozłóż kombinację]]: dzieli element złozony na poszczególne kształty.
** [[Image:Part_ExplodeCompound.svg|32px]] [[Part_ExplodeCompound|Rozłóż kombinację]]: dzieli element złożony na poszczególne kształty.
** [[Image:Part Compound‏‎Filter.svg|32px]] [[Part Compound‏‎Filter|Filtr kombinacji]]: filtr kombinacji może być używany do oddzielania poszczególnych elementów.
** [[Image:Part Compound‏‎Filter.svg|32px]] [[Part Compound‏‎Filter|Filtr kombinacji]]: filtr kombinacji może być używany do oddzielania poszczególnych elementów.


* [[Image:Part_Booleans.svg|32px]] [[Part_Booleans/pl|Operacje logiczne]]: wykonuje operacje z użyciem funkcji logicznych na obiektach.
* [[Image:Part_Booleans.svg|32px]] [[Part_Boolean/pl|Operacje logiczne]]: wykonuje operacje z użyciem funkcji logicznych na obiektach.
* [[Image:Part_Union.png|32px]] [[Part_Union/pl|Łączenie]]: zespaja ''(dodaje)'' dwa obieky.
* [[Image:Part_Fuse.svg|32px]] [[Part_Union/pl|Łączenie]]: zespaja ''(dodaje)'' dwa obieky.
* [[Image:Part_Common.png|32px]] [[Part_Common/pl|Część wspólna]]: wyodrębnia wspólną ''(krzyżującą się)'' część dwóch obiektów.
* [[Image:Part_Common.svg|32px]] [[Part_Common/pl|Część wspólna]]: wyodrębnia wspólną ''(krzyżującą się)'' część dwóch obiektów.
* [[Image:Part_Cut.png|32px]] [[Part_Cut/pl|Wycięcie]]: Wycina ''(odejmuje)'' jeden obiekt z drugiego.
* [[Image:Part_Cut.svg|32px]] [[Part_Cut/pl|Wycięcie]]: Wycina ''(odejmuje)'' jeden obiekt z drugiego.


* [[Image:Part_CompJoinFeatures.png|48px]] [[Part CompJoinFeatures|Łączenie elementów]]: inteligentne funkcje logiczne dla obiektów posiadających ścianki ''(np. rury)''. {{Version|0.16}}
* [[Image:Part_CompJoinFeatures.png|48px]] [[Part CompJoinFeatures|Łączenie elementów]]: inteligentne funkcje logiczne dla obiektów posiadających ścianki ''(np. rury)''. {{Version|0.16}}
** [[Image:Part JoinConnect.png|32px]] [[Part_JoinConnect|Połącz]]: łączy elementy ''(do wewnętrznych płaszczyzn)''. {{Version|0.16}}
** [[Image:Part_JoinConnect.svg|32px]] [[Part_JoinConnect|Połącz]]: łączy elementy ''(do wewnętrznych płaszczyzn)''. {{Version|0.16}}
** [[Image:Part JoinEmbed.png|32px]] [[Part_JoinEmbed|Wstaw]]: osadza obiekt posiadający ścianki w innym obiekcie ze ściankami. {{Version|0.16}}
** [[Image:Part_JoinEmbed.svg|32px]] [[Part_JoinEmbed|Wstaw]]: osadza obiekt posiadający ścianki w innym obiekcie ze ściankami. {{Version|0.16}}
** [[Image:Part_JoinCutout.svg|32px]] [[Part_JoinCutout|Wytnij]]: tworzy wycięcie w ścianie obiektu dla innego obiektu ze ściankami. {{Version/pl|0.16}}
** [[Image:Part_JoinCutout.svg|32px]] [[Part_JoinCutout|Wytnij]]: tworzy wycięcie w ścianie obiektu dla innego obiektu ze ściankami. {{Version/pl|0.16}}


Line 84: Line 80:
* [[Image:Part Defeaturing.svg|32px]] [[Part_Defeaturing|Usuń właściwość z kształtu]]: {{Version|0.18}}
* [[Image:Part Defeaturing.svg|32px]] [[Part_Defeaturing|Usuń właściwość z kształtu]]: {{Version|0.18}}
* [[Image:Part_Section.svg|32px]] [[Part_Section/pl|Przekrój]]: tworzy przekrój, przecinając obiekt płaszczyzna przekroju.
* [[Image:Part_Section.svg|32px]] [[Part_Section/pl|Przekrój]]: tworzy przekrój, przecinając obiekt płaszczyzna przekroju.
* [[Image:Part_SectionCross.png|32px]] [[Part_SectionCross|Wiele przekrojów...]]: tworzy jeden lub więcej przekrojów przez wybrany kształt.
* [[Image:Part_CrossSections.svg|32px]] [[Part_SectionCross|Wiele przekrojów...]]: tworzy jeden lub więcej przekrojów przez wybrany kształt.
* [[Image:Part Attachment.svg|32px]] [[Part Attachment|Przymocuj obiekt]]: jest to narzędzie służące do dołączania obiektu do innego obiektu.
* [[Image:Part Attachment.svg|32px]] [[Part Attachment|Przymocuj obiekt]]: jest to narzędzie służące do dołączania obiektu do innego obiektu.


Line 127: Line 123:
Podsumowując, prymitywy geometryczne to '''bezkształtne''' elementy konstrukcyjne, podczas gdy kształty [[Part_TopoShape|topologiczne]] to realne obiekty zbudowane w ich oparciu.
Podsumowując, prymitywy geometryczne to '''bezkształtne''' elementy konstrukcyjne, podczas gdy kształty [[Part_TopoShape|topologiczne]] to realne obiekty zbudowane w ich oparciu.


Kompletny wykaz wszystkich prymitywów i kształtów znajduje się w [http://www.opencascade.org/org/doc/ Dokumentacji OCC] ''(alternatywnie: [http://opencascade.sourcearchive.com/documentation/6.3.0.dfsg.1-1/classes.html sourcearchive.com])'', wyszukaj' '''"Geom_*" '''''(w odniesieniu do geometrycznych elementów pierwotnych)'' i''' "TopoDS_*" '''''(w odniesieniu do kształtów)''. Możesz też tam przeczytać o różnicach między nimi. Należy pamiętać, że oficjalna dokumentacja OCC nie jest dostępna online ''(należy pobrać archiwum)'' i jest skierowana głównie do programistów, a nie do użytkowników końcowych. Ale miejmy nadzieję, że znajdziesz tu wystarczająco dużo informacji, aby można było zacząć pracować dalej.
Kompletny wykaz wszystkich prymitywów i kształtów znajduje się w [http://www.opencascade.org/org/doc/ Dokumentacji OCC] ''(alternatywnie: [https://www.opencascade.com/doc/occt-7.4.0/refman/html/ sourcearchive.com])'', wyszukaj' '''"Geom_*" '''''(w odniesieniu do geometrycznych elementów pierwotnych)'' i''' "TopoDS_*" '''''(w odniesieniu do kształtów)''. Możesz też tam przeczytać o różnicach między nimi. Należy pamiętać, że oficjalna dokumentacja OCC nie jest dostępna online ''(należy pobrać archiwum)'' i jest skierowana głównie do programistów, a nie do użytkowników końcowych. Ale miejmy nadzieję, że znajdziesz tu wystarczająco dużo informacji, aby można było zacząć pracować dalej.
Warto zobaczyć [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Podręcznik użytkownika danych modelowania].

<blockquote style="color: slategray">''Na bardzo wysokim poziomie topologia mówi, z jakich części składa się obiekt i jakie są logiczne relacje między nimi. Kształt tworzony jest z określonego zestawu powierzchni. Powierzchnia jest ograniczona pewnym zestawem krawędzi. Dwie powierzchnie sąsiadują ze sobą, jeśli mają wspólną krawędź.''</blockquote>

<blockquote style="color: slategray">''Sama topologia nie określa wielkości, krzywizny ani lokalizacji 3D żadnego z tych elementów. Jednak każdy element topologii wie o swojej podstawowej geometrii. Każda ściana wie, na jakiej powierzchni się znajduje. Krawędź wie, na jakiej krzywej leży. Geometria wie o krzywiznach i położeniu w przestrzeni.'' - [https://www.opencascade.com/content/geometry-and-topology Source]</blockquote>

<hr />

<blockquote style="color: slategray">''W ten sposób Topologia definiuje związek pomiędzy prostymi bryłami geometrycznymi, które mogą być łączone razem, aby reprezentować złożone kształty.'' - [https://www.opencascade.com/doc/occt-7.0.0/overview/html/occt_user_guides__modeling_data.html Podręcznik użytkownika danych modelowania]</blockquote>

[[File:ClassTopoDS_Shape_inherit_graph.png]]

'''Note:''' Tylko 3 typy obiektów topologicznych mają reprezentacje geometryczne - wierzchołek, krawędź i powierzchnia ''([https://opencascade.blogspot.com/2009/02/topology-and-geometry-in-open-cascade.html żródło])''.


Typy geometryczne można podzielić na dwie główne grupy: krzywe i powierzchnie. Z krzywych ''(linii, okręgu, ...)'' można bezpośrednio zbudować krawędź, z powierzchni ''(płaszczyzna, cylinder, ...)'' można zbudować ścianę. Na przykład, pierwotna linia geometryczna jest nieograniczona, tzn. jest zdefiniowana wektorem bazowym i wektorem kierunku, podczas gdy jej reprezentacja kształtu musi być czymś ograniczonym np. przez punkt początkowy i końcowy. A kostka - bryła - może być utworzone przez sześć ograniczonych płaszczyzn.
Typy geometryczne można podzielić na dwie główne grupy: krzywe i powierzchnie. Z krzywych ''(linii, okręgu, ...)'' można bezpośrednio zbudować krawędź, z powierzchni ''(płaszczyzna, cylinder, ...)'' można zbudować ścianę. Na przykład, pierwotna linia geometryczna jest nieograniczona, tzn. jest zdefiniowana wektorem bazowym i wektorem kierunku, podczas gdy jej reprezentacja kształtu musi być czymś ograniczonym np. przez punkt początkowy i końcowy. A kostka - bryła - może być utworzone przez sześć ograniczonych płaszczyzn.


Z krawędzi lub ściany można również powrócić do jej pierwotnego geometrycznego odpowiednika.
Z krawędzi lub ściany można również powrócić do jej pierwotnego geometrycznego odpowiednika.



Zatem z kształtów można budować bardzo złożone części lub, odwrotnie, wyodrębniać wszystkie kształty podrzędne, z których składa się bardziej złożony kształt.
Zatem z kształtów można budować bardzo złożone części lub, odwrotnie, wyodrębniać wszystkie kształty podrzędne, z których składa się bardziej złożony kształt.
Line 208: Line 218:


Zauważ, że segment linii może być utworzony poprzez określenie jego punktu początkowego i końcowego bezpośrednio w konstruktorze, na przykład Part.LineSegment(point1,point2). Możemy też utworzyć linię domyślną i ustawić jej właściwości później, tak jak zrobiliśmy to tutaj.
Zauważ, że segment linii może być utworzony poprzez określenie jego punktu początkowego i końcowego bezpośrednio w konstruktorze, na przykład Part.LineSegment(point1,point2). Możemy też utworzyć linię domyślną i ustawić jej właściwości później, tak jak zrobiliśmy to tutaj.

Linia może być również tworzona za pomocą:

{{Code|code=
import FreeCAD
import Part
DOC = FreeCAD.newDocument()

def mycreateLine(pt1, pt2, objName):
obj = DOC.addObject("Part::Line", objName)
obj.X1 = pt1[0]
obj.Y1 = pt1[2]
obj.Z1 = pt1[2]

obj.X2 = pt2[0]
obj.Y2 = pt2[1]
obj.Z2 = pt2[2]

DOC.recompute()
return obj

line = mycreateLine((0,0,0), (0,10,0), "LineName")

}}




Okrąg może być stworzony w podobny sposób:
Okrąg może być stworzony w podobny sposób:
Line 220: Line 256:
doc.recompute()
doc.recompute()
}}
}}

lub z użyciem:

{{Code|code=
import FreeCAD
import Part
DOC = FreeCAD.newDocument()

def mycreateCircle(rad, objName):
obj = DOC.addObject("Part::Circle", objName)
obj.Radius = rad

DOC.recompute()
return obj

circle = mycreateCircle(5.0, "CircleName")

}}



Zauważ ponownie, użyliśmy okręgu ''(geometria prymitywna)'' do skonstruowania z niego kształtu. Oczywiście nadal możemy uzyskać dostęp do naszej geometrii konstrukcyjnej później, wykonując to zadanie:
Zauważ ponownie, użyliśmy okręgu ''(geometria prymitywna)'' do skonstruowania z niego kształtu. Oczywiście nadal możemy uzyskać dostęp do naszej geometrii konstrukcyjnej później, wykonując to zadanie:
Line 245: Line 300:
}}
}}


{{Part Tools navi{{#translation:}}}}


{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

{{Part Tools navi{{#translation:}}}}

[[Category:Workbenches{{#translation:}}]]
[[Category:Workbenches{{#translation:}}]]

Revision as of 09:43, 28 May 2020

Ikonka FreeCAD dla Środowiska pracy Part

Wprowadzenie

Funkcje modelowania brył w FreeCAD są oparte na jądrze (OCCT) Open Cascade Technology, profesjonalnym systemie CAD, który oferuje możliwość zaawansowanego tworzenia i manipulacji geometrii 3D.
Środowisko pracy Part jest warstwą umieszczoną nad bibliotekami OCCT, która daje użytkownikowi dostęp do geometrycznych prymitywów i funkcji OCCT. Zasadniczo wszystkie funkcje rysowania 2D i 3D w każdym Środowisku roboczym ( Draft, Sketcher, PartDesign, etc.), są oparte na tych funkcjach, które zostały zaprezentowane przez Part Workbench. Dlatego też Środowisko pracy Part jest uważane za kluczowy komponent umiejętności modelowania programu FreeCAD.

Obiekty stworzone przy użyciu Środowiska pracy Part są stosunkowo proste. Są przeznaczone do używania z operacjami typu logicznego (łączenia i cięcia) w celu budowania bardziej złożonych kształtów. Ten wzorzec modelowania znany jest jako Stereometria konstrukcyjna (CSG) i była to tradycyjna metodologia stosowana we wczesnych systemach CAD. Z drugiej strony PartDesign zapewnia bardziej nowoczesny cykl roboczy służący konstruowaniu kształtów: wykorzystuje parametrycznie zdefiniowany szkic, który jest wytłaczany w celu utworzenia podstawowej bryły, która następnie jest modyfikowana przez przekształcenia parametryczne (edycja cech), aż do uzyskania ostatecznego obiektu.

Obiekty części są bardziej złożone niż obiekty siatkowe utworzone przy użyciu Środowiska pracy Mesh, ponieważ pozwalają one na bardziej zaawansowane operacje, takie jak spójne operacje logiczne, historia modyfikacji i właściwości parametryczne.

Środowisko pracy Part jest podstawową warstwą, która udostępnia funkcje rysowania OCCT dla każdego Środowiska pracy w programie FreeCAD.

Narzędzia

Wszystkie narzędzia zostały umieszczone w menu głównym Środowiska pracy Part.

Bryły pierwotne

Menu obejmuje narzędzia do tworzenia obiektów o charakterze pierwotnym/elementarnym.

Modyfikowanie obiektów

Są to narzędzia do modyfikacji istniejących obiektów. Pozwalają one na wybór obiektu, który chcesz zmodyfikować.

  • Narzędzie do odsunięcia ...:
    • 3D Offset: konstruuje kształt równoległy w pewnej odległości od oryginału.
    • 2D Offset: konstruuje rzut równoległy w pewnej odległości od oryginału lub powiększa / zmniejsza powierzchnię płaską.
  • Projekcja na powierzchni: Wysunięcie logo, tekstu lub dowolnej ścianki, obszaru zamkniętego, krawędzi na powierzchni. Za pomocą występu/wysunięcia można stworzyć bryłę lub obszar zamknięty.
  • Operacje logiczne: wykonuje operacje z użyciem funkcji logicznych na obiektach.
  • Łączenie: zespaja (dodaje) dwa obieky.
  • Część wspólna: wyodrębnia wspólną (krzyżującą się) część dwóch obiektów.
  • Wycięcie: Wycina (odejmuje) jeden obiekt z drugiego.

Pomiary

File:Std Measure Menu.png Menu pomiary: umożliwia wykonywanie pomiarów liniowych i kątowych pomiędzy punktami, krawędziami i ścianami.

Pozostałe narzędzia

Ustawienia

Koncepcje geometryczne OCCT

W terminologii OpenCascade rozróżniamy geometryczne prymitywy i kształty powierzchniowe. Geometryczny prymityw może być punktem, linią, okręgiem, płaszczyzną itp. lub nawet bardziej skomplikowanymi typami, takimi jak krzywa B-Spline lub powierzchnia. Kształt może być wierzchołkiem, krawędzią, obwodem, ścianą, bryłą lub składnikiem innych kształtów. Pierwotne elementy geometryczne nie są przeznaczone do bezpośredniego wyświetlania na scenie 3D, ale raczej do wykorzystania jako geometria konstrukcji kształtów. Na przykład, krawędź może być zbudowana z linii lub z fragmentu okręgu.

Podsumowując, prymitywy geometryczne to bezkształtne elementy konstrukcyjne, podczas gdy kształty topologiczne to realne obiekty zbudowane w ich oparciu.

Kompletny wykaz wszystkich prymitywów i kształtów znajduje się w Dokumentacji OCC (alternatywnie: sourcearchive.com), wyszukaj' "Geom_*" (w odniesieniu do geometrycznych elementów pierwotnych) i "TopoDS_*" (w odniesieniu do kształtów). Możesz też tam przeczytać o różnicach między nimi. Należy pamiętać, że oficjalna dokumentacja OCC nie jest dostępna online (należy pobrać archiwum) i jest skierowana głównie do programistów, a nie do użytkowników końcowych. Ale miejmy nadzieję, że znajdziesz tu wystarczająco dużo informacji, aby można było zacząć pracować dalej. Warto zobaczyć Podręcznik użytkownika danych modelowania.

Na bardzo wysokim poziomie topologia mówi, z jakich części składa się obiekt i jakie są logiczne relacje między nimi. Kształt tworzony jest z określonego zestawu powierzchni. Powierzchnia jest ograniczona pewnym zestawem krawędzi. Dwie powierzchnie sąsiadują ze sobą, jeśli mają wspólną krawędź.

Sama topologia nie określa wielkości, krzywizny ani lokalizacji 3D żadnego z tych elementów. Jednak każdy element topologii wie o swojej podstawowej geometrii. Każda ściana wie, na jakiej powierzchni się znajduje. Krawędź wie, na jakiej krzywej leży. Geometria wie o krzywiznach i położeniu w przestrzeni. - Source


W ten sposób Topologia definiuje związek pomiędzy prostymi bryłami geometrycznymi, które mogą być łączone razem, aby reprezentować złożone kształty. - Podręcznik użytkownika danych modelowania

Note: Tylko 3 typy obiektów topologicznych mają reprezentacje geometryczne - wierzchołek, krawędź i powierzchnia (żródło).

Typy geometryczne można podzielić na dwie główne grupy: krzywe i powierzchnie. Z krzywych (linii, okręgu, ...) można bezpośrednio zbudować krawędź, z powierzchni (płaszczyzna, cylinder, ...) można zbudować ścianę. Na przykład, pierwotna linia geometryczna jest nieograniczona, tzn. jest zdefiniowana wektorem bazowym i wektorem kierunku, podczas gdy jej reprezentacja kształtu musi być czymś ograniczonym np. przez punkt początkowy i końcowy. A kostka - bryła - może być utworzone przez sześć ograniczonych płaszczyzn.

Z krawędzi lub ściany można również powrócić do jej pierwotnego geometrycznego odpowiednika.


Zatem z kształtów można budować bardzo złożone części lub, odwrotnie, wyodrębniać wszystkie kształty podrzędne, z których składa się bardziej złożony kształt.

Part::TopoShape jest klasą obiektu geometrycznego, który jest widoczny na ekranie. Zasadniczo wszystkie Środowiska pracy wykorzystują te kształty TopoShapes wewnętrznie, aby budować i wyświetlać krawędzie, ściany i bryły.

Tworzenie skryptów

Zobacz również: skrypty dla detali

Główną strukturą danych wykorzystywaną w module Part jest typ danych BRep z OpenCascade. Prawie cała zawartość i typy obiektów modułu Part są dostępne dla skryptów Python. Obejmuje to geometryczne elementy pierwotne, takie jak linia i koło (lub łuk) oraz cały zakres kształtów TopoShapes, takich jak wierzchołki, krawędzie, obwód, ścianki, bryły i związki. Dla każdego z tych obiektów istnieje kilka metod tworzenia, a dla niektórych z nich, zwłaszcza TopoShapes, dostępne są również zaawansowane operacje, takie jak operacje logiczne suma/różnica/iloczyn. Poznaj informacje o zawartości modułu Part, jak opisano na stronie FreeCAD Scripting Basics, aby uzyskać więcej informacji.

Najbardziej podstawowym obiektem, który można utworzyć jest Właściwość części, który posiada prostą właściwość DANEmiejsce umieszczenia, oraz podstawowe cechy określające jego kolor i wygląd.

Innym prostym obiektem używanym w obiektach geometrycznych 2D jestPart Part2DObject, który jest podstawą SketchObject (Szkicownika), oraz większości elementów robocztch.

Skrypt testowy

Przetestuj tworzenie Części pierwotnych za pomocą skryptu. dostępne w wersji 0.19

import parttests.part_test_objects as pto
pto.create_test_file("example_file")

Skrypt ten znajduje się w katalogu instalacyjnym programu i może być badany w celu sprawdzenia, jak budowane są podstawowe elementy pierwotne.

$INSTALL_DIR/Mod/Part/parttests/part_test_objects.py

Przykłady

Aby utworzyć element linii przejdź do konsoli 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()

Prześledźmy powyższy przykład Pytona krok po kroku:

import Part,PartGui
doc=App.newDocument()

wczytuje Środowisko pracy Part i tworzy nowy dokument.

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

Linia to w rzeczywistości odcinek, stąd punkt początkowy i końcowy.

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

Dodaje to typ obiektu Part do dokumentu i przypisuje reprezentację kształtu segmentu linii do właściwości „Kształt” dodanego obiektu. Ważne jest, aby zrozumieć tutaj, że użyliśmy prymitywu geometrycznego (Part.LineSegment), aby utworzyć z niego TopoShape (metoda toShape ()). Do dokumentu można dodawać tylko kształty. W programie FreeCAD prymitywy geometrii są używane jako „konstrukcje budowlane” dla kształtów.

doc.recompute()

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

Zauważ, że segment linii może być utworzony poprzez określenie jego punktu początkowego i końcowego bezpośrednio w konstruktorze, na przykład Part.LineSegment(point1,point2). Możemy też utworzyć linię domyślną i ustawić jej właściwości później, tak jak zrobiliśmy to tutaj.

Linia może być również tworzona za pomocą:

import FreeCAD
import Part
DOC = FreeCAD.newDocument()

def mycreateLine(pt1, pt2, objName):
    obj = DOC.addObject("Part::Line", objName)
    obj.X1 = pt1[0]
    obj.Y1 = pt1[2]
    obj.Z1 = pt1[2]

    obj.X2 = pt2[0]
    obj.Y2 = pt2[1]
    obj.Z2 = pt2[2]

    DOC.recompute()
    return obj

line = mycreateLine((0,0,0), (0,10,0), "LineName")


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

lub z użyciem:

import FreeCAD
import Part
DOC = FreeCAD.newDocument()

def mycreateCircle(rad, objName):
    obj = DOC.addObject("Part::Circle", objName)
    obj.Radius = rad

    DOC.recompute()
    return obj

circle = mycreateCircle(5.0, "CircleName")


Zauważ ponownie, użyliśmy okręgu (geometria prymitywna) do skonstruowania z niego kształtu. Oczywiście nadal możemy uzyskać dostęp do naszej geometrii konstrukcyjnej później, wykonując to zadanie:

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

Tutaj przyjmujemy kształt naszego obiektu f, następnie bierzemy jego listę krawędzi. W tym przypadku będzie tylko jedna, ponieważ wykonaliśmy cały kształt z jednego okręgu, więc bierzemy tylko pierwszą pozycję z listy krawędzi i pobieramy jej krzywą. Każda krawędź ma krzywą, która jest geometrią pierwotną, na której się opiera.

Przejdź do strony tworzenie skryptów danych topologicznych, jeśli chcesz wiedzieć więcej.

Poradniki