Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Strukturbaum anhand der Stückliste sortieren

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
  
Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !
Autor Thema:  Strukturbaum anhand der Stückliste sortieren (1085 / mal gelesen)
Flo1234567
Mitglied


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

Beiträge: 7
Registriert: 31.07.2014

erstellt am: 11. Okt. 2020 21:30    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 Forum,

einen schönen guten Abend.

Ich möchte über VB den Strukturbaum im Inventor 2019 nach der Strukturstückliste sortieren.
Im Forum bin ich nicht fündig geworden.

Mein Ansatz ist folgender und genügt meinen Ansprüchen:

Code:

                    'Zeilen der Strukturstückliste
                    Dim oBomRows As BOMRowsEnumerator
                    oBomRows = _invApp.ActiveDocument.ComponentDefinition.BOM.BOMViews.Item("Strukturiert").BOMRows

                    Dim oPartDoc As PartDocument
                    Dim oItemNumber As String
                    Dim oTemp As String

                    'Itemnummer vor den angezteugten Namen im Strukturbaum schreiben
                    For i = 1 To oBomRows.Count
                        oPartDoc = oBomRows.Item(i).ComponentDefinitions.Item(1).Document
                        oItemNumber = oBomRows.Item(i).ItemNumber
                        oTemp = oPartDoc.DisplayName
                        oPartDoc.DisplayName = oItemNumber & "______" & oTemp
                    Next

                    '_invApp.ActiveDocument.
                    'Hier soll jetzt der Befehl "Komponenten alphabetisch sortieren" ausgeführt werden (Unter Inventor Baugruppe > Zusammenfügen > Produktivität)

                    'Itemnummer wieder zurücksetzen
                    For i = 1 To oBomRows.Count
                        oPartDoc = oBomRows.Item(i).ComponentDefinitions.Item(1).Document
                        oPartDoc.DisplayName = ""
                    Next


Wenn ich den Befehl manuell ausführe geht mein Plan auf. Allerdings möchte ich den Befehl "Komponenten alphabetisch sortieren" ebenfalls automatisch ausführen.

Kann mir jemand sagen, wie ich an diesen Befehl ran komm oder wo sich der befindet?

In dem Zuge möchte ich noch anmerken, dass bekanntlich Komponentenanordnungen mit der Maus nicht verschoben werden können. Die alphabetische Sortierung verschiebt allerdings die Komponentenanordnungen 
Über das Thema bin ich schon das ein oder andere mal im Netz gestolpert.

Ich freue mich auf euren Input.

Cheers Flo 

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 12. Okt. 2020 07:43    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 Flo1234567 10 Unities + Antwort hilfreich

Hallo Flo


über den CommandManager kannst du einen händischen Klick auf die Funktion simulieren.

Code:

ThisApplication.CommandManager.ControlDefinitions.Item("AssemblyBonusTools_AlphaSortComponentsCmd").Execute

Führt den gewünschten Befehl aus. Möglich das es auch noch einen dedizierten API-Befehl dafür gibt.


Grüße

EIBe 3D

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

Flo1234567
Mitglied


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

Beiträge: 7
Registriert: 31.07.2014

erstellt am: 13. Okt. 2020 22: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

Hallo EIBe 3D,

vielen Dank für deine schnelle Antwort. Funktioniert super und ist so simpel wie ich mir gedacht hatte 

Hab heute erst gesehen, dass ich die Liste aller Commands über das API Sample "Print list of all Inventor Commands API Sample" hätte auslesen können.

Wem es hilft, hier der Code!

Code:

Sub PrintCommandNames()
    Dim oControlDefs As ControlDefinitions
    Set oControlDefs = ThisApplication.CommandManager.ControlDefinitions

    Dim oControlDef As ControlDefinition
   
    Open "C:\temp\CommandNames.txt" For Output As #1

    Print #1, Tab(10); "Command Name"; Tab(75); "Description"; vbNewLine
   
    For Each oControlDef In oControlDefs

        Print #1, oControlDef.InternalName; Tab(55); oControlDef.DescriptionText
       
    Next
    Close #1
End Sub


Und hier noch mein Code für das Sortieren des Strukturbaumes:

Code:

Select Case _invApp.ActiveDocument.DocumentType

            Case DocumentTypeEnum.kAssemblyDocumentObject

                If _invApp.ActiveDocument.ComponentDefinition.BOM.structuredviewenabled = True Then

                    'Zeilen der Strukturstückliste
                    Dim oBomRows As BOMRowsEnumerator
                    oBomRows = _invApp.ActiveDocument.ComponentDefinition.BOM.BOMViews.Item("Strukturiert").BOMRows

                    Dim oPartDoc As PartDocument
                    Dim oItemNumberInt As Integer
                    Dim oItemNumber As String
                    Dim oTemp As String

                    'Itemnummer vor den angezteugten Namen im Strukturbaum schreiben
                    For i = 1 To oBomRows.Count
                        oPartDoc = oBomRows.Item(i).ComponentDefinitions.Item(1).Document
                        'Formatiert den String BSP. "5" in Integer und gibt "005" in Srtring zurück
                        oItemNumberInt = CInt(Val(oBomRows.Item(i).ItemNumber))
                        oItemNumber = String.Format("{0:000}", oItemNumberInt)
                        oTemp = oPartDoc.DisplayName
                        oPartDoc.DisplayName = oItemNumber & "___TEMP___" & oTemp
                    Next

                    _invApp.CommandManager.ControlDefinitions.Item("AssemblyBonusTools_AlphaSortComponentsCmd").Execute()

                    'Itemnummer wieder zurücksetzen
                    For i = 1 To oBomRows.Count
                        oPartDoc = oBomRows.Item(i).ComponentDefinitions.Item(1).Document
                        oPartDoc.DisplayName = ""
                    Next

                Else
                    MsgBox("Strukturstückliste ist nicht aktiviert!")
                End If

            Case Else

                MsgBox("Das Dokument ist keine Baugruppe!")

End Select


Cheers Flo 

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)2024 CAD.de | Impressum | Datenschutz