Message 1 of 4
Not applicable
06-06-2010
06:50 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Is this possible? I was trying to make a simple windows program that prompted the user to select a .dwg file and the program would list all the layers in a listbox. But the Database.ReadDWGFile procedure doesn't appear to work outside of AutoCAD (FileNotFound Exception). Can I have my windows program open AutoCAD in the background to achieve this?
Here's my code:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Public Class Form1
Dim myLayers As ArrayList
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myDB As New Database(False, True)
myDB.ReadDwgFile("C:\test.dwg", FileOpenMode.OpenForReadAndAllShare, True, "")
Using myTrans As Transaction = myDB.TransactionManager.StartTransaction
Dim myLayerTable As LayerTable = myDB.LayerTableId.GetObject(OpenMode.ForRead)
Dim layerName As String = ""
For Each myObjectID As ObjectId In myLayerTable
Dim myLayer As LayerTableRecord = myObjectID.GetObject(OpenMode.ForRead)
myLayers.Add(myLayer.Name)
Next
myTrans.Abort()
End Using
myDB.Dispose()
For Each layerxx In myLayers
ListBox1.Items.Add(layerxx)
Next
End Sub
End Class
Solved! Go to Solution.