Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
HideoYamada
in reply to: JelteDeJong

Hello,

 

I tried another way. This code will create an opposite view directly.

 

Option Explicit

Sub CreateOppositeView()
    Dim oDrawingDoc As DrawingDocument
    Set oDrawingDoc = ThisApplication.ActiveDocument
    
    Dim oSourceView As DrawingView
    Set oSourceView = oDrawingDoc.ActiveSheet.DrawingViews(1)
    
    ' Document
    Dim oSourceDoc As Document
    Set oSourceDoc = oSourceView.ReferencedDocumentDescriptor.ReferencedDocument
    ' Position
    Dim oViewPosition As Point2d
    Set oViewPosition = oSourceView.Position.Copy
    oViewPosition.X = oViewPosition.X + oSourceView.Width + 1
    ' Scale
    Dim viewScale As Double
    viewScale = oSourceView.Scale
    ' ViewStyle
    Dim viewStyle As DrawingViewStyleEnum
    viewStyle = oSourceView.viewStyle
    ' ModelViewName
    Dim modelViewName As String
    modelViewName = oSourceView.ActiveDesignViewRepresentation
    ' Camera
    Dim oCamera As Camera
    Set oCamera = ThisApplication.TransientObjects.CreateCamera
    oCamera.Eye = GetOppositeEyePoint(oSourceView.Camera)
    oCamera.Target = oSourceView.Camera.Target
    oCamera.UpVector = oSourceView.Camera.UpVector

    ' Create new DrawingView
    Dim oNewDrawingView As DrawingView
    Set oNewDrawingView = oDrawingDoc.ActiveSheet.DrawingViews.AddBaseView(oSourceDoc, oViewPosition, viewScale, kArbitraryViewOrientation, viewStyle, modelViewName, oCamera)
End Sub

Function GetOppositeEyePoint(oCamera As Camera) As Point
    Dim X As Double
    Dim Y As Double
    Dim Z As Double

    X = oCamera.Target.X * 2 - oCamera.Eye.X
    Y = oCamera.Target.Y * 2 - oCamera.Eye.Y
    Z = oCamera.Target.Z * 2 - oCamera.Eye.Z
    
    Set GetOppositeEyePoint = ThisApplication.TransientGeometry.CreatePoint(X, Y, Z)
End Function

=====

Freeradical

 Hideo Yamada

 

=====
Freeradical
 Hideo Yamada
https://www.freeradical.jp