Da in iLogic auch .NET-Klassen aus dem Namespace System.IO
zur Verfügung stehen, können diese genutzt werden, um Plain-Text-Dateien mittels StreamWriter zu erzeugen und zu schreiben.
Minimalbeispiel
Im folgenden ein Minimalbeispiel, dass eine Textdatei hallo.txt
im Pfad C:/iLogicOutput/
erzeugt, die Zeichenfolge Hallo
schreibt und nach dem Schreibvorgang das Dokument automatisch öffnet. Vorangestellt ist eine Prüfung die sicherstellt, dass der Ausgabepfad bereits existiert und legt diesen ggf. an, bevor der Schreibvorgang startet.
Dim oFile As System.IO.File
Dim oWrite As System.IO.StreamWriter
Dim sFilePath As String = "C:/iLogicOutput/hallo.txt"
Dim sDirectory As String = System.IO.Path.GetDirectoryName(sFilePath)
If Not System.IO.Directory.Exists(sDirectory) Then
System.IO.Directory.CreateDirectory(sDirectory)
End If
oWrite = oFile.CreateText(sFilePath)
oWrite.WriteLine("Hallo")
oWrite.Close()
ThisDoc.Launch(sFilePath)
Anwendungsbeispiele
Blechregeln als CSV-Export
Dieses Beispiel exportiert sämtliche Blechregeln als CSV-Datei. Als Trennzeichen (Delimiter) wird in diesem Fall ein Semikolon ;
verwendet und kann ggf. in den Zeilen oWrite.WriteLine()
angepasst werden, sofern ein Komma als Trennzeichen erwünscht ist. Das Beispiel ist ein Quick-and-Dirty-Lösung, die den CSV-Header und die Wertezeilen rausschreibt. Die CSV-Datei kann dann theoretisch auch in Excel importiert werden - wenn man das denn will.
Das Blechteil wird, wie bereits im Post iLogic: Dokumententypen erläutert, über die DocumentSubTypeID
ermittelt.
Dim oDoc As Document = ThisDoc.Document
' Check if Sheet Metal Part is currently open in Inventor
If oDoc.DocumentSubType.DocumentSubTypeID <> "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
MessageBox.Show("Please open a Sheet Metal Part and try again", _
"Not a Sheet Metal Part", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Exit Sub
End If
' Get SheetMetalStyles object
Dim oSheetMetalStyles As SheetMetalStyles = oDoc.ComponentDefinition.SheetMetalStyles
' Filewriter
Dim oFile As System.IO.File
Dim oWrite As System.IO.StreamWriter
Dim sFilePath As String = "C:/iLogicOutput/SheetMetalRules.csv"
Dim sDirectory As String = System.IO.Path.GetDirectoryName(sFilePath)
If Not System.IO.Directory.Exists(sDirectory) Then
System.IO.Directory.CreateDirectory(sDirectory)
End If
oWrite = oFile.CreateText(sFilePath)
' CSV Header
oWrite.WriteLine("""Sheet Metal Rule"";""Material"";""Thickness"";""Bend Radius"";""Unfold Rule"";""kFactor""")
' CSV Row Data
For Each oSheetMetalStyle As SheetMetalStyle In oSheetMetalStyles
Dim sRuleName As String = oSheetMetalStyle.Name
Dim sMaterial As String = oSheetMetalStyle.Material.Name
Dim sThickness As String = oSheetMetalStyle.Thickness
Dim sBendRadius As String = oSheetMetalStyle.BendRadius
Dim sUnfoldRule As String = oSheetMetalStyle.UnfoldMethod.Name
Dim sKFactor As String = oSheetMetalStyle.UnfoldMethod.kFactor
oWrite.WriteLine("""{0}"";""{1}"";""{2}"";""{3}"";""{4}"";""{5}""", _
sRuleName, sMaterial, sThickness, sBendRadius, sUnfoldRule, sKFactor)
Next
oWrite.Close()
ThisDoc.Launch(sFilePath)
Materialexport als Markdown-Tabelle
Dieses Beispiel exportiert die Materialbibliothek des aktiven Dokuments in eine Markdown Tabelle. Zusätzlich wird der Zeitpunkt des Exports im Dateinamen im Format Materials_2025-06-01.txt
festgehalten.
iLogic erlaubt keinen nativen Export ins Markdown Format mit der Dateiendung .md
und wirft beim Versuch eine Fehlermeldung. Daher wird auch dieser Export als Text-Datei .txt
ausgeleitet.

Dim oDoc As Document = ThisDoc.Document
If oDoc.DocumentType <> kPartDocumentObject Then
MessageBox.Show("This document is not a Part Document." & vbCrLf & vbCrLf & "Open a Part Document and try again.", _
ThisDoc.FileName(True) & ": Run only in Parts", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
Exit Sub
End If
Dim oMaterials As Materials = oDoc.Materials
' Formatted date for filename
Dim formattedDate As String = Now.ToString("yyyy-MM-dd")
' File Writer
Dim oFile As System.IO.File
Dim oWrite As System.IO.StreamWriter
Dim sFilePath As String = "C:/iLogicOutput/Materials_" & formattedDate & ".txt"
Dim sDirectory As String = System.IO.Path.GetDirectoryName(sFilePath)
If Not System.IO.Directory.Exists(sDirectory) Then
System.IO.Directory.CreateDirectory(sDirectory)
End If
oWrite = oFile.CreateText(sFilePath)
oWrite.WriteLine("Export date: **" & formattedDate & "**" )
oWrite.WriteLine("")
oWrite.WriteLine("This table is a Markdown Table. Paste it into your Markdown renderer of choice like https://dillinger.io or VSCode.")
oWrite.WriteLine("")
oWrite.WriteLine("| Material Name | Internal Name | Density [g/cm^3^]|")
oWrite.WriteLine("| ------------- | ------------- | ---------------: |")
For Each oMaterial As Material In oMaterials
Dim sMaterialName As String = oMaterial.Name.ToString
Dim sMaterialInternalName As String = oMaterial.InternalName
Dim dDensity As Double = oMaterial.Density
Dim sResult As String = "| " & sMaterialName & " | " & sMaterialInternalName.TrimEnd & " | " & dDensity & " |"
oWrite.WriteLine(sResult)
Next
oWrite.Close()
ThisDoc.Launch(sFilePath)
Der Output ist als Markdown Tabelle formatiert und kann mit einem Markdown Renderer wie Visual Studio Code oder Onlinediensten wie dillinger.io gerendert werden:

Gerenderte Markdown Tabelle mit dillinger.io