Vytisknout stránku | Zavřít okno

Hromadná konverze do DGN

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=9030
Datum vytištění: 20.srp.2026 v 17:04


Téma: Hromadná konverze do DGN
Odeslal: Juri_
Předmět: Hromadná konverze do DGN
Datum odeslání: 05.srp.2009 v 09:40
Zdravím,
dostal jsem za úkol převést několik set výkresů z DWG do DGN. K dispozici mám Autocad 2005 nebo Aucotad 2010. Převod ručně je v pořádku.
Ale chtěl jsem to provést nějak automaticky. Lispem nevládnu, tak jsem si zde našel makro VBA z inventoru, které jsem upravil.
Ale skončil jsem na části uložení. Tam mi vždy makro spadne s chybou -2... a v Autocad zatuhne výkres. Zkoušel jsem export i saveas a nic.
Pokud by někdo dokázal napsat rutinu i v lispu bych bych moc vděčný.

Děkuji předem za pomoc

Michal Juřica

Makro:
Sub AllConvert()
   
    Dim sFile As String, sInDir As String, sOutDir As String
    Dim oDocs As AcadDocuments, oDoc As AcadDocument
    Dim aktSelDoc As AcadSelectionSet
   

    'Set oDocs = ThisDrawing.Application
    Set oDocs = Application.Documents
    'Define your source and target directories
    sInDir = "D:\Práce\Projekty\20090805 ABB DE Převod DGN\"
    sOutDir = "D:\Práce\Projekty\20090805 ABB DE Převod DGN\"

    sFile = Dir(sInDir)

    While (sFile <> "")

        'Define the SOURCE format extension (IPT, IAM, IDW...)
        If (Right(sFile, 3) = "dwg") Then
            Debug.Print sFile
            Set oDoc = oDocs.Open(sInDir & sFile, False)
           
            Set aktSelDoc = oDoc.ActiveSelectionSet

           

            'Define the TARGET format extension (IGS, DXF, WRL...)
            'Call oDoc.Export(sOutDir & Left(sFile, Len(sFile) - 3), "dgn", aktSelDoc)
            'Call oDoc.SaveAs(sOutDir & Left(sFile, Len(sFile) - 3), "dxf")
            Call oDoc.Close

        End If

        sFile = Dir

    Wend
End Sub




Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 05.srp.2009 v 09:44
Na to nemusíte nic programovat. Stačí spustit dávkový skript, kde bude jen otevření výkresu a jediný příkaz: [CMD]-DGNEXPORT[/CMD].

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Seiner
Datum odeslání: 05.srp.2009 v 09:52
A pokud se Vám nechce ten script tvořit ručně, použijte nejaký generátor scriptů. (Nic nevnucuji - taky z toho nic nemám, ale ten můj umí i podadresáře :-)
http://www2.chrudim.cz/seiner/programy/Davka.zip" rel="nofollow - http://www2.chrudim.cz/seiner/programy/Davka.zip


-------------
Vítězslav Seiner

Chrudim


Odeslal: Juri_
Datum odeslání: 05.srp.2009 v 10:49
Děkuji tipy a pomoc.

Problém úspěšně vyřešen a převod pěkně chodí.

P.S. Už jsem myslel, že to nedám, ale stačilo si přečíst ctimne.txt a středník vše vyřešil.

Ještě jednou děkuji
Michal



Vytisknout stránku | Zavřít okno