.NET

Reply
Active Contributor
aielli
Posts: 32
Registered: ‎03-07-2006
Message 1 of 13 (1,062 Views)

ThisDrawing.Path equivalent

1062 Views, 12 Replies
01-05-2010 05:29 AM
What's the equivalent of ThisDrawing.Path in VB.NET?

Here's what I think it should be... but it's not working:

Dim AcadDoc As Document = Application.DocumentManager.MdiActiveDocument
AcadDoc.Path? or GetPath?

Slowly learning... thanks for the help.
eric
Contributor
deanlyon
Posts: 23
Registered: ‎12-10-2007
Message 2 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 07:41 AM in reply to: aielli
In C# i did it this way:
AcadApplication oAcadApp = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
String sFilePath = oAcadApp.ActiveDocument.Path + "\\" + oAcadApp.ActiveDocument.Name;

so, In VB.NET I think it would be like this:

Dim oAcadApp as AcadApplication
Dim sFilePath as String
Set oAcadApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
sFilePath = oAcadApp.ActiveDocument.Path & "\" & oAcadApp.ActiveDocument.Name;

The path is only the path and the name is only the name.
Active Contributor
aielli
Posts: 32
Registered: ‎03-07-2006
Message 3 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 11:03 AM in reply to: aielli
Thanks, but I don't believe that ActiveDocument is a property of AcadApplication.

I'm using AutoCAD 2010... not sure if this has changed...
*Expert Elite*
arcticad
Posts: 1,285
Registered: ‎06-21-2004
Message 4 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 11:24 AM in reply to: aielli
This works in 2010
{code}
Dim oAcadApp As Autodesk.AutoCAD.ApplicationServices.Document
oAcadApp = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
MsgBox(oAcadApp.Name)
{code}
---------------------------



(defun botsbuildbots() (botsbuildbots))
Active Contributor
aielli
Posts: 32
Registered: ‎03-07-2006
Message 5 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 11:52 AM in reply to: aielli
Thank you!

Didn't realize that the Name property gave the full path.
*Expert Elite*
_gile
Posts: 2,082
Registered: ‎04-29-2006
Message 6 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 12:05 PM in reply to: aielli
AcadDoc.Name was the reply I gave in your duplicated post:
http://discussion.autodesk.com/forums/thread.jspa?threadID=757438&tstart=0

> Thanks, but I don't believe that ActiveDocument is a property of AcadApplication.
Yes it is, but DeanLyon is using COM interop rather than .NET API
Gilles Chanteau
*Expert Elite*
arcticad
Posts: 1,285
Registered: ‎06-21-2004
Message 7 of 13 (1,062 Views)

Re: ThisDrawing.Path equivalent

01-05-2010 10:48 PM in reply to: aielli
As mentioned above, This works with COM in 2010

{code}
Dim oAcadApp As Autodesk.AutoCAD.Interop.AcadApplication
Try
oAcadApp = GetObject(, "AutoCAD.Application.18")
Dim sFilePath As String
sFilePath = oAcadApp.ActiveDocument.Path & "\" & oAcadApp.ActiveDocument.Name
MsgBox(sFilePath)
Catch ex As Exception
oAcadApp = Nothing
End Try
{code}
---------------------------



(defun botsbuildbots() (botsbuildbots))
Valued Contributor
RPeter
Posts: 82
Registered: ‎01-09-2009
Message 8 of 13 (900 Views)

Re: ThisDrawing.Path equivalent

01-13-2011 08:04 AM in reply to: aielli

Is there an equivalent for the .path for the .NET API? I don't have COM installed :smileyhappy: I'm looking for it a couple days now but can't find a way to do it.

Active Contributor
dan.glassman
Posts: 43
Registered: ‎09-23-2008
Message 9 of 13 (892 Views)

Re: ThisDrawing.Path equivalent

01-13-2011 09:25 AM in reply to: aielli

Whoa -- no need for COM.

 

 

Document doc = Application.DocumentManager.MdiActiveDocument;
string path = Path.GetDirectoryName(doc.Database.Filename);

 

 

Valued Mentor
gasty1001
Posts: 466
Registered: ‎04-11-2010
Message 10 of 13 (881 Views)

Re: ThisDrawing.Path equivalent

01-13-2011 12:15 PM in reply to: aielli

What about the "DWGPREFIX" system variable, it's easy to check in both .NET and COM interop.

 

 

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.