Forum:Inventor
Thema:BOM Export
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
Concierge

Beiträge: 12 / 0

Hey Leute,

ich habe mal wieder ein Anliegen.
Ich möchte gern meine Benutzerdefinierte Stückliste exportieren (nach . accdb). Das Funktioniert auch mit dem Standardbefehl, allerdings exportiert er nur die Standardliste und nicht die mit meinen Benutzerdefinierten Spalten.

Zusammengefasst hätte ich gern:

Die Strukturierte Stückliste mit allen Ebenen die genau so aussieht wie im Inventor.

Kann mir da einer Helfen welche Befehle ich da brauche...

VG Maik

rkauskh

Beiträge: 2199 / 0

Windows 10 x64, AIP 2023

Hallo

Wäre mir neu das Inventor nach .accdb exportiert. 
In eine Exceltabelle geht's einfach mit:

Code:

Public Sub BOMExport()
    Dim oDoc As AssemblyDocument
    Set oDoc = ThisApplication.ActiveDocument
   
    Dim oBOM As BOM
    Set oBOM = oDoc.ComponentDefinition.BOM
   
    oBOM.StructuredViewFirstLevelOnly = False
    oBOM.StructuredViewEnabled = True

    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = oBOM.BOMViews.Item("Strukturiert")
   
    oStructuredBOMView.Export "C:\temp\BOM-StructuredAllLevels.xls", kMicrosoftExcelFormat

End Sub



Ansonsten kenne ich nur CSV oder TXT als Exportformat. Die Anpassung der Stückliste muss bereits durch den Benutzer erfolgt sein. Andernfalls kannst du nur versuchen die Anpassung als XML-Datei einmal zu exportieren und über die ImportBOMCustomization-Methode des BOM Objektes in der jeweiligen Baugruppe vor dem Export zu laden.

------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

Concierge

Beiträge: 12 / 0

Hallöchen 

ich möchte gern vor dem Export abfragen ob die Datei schon existiert und ich frage ob diese ersetzt werden soll, welches ich so gemacht habe:

If Not System.IO.File.Exists(BOMName) Then

ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)

Else

If System.IO.File.Exists(BOMName) Then
MessageBox.Show("Ersetzen???", "Datei existiert bereits...", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
End If
If vbYes Then
ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)
If vbNo Then
End If
End If
End If

Wenn ich Nein bestätige soll er ja abbrechen bzw. beenden. Er überschreibt die Datei aber trotzdem. Habe ich noch etwas vergessen oder muss ich die Abfrage anders gestalten?

BTW, gibt es eine Liste mit den ganzen Befehlen und Erklärungen dazu? Da ich Anfänger bin wäre sowas ziemlich hilfreich.

Mfg Maik

rkauskh

Beiträge: 2199 / 0

Windows 10 x64, AIP 2023

Moin

Wo soll man da anfangen? Du speicherst den Rückgabewert deiner Abfrage nirgends. Deine nachfolgenden IF-Abfragen evaluieren immer zu True. Wurde da Code entfernt? Die Prüfung der MessageBox Antworten ergibt irgendwie auch nur innerhalb des True-Zweiges von If FileExists Sinn...

Schreib dir Debuggermeldungen in die verschiedenen Zweige, damit du nachverfolgen kannst wann was passiert. Oder debugge über VisualStudio oder portiere den Codeauszug nach VBA und nutze im Inventor VBA-Editor den vorhandenen Debugger.

P.S.: Code-Tags wären schön.

Code:

If Not System.IO.File.Exists(BOMName) Then
    ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)
Else
    Dim Result as DialogResult = MessageBox.Show("Ersetzen???", "Datei existiert bereits...", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)
    End If
End If


------------------
MfG
Ralf

RKW Solutions GmbH
www.RKW-Solutions.com

KraBBy

Beiträge: 611 / 0

Inventor Professional 2020
WinX

Da passen die die If nicht, außerdem muss die Antwort der Messagebox gemerkt werden (in eine Variable schreiben). So sollte es gehen (ohne es ausprobiert zu haben):
Code:
If Not System.IO.File.Exists(BOMName) Then
ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)
Else 'File existiert
ret = MessageBox.Show("Ersetzen???", "Datei existiert bereits...", MessageBoxButtons.YesNo,MessageBoxIcon.Question)

If vbYes = ret Then
ThisBOM.Export("Structured", BOMName, kMicrosoftAccessFormat)
Else 'nein oder abgebrochen
'nix tun
End If
End If


------------------
Gruß KraBBy