| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Stückliste über Excel Makro in Excel Datei einfügen (1918 / mal gelesen)
|
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 24. Sep. 2020 21:14 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 24. Sep. 2020 22:15 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
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
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 25. Sep. 2020 07:23 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 25. Sep. 2020 14:11 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
|
bkrüger Mitglied Konstrukteur
Beiträge: 51 Registriert: 14.09.2014 Win10 IV2018 Vault2018-WG
|
erstellt am: 25. Sep. 2020 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
|
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 25. Sep. 2020 21:03 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 26. Sep. 2020 14:37 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 558 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 / zitieren --> Unities abgeben: Nur für Thomas Thomas
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
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 26. Sep. 2020 19:36 <-- editieren / zitieren --> Unities abgeben:
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.ExecuteoBOM.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
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 30. Sep. 2020 19:44 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
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
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 10. Okt. 2020 19:55 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 11. Okt. 2020 00:07 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
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
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 11. Dez. 2021 20:39 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 13. Dez. 2021 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
|