Placement/pl

Przegląd
Umiejscowienie to sposób w jaki FreeCAD określa położenie i pozycję (orientację) obiektu w przestrzeni. Umiejscowienie może być określone w wielu formach i manipulowane poprzez skrypty, Edytor właściwości lub wybierając aby otworzyć Panel zadań umiejscowienie.

Dostęp do atrybutu Umiejscowienie
Atrybuty Umiejscowienia obiektu mogą być dostępne i modyfikowane na 3 sposoby:







Formy umiejscowienia
Umiejscowienie jest przechowywane wewnętrznie jako pozycja i obrót (oś obrotu i kąt przekształcone w quaternion). Chociaż istnieje kilka form określania obrotu, na przykład środek obrotu, jest on używany tylko do wpływania na obliczanie obrotu i nie jest przechowywany do późniejszych operacji. Podobnie, jeśli określona jest oś obrotu o wartości (1,1,1), może ona zostać znormalizowana podczas przechowywania w kwaternionie i pojawić się jako (0.58, 0.58, 0.58) podczas późniejszego przeglądania obiektu.

Kąt, oś i pozycja
Umiejscowienie = [Kąt, Oś i Pozycja]

Pierwsza forma Umiejscowienia ustala położenie obiektu w przestrzeni za pomocą Pozycji i opisuje jego orientację jako pojedynczy obrót wokół osi. Kąt = r jest skalarem wskazującym wielkość obrotu obiektu wokół Osi. Wprowadzany jako stopnie, ale przechowywany wewnętrznie jako radiany.

Oś = (ax,ay,az) jest wektorem opisującym oś obrotu (patrz uwaga o osi obrotu). Przykładami są: (1,0,0) ==> wokół osi X, (0,1,0) ==> wokół osi Y, (0,0,1) ==> wokół osi Z, (0,71,0,71,0) ==> wokół prostej y=x.

Zauważ, że możliwe jest również translacja (przemieszczanie) obiektu wzdłuż tej osi obrotu (ruch osiowy) poprzez wpisanie odległości do przemieszczenia w polu i kliknięcie. (Jednym ze sposobów wyobrażenia sobie ruchu osiowego jest samolot ze śmigłem obracającym się na dziobie - śmigło obraca się wokół osi obrotu, podczas gdy samolot porusza się wzdłuż tej samej osi). Wartości w wektorze można traktować jako względną wielkość ruchu, który zostanie wykonany w danym kierunku. Na przykład w przypadku y=x (0,71,0,71,0) wartość zawarta w polu wyboru osi zostanie zastosowana w równej mierze w kierunkach X i Y, ale w kierunku Z nie nastąpi żaden ruch. Pozycja = (x,y,z) to wektor opisujący punkt, od którego będzie obliczana geometria obiektu (w efekcie jest to "lokalny początek" obiektu). Należy zauważyć, że w skryptach do oznaczenia składowej położenia obiektu Placement.Base jest używana wartość Placement.Base. Edytor właściwości nazywa tę wartość pozycją, a panel zadań umieszczania - przesunięciem.

Pozycja i odchylenie, pochylenie oraz obrót


Umiejscowienie = [Pozycja, odchylenie, pochylenie, obrót].

Druga forma Umiejscowienia określa położenie obiektu w przestrzeni za pomocą Pozycji (tak jak w pierwszej formie), ale opisuje jego orientację za pomocą Kątów odchylenia, pochylenia i obrotu. Kąty te są czasem określane jako kąty Eulera lub kąty Tait-Bryana. Odchylenie, Pochylenie i Obrót to powszechnie używane w lotnictwie określenia orientacji (lub położenia) ciała.

Położenie = (x,y,z) to wektor opisujący punkt, od którego będzie obliczana geometria obiektu (w efekcie "lokalne odniesienie położenia" obiektu).

Odchylenie-Pochylenie-Obrót = (y,p,r) to krotka określająca położenie obiektu. Wartości dla y,p,r określają stopnie obrotu wokół każdej z osi z,y,x (patrz uwaga).

App.Rotation(10,20,30) = Kąt Eulera

Odchylenie = 10° (Z)

Pochylenie = 20° (Y)

Obrót = 30° (X)

Odchylenie to obrót wokół osi Z, czyli obrót z lewej strony na prawą.

(Kąt odchylenia jest równy Psi ψ).

Pochylenie to obrót wokół osi Y, czyli do góry i do dołu.

(Kąt nachylenia jest wartością Phi φ).

Obrót to obrót wokół osi X, czyli w górę i w dół skrzydła.

(Kąt obrotu to Thêta θ).

Macierz
Umiejscowienie = Macierz

Trzecia forma Umiejscowienia opisuje położenie i orientację obiektu za pomocą macierzy transformacji afinicznej 4x4 (Affine Transformation).

Macierz =

((r11,r12,r13,t1),   (r21,r22,r23,t2),    (r31,r32,r33,t3),    (0,0,0,1)), gdzie rij określa obrót, a ti - przesunięcie.

Okno dialogowe umiejscowienia
Okno dialogowe Umiejscowienia jest wywoływane z menu Edycja. Służy ono do precyzyjnego obracania / przesuwania obiektów. Jest ono również używane, gdy chcemy utworzyć szkic na "niestandardowej" płaszczyźnie lub zmienić orientację szkicu na nową płaszczyznę. Sekcja Przesunięcie dostosowuje położenie obiektu w przestrzeni. Sekcja Środek dostosowuje oś obrotu do takiej, która nie przechodzi przez punkt odniesienia obiektu. W sekcji Obrót dostosowuje się kąt(y) obrotu oraz metodę określania tych kątów.

Chociaż elementy w każdej sekcji mają zasadniczo zastosowanie do celów danej sekcji, niektóre elementy w jednej sekcji mogą mieć wpływ na elementy w innej sekcji. Na przykład kliknięcie przycisku Wybrane punkty w sekcji Środek z zaznaczonymi dwoma punktami w oknie widoku 3D powoduje nie tylko wypełnienie pól wyboru współrzędnych Środek współrzędnymi punktu środkowego między tymi dwoma zaznaczonymi punktami, ale także utworzenie niestandardowej osi wzdłuż linii zdefiniowanej przez te dwa zaznaczone punkty w sekcji Obrót. W innym przykładzie umieszczenie wartości w polu wyboru osi i kliknięcie przycisku Zastosuj oś w sekcji Przesunięcie powoduje translację (przesunięcie) obiektu wzdłuż osi zdefiniowanej w sekcji Obrót. Pole wyboru Zastosuj zmiany przyrostowe jest przydatne, gdy translacje / obroty mają być wykonywane względem aktualnego położenia / pochylenia obiektu, a nie względem pierwotnego położenia / pochylenia. Zaznaczenie tego pola resetuje pola dialogowe do zera, ale nie zmienia orientacji ani położenia obiektu. Kolejne wpisy zmieniają orientację / położenie, ale są stosowane od aktualnej pozycji obiektu. Włączenie tego pola wyboru jest również przydatne podczas korzystania z przycisku Wybrane punkty, ponieważ może ono czasami zapobiegać niepożądanym zmianom położenia.

PS: od wersji 0.17 wprowadzono nowy obiekt Część, obiekt ten posiada swoje umiejscowienie, a obiekt Umiejscowienie utworzony w obiekcie Część jest inkrementowany o Umiejscowienie części. Aby uzyskać Umiejscowienie środowiska Część użyj następującego kodu:

