Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 6242 
RSS kanál - CAD tipy RSS tipy
RSS 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 Arkance Systems (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 plechů ve složce do DXF (opět...)

 Odpovědět Odpovědět archiv
Autor
IvoBe Zobrazit panel
TOP uživatel
TOP uživatel
Avatar

Přihlášen: 11.čvc.2005
Lokalita: ČR (SČ)
Používám:
Fusion 360
Stav: Offline
Bodů: 289
Přímý odkaz na tuto zprávu Téma: Export plechů ve složce do DXF (opět...)
    Zasláno: 12.úno.2018 v 16:01
Zdravím, hraji si s pravidly  iLogicu a zkouším udělat, co už se tu opakovaně řešilo (z fora jsem to taky víceméně opsal) - export rozvinů všech plechových dílů ve složce do DXF. Chci to vylepšit o to, že název souboru se bude vypadat např takto:

4V-10101 - DÍL 1 - S235JR - T5
(číslo výkresu - název dílu - materiál - tloušťka plechu)

Když spustím část kódu mezi poznámkami ZAČÁTEK a KONEC  TĚLA CYKLU v (jednom) otevřeném plechovém dílu jako samostatné pravidlo, tak to funguje, takže ve skládání názvu souboru není problém.

Když to ale zabalím do cyklu, tak se exportuje jen první díl s skončí to chybou.

Mohl by se nějaký fanda na to kouknout prosím (dělám smutné oči na pana Navaru...)

Děkuji a zdravím, Ivo Bešťák


Připojené náhledyPřihlaste se pro zobrazení plné verze - 627/chyba1.jpg



Připojené náhledyPřihlaste se pro zobrazení plné verze - 627/chyba2.jpg




PlechyDoDXF.iLogicVb
------------------------------------------------------------------------
parametry pro rozvin

'aktualni slozka
Dim sPath As String 
sPath = (ThisDoc.Path & "\")
    
'vystupni slozka
Dim sOutDir As String
sOutDir="D:\DXF\"

'parametry rozvinu
Dim sSett As String
sSett = "FLAT PATTERN DXF?AcadVersion=2000" _
+"&InvisibleLayers=IV_BEND;IV_BEND_DOWN;IV_TANGENT;IV_TOOL_CENTER;IV_TOOL_CENTER_DOWN;IV_ARC_CENTERS;IV_ALTREP_FRONT;IV_ALTREP_BACK;IV_UNCONSUMED_SKETCHES;IV_ROLL_TANGENT;IV_ROLL" _
+"&SimplifySplines=True" _
+"&LINEAR TOLERANCE=0.1" _
+"&MergeProfilesIntoPolyline=True" _
+"&RebaseGeometry=False" _
+"&TrimCenterlines=True"

'oddelovac
Dim sSep As String
sSep = " - "

'vyber IPT souboru ve aktualni slozce
Dim files = IO.Directory.GetFiles(sPath,"*.ipt")

'cyklus pres IPT soubory
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

'ZACATEK TELA CYKLU
    
    'cislo vykresu
    Dim sVykres As String
    sVykres = iProperties.Value("Summary", "Title")
    'MsgBox(sVykres, MessageBoxButtons.OKCancel)
    
    'nazev dilu
    Dim sNazev As String
    sNazev = iProperties.Value("Summary", "Subject")
    'MsgBox(sNazev, MessageBoxButtons.OKCancel)
    
    'material
    Dim sMatros As String
    sMatros= iProperties.Material
    'MsgBox(sMatros, MessageBoxButtons.OKCancel)
    
    'tloustka plechu
    Dim sTloustka As String
    sTloustka = "T" & iProperties.Value("Custom", "SM_Thickness")
    'MsgBox(sTloustka, MessageBoxButtons.OKCancel)
    
    'poskladane jmeno vystupniho souboru
    Dim fSname As String
    sDXFFileName = sOutDir & sVykres & sSep & sNazev & sSep & sMatros & sSep & sTloustka & ".dxf"
'    MsgBox(sDXFFileName, MessageBoxButtons.OKCancel)
    
    'kdyz neexituje rozvin, tak se vytvori, kdyz existuje, tak se zaktivni
    If ThisApplication.ActiveDocument.ComponentDefinition.HasFlatPattern = False Then
    ThisApplication.ActiveDocument.ComponentDefinition.Unfold
    Else
    ThisApplication.ActiveDocument.ComponentDefinition.FlatPattern.Edit
    End If
        
    'vlastni export
    ThisApplication.ActiveDocument.ComponentDefinition.DataIO.WriteDataToFile( sSett, sDXFFileName)
    
    'prepnuti z rozvinu zpet
    ThisApplication.ActiveDocument.ComponentDefinition.FlatPattern.ExitEdit
    
document.Close()
'KONEC TELA CYKLU
Next
------------------------------------------

Připojené souboryzipuploads/627/plechy-do-DXF.zip
Ivo Bešťák
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21465
Přímý odkaz na tuto zprávu Zasláno: 12.úno.2018 v 16:12
To asi nepůjde mu takhle "pod rukama" měnit kontext dokumentu a chtít přistupovat na implicitní iProperties. Asi by ale šlo udělat smyčku ze sestavy, přes AllReferencedDocuments a k iVlastnostem pak přistupovat pomocí iProperties.Value(partDoc, "Summary", "Subject").
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Navara Zobrazit panel
Arkance Systems support
Arkance Systems support
Avatar
Arkance Systems

Přihlášen: 08.zář.2008
Lokalita: ČR (Pha)
Používám:
Inventor
Stav: Offline
Bodů: 1637
Přímý odkaz na tuto zprávu Zasláno: 18.úno.2018 v 14:30
Dobrý den,
Po dovolené a hned takový pěkný dotaz. Wink
 
Já nejsem moc přítel používání těch zkratek v iLogicu jako jsou iProperties. Zejména protože nejsou dobře zdokumentované. Dávám přednost využívání standardního API pro iVlastnosti. Potom je možné snadno celý kód rozdělit na dvě části. Jedna (Main)se stará o nastavení a vyhledání souborů pro export a druhá (ExportDocumentToDxf) se stará o samotný export. V té druhé metodě jsem nahradil použití iProperties(...) za standardní API funkce a doplnil proměnné part a sheetmetalComponentDefinition. Z toho potom plynou drobné formální úpravy kódu.
 
Pozor na používání ThisApplication.ActiveDocument. To nemusí být vždycky ten, nad kterým se spouští pravidlo. Když už používáte iLogic, použijte radši ThisDoc.Document, protože to je skutečně dokument, nad kterým vám budou fungovat funkce jako například iProperties().
 
 
Sub Main()
    'aktualni slozka
    Dim sPath As String
    sPath = (ThisDoc.Path & "\")
    'vystupni slozka
    Dim sOutDir As String
    sOutDir = "D:\DXF\"
    'parametry rozvinu
    Dim sSett As String
    sSett = "FLAT PATTERN DXF?AcadVersion=2000" _
    + "&InvisibleLayers=IV_BEND;IV_BEND_DOWN;IV_TANGENT;IV_TOOL_CENTER;IV_TOOL_CENTER_DOWN;IV_ARC_CENTERS;IV_ALTREP_FRONT;IV_ALTREP_BACK;IV_UNCONSUMED_SKETCHES;IV_ROLL_TANGENT;IV_ROLL" _
    + "&SimplifySplines=True" _
    + "&LINEAR TOLERANCE=0.1" _
    + "&MergeProfilesIntoPolyline=True" _
    + "&RebaseGeometry=False" _
    + "&TrimCenterlines=True"
    'oddelovac
    Dim sSep As String
    sSep = " - "
    'vyber IPT souboru ve aktualni slozce
    Dim files = IO.Directory.GetFiles(sPath, "*.ipt")
    'cyklus pres IPT soubory
    For Each file As String In files
        Dim document = ThisApplication.Documents.Open(file)
        ExportDocumentToDxf(document, sOutDir, sSep, sSett)
        document.Close() 'KONEC TELA CYKLU
    Next
End Sub
 
Private Sub ExportDocumentToDxf(document As _Document, sOutDir As String, sSep As String, sSett As String)
    ''Nadbytecne
    'If part.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
    '    document.Close()
    '    Return
    'End If
   
    Dim sheetmetalComponentDefinition As SheetMetalComponentDefinition
    Dim part As PartDocument
    Try
        'Document is part
        part = document
        If part Is Nothing Then Return
        'Part is SheetmetalPart
        sheetmetalComponentDefinition = part.ComponentDefinition
        If sheetmetalComponentDefinition Is Nothing Then Return
    Catch
        'Ignore eror and exit
        Return
    End Try
 
    'ZACATEK TELA CYKLU
 
    'cislo vykresu
    Dim sVykres As String = part.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Title").Value
    'sVykres = iProperties.Value("Summary", "Title")
    'MsgBox(sVykres, MessageBoxButtons.OKCancel)
 
    'nazev dilu
    Dim sNazev As String = part.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Subject").Value
    'sNazev = iProperties.Value("Summary", "Subject")
    'MsgBox(sNazev, MessageBoxButtons.OKCancel)
 
    'material
    Dim sMatros As String = sheetmetalComponentDefinition.ActiveSheetMetalStyle.Material.Name
    'sMatros = iProperties.Material
    'MsgBox(sMatros, MessageBoxButtons.OKCancel)
 
    'tloustka plechu
    Dim sTloustka As String = "T" & part.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")("SM_Thickness").Value
    'sTloustka = "T" & iProperties.Value("Custom", "SM_Thickness")
    'MsgBox(sTloustka, MessageBoxButtons.OKCancel)
 
    'poskladane jmeno vystupniho souboru
    Dim sDxfFileName = sOutDir & sVykres & sSep & sNazev & sSep & sMatros & sSep & sTloustka & ".dxf"
    '    MsgBox(sDXFFileName, MessageBoxButtons.OKCancel)
 
    'kdyz neexituje rozvin, tak se vytvori, kdyz existuje, tak se zaktivni
    If sheetmetalComponentDefinition.HasFlatPattern = False Then
        sheetmetalComponentDefinition.Unfold()
    Else
        sheetmetalComponentDefinition.FlatPattern.Edit()
    End If
 
    'vlastni export
    sheetmetalComponentDefinition.DataIO.WriteDataToFile(sSett, sDxfFileName)
 
    'prepnuti z rozvinu zpet
    sheetmetalComponentDefinition.FlatPattern.ExitEdit()
 
End Sub
 


Upravil Navara - 18.úno.2018 v 14:47
Zpět nahoru
huku Zobrazit panel
Nováček
Nováček

Přihlášen: 30.dub.2009
Lokalita: ČR (Pha)
Používám:
Autocad 2009
Stav: Offline
Bodů: 2
Přímý odkaz na tuto zprávu Zasláno: 19.úno.2018 v 17:17
Dobrý den,
Zmiňované pravidlo mi vykazuje chybu. Prosím o radu na její odstranění. 
Děkuji
Ouředník Miroslav

Připojené náhledyPřihlaste se pro zobrazení plné verze - 16051/Chyba.png

Zpět nahoru
huku Zobrazit panel
Nováček
Nováček

Přihlášen: 30.dub.2009
Lokalita: ČR (Pha)
Používám:
Autocad 2009
Stav: Offline
Bodů: 2
Přímý odkaz na tuto zprávu Zasláno: 19.úno.2018 v 18:38
Prosím, jak by se musel upravit tento zápis, aby se ukládal název souboru ipt. nikoli název dílu:
'nazev dilu
    Dim sNazev As String = part.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}")("Subject").Value
    'sNazev = iProperties.Value("Summary", "Subject")
    'MsgBox(sNazev, MessageBoxButtons.OKCancel)
 
Děkuji.
Ouředník Miroslav
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 12414:Jak z Fusion 360 exportovat DXF obrysu rozvinu plechu bez ohybových hran.
Tip 12486:Jak z Fusion 360 vyexportovat zjednodušený DXF bez spline?
Tip 11717:Jak exportovat rozvin plechu ve Fusion 360?
Tip 13353:Jak vyexportovat 2D profil IPT součásti do DXF?
Tip 12894:Jak exportovat DXF i z bezplatné osobní verze Fusion 360?
Tip 7712:Dávkový export rozvinů z Inventoru do DXF/DWG.


 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,141 sekund.