• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Active Contributor
    Posts: 48
    Registered: ‎11-09-2012
    Accepted Solution

    Open a .dxf file from windows form button

    232 Views, 5 Replies
    11-26-2012 09:08 AM

    HI ,

    I got a problem to open a dxf file. If I use command method then I can easily do that. But I want to open that file by clicking a button from my windows form. I did the coding for that specified button like below:

     

    Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click

     

    Dim strFileName AsString

    LoadDXF.InitialDirectory = "C:\"

    LoadDXF.Title = "Open DXF File"

    LoadDXF.Filter = "DXF Files|*.dxf"

    LoadDXF.ShowDialog()

    strFileName = LoadDXF.FileName

    Dim acDocMgr AsDocumentCollection = Application.DocumentManager  

    If (File.Exists(strFileName)) Then

    acDocMgr.Open(strFileName, False) 

    Else

    acDocMgr.MdiActiveDocument.Editor.WriteMessage( "File" & strFileName & "does not exist.")

    EndIf

    EndSub

     

    After invoke that button I got a error like below:

    Capture.JPG

     

    I have searched to solve this problem in the forum. But did not get any productive answer. Can anybody help me in this regards. How can I open the drawing without commandFlags.session? I want to use the button of my form to open that dxf file. Please give me a details hints because I am pretty new in programming.

     

    Thanks in advance.

    Zakir

    Please use plain text.
    Active Contributor
    Posts: 42
    Registered: ‎09-05-2012

    Re: Open a .dxf file from windows form button

    11-26-2012 11:08 AM in reply to: mzakiralam

    Try something like this.  I haven't tried but I think it should work.  Let me know if it doesn't and please next time post the full text from the exception detail. (FYI: I had to correct my original response!)

     

     

     

                Dim LoadDXF As New System.Windows.Forms.OpenFileDialog

                LoadDXF.InitialDirectory = "C:\"

                LoadDXF.Title = "Open DXF File"

                LoadDXF.Filter = "DXF Files|*.dxf"

                Dim acDocMgr As DocumentCollection = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager

                Try

                    If LoadDXF.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

                        Dim files() As String = LoadDXF.FileNames

                        For Each _file In files

                            If (File.Exists(_file)) Then

                                Dim acDoc As Document = DocumentCollectionExtension.Add(acDocMgr, _file)

                                acDocMgr.MdiActiveDocument = acDoc

                            Else

                                acDocMgr.MdiActiveDocument.Editor.WriteMessage("File " & _file & " does not exist.")

                            End If

                        Next

                    End If

                Catch

                    acDocMgr.MdiActiveDocument.Editor.WriteMessage("ERROR: " & Err.Description)

                End Try

     

     

    Please use plain text.
    Active Contributor
    Posts: 42
    Registered: ‎09-05-2012

    Re: Open a .dxf file from windows form button

    11-26-2012 11:49 AM in reply to: sszabo

    Another important piece of Info that's needed here is what version of ACAD are we talking about?!  I assumed the latest (2013).  If not opening the Document object is going to be slightly different:

     

    http://exchange.autodesk.com/autocadmep/enu/online-help/BLDSYS/2012/ENU/pages/WS73099cc142f48755-385...

     

     

    Please use plain text.
    Active Contributor
    Posts: 48
    Registered: ‎11-09-2012

    Re: Open a .dxf file from windows form button

    11-27-2012 01:39 AM in reply to: sszabo

    Thanks for your reply. I am sorry that I did not mention my ACAD version and VB version. I am using ACAD 2011 and VB2010 (premium). I am also sorry that I did not understand one of your sentence "please next time post the full text from the exception detail". Actually I do not know how to post from exception detail.

     

    I try to write according you show. But when I try to write the line below

     

     Dim acDoc As Document = DocumentCollectionExtension, it tells me that DocumentCollectionExtension is not declared.

     

    my code is now look like below:

    Capture.JPG

     

     

     

     

    If you have time please let me share your suggestion. Thanks anyway

    Please use plain text.
    Active Contributor
    Posts: 48
    Registered: ‎11-09-2012

    Re: Open a .dxf file from windows form button

    11-27-2012 02:46 AM in reply to: mzakiralam

    I have done it. Thanks a lot for your hints

    Please use plain text.
    Active Contributor
    Posts: 42
    Registered: ‎09-05-2012

    Re: Open a .dxf file from windows form button

    11-27-2012 05:36 AM in reply to: mzakiralam

    Ok, that's great. 

     

    You can find the original ACAD .NET exception in the dialog box you captured and posted with your question if you just push the "Details" button. 

     

    Also, the "For Each _file In files" loop only makes sense if you allow the user to select multiple files.  I just noticed that later but if you do that you wil need some additional acad code to make it work so you can probably just lose the loop and go with the original idea of allowing only 1 file to be selected and simply assigning _file to LoadDXF.FileName instead of LoadDXF.FileNames.

    Please use plain text.