Draft Offset/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "Zobacz również: [https://www.freecadweb.org/api Dokumentacja API generowana automatycznie] oraz Podstawy pisania skryptów dla FreeCAD.")
No edit summary
 
(45 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Page_in_progress}}
<languages/>
<languages/>


Line 5: Line 4:
|[[Draft_Mirror/pl|Odbicie lustrzane]]
|[[Draft_Mirror/pl|Odbicie lustrzane]]
|[[Draft_Trimex/pl|Przytnij]]
|[[Draft_Trimex/pl|Przytnij]]
|[[Draft_Module/pl|Środowisko pracy Rysunek Roboczy]]
|[[Draft_Workbench/pl|Środowisko pracy Rysunek Roboczy]]
|IconL=Draft_Mirror.svg
|IconL=Draft_Mirror.svg
|IconR=Draft_Trimex.svg
|IconR=Draft_Trimex.svg
Line 15: Line 14:
|Name/pl=Rysunek Roboczy: Odsunięcie
|Name/pl=Rysunek Roboczy: Odsunięcie
|MenuLocation=Modyfikacja → Odsunięcie
|MenuLocation=Modyfikacja → Odsunięcie
|Workbenches=[[Draft_Module/pl|Rysunek Roboczy]], [[Arch_Module/pl|Architektura]]
|Workbenches=[[Draft_Workbench/pl|Rysunek Roboczy]], [[Arch_Workbench/pl|Architektura]]
|Shortcut={{KEY|O}} {{KEY|S}}
|Shortcut={{KEY|O}} {{KEY|S}}
|SeeAlso=[[Draft_Scale/pl|Skala]], [[Part_Offset2D/pl|Odsunięcie 2D]]
|SeeAlso=[[Part_Offset2D/pl|Odsunięcie 2D]]
}}
}}


<span id="Description"></span>
==Opis==
==Opis==


Narzędzie '''Odsunięcie''' przesuwa zaznaczony obiekt o zadaną odległość ''(przesunięcie)'' w kierunku prostopadłym względem siebie.
Narzędzie [[Image:Draft_Offset.svg|24px]] '''Odsunięcie''' przesuwa każdy segment wybranego obiektu o zadaną odległość lub tworzy przesuniętą kopię wybranego obiektu.

Zazwyczaj narzędzie to jest używane w trybie kopiowania do tworzenia przesuniętych kopii linii bazowej z pozostawieniem tej linii w tym samym miejscu. Odsunięte kopie są skalowanymi wersjami oryginalnego obiektu. Aby utworzyć inne skalowane kopie użyj funkcji [[Draft_Scale/pl|Skala]]. Aby utworzyć dokładne kopie z przesunięciem na odległość, użyj funkcji [[Draft_Move/pl|Przesuń]].


[[Image:Draft_Offset_example.jpg|400px]]
[[Image:Draft_Offset_example.jpg|400px]]
{{Caption|Odsunięcie linii o określoną odległość od jednej z jej krawędzi}}
{{Caption|Odsunięcie linii łamanej}}


<span id="Usage"></span>
==Użycie==
==Użycie==


Zobacz także strony: [[Draft_Snap/pl|Rysunek Roboczy: Przyciąganie]] i [[Draft_Constrain/pl|Rysunek Roboczy: Wiązania]].
# Wybierz obiekt, który chcesz przesunąć.
# Naciśnij przycisk {{Button|[[Image:Draft_Offset.svg|16px]] [[Draft_Offset/pl|Odsunięcie]]}} lub wciśnij klawisze {{KEY|O}} i {{KEY|S}}. Jeśli żaden obiekt nie jest wybrany, zostaniesz poproszony o wybranie jednego.
# Kliknij punkt w widoku 3D lub wpisz odległość.


