Macro Align View to Face/fr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
{{Macro/fr|Icon=Text-x-python|Name=Macro Align View to Face|Name/fr=Macro Align View to Face|Description=Cette macro aligne la vue sur la face sélectionnée|Author=Rockn}}
{{Macro|Name=Macro Align View to Face|Description=This macro aligns the current view to a selected face|Author=Rockn|Version=1.0}}


==Description==
==Description==
Line 11: Line 11:
==Script==
==Script==


{{Code|code=
<syntaxhighlight>


# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
Line 57: Line 57:
Gui.SendMsgToActiveView("ViewSelection")
Gui.SendMsgToActiveView("ViewSelection")


}}
</syntaxhighlight>


[[Category:Python Code/fr]]
[[Category:Python Code/fr]]

Revision as of 10:58, 25 September 2016

Macro Align View to Face

Description
This macro aligns the current view to a selected face

Macro version: 1.0
Author: Rockn
Author
Rockn
Download
None
Links
Macro Version
1.0
Date last modified
None
FreeCAD Version(s)
None
Default shortcut
None
See also
None

Description

Cette macro pivote la vue courante perpendiculairement sur la face sélectionnée d'un objet existant.

Utilisation

  1. Sélectionnez la face d'un objet.
  2. Lancez la macro

Script

# -*- coding: utf-8 -*-
# Set the current view perpendicular to the selected face
# Place la vue perpendiculairement à la face selectionnee
# 2013 Jonathan Wiedemann, 2016 Werner Mayer

from pivy import coin

def pointAt(normal, up):
    z = normal
    y = up
    x = y.cross(z)
    y = z.cross(x)
   
    rot = App.Matrix()
    rot.A11 = x.x
    rot.A21 = x.y
    rot.A31 = x.z
   
    rot.A12 = y.x
    rot.A22 = y.y
    rot.A32 = y.z
   
    rot.A13 = z.x
    rot.A23 = z.y
    rot.A33 = z.z

    return App.Placement(rot).Rotation

s=Gui.Selection.getSelectionEx()
obj=s[0]
faceSel = obj.SubObjects[0]
dir = faceSel.normalAt(0,0)
cam = FreeCADGui.ActiveDocument.ActiveView.getCameraNode()

if dir.z == 1 :
    rot = pointAt(dir, App.Vector(0.0,1.0,0.0))
elif dir.z == -1 :
    rot = pointAt(dir, App.Vector(0.0,1.0,0.0))
else :
    rot = pointAt(dir, App.Vector(0.0,0.0,1.0))

cam.orientation.setValue(rot.Q)
Gui.SendMsgToActiveView("ViewSelection")