Quantcast
Channel: Manufacturing DevBlog
Viewing all articles
Browse latest Browse all 518

Rotate drawing view around X axis of sheet

$
0
0

By Adam Nagy

In order to rotate a drawing view, you need to modify the paraneters of its Camera: UpVector (shown in below picture), the Eye (from where you are looking at the model) and the Target (the point in the model you are looking at)

If you want to rotate the view around the X axis of the sheet, so that if the drawing view currently shows Front then it will switch to Top, then you can just swap the UpVector for the current view direction (i.e. Eye to Target direction) and calculate the new Eye position. The Target position remains the same.

Sub RotateBaseView()
  Dim baseView As DrawingView
  Set baseView = ThisApplication.ActiveDocument.SelectSet(1)' Rotate by setting the UpVector' as the current view direction' (i.e. Eye to Target) and then' calculate the new eye' which should be in the same' direction as the old UpVector
  Dim c As Camera
  Set c = baseView.Camera
  Dim oldEye As Point
  Set oldEye = c.eye.Copy
  Dim oldTarget As Point
  Set oldTarget = c.Target.Copy
  Dim oldViewDir As Vector
  Set oldViewDir = oldEye.VectorTo(oldTarget)
  Dim viewDist As Double
  viewDist = oldViewDir.Length
  Dim newTargetToEye As Vector
  Set newTargetToEye = c.UpVector.AsVector().Copy
  Call newTargetToEye.ScaleBy(viewDist)
  Call oldTarget.TranslateBy(newTargetToEye)

  c.eye = oldTarget
  c.UpVector = oldViewDir.AsUnitVector()
  
  Call c.ApplyWithoutTransition
End Sub

And this is what you get when running the above VBA code:

Rotateview

 


Viewing all articles
Browse latest Browse all 518

Trending Articles