Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Stückliste sortieren in Baugruppe

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 sortieren in Baugruppe (3881 mal gelesen)
Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 18. Sep. 2012 16: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 zusammen,

als blutiger VBA Anfänger versuche ich schon seid Stunden ein Makro zu schreiben, wie ich eine Stückliste nach Bauteilnummern (Abwärts) sortiere. Dies sollte in der struktirierten Ansicht "All Levels" geschehen. Einen kleinen Teil habe ich schon zusammengestellt aber selbst der hat einen Fehler.

Public Sub BOMSort()

  ' Set a reference to the assembly document.
    ' This assumes an assembly document is active.
    Dim oDoc As AssemblyDocument
    Set oDoc = ThisApplication.ActiveDocument

    ' Set a reference to the BOM
    Dim oBOM As BOM
    Set oBOM = oDoc.ComponentDefinition.BOM

  Dim FirstLevelOnly As Boolean
    If MsgBox("First level only?", vbYesNo) = vbYes Then
        FirstLevelOnly = True
    Else
        FirstLevelOnly = False
    End If


    ' Make sure that the structured view is enabled.
    oBOM.StructuredViewEnabled = True

' Set a reference to the "Structured" BOMView
    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = oBOM.BOMViews.Item("Structured")  <-- Hier kommt ein Fehler!


End Sub


Danke für die Hilfe.

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: 18. Sep. 2012 17:08    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 Markosiny 10 Unities + Antwort hilfreich

Hi

Ersetze Structured durch Strukturiert. Der Name ist lokalisiert.

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

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 10:17    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


BOMsort.jpg

 
Hallo,

das ersetzen hat nicht viel gebracht.

siehe screenshot.

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: 19. Sep. 2012 11:16    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 Markosiny 10 Unities + Antwort hilfreich

Hi

Ich hätt's nicht geschrieben, wenn es nicht funktionieren würde. Bei mir jedenfalls. Ist die Baugruppe durch Vault geschützt? Kannst du über die GUI auf die Stückliste zugreifen und sie sortieren? Tritt der Fehler auch in einer leeren Testbaugruppe auf? Ist der Code vollständig oder hast du Teile dazwischen herausgenommen? Kannst du eine leere Test-BG hochladen, in der der Fehler bei dir auftritt?

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

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 12:28    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,

du hattest recht. In einer leeren Baugruppen kommt die Meldung nicht mehr. Liegt wohl an Vault.

Ich habe mir jetzt in der Programmierungshilfe die Sort Funktion angeschaut.

Hier ist aber nur die Deklaration hinterlegt.

Gibt es nähere Info's wie Sort/Renumber Funktion ausgeführt wird?


Sub Sort(PrimaryColumnTitle As String, ByRef PrimaryColumnAscending As [defaultvalue(-1)] VARIANT_BOOL, ByRef SecondaryColumnTitle As [defaultvalue("")] BSTR, ByRef SecondaryColumnAscending As [defaultvalue(-1)] VARIANT_BOOL, ByRef TertiaryColumnTitle As [defaultvalue("")] BSTR, ByRef TertiaryColumnAscending As [defaultvalue(-1)] VARIANT_BOOL)

Sub Renumber(ByRef StartValue As [defaultvalue(1)] long, ByRef Increment As [defaultvalue(1)] long, ByRef BOMRowsToRenumber As [optional] VARIANT)

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: 19. Sep. 2012 14:40    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 Markosiny 10 Unities + Antwort hilfreich

Hallo

Die Subs werden einfach aufgerufen. Das Makro sortiert nach Spalte "Objekt" und nummeriert in Zehnerschritten neu durch.

Code:
Public Sub BOMSort()

  ' Set a reference to the assembly document.
    ' This assumes an assembly document is active.
    Dim oDoc As AssemblyDocument
    Set oDoc = ThisApplication.ActiveDocument

    ' Set a reference to the BOM
    Dim oBOM As BOM
    Set oBOM = oDoc.ComponentDefinition.BOM

  Dim FirstLevelOnly As Boolean
    If MsgBox("First level only?", vbYesNo) = vbYes Then
        FirstLevelOnly = True
    Else
        FirstLevelOnly = False
    End If


    ' Make sure that the structured view is enabled.
    oBOM.StructuredViewEnabled = True

