Rysunek Roboczy: Krzywa Bézier'a

From FreeCAD Documentation
This page is a translated version of the page Draft BezCurve and the translation is 100% complete.

Rysunek Roboczy: Krzywa Béziera

Lokalizacja w menu
Kreślenie → Narzędzia krzywych Béziera → Krzywa Béziera
Środowisko pracy
Rysunek Roboczy, Architektura
Domyślny skrót
B Z
Wprowadzono w wersji
0.14
Zobacz także
Sześcienna krzywa Béziera, Krzywa złożona

Opis

Polecenie Krzywa Bézier'a tworzy krzywą Bézier'a na podstawie kilku punktów.

Polecenie tworzy pojedynczą krzywą Béziera o DANEStopniu równym number_of_points - 1. Można ją przekształcić w fragmentaryczną krzywą Béziera, zmniejszając tę właściwość.

Polecenia Sześcienna krzywa Bézier'a i Sześcienna krzywa Bézier'a używają punktów kontrolnych do zdefiniowania położenia i krzywizny odcinka krzywej. Z kolei polecenie Krzywa złożona określa dokładne punkty, przez które będzie przechodzić krzywa.

Krzywa Bezier'a zdefiniowana przez wiele punktów

Użycie

Zapoznaj się również z informacjami na stronie: Tacka narzędziowa, Przyciąganie oraz Wiązania.

  1. Istnieje kilka sposobów wywołania polecenia:
    • Naciśnij przycisk Krzywa Bezier'a.
    • Wybierz z menu opcję Kreślenie → Narzędzia krzywych Béziera → Krzywa Bézier'a.
    • Użyj skrótu klawiaturowego: B, a następnie Z. dostępne w wersji 0.20
  2. Zostanie otwarty panel zadań Krzywa Bézier'a. Więcej informacji można znaleźć w sekcji Opcje.
  3. Wybierz pierwszy punkt w oknie widoku 3D lub wpisz współrzędne i naciśnij przycisk Wprowadź punkt.
  4. Wybierz dodatkowe punkty w oknie widoku 3D lub wpisz współrzędne i naciśnij przycisk Wprowadź punkt.
  5. Naciśnij Esc lub przycisk Zamknij, aby zakończyć polecenie.

Opcje

Skróty klawiaturowe jedno znakowe dostępne w panelu zadań można zmienić. Zobacz stronę Preferencji. Skróty wymienione tutaj są skrótami domyślnymi (w wersji 0.22).

  • Aby ręcznie wprowadzić współrzędne, wprowadź składowe X, Y i Z, a następnie naciśnij klawisz Enter po każdej z nich. Możesz też nacisnąć przycisk Wprowadź punkt, gdy masz już żądane wartości. Wskazane jest, aby przed wprowadzeniem współrzędnych wysunąć kursor poza obszar okna widoku 3D.
  • Wciśnij R lub kliknij pole wyboru Względnie, aby przełączyć tryb względny. Jeśli tryb względny jest włączony, współrzędne są względne do ostatniego punktu, jeśli jest dostępny, w przeciwnym razie są one względne do początku układu współrzędnych.
  • Naciśnij G lub kliknij pole wyboru Globalnie, aby przełączyć tryb globalny. Jeśli tryb globalny jest włączony, współrzędne odnoszą się do globalnego układu współrzędnych, w przeciwnym razie odnoszą się do układu współrzędnych płaszczyzny roboczej. dostępne w wersji 0.20
  • Naciśnij F lub kliknij pole wyboru Wypełniony, aby przełączyć tryb wypełnienia. Jeśli tryb wypełnienia jest włączony, utworzona krzywa będzie miała właściwość DANEUtwórz ścianę ustawione na PRAWDA i będzie miała wypełnioną ścianę, pod warunkiem, że jest zamknięta i nie przecina się samoczynnie. Należy pamiętać, że krzywa przecinająca się z powierzchnią nie będzie wyświetlana poprawnie, dla takiej krzywej DANEUtwórz ścianę musi być ustawiona na FAŁSZ.
  • Naciśnij N lub kliknij pole wyboru Kontynuuj, aby włączyć tryb kontynuacji. Jeśli tryb kontynuacji jest włączony, polecenie uruchomi się ponownie po użyciu Zakończ lub Zamknij, lub po utworzeniu zamkniętej krzywej poprzez przyciągnięcie do pierwszego punktu krzywej, umożliwiając dalsze tworzenie krzywych.
  • Naciśnij / lub przycisk Cofnij, aby anulować ostatni punkt.
  • Naciśnij A lub przycisk Zakończ, aby zakończyć polecenie i pozostawić krzywą otwartą.
  • Naciśnij O lub przycisk Zamknij, aby zakończyć polecenie i zamknąć krzywą. Zamkniętą krzywą można również utworzyć, przyciągając ją do pierwszego punktu krzywej.
  • Naciśnij W lub przycisk Wyczyść, aby usunąć już umieszczone segmenty, ale kontynuować pracę od ostatniego punktu.
  • Naciśnij U lub przycisk Ustaw płaszczyznę roboczą, aby ustawić bieżącą płaszczyznę roboczą w orientacji określonej przez ostatni i poprzedni punkt.
  • Naciśnij S, aby włączyć lub wyłączyć Przyciąganie.
  • Naciśnij Esc lub przycisk Zamknij, aby zakończyć polecenie.

