Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Stückliste über Excel Makro in Excel Datei einfügen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Stückliste über Excel Makro in Excel Datei einfügen (1822 mal gelesen)
Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 24. Sep. 2020 21:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


StucklisteStrukturiert.zip

 
Hallo,

hat jemand schonmal eine Strukturiert Stückliste mit allen Ebenen über ein Excel-Makro in eine Excel Datei importiert?

Kann man die Stücklisten Anpassung mit importieren (Aufbau Stückliste)?

In der Anlage ist das Format wie ich den Aufbau umsetzen möchte.

Vielen Dank

Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 24. Sep. 2020 22:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Nö, hab ich nich. Aber Ideen zur Umsetzung.
- im Excelmakro eine Referenz auf eine laufende Inventorinstanz erzeugen
- Baugruppe öffnen, falls noch nicht offen
- Stücklistenansicht "Strukturiert" aktvieren, BOM.StructuredViewEnabled = True
- Stücklistenstruktur "Alle Ebenen" aktivieren/deaktivieren, BOM.StructuredViewFirstLevelOnly = False/True
- Stücklistenanpassungen importieren, BOM.ImportBOMCustomization(FileName as String)
- Stückliste exportieren, BOM.BOMViews.Item("Structured").Export "C:\temp\BOM-StructuredAllLevels.xls", kMicrosoftExcelFormat
- Datei in Excel öffnen

Die Anpassungen der Stückliste im Inventor können im Stücklistendialog unten links in eine XML-Datei exportiert werden. Das einmal von Hand machen und die Datei für's Makro erreichbar ablegen.

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

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 25. Sep. 2020 07:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf,

vielen Dank für die schnelle Antwort. Ist das auch über den ApprenticeServer möglich?

Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 25. Sep. 2020 14:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Export sollte funktionieren, aber die BOM.ImportBOMCustomization(FileName as String) funktioniert meines Wissens nicht. Im Zweifel ausprobieren.

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

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bkrüger
Mitglied
Konstrukteur


Sehen Sie sich das Profil von bkrüger an!   Senden Sie eine Private Message an bkrüger  Schreiben Sie einen Gästebucheintrag für bkrüger

Beiträge: 51
Registriert: 14.09.2014

Win10 IV2018 Vault2018-WG

erstellt am: 25. Sep. 2020 14:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Import BOM-Template funktioniert - aber erst ab Inventor 2018.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 25. Sep. 2020 21:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


BominExcel_1.zip

 
Hallo,

ich habe das mal probiert bekomme aber in folgender Zeile eine Fehlermeldung.

oBOM.StructuredViewEnabled = False

Code:
Public Sub BOMExport()
'Var. für den Exportpfad definieren
Dim Path As String
Path = Environ("TEMP")

Dim aApp As Inventor.ApprenticeServerComponent
Set aApp = New ApprenticeServerComponent
Dim oDoc As Inventor.ApprenticeServerDocument

Set oDoc = aApp.Open(Range("a1").Value)

'Displayname abzüglih letzte 4 Stellen (i.d.R. .iam) auslesen
Dim AsmName As String
AsmName = Left(oDoc.DisplayName, Len(oDoc.DisplayName) - 4)

'Zusammensetzden des Pfades & Dateiname aus den beiden Variablen
Dim Filename As String
Filename = Path & "\" & AsmName


On Error Resume Next
MkDir Path
On Error GoTo 0

'Vereis auf das Stücklistenobjekt in der Baugruppe
Dim oBOM As BOM
Set oBOM = oDoc.ComponentDefinition.BOM

oBOM.StructuredViewEnabled = False

oBOM.StructuredViewFirstLevelOnly = False

oBOM.ImportBOMCustomization ("E:\Desktop\Test inventor\AnpassungSTK.xml")

oBOM.BOMViews.Item("Structured").Export "C:\temp\test.xls", kMicrosoftExcelFormat


End Sub