Przycisk Wybrane punkty służy do wypełniania współrzędnych w polach współrzędnych Środek oraz (po wybraniu 2 lub 3 punktów) dodatkowo do tworzenia własnej (zdefiniowanej przez użytkownika) osi obrotu w sekcji Obrót. Punktem może być wierzchołek, ale może to być także dowolny punkt wzdłuż krawędzi lub na powierzchni. Gdy zaznaczasz krawędź lub ścianę, zaznaczana jest cała krawędź lub ściana, ale FreeCAD zapamiętuje również, na który punkt na tej ścianie lub krawędzi najeżdżał kursor myszki, gdy ta krawędź lub ściana była zaznaczona. To właśnie współrzędne tego punktu są używane w oknie dialogowym Umiejscowienie, gdy zostanie kliknięty przycisk Wybrane punkty. Być może uważasz, że nie jest to zbyt precyzyjny sposób zaznaczania punktu, i masz rację, ale w wielu przypadkach wystarczy, że wybrany punkt będzie znajdował się na tej krawędzi lub ścianie. W przypadkach, gdy trzeba precyzyjnie wyznaczyć punkt, który ma zostać użyty, należy wybrać wierzchołek. Jeśli w żądanym miejscu nie ma żadnego wierzchołka, można go utworzyć, np. w tymczasowym szkicu dołączonym do tej ściany lub krawędzi, lub za pomocą obiektu środowiska Rysunek Roboczy, takiego jak linia lub punkt itp.

Rozważmy najpierw prosty przypadek wybrania jednego punktu. W tym celu należy najpierw zaznaczyć żądany punkt, a następnie kliknąć przycisk Wybrane punkty. Współrzędne wybranego punktu zostaną użyte do wypełnienia pól obrotowych X, Y i Z w sekcji Środek. Teraz każdy obrót wykonywany na obiekcie będzie się odbywał wokół tego środka obrotu.

Rozważmy teraz przypadek wybrania dwóch punktów. Wybieramy dwa żądane punkty, a następnie klikamy przycisk Wybrane punkty. Współrzędne punktu środkowego między dwoma wybranymi punktami zostaną umieszczone w polach X, Y i Z w sekcji Środek. Teraz każdy obrót wykonywany na obiekcie będzie się odbywał wokół tego środka obrotu. Jednak oprócz ustawienia współrzędnych sekcji Środek do elementu Oś w sekcji Obrót dodaje się również oś niestandardową (zdefiniowaną przez użytkownika). (Uwaga: jeśli byłeś w trybie obrotu Eulera, tryb ten zostanie przełączony na tryb obrotu z osią, a nowa oś niestandardowa zostanie wybrana jako bieżąca oś obrotu). Teraz każdy obrót wykonany przy użyciu nowej osi niestandardowej będzie się odbywał wokół tej osi obrotu. Dodatkową zaletą jest pomiar odległości między dwoma wybranymi punktami, a informacja ta jest podawana w widoku raportu. (Uwaga: Przytrzymaj klawisz podczas klikania przycisku Wybrane punkty, aby skopiować pomiar odległości do schowka). Wprowadzając tę odległość do pola wyboru Oś w sekcji Przesunięcie i klikając przycisk Zastosuj osiowe, można przesunąć obiekt tak, że pierwszy zaznaczony punkt zajmuje teraz współrzędne zajmowane przez drugi zaznaczony punkt (w momencie kliknięcia przycisku Wybrane punkty).

Rozważmy teraz przypadek wybrania trzech punktów. Wybieramy trzy żądane punkty, a następnie klikamy przycisk Wybrane punkty. Współrzędne pierwszego wybranego punktu (kolejność wyboru jest tu bardzo ważna) zostaną umieszczone w polach X, Y i Z w sekcji Środek. Ponieważ te trzy punkty definiują płaszczyznę, FreeCAD może to wykorzystać i użyć tych punktów do utworzenia nowej niestandardowej (zdefiniowanej przez użytkownika) osi obrotu, która jest normalną (prostopadła) do tej zdefiniowanej płaszczyzny. Podobnie jak w przypadku dwuch wybranych punktów, odległość między punktami jest również wyświetlana w widoku raportu, ale tym razem jest to odległość między drugim i trzecim wybranym punktem. (Uwaga: Przytrzymaj klawisz podczas klikania przycisku Wybrane punkty -- Shift + Kliknij -- aby skopiować miarę kąta do schowka). Dodatkowo, kąt między drugim i trzecim punktem jest również mierzony i wyświetlany w widoku raportu. Wprowadzając ten kąt do pola wyboru Kąt w sekcji Obrót możemy bardzo precyzyjnie obrócić obiekt tak, aby teraz drugi zaznaczony punkt był w jednej linii ze współrzędnymi trzeciego zaznaczonego punktu. (Uwaga: jeśli chcesz uzyskać większą precyzję, możesz zwiększyć liczbę cyfr w menu Edycja → Preferencje → Ogólne → Jednostki → Liczba miejsc po przecinku).