Uwagi

  • Krzywa Bezier'a środowiska Rysunek Roboczy może być edytowana za pomocą polecenia Edytuj.
  • OpenCascade, a tym samym FreeCAD, nie obsługuje krzywych Bézier'a o stopniach większych niż 25. W praktyce nie powinno to stanowić problemu, ponieważ większość użytkowników zazwyczaj używa krzywych Bézier'a o stopniach od 3 do 5.

Właściwości

Zapoznaj się również z informacjami na stronie: Edytor właściwości.

Obiekt Krzywa Bezier'a środowiska Rysunek Roboczy wywodzi się z obiektu Część: Part2DObject i dziedziczy wszystkie jego właściwości. Posiada on również następujące dodatkowe właściwości:

Dane

Rysunek Roboczy

  • DANEObszar (Area): (tylko do odczytu) określa obszar powierzchni krzywej. Wartość będzie 0.0 jeśli właściwość DANEUtwórz ścianę ma wartość FAŁSZ lub ściana nie może zostać utworzona.
  • DANEZamknięta (Bool): określa czy krzywa jest zamknięta czy nie. Jeśli krzywa jest początkowo otwarta, wartość ta wynosi FAŁSZ, ustawienie jej na PRAWDA spowoduje narysowanie segmentu w celu zamknięcia krzywej. Jeśli krzywa jest początkowo zamknięta, wartość ta wynosi PRAWDA, ustawienie jej na FAŁSZ spowoduje usunięcie ostatniego segmentu i otwarcie krzywej.
  • DANECiągła (IntegerList): (tylko do odczytu) określa ciągłość krzywej.
  • DANEStopień (Integer): określa stopień krzywej.
  • DANEDługość (Length): (tylko do odczytu) określa całkowitą długość krzywej.
  • DANEUtwórz ścianę (Bool): określa czy krzywa tworzy powierzchnię czy nie. Jeśli jest PRAWDA, tworzona jest ściana, w przeciwnym razie tylko obwód jest uważany za część obiektu. Ta właściwość działa tylko wtedy, gdy właściwość DANEZamknięta ma wartość PRAWDA i jeśli krzywa nie przecina się samoczynnie.
  • DANEPunkty (VectorList): określa punkty kontrolne krzywej w jej lokalnym układzie współrzędnych.

Widok

Rysunek Roboczy

  • WIDOKRozmiar strzałki (Length): określa rozmiar symbolu wyświetlanego na końcu krzywej.
  • WIDOKTyp strzałki (Enumeration): określa typ symbolu wyświetlanego na końcu krzywej, którym może być Punkt, Okrąg, Strzałka, Grot lub Grot-2.
  • WIDOKZakończenie strzałki (Bool): określa, czy na końcu krzywej ma być wyświetlany symbol, aby można go było użyć jako linii adnotacji.
  • WIDOKWzór (Enumeration): określa Wzór, którym ma być wypełniona powierzchnia zamkniętej krzywej. Ta właściwość działa tylko jeśli właściiwość DANEUtwórz ścianę ma wartość PRAWDA i jeśli właściwość WIDOKTryb wyświetlania ma wartość Cieniowany z krawędziami.
  • WIDOKRozmiar wzoru (Float): określa rozmiar Wzoru.

Tworzenie skryptów

Zobacz również stronę: Dokumentacja API generowana automatycznie oraz Podstawy pisania skryptów dla FreeCAD.

Aby utworzyć Krzywa Bezier'a środowiska Rysunek Roboczy użyj metody make_bezcurve modułu Rysunek Roboczy (dostępne w wersji 0.19). Ta metoda zastępuje przestarzałą metodę makeBezCurve.

bezcurve = make_bezcurve(pointslist, closed=False, placement=None, face=None, support=None, degree=None)
bezcurve = make_bezcurve(Part.Wire, closed=False, placement=None, face=None, support=None, degree=None)
  • Tworzy obiekt bezcurve z podaną listą punktów, pointslist.
    • Każdy punkt na liście jest zdefiniowany przez jego FreeCAD.Vector, z jednostkami w milimetrach.
    • Alternatywnie, dane wejściowe mogą być typu Part.Wire, z których wyodrębniane są punkty.
  • Jeśli closed ma wartość Prawda, lub jeśli pierwszy i ostatni punkt mają identyczne wartości, krzywa jest zamknięta.
  • Jeśli placement ma wartość Brak, kształt jest tworzony w punkcie początkowym.
  • Jeśli parametr ściana ma wartość Prawda, a krzywa jest zamknięta, to krzywa będzie ścianą, czyli będzie wyglądała na wypełnioną.

Przykład:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1000, 1000, 0)
p3 = App.Vector(2000, 0, 0)
p4 = App.Vector(1500, -2000, 0)

bezcurve1 = Draft.make_bezcurve([p1, p2, p3, p4], closed=True)
bezcurve2 = Draft.make_bezcurve([p4, 1.3*p2, p1, 4.1*p3], closed=True)
bezcurve3 = Draft.make_bezcurve([1.7*p3, 1.5*p4, 2.1*p2, p1], closed=True)

doc.recompute()