.NET

Reply
Active Contributor
27 Posts
2 Kudos
Registered: ‎12-21-2009
Post 1 of 4

Set CurrentLayout

337 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*
2,142 Posts
255 Kudos
Registered: ‎04-29-2006
Post 2 of 4

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
Active Contributor
27 Posts
2 Kudos
Registered: ‎12-21-2009
Post 3 of 4

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*
1,569 Posts
171 Kudos
Registered: ‎10-08-2008
Post 4 of 4

Re : Set CurrentLayout

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

Delete "acTrans.Dispose" from Finally code block

and try again

_____________________________________
C6309D9E0751D165D0934D0621DFF27919
Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Announcements
Are you interested in helping shape the future of the Autodesk Community? To participate in this brief usability study, please click here. Your time and input is greatly appreciated!