IvoBe
12.02.2018, 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šťákPlechyDoDXF.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
------------------------------------------uploads/627/plechy-do-DXF.zip
'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
------------------------------------------uploads/627/plechy-do-DXF.zip