Macro Ruota la vista di 90°

From FreeCAD Documentation
Revision as of 10:45, 15 December 2018 by Mario52 (talk | contribs)

Icona macro generica. Crea la tua icona personale con lo stesso nome della macro Rotate View by 90°

Descrizione
Questa macro ruota la vista corrente di 90° a sinistra. Funziona solo se si è in vista dall'alto

Versione macro: 01.00
Ultima modifica: 2010-11-17
Autore: Yorik
Autore
Yorik
Download
None
Link
Versione macro
01.00
Data ultima modifica
2010-11-17
Versioni di FreeCAD
None
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro ruota la vista corrente di 90° a sinistra. Funziona solo se si è in vista dall'alto rotation 90 degrees


import math
from pivy import coin
cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot = coin.SbRotation()
rot.setValue(coin.SbVec3f(0,0,1),math.pi/2)
nrot = cam.orientation.getValue() * rot
cam.orientation = nrot

Desrizione

Questo codice

  1. nel modo 1 fornisce la vista assonometrica con Y rivolto verso l'alto axonometric view with Y pointing upwards
  2. nel modo 2 fornisce la vista assonometrica con Z rivolto verso l'alto axonometric view with Z pointing upwards
import math
import pivy
from pivy import coin

Gui.activeDocument().activeView().viewAxonometric()
Gui.SendMsgToActiveView("ViewFit")

cam = Gui.ActiveDocument.ActiveView.getCameraNode()
rot = coin.SbRotation()

rot.setValue(coin.SbVec3f(1,0,0),-math.pi/2) # Y pointing upwards (mode 1)
#rot.setValue(coin.SbVec3f(0,0,1),math.pi/2) # Z pointing upwards (mode 2 uncomment for use)
nrot = cam.orientation.getValue() * rot
cam.orientation = nrot
Gui.SendMsgToActiveView("ViewFit")

Descrizione

Questo codice incollato nella console Python di FreeCAD (o in una macro) consente di ruotare la vista sui 3 assi dell'angolo (in gradi) utile per creare un piano nella posizione desiderata

Uso

Incollare il codice nella console Python di FreeCAD e premere Enter > Enter

Script

def RotateView(axisX=1.0,axisY=0.0,axisZ=0.0,angle=45.0):
    import math
    from pivy import coin
    try:
        cam = Gui.ActiveDocument.ActiveView.getCameraNode()
        rot = coin.SbRotation()
        rot.setValue(coin.SbVec3f(axisX,axisY,axisZ),math.radians(angle))
        nrot = cam.orientation.getValue() * rot
        cam.orientation = nrot
        print axisX," ",axisY," ",axisZ," ",angle
    except Exception:
        print "Not ActiveView "

esempio da incollare nella console:

RotateView(0,1,0,45)

Se non c'è nessun documento aperto restituisce un errore