.NET
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
First off, I have working code for opening a cad drawing from an external program. That is perfect.
What I'm at a loss for is how can I force a drawing that is NOT readonly to open as readonly from outside cad. I know it's possible within cad, but that doesn't help me.
Can anyone help me out here?
Solved! Go to Solution.
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
How does your external program open a drawing? Without seeing your perfectly working code, I assume it automates AutoCAD via COM API AcadDocuments.Open() method (that is the drawing is still opened in AUTOCAD!)
This method has 2 optional argument to specify if the drawing to be opened as READONLY, and specify a PASSWORD if the drawing is password-protected:
AcadDocuments.Open "C:\....\mydrawing.dwg", True
opens a drawing as read-only.
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Actually, no. I'm using this to open drawings in cad..
System.Diagnostics.Process.Start(dwgpath)
Sounds like i should be doing the other way.. Is there some place I can get a look at working examples?
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I have not tried it , but without rewriting all of your existing code, I believe you could just set the ReadOnly Attribute on the file.

Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Not really an option (mainly because I still want the file to be editable at other times).
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
So Toggle the Attribute before opening, and toggle it back after closing. I assumed that went without saying.

Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
I didn't mean my last comment to be condescending, and I agree with Norman, that if you use the built-in COM mechanisms to open a drawing, there is a built-in way to open them read-only, but I just thought I would try to provide an alternative way, that did not require a significant change in your existing code.
I will admit, my suggestion requires that the users of your program have (probably a network based) permission to alter the read/write access to the file in question. At my company, that problem could come into question under certain circumstances, but not usually when dealing with drawings.

Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
It's alright, everyone should let there inner Tony T out a few times. ![]()
I had briefly thought of doing it that way, but wasn't able to find a way of doing it. I've since gone the COM route. Works great (after several google searches and code corrections).
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Would be interesting to show a result of your code,
Regards,
Oleg
C6309D9E0751D165D0934D0621DFF27919
Re: vb.net external open cad drawing
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
Not much to it, but here you go. (though for some reason cad crashes if it's used to many times in one session... (5+ i've found))
Used with vanilla 2011
Public Sub Open_DWG ()
Dim ACAD As Object
Dim MyAcadPath As String = "dwgpath"
Dim bReadOnly As Boolean = True
On Error Resume Next
ACAD = GetObject(, "autocad.Application")
If Err.Number <> 0 Then
Err.Clear()
ACAD = CreateObject("autocad.Application")
If Err.Number <> 0 Then
MessageBox.Show("Failed to start", MessageBoxButtons.OK, MessageBoxIcon.Information)
GoTo EndOpen
End If
End If
'ACAD.Visible = True
Err.Clear()
Dim NewFile As Object = ACAD.Documents.Open(MyAcadPath, bReadOnly)
If Err.Number <> 0 Then
MessageBox.Show("Failed to open", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
EndOpen:
ACAD = Nothing
NewFile = Nothing
End Sub



