Macro Rotate View/fr


Text-x-python.png Rotate View by 90°

Description
Cette macro fait pivoter l'affichage actuel de 90 ° vers la gauche. Ne fonctionne que si vous êtes en vue de dessus
Auteur
Yorik
Liens
Recettes macros
Comment installer une macro
Comment ajouter une barre d'outils
Version
01.00
Date dernière modification
2010-11-17


Description

Cette macro fait pivoter l'affichage actuel de 90 ° vers la gauche. Ne fonctionne que si vous êtes en vue de dessus. rotation de 90 degrés


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 

Description

Ce code affiche :

  1. la vue axonometric avec Y pointant au dessus vue axonometric avec Y pointant au dessus mode 1
  2. la vue axonometric avec Z pointant au dessus vue axonometric avec Z pointant au dessus mode 2

Ce code fonctionne à partir de la Version FreeCAD 0.16

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

Description

Copiez cette macro dans la console Python de FreeCAD (ou dans votre répertoire de macros) pour faire pivoter la vue 3D dans l'angle (en degrés) et l'axe désiré, intéressant pour créer un plan dans des angles connu.

Utilisation

Colez le code dans la console Python de FreeCAD et tapez 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 " 

tapez dans la console ex :

RotateView(0,1,0,45) 

S'il n'y a pas de document ouvert une erreur est retournée.

Online version: "http://www.freecadweb.org/wiki/index.php?title=Macro_Rotate_View/fr&oldid=239807"

Navigation menu