Kann mir jemand weiterhelfen? In der Anlage habe ich meine Excel-Datei mal angehangen.

Danke

Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 26. Sep. 2020 14:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

den Fehler von gestern konnte ich beheben (siehe Code).

Probleme habe ich jetzt beim Importieren der Vorlage und beim Exportieren der Stückliste. Kann mir da jemand weiterhelfen?

Fehler bei:

Code:
oBOM.ImportBOMCustomization ("E:\Desktop\VBA\03 Excel\neu.xml")

oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat


Code komplett:

Code:
Public Sub BOMExport()
'Var. für den7 Exportpfad definieren
Dim Path As String
Path = Environ("TEMP")

Dim aApp As Inventor.ApprenticeServerComponent
Set aApp = New ApprenticeServerComponent
Dim oDoc As Inventor.ApprenticeServerDocument

Set oDoc = aApp.Open(Range("a1").Value)

'Displayname abzüglih letzte 4 Stellen (i.d.R. .iam) auslesen
Dim AsmName As String
AsmName = Left(oDoc.DisplayName, Len(oDoc.DisplayName) - 4)

'Zusammensetzden des Pfades & Dateiname aus den beiden Variablen
Dim Filename As String
Filename = Path & "\" & AsmName


On Error Resume Next
MkDir Path
On Error GoTo 0

'Vereis auf das Stücklistenobjekt in der Baugruppe
Dim oBOM As BOM
Set oBOM = oDoc.ComponentDefinition.BOM


If oBOM.StructuredViewEnabled = False Then
    oBOM.StructuredViewEnabled = True
End If
'oBOM.StructuredViewEnabled = True

If oBOM.StructuredViewFirstLevelOnly = True Then
    oBOM.StructuredViewFirstLevelOnly = False
End If

oBOM.ImportBOMCustomization ("E:\Desktop\VBA\03 Excel\neu.xml")

oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat


End Sub



Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RolandD
Mitglied



Sehen Sie sich das Profil von RolandD an!   Senden Sie eine Private Message an RolandD  Schreiben Sie einen Gästebucheintrag für RolandD

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 26. Sep. 2020 16:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo Thomas,

du musst die Änderung noch ausführen lassen:

Code:
oBOM.ImportBOMCustomization ("E:\Desktop\VBA\03 Excel\neu.xml")

'Execute the command (siehe API-HIlfe "CommandManager.ControlDefinitions Property")
Dim oControlDef As ControlDefinition
Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item("AssemblyBillOfMaterialsCmd")
oControlDef.Execute

oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat


------------------
Gruß Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 26. Sep. 2020 19:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Roland,

vielen Dank für deine Antwort. Die folgende Zeile bleibt ja unverändert wodurch der Fehler bleibt.

Code:
oBOM.ImportBOMCustomization ("E:\Desktop\VBA\03 Excel\neu.xml")

Command Manger ist nicht auswählbar (ApprenticeServer)

Code:
Dim oControlDef As ControlDefinition
Set oControlDef = oDoc.CommandManager.ControlDefinitions.Item("AssemblyBillOfMaterialsCmd")
oControlDef.Execute

oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat


Gesamter akt. Code:

Code:
Public Sub BOMExport()
'Var. für den7 Exportpfad definieren
Dim Path As String
Path = Environ("TEMP")

Dim aApp As Inventor.ApprenticeServerComponent
Set aApp = New ApprenticeServerComponent
Dim oDoc As Inventor.ApprenticeServerDocument

Set oDoc = aApp.Open(Range("a1").Value)

'Displayname abzüglih letzte 4 Stellen (i.d.R. .iam) auslesen
Dim AsmName As String
AsmName = Left(oDoc.DisplayName, Len(oDoc.DisplayName) - 4)

'Zusammensetzden des Pfades & Dateiname aus den beiden Variablen
Dim Filename As String
Filename = Path & "\" & AsmName


On Error Resume Next
MkDir Path
On Error GoTo 0

