Inventor iLogic: STEP einer Abwicklung exportieren? -So geht’s

Hallo liebe Inventor Anwender,

eigentlich kann man aus der Abwicklung eines Inventor Blechteils sehr komfortabel eine DXF oder SAT Datei abspeichern. Sie erinnern sich evtl., dass habe ich auch schon mit iLogic automatisier. 🙂 Für viele Laser-, Plasma- oder Wasserstrahl- Schneidemaschinen reicht das.

cuting sheet metal

Doch in letzter Zeit werde ich immer mal wieder gefragt:
„Wie kann man eine STEP-Datei aus der Inventor Abwicklung erstellen?“

Mit den Standardfunktionen von Inventor geht das nur, wenn man ein Blech mit der Abwickeln-Funktion aus der Bereich „Ändern“ abgewickelt. Allerdings geht das nur wenn man eine stationäre Fläche zur verfügung hat, bei einem Kegel geht das zum Beispiel nicht.

Aus diesem Grunde habe ich etwas Zeit investiert und eine passende iLogic erstellt, die den Process automatisiert. Also ein modeliertes Blechteil abwickelt, eine SAT abspeichert, die Datei direkt wieder lädt, und anschließend die gewünschte STEP exportiert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'Diese Regel erstellt eine STEP-Datei aus der Abwickung eines Blechteils
'Die STEP-Datei erhält den selben Namen wie die Bauteildatei und wird in C:\Temp gespeichert
'Position der Bauteil-Datei
ThisFile = ThisDoc.PathAndFileName(False)
'Hier wird die STEP-Datei gespeichert
SETFilePath = "C:\Temp"
If ThisApplication.ActiveDocument.DocumentType <> kPartDocumentObject Then
    MessageBox.Show ("Bitte öffnen Sie ein Blech-Bauteil", "iLogic-Abbruch")
End If
Try
    Dim oDoc As PartDocument
    oDoc = ThisApplication.ActiveDocument
    Dim oCompDef As SheetMetalComponentDefinition
    oCompDef = oDoc.ComponentDefinition
    Dim oDataIO As DataIO
    oDataIO = oDoc.ComponentDefinition.DataIO
    Dim sOut As String
    sOut = "FLAT PATTERN SAT"
    'Abwickling wird erstellt wenn noch nicht vorhanden
    If oCompDef.HasFlatPattern = False Then
        oCompDef.Unfold
    Else
        oCompDef.FlatPattern.Edit
    End If
    'Die SAT-Datei wird gespeichert
    oDataIO.WriteDataToFile(sOut, ThisFile & ".sat")
    Dim oSMDef As SheetMetalComponentDefinition
    oSMDef = oDoc.ComponentDefinition
    oSMDef.FlatPattern.ExitEdit
    'SAT wird zu STEP-Konvertiert (im Hintergrund)
    satDoc = ThisApplication.Documents.Open(ThisFile & ".sat", False)
    satDoc.SaveAs(SETFilePath & "" & ThisDoc.FileName(False)& ".step", True)
    satDoc.Close()
    'SAT-Datei wird gelöscht
    My.Computer.FileSystem.DeleteFile(ThisFile & ".sat")
    MessageBox.Show ("STEP wurde erstellt", "iLogic")
Catch
End Try

Hier die Regel als Download

Schreiben Sie mir, wenn Sie Fragen haben! – Ich helfe Ihnen gerne.

Mit freundlichen Grüßen,
Helge Brettschneider

Inventor iLogic: Aktivierung von Ansichten

Hallo Zusammen,

die Tage wurde ich im Support gefragt:

„Wie aktiviert man Ansichten eines Bauteils oder einer Baugruppe in iLogic?“ 

Ein interessantes Thema wie ich finde, denn so kann man z.B. mehr transparenz bei der Parameterabfrage schaffen, wenn man das passende Teil oder Ansicht aktiviert. Mit der nachstehenden Beispiel Regel sehen Sie was ich meine.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Variable für die Dokument-ID anlegen.
Dim odoc As Document

'Variable für den Dokument-Typ anlegen
Dim ocompdef As ComponentDefinition

'Aktive Dokument-ID ermitteln und speichern
odoc = ThisApplication.ActiveDocument

'Dokument-Typ der aktuellen Datei ermitteln und speichern
ocompdef = odoc.ComponentDefinition

' Versuch die Ansicht im aktuellen Dokument zu aktivieren
Try
ocompdef.RepresentationsManager.DesignViewRepresentations.Item("Ansicht1").Activate
'bei einem Fehler wird ein Dialog angezeigt und die Funktion beendet
Catch
MessageBox.Show("Diese Ansicht existiert nicht", "iLogic Fehler")
End Try

