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

 právě nás čte: 2632 
RSS tipy RSS kanál - CAD tipy
RSS diskuze RSS kanál - CAD diskuze

Diskuze Diskuzní fórum, poradna

NápovědaCAD diskuze, rady, výměna zkušeností

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, Fusion 360, 3ds Max a s 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. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
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řenoHromadný převod do DXF

 Odpovědět Odpovědět archiv
Autor
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Téma: Hromadný převod do DXF
    Zasláno: 12.říj.2012 v 09:54
Dobrý den,
v současnosti používám kód pro převod plechových součástí do DXF, který je v každé součásti zvlášť. Chtěl bych všechny plechové součásti převést pomocí jednoho pravidla napsaného v sestavě (moje představa je, aby kód vyhledal pouze plechové součásti a ty následně uložil jako DXF). Ještě v kódu potřebuji vypnout některé hladiny.
Tady je kód, který používám.

Public Sub Main()
    ' Získat aktivní dokument, musí to být součást, rozvinutý tvar
    Dim invDoc As Inventor.Document
    invDoc = ThisApplication.ActiveDocument
   
    ' Jméno dokumentu
    Dim sFileName As String
    sFileName = invDoc.DisplayName
    sFileName = Left(sFileName, Len(sFileName) - 1) 'bez .IPT

    ' Vytvořit objekt DataIO
    Dim oDataIO As DataIO
    oDataIO = invDoc.ComponentDefinition.DataIO
 
    ' Parametry definující formát výstupního souboru DWG nebo DXF
    Dim sParam As String
    sParam = "FLAT PATTERN DXF?AcadVersion=2000"
'dostupné formáty: AcadVersion = "2005","2004","2002", "2000", "R14", "R13", "R12" (R12 jen pro DXF)

 
    ' Vytvořit výstupní DWG nebo DXF soubor v adresáři C:\TEMP
    Dim sDXFFileName As String
    sDXFFileName = "c:\temp\" & sFileName & ".dxf"
    oDataIO.WriteDataToFile (sParam, sDXFFileName)
End Sub


Děkuji
Adam Blažek
Zpět nahoru
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 15.říj.2012 v 14:02
Vytvořil jsem kód pro hromadné uložení všech souborů do jiného typu, s malou záměnou je funkční pro různé tipy přípon, problém nastane když chci ukládat do dxf. Předpokládám, že je problém v cestě k rozvinu.
Neví někdo co s tím?

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 s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 15.říj.2012 v 14:37
Problémy jsou tu dva.
1) Adresář pro DXF musí existovat, jinak to skončí s chybou při zápisu do souboru
...
oDataIO.WriteDataToFile (sParam, sDXFFileName)
...
 
2) Pokud není otevíraná součást plech, skončí to s chybou tamtéž.

A jedna poznámka na závěr: Otevřený soubor je po dokončení vhodné zavřít.
 
...
oDoc.Close(true)
End If
...
 
Zpět nahoru
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 17.říj.2012 v 07:40
Děkuji za rady.
Přidal jsem pravidlo pro testování plechu a už to běhá.

Ještě při převodu potřebuji vypnout některé hladiny, cary ohybu a nejak se mi to nedari.
...
sParam = "FLAT PATTERN DXF?AcadVersion=2000"
                + "&TangentLayer=IV_TANGENT" _
                + "&BendLayer=IV_BEND" _



Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 17.říj.2012 v 08:00
Hladiny je potřeba vypnout, ne přejmenovat.
sParam = "FLAT PATTERN DXF?AcadVersion=2000&InvisibleLayers=IV_TANGENT;IV_BEND;IV_BEND_DOWN"
Zpět nahoru
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2012 v 09:07
Dobrý den,
děkuji za výše uvedené připomínky a chtěl bych se ještě zeptat jestli je možné získat cestu k souboru jako iVlastnost
např. takto: cesta = iProperties.Value("Project", "Location")
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 22.říj.2012 v 13:40
V iVlastnostech se cesta k souboru nevyskytuje. Je ale možné jí získat z plného názvu souboru
SyntaxEditor Code Snippet
Dim fileName As String = ThisDoc.Document.FullFileName
Dim fileLocation As String = System.IO.Path.GetDirectoryName(fileName)
 


Upravil Navara - 22.říj.2012 v 13:40
Zpět nahoru
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 24.říj.2012 v 11:39
Lze toto použít pro získání cesty k jednotlivým souborům v sestavě, přičemž by pravidlo bylo zapsáno pouze v hlavní sestavě?
Momentálně to obcházím přes kusovník, kde získávám cestu k souborům.

Jsou dostupné nějaké návody a popis pro API v češtině.

Děkuji.
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 24.říj.2012 v 12:32
Odpověď je podobná jako v tomto případě
 
Pro API žádné návody ani popisy v češtině nejsou (naštěstí, protože nechci vědět, jak by ty překlady dopadly)
Zpět nahoru
hoboj Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 22.led.2008
Lokalita: ČR (HK)
Používám:
NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM
Stav: Offline
Bodů: 804
Přímý odkaz na tuto zprávu Zasláno: 08.lis.2012 v 13:43
Chtěl bych se zeptat na řádek, kde se nastavuje objekt DataIO a potom na sParam, jestli by to šlo poupravit pro export výkresu idw na dwg verze R14.
Šlo by to?
 
Mám makro na export idw -> dwg , ale pouze verze 2000 a to bych potřeboval změnit na R14.
 
Děkuji za rady.
Vojtěch Visingr
Zpět nahoru
Navara Zobrazit panel
CAD Studio support
CAD Studio support
Avatar
CAD Studio s.r.o.

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 09.lis.2012 v 08:08
Formát R14 je povlen pouze pro DXF.
Zpět nahoru
hoboj Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 22.led.2008
Lokalita: ČR (HK)
Používám:
NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM
Stav: Offline
Bodů: 804
Přímý odkaz na tuto zprávu Zasláno: 09.lis.2012 v 08:11
a jak by to šlo napsat pro dxf?
Prosím Smile
Vojtěch Visingr
Zpět nahoru
Adamito Zobrazit panel
Diskutér
Diskutér

Přihlášen: 11.říj.2012
Lokalita: ČR (ZL)
Používám:
Inventor
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 09.lis.2012 v 09:15
Dobrý den,
u mě stačilo přepsat 2000 na R14 (respektive R12, R14 nemám podporován)
Zpět nahoru
hoboj Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 22.led.2008
Lokalita: ČR (HK)
Používám:
NX; ProE; Creo; I13; AutoCAD2011, SurfCAM, EdgeCAM
Stav: Offline
Bodů: 804
Přímý odkaz na tuto zprávu Zasláno: 09.lis.2012 v 09:51
To funguje pro rozvin, já to ale potřebuji pro normální výkres idw bez rozvinu..
 
Na to už mám makro, ale v makru nevím, jak nastavit starší verzi.
Vojtěch Visingr
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7849:VIPAutomatické vytváření DXF, DWG a DWF souborů z IPT a IDW souborů.
Tip 12159:VIPSnadný převod souborů SVG, CGM, VSD nebo AI do AutoCADu. Převod DWG-DXF.
Tip 4134:Dávkový převod IDW výkresů Inventoru do DWG, DXF a DWF.
Tip 9686:VIPDávkový převod souborů DWF na formát DWFx.
Tip 9967:Dávkový převod CAD souborů z/do formátů IPT/IAM, STEP, IGES, SAT, Catia, apod.
Tip 4147:VIPImport VRML, XGL a dalších 3D formátů do AutoCADu a Inventoru.


 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 0,609 sekund.