Umístění

From FreeCAD Documentation
Revision as of 05:50, 11 March 2014 by Honza32 (talk | contribs)

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:

Umístění v panelu vlastností
Skriptováním umístění jako y/p/r a Matrixu (matice) a jejího API.
Dialogové okno umístění

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).

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
Před otočením

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

Po otočení kolem osy Z
Po otočení kolem osy Z

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

Po otočení když y=x
Po otočení když y=x

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

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

Před otočením
Před otočením

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

Po otočení kolem osy Z
Po otočení kolem osy Z

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

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

Před otočením
Před otočením

Před otočením

Po otočení
Po otočení

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:

2 tvary se stejným umístěním

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).

Před otočením

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).

Po otočení

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í.