# Opcjonalnie wybierz jeden obiekt. Obiekt musi leżeć na aktualnej [[Draft_SelectPlane/pl|płaszczyźnie roboczej]].
Odległość użyta do utworzenia odsunięcia jest prostopadła do jednej z krawędzi oryginalnego kształtu, w zależności od położenia kursora. Jeśli kursor zostanie przesunięty bliżej innej krawędzi, to ta krawędź stanie się teraz punktem odniesienia dla odległości. Przytrzymaj klawisz {{KEY|Shift}}, aby zachować bieżącą krawędź odniesienia mimo zbliżania kursora do innych krawędzi.
# Istnieje kilka sposobów, aby wywołać to polecenie:
#* Naciśnij przycisk {{Button|[[Image:Draft_Offset.svg|16px]] '''Odsunięcie'''}}.
#* Wybierz z menu opcję {{MenuCommand|Modifikacja → [[Image:Draft_Offset.svg|16px]] Odsunięcie}}.
#* Użyj skrótu klawiaturowego: {{KEY|O}}, a następnie {{KEY|S}}.
# Jeśli nie wybrałeś jeszcze obiektu: wybierz obiekt w oknie [[3D_view/pl|widoku 3D]].
# Otwiera się panel zadań {{MenuCommand|Odsunięcie}}. Zobacz [[#Opcje|Opcje]], aby uzyskać więcej informacji.
# Aby zdefiniować odległość przesunięcia, wykonaj jedną z poniższych czynności:
#* Wybierz punkt w oknie [[3D_view/pl|widoku 3D]]
#* Wprowadź wartość:
#*# Upewnij się, że kursor znajduje się po właściwej stronie obiektu w oknie [[3D_view/pl|widoku 3D]].
#*# Nie wysuwaj kursora poza okno [[3D_view/pl|widoku 3D]].
#*# Wprowadź {{MenuCommand|Dystans}}.
#*# Naciśnij klawisz {{KEY|Enter}} aby zakończyć polecenie.


<span id="Options"></span>
==Opcje==
==Opcje==


Skróty klawiaturowe jedno znakowe dostępne w panelu zadań można zmienić. Zobacz stronę [[Draft_Preferences/pl|Preferencji]]. Skróty wymienione tutaj są skrótami domyślnymi ''(w wersji 0.22)''.
* Press {{KEY|P}} or click the checkbox to toggle ''copy'' mode. If copy mode is on, the Offset tool will keep the original shape in its place but will make a scaled copy at the chosen point.
* Hold {{KEY|Alt}} while picking the point to also toggle copy mode. Keeping {{KEY|Alt}} pressed will allow you to continue placing offset copies; release {{KEY|Alt}} to finish the operation and see all offset shapes.
* Click the "OCC-style" checkbox to toggle ''OCC'' mode. This will create an offset from both sides of an line segment, which will produce a specially closed shape with rounded edges at the ends of the segments.
:{{Emphasis|Note:}} with this style the original segments will be removed, so use copy mode to preserve the original edges.
* Hold {{KEY|Ctrl}} while offsetting to force [[Draft_Snap|snapping]] your point to the nearest snap location, independently of the distance.
* Hold {{KEY|Shift}} to keep the offset distance referred to the current segment, and avoid picking another reference.
* Press {{KEY|Esc}} or the {{button|Close}} button to abort the current command; offset copies already placed will remain.


* Jeśli pole wyboru {{MenuCommand|Odsunięcie w stylu OpenCascade}} jest zaznaczone, używany jest specjalny styl odsunięcia: otwarte [[Draft_Wire/pl|polilinie]] są odsunięte po obu stronach, a nowe krawędzie są łączone z zaokrąglonymi rogami. Działa to tylko dla planarnych obiektów z co najmniej dwoma krawędziami. Zauważ, że przy tym stylu tworzony jest nowy obiekt nieparametryczny, a jeśli tryb kopiowania jest wyłączony, oryginalny obiekt jest usuwany.
* Naciśnij {{KEY|C}} lub kliknij pole wyboru {{MenuCommand|Copy}}, aby przełączyć tryb kopiowania. Jeśli tryb kopiowania jest włączony, polecenie utworzy kopię z przesunięciem zamiast przesunięcia oryginalnego obiektu.
* Przytrzymanie klawisza {{KEY|Alt}} przed wybraniem punktów w oknie [[3D_view/pl|widoku 3D]] również przełączy tryb kopiowania. Gdy klawisz {{KEY|Alt}} jest przytrzymany, można wybrać wiele punktów przesunięcia. Aby zakończyć polecenie i zobaczyć utworzone kopie, należy puścić klawisz {{KEY|Alt}}.
* Przytrzymaj klawisz {{KEY|Shift}}, aby zachować odległość przesunięcia związaną z bieżącym segmentem.
* Naciśnij klawisz {{KEY|S}}, aby włączyć lub wyłączyć [[Draft_Snap/pl|przyciąganie]].
* Naciśnij klawisz {{KEY|Esc}} lub przycisk {{Button|Zamknij}}, aby zakończyć polecenie.

