Placement/fr

Description
Le Positionnement (Placement en anglais) est la fonction qu'utilise FreeCAD pour spécifier l'emplacement et la position (orientation) d'un objet dans l'espace. La fonction Positionnement peut être accessible de plusieurs manières :
 * via un script Python à partir de la console, et de son API.
 * ou dans la fenêtre Vue combinée → Propriétés → Données → Placement → ,
 * ou par le menu  Édition → Positionnement....

L'accès aux propriétés de Placement
Les attributs de la fonction Placement d'un objet peuvent être accessibles et modifiables de 3 façons:







Angles, Axes et Position
Placement = [Angle, Axis, Position]

Placement : fixe la Position de l'objet dans l'espace et décrit son orientation avec rotation autour d'un axe donné. Angle = r : est un scalaire qui indique les angles de rotation de l'objet sur l'axe donné. La saisie se fait en degrés, mais en interne la valeur est convertie et stockée en radians.

Axis = (ax,ay,az) est un vecteur décrivant l'axe de rotation (voir la note sur l'axe de rotation). les exemples sont: (1,0,0)      ==> sur l'axe X (0,1,0)      ==> sur l'axe Y (0,0,1)      ==> sur l'axe Z (0.71,0.71,0) ==> sur l'alignement y=x Position = (x,y,z) est un vecteur décrivant le point à partir duquel la géométrie de l'objet sera calculé ("position d'origine" de l'objet). Notez que dans les scripts, Placement.Base est utilisé pour désigner la composante de position du placement. L'éditeur de propriétés appelle cette valeur "Position" et la boîte de dialogue Placement s'appelle "Translation".

Position avec Yaw, Pitch et Roll


Placement = [Position, Yaw-Pitch-Roll]

La seconde forme de Placement fixe la position d'un objet dans l'espace (comme dans la première forme), mais il décrit l'orientation angulaire à l'aide de Yaw, Pitch et Roll (/ wiki / Yaw, _pitch, _and_roll Yaw, Pitch, Roll). Ces angles sont parfois appelés angles d'Euler ou Tait-Bryan angles (Euler angles). Lacet, Roulis et Tangage sont des termes communs en aviation pour l'orientation (ou l'attitude) d'un corps.

Position = (x,y,z) est le Vecteur décrivant le point à partir duquel la géométrie de l'objet sera calculée ("l'origine locale" de l'objet).

Yaw-Pitch-Roll = (y,p,r) est un tuple qui spécifie la rotation de l'objet. Les valeurs de y, p, r indiquent les angles de rotation autour des axes z, y, et x (voir note).

App.Rotation(10,20,30) = Euler Angle

Yaw = 10 degrees (Z)

Pitch = 20 degrés (Y)

Roll = 30 degrés (X)

Yaw est une rotation autour de l'axe Z, rotation de gauche à droite sur l'axe Z. (Lacet) (L'angle yaw est représenté par Psi ψ).

Pitch est la rotation sur l'axe Y, cabré ou piqué. (Tangage) (L'angle Pitch est représenté par Phi φ).

Roll est la rotation sur l'axe X, tangage latéral de gauche à droite. (Roulis) (L'angle Roll est représenté par Thêta θ).

Matrix
Placement = Matrix

La troisième forme de Placement, décrit la position de l'objet et l'orientation avec une matrice de transformation affine de 4 x 4 (Transformation Affine).

Matrice =

((r11,r12,r13,t1),   (r21,r22,r23,t2),    (r31,r32,r33,t3),    (0,0,0,1)), with rij specifying rotation and ti specifying translation.

The Placement Dialog
The Placement Dialog is invoked from the Edit menu. It is used to precisely rotate/translate objects. It is also used when we need to create a sketch on a "non standard" plane or change a sketch's orientation to a new plane. The Translation section adjusts the object's location in space. The Center section adjusts the rotational axis to one that does not pass through the object's reference point. The Rotation section adjusts the rotational angle(s) and the method of specifying those angles. The Apply incremental changes to object placement tick box is useful when translations/rotations are to be made relative the object's current position/attitude, rather than to the original position/attitude. Ticking this box resets the dialog's input fields to zero, but does not change the object's orientation or location. Subsequent entries do change the orientation/location, but are applied from the object's current position.

Examples
Rotations about a single axis:

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.

Par exemple, supposons que nous ayons un cube (ci-dessous) positionné aux coordonnées (20,20,10).



Nous voulons faire tourner le cubee autour de son propre axe vertical (c'est à dire local Z), tout en gardant la même position. Nous pouvons facilement y parvenir en spécifiant une valeur de centre égale aux coordonnées du point central du cube (25,25,15).

Dans un script ,nous aurons : Same script with the file example RotateCoG2.fcstd (discussion on the forum)

Issues

 * As of version 0.13, update of Placement properties in the Data tab has been disabled for objects created with PartDesign, except for the initial sketch from which the solid will be created. Therefore the Placement of a solid created in PartDesign from a sketch can only be altered by adjusting Placement parameters of the initial construction sketch (the first sketch) from which the solid was created.
 * Placement functionality will eventually be handled in the Assembly workbench.

More

 * This tutorial: Aeroplane covers the mechanics of changing an object's Placement extensively.
 * A step-by-step explanation of the Placement Dialog can be found here Tasks_Placement.