'Vereis auf das Stücklistenobjekt in der Baugruppe
Dim oBOM As BOM
Set oBOM = oDoc.ComponentDefinition.BOM


If oBOM.StructuredViewEnabled = False Then
    oBOM.StructuredViewEnabled = True
End If
'oBOM.StructuredViewEnabled = True

If oBOM.StructuredViewFirstLevelOnly = True Then
    oBOM.StructuredViewFirstLevelOnly = False
End If

oBOM.ImportBOMCustomization ("E:\Desktop\VBA\03 Excel\neu.xml")

'Execute the command (siehe API-HIlfe "CommandManager.ControlDefinitions Property")
Dim oControlDef As ControlDefinition
Set oControlDef = oDoc.CommandManager.ControlDefinitions.Item("AssemblyBillOfMaterialsCmd")
oControlDef.Execute

oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat


End Sub


Gibt es noch eine andere Möglichkeit?

Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 30. Sep. 2020 19:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Bist du sicher, dass der Fehler beim StructuredViewEnabled und StructuredViewFirstLevelOnly behoben ist? Bei mir knallts da, wenn die Bedingung erfüllt wird. Ich hab bisher keine Möglichkeit gefunden, dass der Export mit dem ApprenticeServer über die Export-Funktion funktioniert. Man kann nur die BOMRows auslesen und damit die Werte in Excel übernehmen. Ist halt um einiges umständlicher.

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

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 10. Okt. 2020 19:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf,

ich denke du hast recht. Hast du einen Link oder Bsp. wie ich über  BOMRows auslese. Ich kann mir nicht vorstellen wie ich an die Struktur komme.

Grüße Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 11. Okt. 2020 00:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Die Struktur zum einfach Auslesen gibt es so nicht. Im vorletzten Beitrag ist ein Beispiel das den Ablauf demonstriert. Der Export auf diesem Weg setzt voraus, dass die jeweilige Stücklistenansicht aktiviert ist. Dafür kann es einem egal sein, welche Spalten aktuell in der Stückliste angezeigt werden, man sammelt sich die erforderlichen Infos selbst zusammen.

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

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Thomas
Mitglied



Sehen Sie sich das Profil von Thomas Thomas an!   Senden Sie eine Private Message an Thomas Thomas  Schreiben Sie einen Gästebucheintrag für Thomas Thomas

Beiträge: 49
Registriert: 27.02.2020

erstellt am: 11. Dez. 2021 20:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wir erstellen wie oben beschrieben über ein Makro die Stücklistendatei im Excelformat. Dies hat bei Inventor 2018 auch sehr gut funktioniert, wir haben aber jetzt auf Inventor 2022 umgestellt. in dieser Version ist der Modellzustand neu, wenn wir die Excel Datei über das Makro erstellen wird die Anzahl der Bauteile von jedem Modellzustand in einer Spalte dargestellt. Ist es möglich das nur die Anzahl der Hauptansicht ausgegeben wird und die Spalte auch nur "Anzahl" heißt und nicht "Anzahl (MODELZUSTAND)?

Kann man die Benennung des Tabellenblattes bei dem Exportieren über das Makro beeinflussen (vorher hieß das Tabellenblatt "Tabelle1" und jetzt heißt es "Sheet1")

Vielen Dank

Grüße Thomas Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 13. Dez. 2021 09:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Das "Feature" läßt sich derzeit noch nicht deaktivieren. Hier habe ich mal eine Möglichkeit gepostet wie man das nachträglich beheben kann. https://ww3.cad.de/foren/ubb/Forum258/HTML/001994.shtml

Der Namen des Tabellenblattes ist die dritte Option im Exportbefehl.

Code:
oBOM.BOMViews.Item("Structured").Export "c:\temp\test.xlsx", kMicrosoftExcelFormat, "MeinTabellenName"

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

RKW Solutions GmbH
www.RKW-Solutions.com

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz