|
Emplacement du menu |
---|
Édition → Positionner...
|
Ateliers |
Tous |
Raccourci par défaut |
Aucun |
Introduit dans la version |
- |
Voir aussi |
Std Aligner, Placement |
La commande Std Positionner affiche le panneau des tâches Positionner pour un objet sélectionné.
Le panneau des tâches de Positionner
La boîte de dialogue peut également être lancée en cliquant sur le bouton de sélection ... qui apparaît dans l'éditeur de propriétés lorsque vous cliquez sur la propriété DonnéesPlacement.
Voir aussi : Autogenerated API documentation et FreeCAD Débuter avec les scripts.
Voir le Tutoriel pour scripter en Python.
Un positionnement est défini en interne par une matrice. Dans de nombreux cas, il est plus simple de le représenter au moyen de deux composants, un point (vecteur) Base
et une valeur Rotation
. Rotation
lui-même a différentes représentations. Il peut être entièrement défini par la valeur d'un "quaternion" (xi + yj + zk + w)
, mais il peut aussi être décrit par une rotation Axis
(vecteur unitaire) et une rotation Angle
(radians).
import FreeCAD as App
doc = App.newDocument()
obj = doc.addObject("Part::Cylinder", "Cylinder")
print(obj.Placement)
# Placement [Pos=(0,0,0), Yaw-Pitch-Roll=(0,0,0)]
print(obj.Placement.Base)
# Vector (0.0, 0.0, 0.0)
print(obj.Placement.Rotation)
# Rotation (0.0, 0.0, 0.0, 1.0)
print(obj.Placement.Rotation.Angle)
# 0.0
print(obj.Placement.Rotation.Axis)
# Vector (0.0, 0.0, 1.0)
print(obj.Placement.Rotation.Q)
# (0.0, 0.0, 0.0, 1.0)
Déplacez le point de base de l'objet puis faites pivoter l'objet de 45 degrés autour de l'axe X.
Le module mathématique fournit une méthode en radians()
. Il permet de convertir facilement les degrés en radians et doit être importé en premier lieu.
import math
obj.Placement.Base = App.Vector(5, 3, 1)
obj.Placement.Rotation.Axis = App.Vector(1, 0, 0)
obj.Placement.Rotation.Angle = math.radians(45)
print(obj.Placement)
# Placement [Pos=(5,3,1), Yaw-Pitch-Roll=(0,0,45)]
print(obj.Placement.Rotation.Q)
# (0.3826834323650898, 0.0, 0.0, 0.9238795325112867)
print(obj.Placement.Matrix)
# Matrix ((1,0,0,5),(0,0.707107,-0.707107,3),(0,0.707107,0.707107,1),(0,0,0,1))