Część: Utwórz kształt z siatki

From FreeCAD Documentation
Revision as of 19:39, 5 July 2023 by Kaktus (talk | contribs) (Created page with "Analiza i naprawa siatki, jeśli to konieczne, powinna być wykonana ręcznie przed uruchomieniem narzędzia {{Button|16px '''Utwórz kształt z siatki ...'''}}. Odpowiednie narzędzia do tego zadania dostępne są w środowisku pracy 24px Siatka.")

Część: Utwórz kształt z siatki

Lokalizacja w menu
Part → Utwórz kształt z siatki ...
Środowisko pracy
Część
Domyślny skrót
brak
Wprowadzono w wersji
-
Zobacz także
Utwórz bryłę, Udoskonal kształt, Utwórz obiekt punktów z siatki

Wprowadzenie

Polecenie Utwórz kształt z siatki tworzy kształt z obiektu siatkowego. Obiekty siatkowe mają ograniczone możliwości edycji w FreeCAD, konwersja ich do kształtu pozwoli na ich użycie z wieloma innymi narzędziami logicznymi i modyfikującymi.

Operacja odwrotna to Siatka z kształtu ze środowiska pracy Siatki.

Użycie

  1. Wybierz obiekt siatki w oknie Widoku drzewa.
  2. Przejdź do menu Część → Utwórz kształt z siatki ...
  3. Pojawi się wyskakujące okienko z pytaniem o tolerancję szycia kształtu, domyślną wartością jest 0.1.
  4. Kształt z obiektu siatki jest tworzony jako oddzielny nowy obiekt.

Analiza i naprawa siatki, jeśli to konieczne, powinna być wykonana ręcznie przed uruchomieniem narzędzia Utwórz kształt z siatki .... Odpowiednie narzędzia do tego zadania dostępne są w środowisku pracy Siatka.

After creation of a Shape, it may be useful to use Convert to solid (necessary for boolean operations) and Refine shape.

Links

Scripting

Creating a Shape from a Mesh can be done by using the makeShapeFromMesh method from a Part TopoShape; you need to specify the source mesh and tolerance, and assign the result to a new Part Feature object.

Notice that the mesh must be recalculated before it is converted to a Shape, otherwise there won't be topology information, and the conversion won't be successful.

import FreeCAD as App
import Part

doc = App.newDocument()
mesh = doc.addObject("Mesh::Cube", "Mesh")
mesh.recompute()

solid = doc.addObject("Part::Feature", "Shape")
shape = Part.Shape()
shape.makeShapeFromMesh(mesh.Mesh.Topology, 0.1)

solid.Shape = shape
solid.Placement.Base = App.Vector(15, 0, 0)
solid.purgeTouched()
doc.recompute()