.NET

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

Set CurrentLayout

272 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,114
Registered: ‎04-29-2006
Message 2 of 4 (251 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: 22
Registered: ‎12-21-2009
Message 3 of 4 (243 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 (225 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
Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Announcements
Are You Going To Be @ AU 2014? Feel free to drop by our AU topic post and share your plans, plug a class that you're teaching, or simply check out who else from the community might be in attendance. Ohh and don't forgot to stop by the Autodesk Help | Learn | Collaborate booths in the Exhibit Hall and meet our community team if you get a chance!