Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor a další produkty Autodesk - od firmy CAD Studio [www.cadforum.cz]
Česky Slovensky English Deutsch
Přihlášení:
▶ Registrace

 právě čte: 3770 
RSS tipy RSS kanál - CAD tipy
RSS diskuze RSS kanál - CAD diskuze

Diskuze Diskuzní fórum

NápovědaCAD diskuze

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit a dalšími CAD aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru.
Fórum nenahrazuje technický support firmy CAD Studio - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoexport souborů dxf jen u plechových součátí

 Odpovědět Odpovědět archiv
Autor
carlosiiino Zobrazit panel
Nováček
Nováček

Přihlášen: 17.úno.2016
Lokalita: ČR (JM)
Používám:
Inventor, AutoCAD
Stav: Offline
Bodů: 6
Přímý odkaz na tuto zprávu Téma: export souborů dxf jen u plechových součátí
    Zasláno: 06.dub.2016 v 13:28
Dobrý den, mám vytvořené pravidlo pro export rozvinů plechových součástí (viz.níže), ale potřebuji do kódu nějak zakombinovat, aby vyhledal jen plechové součásti a ne objemové. Může mi někdo poradit ? Děkuji

SyntaxEditor Code Snippet
Sub Main()   


    Dim sFile As String, sInDir As String, sOutDir As String, I As String

    Dim oDocs As Documents, oDoc As Document

 

    oDocs = ThisApplication.Documents

 

    'Cesta pro otevření a uložení souboru

    sInDir = (ThisDoc.Path & "\")

    sOutDir = (ThisDoc.Path & "\DXF\")

      

    sFile = Dir(sInDir)

      

    While (sFile <> "")

                        

        'Definice formatu souboru pro otevření (IPT, IAM, IDW...)

        If (Right(sFile, 3) = "ipt") Then

            Debug.Print (sFile)

            oDoc = oDocs.Open(sInDir & sFile, False)
            
            ' Vytvořit objekt DataIO

            Dim oDataIO As DataIO

            oDataIO = oDoc.ComponentDefinition.DataIO

            ' Parametry definující formát výstupního souboru DXF

            Dim sParam As String

            sParam = "FLAT PATTERN DXF?AcadVersion=2000"

                  

                  ' Vytvořit výstupní DXF soubor v adresáři

            Dim sDXFFileName As String

            sDXFFileName = (sOutDir & Left(sFile, Len(sFile) - 3) & "DXF")

            MessageBox.Show(sDXFFileName, " CESTA SOUBORU")

            oDataIO.WriteDataToFile (sParam, sDXFFileName)

          End If

 
        sFile = Dir

 

      End While

End Sub 
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 798
Přímý odkaz na tuto zprávu Zasláno: 06.dub.2016 v 14:35
Lze porovnat vlastnost DocumentSubTypeID
 
...
oDoc = oDocs.Open(sInDir & sFile, False)
If oDoc.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then Continue While
 
' Vytvořit objekt DataIO
Dim oDataIO As DataIO
...
Zpět nahoru
carlosiiino Zobrazit panel
Nováček
Nováček

Přihlášen: 17.úno.2016
Lokalita: ČR (JM)
Používám:
Inventor, AutoCAD
Stav: Offline
Bodů: 6
Přímý odkaz na tuto zprávu Zasláno: 11.dub.2016 v 07:38
Dobrý den,

děkuji za rychlou reakci.

SyntaxEditor Code SnippetMůžete mi prosím ještě poradit, proč mi Inventor po vytvoření posledního dxf zamrzne a nereaguje?
Upravený kód níže.
Děkuji
Sub Main()   


    Dim sFile As String, sInDir As String, sOutDir As String, I As String

    Dim oDocs As Documents, oDoc As Document

 

    oDocs = ThisApplication.Documents

 

    'Cesta pro otevření a uložení souboru

    sInDir = (ThisDoc.Path & "\")

    sOutDir = (ThisDoc.Path & "\DXF\")

      

    sFile = Dir(sInDir)

      

    While (sFile <> "")

                        

        'Definice formatu souboru pro otevření (IPT, IAM, IDW...)

        If (Right(sFile, 3) = "ipt") Then

            Debug.Print (sFile)

            oDoc = oDocs.Open(sInDir & sFile, False)
            If oDoc.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then Continue While
            
            ' Vytvořit objekt DataIO

            Dim oDataIO As DataIO

            oDataIO = oDoc.ComponentDefinition.DataIO

            ' Parametry definující formát výstupního souboru DXF

            Dim sParam As String

            sParam = "FLAT PATTERN DXF?AcadVersion=2000&InvisibleLayers=IV_TANGENT;IV_BEND;IV_BEND_DOWN"

                  

                  ' Vytvořit výstupní DXF soubor v adresáři

            Dim sDXFFileName As String

            sDXFFileName = (sOutDir & Left(sFile, Len(sFile) - 3) & "DXF")

            MessageBox.Show(sDXFFileName, " CESTA SOUBORU")

            oDataIO.WriteDataToFile (sParam, sDXFFileName)

          oDoc.Close(True)
          End If

 
        sFile = Dir

 

      End While

End Sub
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 798
Přímý odkaz na tuto zprávu Zasláno: 11.dub.2016 v 11:07
Myslím, že to dělá ten cyklus While, kde v případě, že to není plech, nedojde k nastavení na další název souboru a smyčka se zasekne.
Já dávám přednost použití cyklu For Each, kde jako kolekci pro procházení použiju seznam všech souborů v daném adresáři.
 

Dim path = sInDir
Dim files  = IO.Directory.GetFiles(path,"*.ipt", SearchOption.TopDirectoryOnly) 'Or: SearchOption.AllDirectories
For Each file As String In files
    Dim document  = ThisApplication.Documents.Open(file)
    If document.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        document.Close()
        Continue For
    End If
    'TODO: Export DXF here
Next
 
 
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio a.s.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 798
Přímý odkaz na tuto zprávu Zasláno: 11.dub.2016 v 11:17
Teoreticky by se dalo použít něco na tenhle způsob, ale ani Microsoft to nedoporučuje.

While sFile<>""
   dim oDoc = oDocs.Open(sInDir & sFile, False)

    If oDoc.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
        sFile = Dir()
        Continue While
    End If
    ' Vytvořit objekt DataIO
    Dim oDataIO As DataIO
End While
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7712:Dávkový export rozvinů z Inventoru do DXF/DWG.
Tip 9641:Export rozvinu z Inventoru do formátu DXF.
Tip 5975:Export rozvinu plechových součástí Inventoru pro CNC stroje.
Tip 7276:VIPPísma s můstky pro vypalování a vyřezávání textů (laser font).
Tip 3938:Jak v Revitu ovlivnit tloušťku čar detailů načítaných z AutoCADu?
Tip 5626:VIPBezplatný dávkový konvertor 3D souborů formátu OBJ, 3DS, DXF.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,110 sekund.