.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I am working on an application that uses map to query data, then saves the data to a file, and repeat. It works flawlessly when I use a commandmethod with commandflags.session, But, when I try to run the same code from a form button, I get "drawing is busy". The command from the form button ignores the commandmethod and the commandflags. I am guessing that "sendstringtoexecute" would work, but I would prefer to not do it that way.
What am I missing? Is there another way to lock the session?
Here is what I am trying to do.
drawing1 is open and the user presses the button
data is queried and saved as 1.dwg
close and discard drawing1
open a new doc drawing2
data is queried and saved as 2.dwg
close and discard drawing2
open a new doc drawing3
....
Solved! Go to Solution.
Re: Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Re: Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
That's even better - thank you. Starting at an empty drawing1, the user presses the button, and the queries start in drawing2. When it's finished, the user is back at an empty drawing1.
Re: Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Show your code, please,
~'J'~
C6309D9E0751D165D0934D0621DFF27919
Re: Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Good idea - sorry. It took a bit of digging and I was in a rush. Thanks again Alexander and tony t (again and again...).
<CommandMethod("q19")> _
Sub q_19()
Dim acdocmgr As acapp.DocumentCollection = acapp.Application.DocumentManager
'assume drawing1 is active - it does not matter
acdocmgr.ExecuteInApplicationContext(AddressOf testsub, Nothing)
End Sub
Private Sub testsub(ByVal data As Object)
'in this example data is not used
Dim cmddiavalue As Integer = CInt(acapp.Application.GetSystemVariable("CMDDIA") )
acapp.Application.SetSystemVariable("CMDDIA", 0)
Dim acdocmgr As acapp.DocumentCollection = acapp.Application.DocumentManager
Dim acdoc As acapp.Document = acdocmgr.MdiActiveDocument
Dim templatepath As String = "map2diso.dwt"
acdoc = acdocmgr.Add(templatepath)
acdocmgr.MdiActiveDocument = acdoc
'drawing2 is now active
Using acdoclock As acapp.DocumentLock = acdoc.LockDocument
Dim currentobjs As New ObjectIdCollection()
'query and save
End Using
acdoc.CloseAndDiscard()
acdoc = acdocmgr.Add(templatepath)
acdocmgr.MdiActiveDocument = acdoc
'drawing3
Using acdoclock As acapp.DocumentLock = acdoc.LockDocument
Dim currentobjs As New ObjectIdCollection()
'query and save
End Using
acdoc.CloseAndDiscard()
acapp.Application.SetSystemVariable("CMDDIA", cmddiavalue)
Autodesk.AutoCAD.Internal.Utils.PostCommandPrompt( )
'return to drawing1 or whatever doc was before
End Sub
Re: Simulate CommandFla gs.Session from form button
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Thanks for sharing your code
Regards,
Oleg
C6309D9E0751D165D0934D0621DFF27919