' Set a reference to the "Structured" BOMView
    Dim oStructuredBOMView As BOMView
    Set oStructuredBOMView = oBOM.BOMViews.Item("Strukturiert")  '<-- Hier kommt ein Fehler!
   
    Call oStructuredBOMView.Sort("Object")
    Call oStructuredBOMView.Renumber(10, 10)


End Sub


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

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 14:56    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,

das ist ja Super!

Aber die Sort Funktion Sortiert immer nur nach einer Spalte "aufwärts".

In der Stückliste kann man auswählen, dass erst nach Bauteilnummer und dann nach Länge sortiert wird und das ganze "abwärts" nicht "aufwärts"

Funktioniert aber nicht wenn ich das folgendermaßen aufstelle:

Call oStructuredBOMView.Sort("Bauteilnummer")
Call oStructuredBOMView.Sort("Laenge")

Hier sortiert er erst nach Bauteilnummer und dann unabhängig davon nach der Laenge.

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: 19. Sep. 2012 15:04    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 Markosiny 10 Unities + Antwort hilfreich

Hallo

Kommasepariert in eine Zeile schreiben.  

Code:
Call oStructuredBOMView.Sort("Bauteilnummer",False,"Laenge",False)

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

[Diese Nachricht wurde von rkauskh am 19. Sep. 2012 editiert.]

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 15: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

Das hat ja Super geklappt! Danke

Aber einer Frage noch.


Kann man das nicht absteigend sortieren? D.h. nach Bauteilnummer von Z-A?

Und was bedeutet das True und False hinter der Bauteilnummer?

Wenn ich das auf True setze, dann kann ich keine Änderung feststellen.

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: 19. Sep. 2012 15: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 Nur für Markosiny 10 Unities + Antwort hilfreich

Hallo

True und False bestimmen ob aufsteigend sortiert wird oder nicht. Bei mir dreht er die Reihenfolge auch entsprechend hin und her.

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

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 16:21    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

Es kann wahrscheinlich sein, dass meine Bauteilnummern mit Buchstaben anfangen und nicht mit Zahlen.

Aber wenn das händisch in der Stückliste eingibt, dann sortiert er das auch richtig.

Das ist natürlich nicht schön. Da muss ich schauen wie er auch die Buchstaben erkennt.

Eins noch: Wenn ich meinen VB Code in iLogic einfüge und den Haken bei "reiner VB Code" setze, dann kommt ne Meldung:

Regelkompilierungsfehler in Regel1, in 00001235.iam

Fehler in Zeile 1 : Die Anweisung ist in einem Namespace ungültig.


Ich möchte, dass dieser Code beim speichern ausgeführt wird. Daher in iLogic!

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 16:27    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

Also wenn ich die Länge rausnehme, dann kann ich auch die Artikelnummern auf oder ab sortieren.

Aber sobald die Länge wieder rein genommen wird, dann macht er das nicht mehr. ???

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

Markosiny
Mitglied



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

Beiträge: 31
Registriert: 21.11.2011

Inventor Prof. 2012, Vault
Workgroup 2012

erstellt am: 19. Sep. 2012 16:51    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

Hab dem dieses Makro halbwegs funktionier, wollte ich das an meiner Baugruppe ausprobieren.

Eine Baugruppe aus Vault ausgecheckt und den VB Code eingefügt und gestartet.

Kommt aber immer noch die Fehlermeldung die ich am Anfang beschrieben habe.

Es sind zwar freigegeben Bauteile vorhanden aber die Stückliste lässt sich von Hand sortieren bzw. mit der Sortierfunktion in der Stückliste.

Wie kommt sowas zustande?

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: 19. Sep. 2012 18:50    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 Markosiny 10 Unities + Antwort hilfreich

Hi

Du hast aber nicht zufällig die Stückliste im Inventor offen, wenn du das Makro probierst? Dann krieg ich auch diese Fehlermeldung.

Die Sort-Funktion scheint nicht ganz fehlerfrei zu sein. Es ist egal was man nach der ersten Sortierspalte eingibt - es wird ignoriert. 

Da ich keinen Vault habe, kann ich das nicht untersuchen. Keine Ahnung

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

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