Macro Align View to Face/cs: Difference between revisions

From FreeCAD Documentation
(Created page with "Macro Align View to Face")
 
(Created page with "{{Macro/cs|Name=Macro Align View to Face|Name/cs=Macro Align View to Face|Description=This macro aligns the current view to a selected face|Author=Rockn}}")
Line 1: Line 1:
{{Macro|Name=Macro Align View to Face|Description=This macro aligns the current view to a selected face|Author=Rockn}}
{{Macro/cs|Name=Macro Align View to Face|Name/cs=Macro Align View to Face|Description=This macro aligns the current view to a selected face|Author=Rockn}}


==Description==
==Description==

Revision as of 13:12, 8 July 2014

Macro Align View to Face

Popis
This macro aligns the current view to a selected face

Autor: Rockn
Autor
Rockn
Download
None
Odkazy
Verze
1.0
Datum poslední úpravy
None
Verze FreeCAD
None
Výchozí zástupce
None
Viz též
None

Description

This macro rotates the current view to point perpendicularly at a selected face of an existing object.

How to use

  1. Select a face on an object
  2. Run the macro

Script

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

from pivy import coin
s=Gui.Selection.getSelectionEx()
obj=s[0]
faceSel = obj.SubObjects[0]
dir = faceSel.normalAt(0,0)
cam = FreeCADGui.ActiveDocument.ActiveView.getCameraNode()
camValues = cam.position.getValue()
pos = FreeCAD.Vector( (camValues[0], camValues[1], camValues[2],) )
p = pos.add(dir.negative())
print(p.x,p.y,p.z)
if dir.z == 1 :
   cam.pointAt( coin.SbVec3f(p.x,p.y,p.z), coin.SbVec3f(0.0,1.0,0.0))
   print("normal = 1")
elif dir.z == -1 :
   cam.pointAt( coin.SbVec3f(p.x,p.y,p.z), coin.SbVec3f(0.0,1.0,0.0))
   print("normal = -1")
else :
   cam.pointAt( coin.SbVec3f(p.x,p.y,p.z), coin.SbVec3f(0.0,0.0,1.0))
   print("normal normale")
Gui.SendMsgToActiveView("ViewSelection")