.NET

Reply
Contributor
mpalan2009
Posts: 14
Registered: ‎12-21-2009
Message 1 of 4 (220 Views)

Set CurrentLayout

220 Views, 3 Replies
01-07-2013 05:16 AM

Can someone please tell me why I get an 'esetfailed' error?  I must be missing something simple.  Just before this sub I call another sub that changes the active document. ?? This is in AutioCAD 2011 w/ 64bit environment.

 

    Public Shared Sub ActiveLayout(ByVal name As String)
        Dim acDoc As Document = AcApp.DocumentManager.MdiActiveDocument
        Dim Db As Database = HostApplicationServices.WorkingDatabase
        Dim tdoclock As DocumentLock = acDoc.LockDocument
        Dim layMgr As LayoutManager = LayoutManager.Current
        Using acTrans As Transaction = Db.TransactionManager.StartTransaction()
            Try
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(acDoc.Name)
                If Not Regex.Match(layMgr.CurrentLayout, name).Success() Then
                    layMgr.CurrentLayout = name
                End If
                acTrans.Commit()
            Catch ex As Autodesk.AutoCAD.Runtime.Exception
                Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(ex.Message & vbCr & ex.HelpLink & vbCr & ex.StackTrace)
            Finally
                acTrans.Dispose()
                tdoclock.Dispose()
                tdoclock = Nothing
            End Try
        End Using
    End Sub

 

Any help is greatly appreciated.

Matthew

*Expert Elite*
_gile
Posts: 2,082
Registered: ‎04-29-2006
Message 2 of 4 (199 Views)

Re : Set CurrentLayout

01-07-2013 08:34 AM in reply to: mpalan2009

Hi,

 

eSetFailed is probably due to the fact the 'name' Layout does not exist in the drawing and no need to complicate so much.

This works for me:

        Public Shared Sub ActiveLayout(ByVal name As String)
            Try
                LayoutManager.Current.CurrentLayout = name
            Catch
                MsgBox(String.Format("Layout '{0}' not found", name))
            End Try
        End Sub

 

Gilles Chanteau
Contributor
mpalan2009
Posts: 14
Registered: ‎12-21-2009
Message 3 of 4 (191 Views)

Re : Set CurrentLayout

01-07-2013 10:30 AM in reply to: _gile

I would like to change the question.  Why does that code not work for Drawing1.dwg and Layout1?  It does work with other drawings I have.  I don't have a reason to operate on that drawing, So I will exclude it from the forms listbox.

 

Thanks

Matthew

*Expert Elite*
Hallex
Posts: 1,569
Registered: ‎10-08-2008
Message 4 of 4 (173 Views)

Re : Set CurrentLayout

01-07-2013 01:33 PM in reply to: mpalan2009

Delete "acTrans.Dispose" from Finally code block

and try again

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.