<span id="Notes"></span>
==Uwagi==

* Aby utworzyć przesuniętą wersję [[Draft_BSpline/pl|krzywą złożoną]], jej punkty są przesuwane indywidualnie, a z nowych punktów obliczana jest nowa krzywa złożona. Ta nowa krzywa nie jest równoległa do krzywej oryginalnej. Aby uzyskać dokładne przesunięcie równoległe [[Draft_BSpline/pl|krzywej złożonej]] należy użyć polecenia [[Part_Offset2D/pl|Part: Odsunięcie 2D]].
* Polecenie nie radzi sobie z [[Draft_BezCurve/pl|krzywą Beziera]]. Zamiast niego użyj polecenia [[Part_Offset2D/pl|Part: Odsunięcie 2D]].

<span id="Scripting"></span>
==Tworzenie skryptów==
==Tworzenie skryptów==


Zobacz również: [https://www.freecadweb.org/api Dokumentacja API generowana automatycznie] oraz
Zobacz również stronę: [https://freecad.github.io/SourceDoc/ Dokumentacja API generowana automatycznie] oraz [[FreeCAD_Scripting_Basics/pl|Podstawy tworzenia skryptów FreeCAD]].
[[FreeCAD Scripting Basics/pl|Podstawy pisania skryptów dla FreeCAD]].


Aby odsunąć obiekty należy użyć metody {{incode|offset}} modułu Rysunek Roboczy. Metoda ta może obsługiwać tylko obiekty typu[[Draft_Wire/pl|polilinia]], [[Draft_Circle/pl|okrąg]], [[Draft_Rectangle/pl|prostokąt]], [[Draft_Polygon/pl|wielokąt]] i [[Draft_BSpline/pl|linia złożona]].
Narzędzie '''Odsunięcie''' może być używane w [[macros/pl|makrodefinicjach]] i z konsoli [[Python/pl|Python]] za pomocą następującej funkcji:


{{Code|code=
{{Code|code=
Offsetobj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False)
offset_obj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False)
}}
}}