Wie Sie wahrscheinlich wissen wurden mit Einführung von Inventor 2018 gibt es die Standard-Ansichten in dem Bereich „Ansicht“ des Browsers als definierte Ansichten. Das erleichtert Ihnen das Ausprobieren der Beispiel-Regel. Sie brauchen nur den Namen der Ansicht in den code eintragen.

Also wie immer, wenn Sie Fragen haben, lassen Sie es mich wissen ich helfe Ihnen gerne!

Mit freundlichen Grüßen,
H. Brettschneider   

Inventor iLogic: Wie erkennt man welcher Dateityp geöffnet ist?

Hallo Zusammen,

bei der Programmierung mit iLogic ist wichtig im Programmablauf zu wissen, in welcher Datei man gerade ist.
Denn davon hängt ab, wie man in seiner Regel weiter programmieren muss. Also stellt sich irgendwann die Frage:

Welcher Dateityp ist gerage gerade im Inventor öffnet?

Die API hat darauf natürlich die passende Antwort. Nachstehend habe ich Ihnen die verschiedenen KeyWorter der verschiedenen Inventor Dateitypen aufgelistet:

IPT->kPartDocumentObject
IAM->kAssemblyDocumentObject
IDW->kDrawingDocumentObject
IPN->kPresentationDocumentObject
Keine Datei ->kNoDocument

Doch als Einsteiger in die Programmierung mit iLogic muss man, dass natürlich passend schreiben können damit es auch funktioniert! 🙂

Hier ein Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
'DateiType prüfen
doc = ThisDoc.ModelDocument

'Entscheidung, ob Sie in einem Bauteil oder in einer Baugruppe sind
If doc.DocumentType = kPartDocumentObject Then

'Infotext ausgeben
MessageBox.Show("Sie haben eine Bauteildatei offen.", "iLogic")

Else if doc.DocumentType = kAssemblyDocumentObject Then

'Infotext ausgeben
MessageBox.Show("Sie haben eine Baugruppe offen", "iLogic")
End if

Probieren Sie es mal aus!

Gruß,
Helge Brettschneider

Inventor iLogic : So erstellen Sie einen Arbeitspunkt am Schwerpunkt

ilogic

Hallo Zusammen,
heute habe ich eine kleine iLogic Regel zum Thema Schwerpunkt von Baugruppen und Bauteilen. Denn diese Woche habe ich an einem Fall gearbeitet bei dem einem Anwender  wichtig war den Schwerpunkt auch in einer Abgeleiteten Baugruppe als Punkt zur Verfügung zu haben.

Warum dann nicht ein Arbeitspunkt an  der Position einfügen, wo sich der Schwerpunkt in der originalen Baugruppe befindet?

Na, dazu muss man ihn bei der Ableitung der Baugruppe zur Verfügung haben. Doch wie positioniere ich einen Arbeitspunkt am rechnerischen Schwerpunkt? -Mit einer kleinen iLogic-Regel geht es am schnellsten. So ganz nebenbei erfahren Sie auch wie man Werte wie den Schwerpunkt aus den iProperties übernehmen kann. Nachstehend der VB.NET Code mit Beschreibung:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Dim oDoc As Document
oDoc = ThisApplication.ActiveDocument

' Prüfung ob schon ein Arbeitspunkt am Schwerpunkt existiert
Dim oCenterOfMass As Point
oCenterOfMass = oDoc.ComponentDefinition.MassProperties.CenterOfMass

'Fehler Ignorieren später in der If Anweisung auswerten
On Error Resume Next

Dim oWorkPoint As WorkPoint
oWorkPoint = oDoc.ComponentDefinition.WorkPoints.item ("Schwerpunkt")

If Err.Number = 0 Then
'Der vorhandene Arbeitspunkt wird gelöscht
oWorkPoint.Delete

'Ein neuer Arbeitspunkt wird am aktuellen Schwerpunkt angelegt
oWorkPoint = oDoc.ComponentDefinition.WorkPoints.AddFixed(oCenterOfMass)

'Arbeitspunkt wird umbenannt
oWorkPoint.Name = "Schwerpunkt"

'Dokument wird aktualisiert
oDoc.Update
MessageBox.Show("Der vorhandene Arbeitspunkt wurde ersetzt!", "MCDCAD.de Info")
Else
' Es wird ein neuer Arbeitspunkt am Schwerpunkt eingefügt.
oWorkPoint = oDoc.ComponentDefinition.WorkPoints.AddFixed(oCenterOfMass)

' Der entstandene Arbeitspunkt wird umbenannt
oWorkPoint.Name = "Schwerpunkt"
oDoc.Update
MessageBox.Show("Ein Arbeitspunkt wurde am aktuellen Schwerpunkt eingefügt", "MCDCAD.de Info")
End If

Viel Spass mit der Regel und ein schönes verlängertes Wochenende,
Helge Brettschneider