Placement/cs

Celkový pohled
Umístění je vlastnost FreeCADu, která specifikuje místo a orientaci objektu v prostoru. Umístění může být specifikováno ve více formulářích a může být měněno pomocí skriptů v poli vlastnosti nebo v dialogovém okně Umístění (menu Úpravy).

Přístup k atributům Umístění
K atributům objektu Umístění lze přistupovat a modifikovat je 3 způsoby:







Úhel, Osa a Pozice
Umístění = [Úhel, Osa, Pozice]

První tvar zadání Umístění ustaví místo objektu v prostoru na Pozici a popíše jeho orientaci jako pootočení kolem osy. Úhel = r je skalární hodnota udávající velikost pootočení objektu kolem osy. Zadává se ve stupních, ale interně je zaznamenán v radiánech.

Osa = (ax,ay,az) je vektor popisující osu otáčení (Přečtěte si poznámku o ose otáčení). Příklady: (1,0,0)      ==> kolem osy X (0,1,0)      ==> kolem osy Y (0,0,1)      ==> kolem osy Z (0.71,0.71,0) ==> kolem přímky y=x Pozice = (x,y,z) je vektor popisující souřadnice referenčního bodu objektu. Všimněte si, že ve skriptu Placement.Base je použit pro vyznačení komponenty pozice umístění. Editor vlastností zobrazuje tuto hodnotu jako "Pozice".

Pozice a Yaw, Pitch a Roll
Umístění = [Pozice, Yaw-Pitch-Roll]

Druhý tvar zadání Umístění ustaví místo objektu v prostoru pomocí Pozice (stejně jako předchozí tvar),ale popíše jeho orientaci použitím úhlů Yaw, Pitch a Roll (Yaw, Pitch, Roll). Tyto úhly jsou někdy také nazývány jako Eulerovy úhly nebo Tait-Bryanovy úhly (Eulerovy úhly). Yaw, Pitch a Roll jsou běžně užívány v letecké terminologii pro orientaci (nebo polohu) tělesa.

Pozice = (x,y,z) je vektor popisující souřadnice referenčního bodu objektu.

Yaw-Pitch-Roll = (y,p,r) is a tuple that specifies the attitude of the object. Values for y,p,r  specify degrees of rotation about each of the z,y,x axis (see note).

Matrix (matice)
Umístění = Matrix

Třetí tvar zadání Umístění popisuje pozici a orientaci objektu pomocí 4x4 afinní transformační matice (Affine Transformation).

Matrix (matice) =

((r11,r12,r13,t1),   (r21,r22,r23,t2),    (r31,r32,r33,t3),    (0,0,0,1)), kde rij specifikuje rotaci a ti specifikuje transformaci.

Dialogové okno umístění
Dialogové okno umístění se spouští z menu Úpravy. Je využíváno pro přesné pootočení a posunutí objektů. Je využíváno také když je potřeba vytvořit náčrt v "nestandardní" rovině nebo změnit orientaci náčrtu v nové rovině. Sekce Posunutí určuje místo objektu v prostoru. Sekce Střed určuje umístění rotační osy bodem, který neprochází referenčním bodem objektu. Sekce Otočení určuje úhel(úhly) otočení a metodu, která specifikuje tyto úhly. Zakliknutí políčka Použijte nárůstové změny na umístění objektu je užitečné když posuny/rotace jsou prováděny relativně k aktuální pozici/poloze objektu než k původní pozici/poloze. Zakliknutí tohoto políčka resetuje vstupní pole okna na hodnotu nula, ale nezmění orientaci ani místo objektu. Následná zadání mění orientaci/místo, ale ta jsou aplikována vzhledem k aktuální pozici.

Příklady
Otočení kolem jedné osy:

Před otočením (pohled shora)

Po otočení kolem osy Z (pohled shora)

Po otočení když y=x (pohled zprava)

Otočení s posunutím středového bodu:

Před otočením (pohled shora)

Po otočení kolem osy Z (pohled shora)

Otočení s použitím Eulerových úhlů:

Před otočením

Po otočení

Placement.Base vs Shape Definition
Umístění není jediný způsob pozicování objektů v prostoru. Všimněte si Pythonovské konzoly na tomto obrázku:



Obě kostky mají stejné umístění, ale různé místo! Je to kvůli tomu, že oba tvary mají odlišné vrcholy. Pro tvary výše pro ilustraci:

>>> 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  >>> Vrcholy (nebo Vektory), které definují objekt využívají atributy Placement.Base jako jejich počátek. Proto, když chcete posunout objekt o 10 jednotek podél osy X, můžete přidat 10 do souřadnic X všech vrcholů nebo můžete nastavit pozici umístění Placement.Position na (10,0,0).

Použití "Středu" pro nastavení řídící osy otáčení
Standardně osa otáčení není ve skutečnosti osa X/Y/Z. Je to paralelní přímka k vybrané ose, která ale prochází referenčním bodem (Placement.Base) objektu, který se bude otáčet. Může to být změněno použitím pole Střed v dialogovém okně Umístění nebo ve skriptu použitím parametru Center (Střed) konstruktoru FreeCAD.Placement.

Například, představme si, že máme kostku (dále) pozicovanou na (20,20,10).

Chceme otočit kostku kolem její svislé středové přímky (tj. místní osy Z) s udržením stejné pozice. Můžeme toho snadno dosáhnout zadáním hodnoty Středu rovné souřadnicím středu kostky (25,25,15).

Ve skriptu by to vypadalo následovně: Same script with the file example RotateCoG2.fcstd (discussion on the forum)

Poznámky

 * Osy a úhly mohou být také vyjádřeny jako čtveřice.
 * Referenční bod objektu (FreeCAD.Placement.Base) se mění v závislosti na objektu. Některé příklady pro běžné objekty:

Problémy

 * Od verze 0.13, byla aktualizace vlastností Umístění v záložce Data zablokována pro objekty vytvořené v Návrhu dílu, kromě původního náčrtu, ze kterého bylo těleso vytvořeno. Proto Umístění tělesa vytvořeného v Návrhu dílu může být změněno pouze nastavením parametrů umístění původního konstrukčního náčrtu (první náčrt), ze kterého bylo těleso vytvořeno.
 * Funkcionalita Umístění může být dodatečně měněna v pracovní ploše Kompletace.

Další

 * Tento výukový program: Aeroplán široce pokrývá mechanismy změn umístění objektů.
 * Popis dialogového okna Umístění krok za krokem naleznete zde Úkoly umístění.