* {{incode|obj}} to obiekt, który ma zostać odsunięty.
* Offsets the given {{incode|obj}} wire by applying the given {{incode|delta}}, defined as a vector, to its first vertex.
* {{incode|delta}} zawiera informacje o odsunięciu:
* If {{incode|copy}} is {{incode|True}} another object is created instead of offsetting the original object.
** Dla [[Draft_Wire/pl|polilinii]], [[Draft_Rectangle/pl|prostokątów]] i [[Draft_Polygon/pl|wielokątów]] jest to wektor przesunięcia, który musi być prostopadły do pierwszego segmentu obiektu.
* If {{incode|bind}} is {{incode|True}}, and provided the wire object is open, the original and the offset wire will be tied at their endpoints, forming a face.
** Dla [[Draft_Circle/pl|okręgu]] jest to nowy promień.
** If {{incode|sym}} is {{incode|True}}, {{incode|bind}} must be {{incode|True}} as well, and the offset is made on both sides of the wire, the total width being the length of the given vector.
** Dla [[Draft_BSpline/pl|linii złożonej]] jest to lista nowych punktów.
* If {{incode|occ}} is {{incode|True}}, it will use OCC-style offsetting: it will offset from both sides, then tie the new wires together, and round the corners.
* Jeśli wartość opcji {{incode|copy}} wynosi {{incode|True}}, oryginalny obiekt jest zachowywany i tworzony jest nowy obiekt.
* {{incode|Offsetobj}} is returned with the original offset object, or with the new copy.
* Jeśli wartość opcji {{incode|bind}} wynosi {{incode|True}}, tworzona jest ściana poprzez połączenie kształtu oryginalnego obiektu z kształtem jego odsunięcia. Działa to tylko dla otwartych [[Draft_Wire/pl|polilinii]].
* Jeśli wartość parametru {{incode|sym}} wynosi {{incode|True}}, a wartość parametru {{incode|bind}} również wynosi {{incode|True}}, to odsunięcie jest wykonywane po obu stronach oryginalnego obiektu, a całkowita szerokość jest równa długości podanego wektora. Działa to tylko dla otwartych [[Draft_Wire/pl|polilinii]].
* Jeśli wartość parametru {{incode|occ}} wynosi {{incode|True}} używane jest odsunięcie w stylu OCC. Zobacz [[#Opcje|Opcje]]. Jeśli wartość parametru {{incode|occ}} wynosi {{incode|True}}, argumenty {{incode|bind}} i {{incode|sym}} są ignorowane.
* {{incode|offset_obj}} jest zwracany z oryginalnym obiektem odsunięcia, lub z nowym obiektem. Jeśli wartość parametru {{incode|bind}} wynosi {{incode|True}} lub wartość parametru {{incode|occ}} wynosi {{incode|True}}, to nowy obiekt jest obiektem {{incode|[[Part_Feature/pl|Część: Cecha]]}}.


Przykład:
Przykład:


{{Code|code=
{{Code|code=
import FreeCAD, Draft
import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1500, 2000, 0)
p3 = App.Vector(4000, 0, 0)


p1 = FreeCAD.Vector(0, 0, 0)
wire = Draft.make_wire([p1, p2, p3])
doc.recompute()
p2 = FreeCAD.Vector(1500, 2000, 0)
p3 = FreeCAD.Vector(4000, 0, 0)


Wire = Draft.makeWire([p1, p2, p3])
vector = App.Vector(-200, 150, 0)
offset1 = Draft.offset(wire, vector, copy=True, bind=True, sym=True)
offset2 = Draft.offset(wire, 3*vector, copy=True)
offset3 = Draft.offset(wire, 6*vector, copy=True)
offset4 = Draft.offset(wire, 9*vector, copy=True)
offset5 = Draft.offset(wire, 1.5*vector, copy=True, occ=True)


doc.recompute()
vector = FreeCAD.Vector(0, 500, 0)
Offset_1 = Draft.offset(Wire, vector, copy=True)
Offset_2 = Draft.offset(Wire, 3*vector, copy=True)
Offset_3 = Draft.offset(Wire, 6*vector, copy=True)
Offset_4 = Draft.offset(Wire, 9*vector, copy=True)
Offset_5 = Draft.offset(Wire, 1.5*vector, copy=True, occ=True)
}}
}}


Line 88: Line 116:
|[[Draft_Mirror/pl|Odbicie lustrzane]]
|[[Draft_Mirror/pl|Odbicie lustrzane]]
|[[Draft_Trimex/pl|Przytnij]]
|[[Draft_Trimex/pl|Przytnij]]
|[[Draft_Module/pl|Środowisko pracy Rysunek Roboczy]]
|[[Draft_Workbench/pl|Środowisko pracy Rysunek Roboczy]]
|IconL=Draft_Mirror.svg
|IconL=Draft_Mirror.svg
|IconR=Draft_Trimex.svg
|IconR=Draft_Trimex.svg

Latest revision as of 07:43, 9 January 2024

Rysunek Roboczy: Odsunięcie

Lokalizacja w menu
Modyfikacja → Odsunięcie
Środowisko pracy
Rysunek Roboczy, Architektura
Domyślny skrót
O S
Wprowadzono w wersji
-
Zobacz także
Odsunięcie 2D

Opis

Narzędzie Odsunięcie przesuwa każdy segment wybranego obiektu o zadaną odległość lub tworzy przesuniętą kopię wybranego obiektu.

Odsunięcie linii łamanej

Użycie

Zobacz także strony: Rysunek Roboczy: Przyciąganie i Rysunek Roboczy: Wiązania.

  1. Opcjonalnie wybierz jeden obiekt. Obiekt musi leżeć na aktualnej płaszczyźnie roboczej.
  2. Istnieje kilka sposobów, aby wywołać to polecenie:
    • Naciśnij przycisk Odsunięcie.
    • Wybierz z menu opcję Modifikacja → Odsunięcie.
    • Użyj skrótu klawiaturowego: O, a następnie S.
  3. Jeśli nie wybrałeś jeszcze obiektu: wybierz obiekt w oknie widoku 3D.
  4. Otwiera się panel zadań Odsunięcie. Zobacz Opcje, aby uzyskać więcej informacji.
  5. Aby zdefiniować odległość przesunięcia, wykonaj jedną z poniższych czynności:
    • Wybierz punkt w oknie widoku 3D
    • Wprowadź wartość:
      1. Upewnij się, że kursor znajduje się po właściwej stronie obiektu w oknie widoku 3D.
      2. Nie wysuwaj kursora poza okno widoku 3D.
      3. Wprowadź Dystans.
      4. Naciśnij klawisz Enter 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).

  • Jeśli pole wyboru Odsunięcie w stylu OpenCascade jest zaznaczone, używany jest specjalny styl odsunięcia: otwarte polilinie są odsunięte po obu stronach, a nowe krawędzie są łączone z zaokrąglonymi rogami. Działa to tylko dla planarnych obiektów z co najmniej dwoma krawędziami. Zauważ, że przy tym stylu tworzony jest nowy obiekt nieparametryczny, a jeśli tryb kopiowania jest wyłączony, oryginalny obiekt jest usuwany.
  • Naciśnij C lub kliknij pole wyboru Copy, aby przełączyć tryb kopiowania. Jeśli tryb kopiowania jest włączony, polecenie utworzy kopię z przesunięciem zamiast przesunięcia oryginalnego obiektu.
  • Przytrzymanie klawisza Alt przed wybraniem punktów w oknie widoku 3D również przełączy tryb kopiowania. Gdy klawisz Alt jest przytrzymany, można wybrać wiele punktów przesunięcia. Aby zakończyć polecenie i zobaczyć utworzone kopie, należy puścić klawisz Alt.
  • Przytrzymaj klawisz Shift, aby zachować odległość przesunięcia związaną z bieżącym segmentem.
  • Naciśnij klawisz S, aby włączyć lub wyłączyć przyciąganie.
  • Naciśnij klawisz Esc lub przycisk Zamknij, aby zakończyć polecenie.

