Ilogic - Dateiname und Pfad aus Bauteil in Baugruppe auslesen

Ilogic - Dateiname und Pfad aus Bauteil in Baugruppe auslesen

Anonymous
Nicht anwendbar
2.867Aufrufe
13Antworten
Nachricht 1 von 14

Ilogic - Dateiname und Pfad aus Bauteil in Baugruppe auslesen

Anonymous
Nicht anwendbar

Hallo zusammen,

 

ich möchte anhand des DisplayName,den Dateiname und Pfad von einem Bauteil in einer Baugruppe auslesen und in einer Variablen zur weiteren Verarbeitung speichern.

 

Im Bauteil selbst kann ich es ja so machen:

Dim kbp As String
kbp = ThisDoc.Document.FullFileName

 Aber wie geht es , wenn ich die Regel in der Baugruppe ausführe und das entsprechende Bauteil über den DisplayNamen ansprechen will?

 

Schöne Grüße

 

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (2)
2.868Aufrufe
13Antworten
Antworten (13)
Nachricht 2 von 14

StKrause
Contributor
Contributor
Akzeptierte Lösung

Hallo @Anonymous 

versuch mal:

kbp = Components("<Name der Komponente>").Occurrence.Definition.Document.FullFilename

<Name der Komponente> ist der Name, wie er im Browser steht, also z.B. "Bauteil1:1"

Nachricht 3 von 14

Anonymous
Nicht anwendbar

Hallo @StKrause ,

 

es funktioniert!  Danke dir!

 

Wo kann ich sowas nachlesen?

In der Inventor Hilfe konnte ich dazu nichts finden.

0 „Gefällt mir“-Angaben
Nachricht 4 von 14

StKrause
Contributor
Contributor

Das kann man nur in der API-Doku nachlesen. Die ist unter Hilfe - Programmierung/API

Wenn du dort im Index nach ComponentOccurrence Object suchst siehst du das dieses Objekt eine Eigenschaft (Property) Definition hat, diese wiederum ist vom Typ ComponentDefinition, welcher eine Eigenschaft Document hat usw...

 

0 „Gefällt mir“-Angaben
Nachricht 5 von 14

Anonymous
Nicht anwendbar

okay, danke.

Um mir solche Befehle selbst herzuleiten, fehlt mir wohl einfach das Grundwissen.

Kannst du mir Literatur zu dem Thema empfehlen?

 

Ich habe noch ein Problem.

 

Ich will mir den Dateinamen+Pfad einmalig aus dem Bauteil holen und in der Variablen kbp speichern, wenn der Parameter Reg = True gesetzt ist.

Danach wird Reg = False gesetzt und Dateinamen+Pfad sollen weiterhin in der Variablen kbp gespeichert bleiben, auch wenn das Bauteil nicht mehr in der Baugruppe vorhanden ist.

 

Ich habe es so probiert:

Dim kbp As String
If Reg = True Then 
	kbp = Components("Butzenblech").Occurrence.Definition.Document.FullFilename
End If

Wenn ich jetzt Reg = False setze, ist kbp wieder leer.

 

Wie kann ich die gewünschte Funktion umsetzen?

 

0 „Gefällt mir“-Angaben
Nachricht 6 von 14

patrick.fluegge
Advocate
Advocate

Ist kbp ein Parameter in der Baugruppe?

 

Falls ja, probiert einfach mal die oberste Zeile wegzulassen (mit Dim kbp as String).

 

Du kannst auch noch eine Meldungsbox in deinen IF-Anweisungsblock setzen um zu prüfen, ob der Befehl ausgeführt wurde oder nicht. (MsgBox("Test Text") )



Patrick Flügge

0 „Gefällt mir“-Angaben
Nachricht 7 von 14

Martin-Winkler-Consulting
Advisor
Advisor

@Anonymous 

So wie du das machst ist kbp eine temporäre Variable in deiner Regel. Sobald die Regel beendet ist, existiert weder diese Variable noch deren Inhalt mehr.

Du müsstest also in deiner iLogic Regel noch den Inhalt von kbp entweder in einen benutzerdefinierten Parameter vom Typ Text schreiben, oder in ein benutzerdefiniertes iProperty. Und das natürlich in der Baugruppe. 

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

0 „Gefällt mir“-Angaben
Nachricht 8 von 14

Maximilian.Prasser
Participant
Participant

Kann ich den Dateinamen der ersten Komponente auslesen ?

Ohne den Display Name vorher schon zu wissen ?

Habt ihr eine Idee?

0 „Gefällt mir“-Angaben
Nachricht 9 von 14

cidhelp
Collaborator
Collaborator
Akzeptierte Lösung

Den Dateinamen der ersten Komponente in der Baugruppe kann man so auslesen:

Dim oAsm As AssemblyDocument=ThisDoc.Document
Dim oOcc As ComponentOccurrence = oAsm.ComponentDefinition.Occurrences(1)
Dim FirstFileName As String = oOcc.Definition.Document.FullFileName
MsgBox(FirstFileName,MsgBoxStyle.Information,"Name der ersten Komonente")

Beachte aber, das dann mindestens eine Komponente vorhanden sein muss, die erste Komponente nicht virtuell sein darf und die Baugruppe keine Schweißbaugruppe sein darf (da ist die erste Komponente für die Nähte, die haben aber keine Datei). 

Nachricht 10 von 14

Maximilian.Prasser
Participant
Participant
Herzlichen Dank für die Rasche Antwort. Perfekt.
0 „Gefällt mir“-Angaben
Nachricht 11 von 14

Maximilian.Prasser
Participant
Participant
Wenn ich nur den FileName ohne Pfad und Dateierweiterung haben möchte?
0 „Gefällt mir“-Angaben
Nachricht 12 von 14

cidhelp
Collaborator
Collaborator

Hallo @Maximilian.Prasser ,

 

Dateiname ohne Extension geht so:

Dim FirstFileName As String = System.IO.Path.GetFileNameWithoutExtension(oOcc.Definition.Document.FullFileName)

 

Nachricht 13 von 14

Maximilian.Prasser
Participant
Participant
Vielen Dank, klappt!
Nachricht 14 von 14

t.schroederXEEJ3
Participant
Participant

Hallo zusammen,

ich hab diesen Beitrag gelesen und bin auf der Suche nach einem sehr ähnlichen Fall. Leider bisher ohne Erfolg.

Ich möchte gerne innerhalb einer Baugruppe, für jedes enthaltene Einzelteil ein Benutzer I-Propertie des Bauteils auslesen und in den jeweiligen Baumnamen schreiben.

Ich bekomme es aber nicht hin, das er das für jedes einzelne Teil macht.

 

Vielleicht bekomme ich ja hier noch eine Antwort, obwohl der Beitrag schon lange beendet ist.

Gruß

Thomas

0 „Gefällt mir“-Angaben