Przykłady
Obroty wokół jednej osi:

Before Rotation (top view)

After Rotation about Z (top view)

After Rotation about y=x (right view)

Rotation with offset centre point:

Before Rotation (top view)

After Rotation about Z (top view)

Rotation using Euler angles:

Before Rotation

After Rotation

Placement.Base vs Shape Definition
Placement is not the only way to position a shape in space. Note the Python console in this image:



Both cubes have the same value for Placement, but are in different locations! This is because the 2 shapes are defined by different vertices (curves in more complex shapes). For the 2 shapes in the above illustration:

>>> ev = App.ActiveDocument.Extrude.Shape.Vertexes >>> for v in ev: print v.X,",",v.Y,",",v.Z ...   30.0,30.0,0.0 30.0,30.0,10.0 40.0,30.0,0.0  40.0,30.0,10.0  40.0,40.0,0.0  40.0,40.0,10.0  30.0,40.0,0.0  30.0,40.0,10.0  >>> e1v = App.ActiveDocument.Extrude001.Shape.Vertexes >>> for v in e1v: print v.X,",",v.Y,",",v.Z ...   0.0,10.0,0.0 0.0,10.0,10.0 10.0,10.0,0.0  10.0,10.0,10.0  10.0,0.0,0.0  10.0,0.0,10.0  0.0,0.0,0.0  0.0,0.0,10.0  >>> The Vertices (or Vectors) that define the shape use the Placement.Base attribute as their origin. So if you want to move a shape 10 units along the X axis, you could add 10 to the X coordinates of all the Vertices or you could set Placement.Base to (10,0,0).

Using "Center" to Control Axis of Rotation
By default, the axis of rotation isn't really the x/y/z axis. It is a line parallel to the selected axis, but passing through the reference point (Placement.Base) of the object to be rotated. This can be changed by using the Center fields in the Placement dialog or, in scripts, by using the Center parameter of the FreeCAD.Placement constructor.

For example, suppose we have a box (below) positioned at (20,20,10).

We wish to spin the box around it's own vertical centre line (ie local Z), while keeping it the same position. We can easily achieve this by specifying a Center value equal to the coordinates of the box's central point (25,25,15).

In a script, we would do: Same script with the file example RotateCoG2.fcstd (discussion on the forum)

Using Placement in expressions
In expressions it is possible to use the components of the placement for example to access the x-component of the object labeled "Cube":

Dostęp do kąta obrotu można uzyskać przez

Dostęp do osi obrotu można uzyskać za pomocą

gdzie często jedną z tych wartości jest, a pozostałe są równe.

You can also use the whole Placement in a single expression: Right click on Placement property in the property editor, select "show all" then extra properties will show. If you then right click on Placement again the context menu will include Expression, select Expression then the Expression dialogue will open and whatever you type will go into the Placement property rather than its child properties.

To make the placement of "Sketch" equal to that of "Cylinder", you would enter in that way for Sketch the expression



NOTE: It's also possible to create Placement objects in expressions. See the Expressions page for details.

Uwagi

 * The Placement properties in the Data tab are disabled for objects which are attached to some other object. The Attachment Offset has to be edited instead.
 * Axis and Angle can also be expressed as a quaternion.
 * The reference point of an object varies depending on the object. Some examples for common objects:

Problemy

 * Względne rozmieszczanie obiektów będzie docelowo obsługiwane w środowisku pracy Złożenie.

Więcej

 * Ten poradnik: Aeroplan obszernie omawia mechanikę zmiany położenia obiektu.