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.
Solved! Go to Solution.
Solved by Alfred.NESWADBA. Go to Solution.
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 -