|
Posizione nel menu |
---|
Modifica → Posizionamento... |
Ambiente |
Tutti |
Avvio veloce |
Nessuno |
Introdotto nella versione |
- |
Vedere anche |
Allinea, Posizionamento |
Il comando Posizionamento visualizza la scheda azioni per il posizionamento di un oggetto selezionato.
La scheda di Posizionamento
La finestra di dialogo può essere avviata anche facendo clic sul pulsante con i puntini di sospensione ... che appare nell'Editor delle proprietà quando si fa clic sulla proprietà DatiPlacement.
Vedere anche: Autogenerated API documentation e Script di base per FreeCAD.
Vedere il tutorial di script Python.
Un posizionamento è definito internamente da una matrice; in molti casi è più semplice rappresentarlo mediante due componenti, un punto Base
(vettore), e un valore Rotazione
. Lo stesso Rotazione
ha diverse rappresentazioni; può essere interamente definito dal valore di un "quaternione" (xi + yj + zk + w)
, ma può anche essere descritto da una rotazione Axis
(vettore unità) e da una rotazione Angle
(radianti).
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)
Sposta il punto base dell'oggetto, quindi ruota l'oggetto di 45 gradi attorno all'asse X.
Il modulo matematico fornisce un metodo radians()
per convertire facilmente i gradi in radianti e deve essere prima importato.
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))