Uwagi

Tworzenie skryptów

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

Aby odsunąć obiekty należy użyć metody offset modułu Rysunek Roboczy. Metoda ta może obsługiwać tylko obiekty typupolilinia, okrąg, prostokąt, wielokąt i linia złożona.

offset_obj = offset(obj, delta, copy=False, bind=False, sym=False, occ=False)
  • obj to obiekt, który ma zostać odsunięty.
  • delta zawiera informacje o odsunięciu:
  • Jeśli wartość opcji copy wynosi True, oryginalny obiekt jest zachowywany i tworzony jest nowy obiekt.
  • Jeśli wartość opcji bind wynosi True, tworzona jest ściana poprzez połączenie kształtu oryginalnego obiektu z kształtem jego odsunięcia. Działa to tylko dla otwartych polilinii.
  • Jeśli wartość parametru sym wynosi True, a wartość parametru bind również wynosi True, to odsunięcie jest wykonywane po obu stronach oryginalnego obiektu, a całkowita szerokość jest równa długości podanego wektora. Działa to tylko dla otwartych polilinii.
  • Jeśli wartość parametru occ wynosi True używane jest odsunięcie w stylu OCC. Zobacz Opcje. Jeśli wartość parametru occ wynosi True, argumenty bind i sym są ignorowane.
  • offset_obj jest zwracany z oryginalnym obiektem odsunięcia, lub z nowym obiektem. Jeśli wartość parametru bind wynosi True lub wartość parametru occ wynosi True, to nowy obiekt jest obiektem Część: Cecha.

Przykład:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(1500, 2000, 0)
p3 = App.Vector(4000, 0, 0)

wire = Draft.make_wire([p1, p2, p3])
doc.recompute()

vector = App.Vector(-200, 150, 0)
offset1 = Draft.offset(wire, vector, copy=True, bind=True, sym=True)
offset2 = Draft.offset(wire, 3*vector, copy=True)
offset3 = Draft.offset(wire, 6*vector, copy=True)
offset4 = Draft.offset(wire, 9*vector, copy=True)
offset5 = Draft.offset(wire, 1.5*vector, copy=True, occ=True)

doc.recompute()