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
Solved! Go to Solution.
Solved by augusto.goncalves. Go to Solution.
The code seems ok, so I'm guessing is something with VS
Can you share a print-screen of VS when the error happens?
Actually this is a different issue...
It means that the Transaction and the Layout are not from the same Document.
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.