.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Changing screen display between Plan and isometric

2 REPLIES 2
SOLVED
Reply
Message 1 of 3
laurie.comerford
509 Views, 2 Replies

Changing screen display between Plan and isometric

Hi,

 

I'm trying to provide the user with some alternative vies of the drawing from within my application. 

 

I picked up this code from an earlier post and have modified it to what I thought should work, but is has no effect on my screen display even after I exit from the form.  Searching the internet has not found a solution, so I need help again.

 

    Private Sub ComboBoxView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxView.SelectedIndexChanged

        Dim myDwg As Document = Application.DocumentManager.MdiActiveDocument
        Dim myDB As DatabaseServices.Database = myDwg.Database
        Dim myTransMan As DatabaseServices.TransactionManager = myDwg.TransactionManager
        Try
            myTransMan.QueueForGraphicsFlush()  ' Have tried with and without this line
            Using myTrans As Transaction = myTransMan.StartTransaction
                Dim vpr As ViewportTableRecord = DirectCast(myTrans.GetObject(myDB.CurrentViewportTableRecordId, OpenMode.ForWrite), ViewportTableRecord)
                If vpr IsNot Nothing Then

                    Select Case Me.ComboBoxView.Text
                        Case "Plan"
                            vpr.SetViewDirection(OrthographicView.TopView)
                        Case "Front elevation"
                            vpr.SetViewDirection(OrthographicView.FrontView)
                        Case "Side elevation"
                            vpr.SetViewDirection(OrthographicView.LeftView)
                        Case "SW isometric"
                            vpr.ViewDirection = New Vector3d(1, -1, -1)
                        Case "NW isometric"
                            vpr.ViewDirection = New Vector3d(-1, 1, 1)
                        Case "SE isometric"
                            vpr.ViewDirection = New Vector3d(1, -1, 1)
                        Case "NE isometric"
                            vpr.ViewDirection = New Vector3d(1, 1, -1)

                    End Select
                End If
                myDwg.Editor.UpdateScreen()  ' Have tried with this line inside and outside the 'Using' section
                myTransMan.QueueForGraphicsFlush() ' Have tried with and without this line
                myTrans.Commit()
            End Using
        Catch ex As SystemException
            MsgBox(ex.Message)
        End Try

    End Sub

 I note that I have probably misguessed the direction vectors, but I can handle that by experiment once I get the screen updating.

 

Regards

Laurie Comerford
2 REPLIES 2
Message 2 of 3

Hi,

 

after modifying the vpr you have to tell the editor to update it's settings from the database. Try this:

myDwg.Editor.UpdateTiledViewportsFromDatabase()

 

HTH, - alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Message 3 of 3

Thanks Alfred,

 

That worked.

 

 

Regards

Laurie Comerford

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost