Umístění
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:
Tvary zadání umístění
Ú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 polohy) tělesa.
Pozice = (x,y,z) je vektor popisující souřadnice referenčního bodu objektu.
Yaw-Pitch-Roll = (y,p,r) je set, který specifikuje polohu objektu. Hodnoty y,p,r udávají stupně pootočení kolem každé z os X,Y,Z (přečtěte si poznámku).
-
Yaw je pootočení kolem osy Z, to jest rotace zleva doprava.
(Úhel Yaw je Psi ψ). -
Pitch je pootočení kolem osy Y, to jest rotace předkem nahoru a dolu.
(Úhel Pitch je Phi φ). -
Roll je pootočení kolem osy X, to jest rotace křídlem nahoru a dolu.
(Úhel Roll je Thêta θ).
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 nasatavit 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ě:
obj = App.ActiveDocument.Box # our box
rot = FreeCAD.Rotation(FreeCAD.Vector(0,0,1),45) # 45° about Z
centre = FreeCAD.Vector(25,25,15) # central point of box
pos = obj.Placement.Base # position point of box
newplace = FreeCAD.Placement(pos,rot,centre) # make a new Placement object
obj.Placement = newplace # spin the box
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:
Objekt | Referenční bod |
---|---|
Part.Box | levý (minx), přední (miny), spodní (minz) vrchol |
Part.Sphere | střed koule (tj střed ohraničující kostky) |
Part.Cylinder | střed spodní plochy |
Part.Cone | střed spodní plochy (nebo vrchol když spodní poloměr je 0) |
Part.Torus | střed torusu |
Vlastnosti odvozené z Náčrtu | objekt dědí pozici z podkladového náčrtu. Náčrt vždy začíná na pozici = (0,0,0). |
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í.