Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Mzmatus
    csendes tag

    Annyira el voltam havazva melóval, hogy teljesen kiment a fejemből, hogy hosszúhétvége lesz... :DDD
    Szóval felpattintottam az AutoCAd 2026-t és megnéztem, mit és hogy lehet VB .NET-l mókolni vele, mert az itt elérhető infók a VB .NET-hez vannak "kitalálva" (lehetne C# nyelven is dolgozni amúgy, csak azt egyrészt nem ismerem annyira ill. a VB .NET nagyon hasonlít a VBA-hoz nyelvezetében, felépítésében stb, nyilván nem véletlen)

    A VB .NET kód megírásához Visual Studio 2022 Community Edition-t használtam (ingyenes)

    1. VB .NET Library Class-t (DLL lesz belőle) így kell létrehozni Visual Studio-val

    2. Hogy a megfelelő függvények/osztályok stb rendelkezésre álljanak, ahhoz az AutoCAD-ből 3 referenciát kell hozzáadni, a rendszerből meg egyet. A VB .NET project-t befordítva (build) kapjuk meg majd a DLL-t, ami kell az AutoCAD-nek

    3. AutoCAD megnyit, betöltünk egy létező vagy létrehozunk egy üres project-t kiadjuk a NETLOAD parancsot, majd a megjelenő fájlablakban betöltjük a korábban létrehozott DLL-t

    4. Most futtatjuk a DLL-ben található függvényünket (ez esetben a FireOpenFileDialog nevet viseli)

    5. ha minden rendben, akkor meg kell nyitnia a fájlablakot és amennyiben kiválasztasz egy fájlt (példaprogiban csak DWG/DVB állítottam a szűrőt), akkor egy ablakban kiírja a fájl nevét, teljes útvonalával

    Imports Autodesk.AutoCAD.ApplicationServices
    Imports Autodesk.AutoCAD.Runtime

    Public Class FireAutoCADOpenFileDialogExample
    <CommandMethod("FireOpenFileDialog")>
    Public Sub FireOpenFileDialog()
    Dim MyOpenFileDialog As New Autodesk.AutoCAD.Windows.OpenFileDialog("FIRE/SOUL/CD - VB.NET FileOpenDialog Class",
    "",
    "DWG;DVB",
    "AutoCAD Drawing/Project Files",
    0 'Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags
    )

    If MyOpenFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    System.Windows.Forms.MessageBox.Show(MyOpenFileDialog.Filename)
    Else
    System.Windows.Forms.MessageBox.Show("Nem választottál ki fájlt.")
    End If
    End Sub

    End Class

    Ennyit tudtam tenni az ügy érdekében, rajtad áll, hogy a korábbi WINAPI-s (az VBA kód ugye) avagy emellett döntesz. ;]

    UI: Lehet, hogy érdemes lenne az AutoCAD topikban is érdeklődni, hátha van egyéb (és ami fontos, egyszerűbb) megoldás is.

    UUI: a #3200-ben lévő megoldás nem működik, felejtős, viszont a #3199 kifogástalanul megy AutoCAD-ben is (mondjuk, mint írtam meg lettem volna lepve, ha nem)...

    Kedves "Fire/SOUL/CD" !

    Nagyon köszönöm, hogy ennyit fáradoztál.
    A hosszú hétvége nekem ennyire megnyúlt, nemrég értem haza.
    Most sorban ártnézem, amit küldtél, és majd fogok jelezni, sikerült-e.
    Még egyszer, nagyon köszönöm.

Új hozzászólás Aktív témák