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

Batch process and transaction not declared..

4 REPLIES 4
SOLVED
Reply
Message 1 of 5
karea
653 Views, 4 Replies

Batch process and transaction not declared..

Hi:

I have a command to open some dwg files and print them. I´m using the Sub imprimePDF. When I did the code with (AutoCAD 2011 and VS 2008) , it runs ok but now it´s wrong.

This is the sub

Sub imprimePDF()
   Dim myDWG As Autodesk.AutoCAD.ApplicationServices.Document
   myDWG = Application.DocumentManager.MdiActiveDocument
   Application.SetSystemVariable("BACKGROUNDPLOT", 0)
   Using tr As Transaction =   Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction()
   Try
       Dim layMgr As LayoutManager = LayoutManager.Current
      Dim loObjId As ObjectId = layMgr.GetLayoutId(layMgr.CurrentLayout)
      Dim lo As Layout = DirectCast(tr.GetObject(loObjId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead), Layout)    error!
.........

end try

.........

end using

...

end sub

 

When I´m debugging the code, last sentence produces an error: 'tr not declared'  and I don't know why.

any ideas?

thanks

4 REPLIES 4
Message 2 of 5
augusto.goncalves
in reply to: karea

The code seems ok, so I'm guessing is something with VS

 

Can you share a print-screen of VS when the error happens?

Regards,



Augusto Goncalves
Twitter @augustomaia
Autodesk Developer Network
Message 3 of 5
karea
in reply to: augusto.goncalves

here's the display shows,

 

thanks,

Message 4 of 5
augusto.goncalves
in reply to: karea

Actually this is a different issue...

 

It means that the Transaction and the Layout are not from the same Document.

Regards,



Augusto Goncalves
Twitter @augustomaia
Autodesk Developer Network
Message 5 of 5
karea
in reply to: augusto.goncalves

ok!, I've erased the green code and added the blue one and  it runs!

 

 Dim docMgr As DocumentCollection = Application.DocumentManager
 

Application.SetSystemVariable("BACKGROUNDPLOT", 0)
        'Using tr As Transaction = Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction()
        Using tr As Transaction = docMgr(1).TransactionManager.StartTransaction()

 Try
                Dim layMgr As LayoutManager = LayoutManager.Current
                Dim loObjId As ObjectId = layMgr.GetLayoutId(layMgr.CurrentLayout)
                Dim lo As Layout = DirectCast(tr.GetObject(loObjId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead), Layout)
                Dim ps As New PlotSettings(False)
................

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