Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  iproperties -> Kategorie anzeigen

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:  iproperties -> Kategorie anzeigen (1483 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: 16. Jul. 2020 21:49    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,

ich möchte mit gern den Inhalt in der Zeile Kategorie anzeigen lassen (in iproperties -> Reiter Übersicht)

Msgbox (ThisApplication.ActiveDocument.PropertySets.Item(2).Parent.Item(3).Item(36).Expression)

funktioniert nicht, könnt ihr mir weiterhelfen?

Grüße Thomas

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: 17. Jul. 2020 01: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 Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo,
Iprop Kategorie anzeigen lassen:
Code:

MsgBox ThisApplication.ActiveDocument.PropertySets("Inventor Document Summary Information").Item("Category").value


Hinweis: Besser mit Namen als mit Index arbeiten - auf Namen ist eher Verlass über die Inventorversionen hinweg.

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: 17. Jul. 2020 21:41    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

Oberlehrermodus an:

Autodesk empfiehlt sogar den InternalName zu verwenden. Selbst der Name ist nicht in Stein gemeisselt.

DisplayName: Inventor - Zusammenfassungsinformationen
Name: Inventor Summary Information
InternalName: {F29F85E0-4FF9-1068-AB91-08002B27B3D9}

DisplayName: Inventor - Zus.-fassungsinfo f. Dokument
Name: Inventor Document Summary Information
InternalName: {D5CDD502-2E9C-101B-9397-08002B2CF9AE}

DisplayName: Design Tracking - Eigenschaften
Name: Design Tracking Properties
InternalName: {32853F0F-3444-11D1-9E93-0060B03C1CA6}

DisplayName: Inventor - Benutzerdefinierte Eigenschaften
Name: Inventor User Defined Properties
InternalName: {D5CDD505-2E9C-101B-9397-08002B2CF9AE}


------------------
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: 18. Jul. 2020 22: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

Hallo,

vielen Dank für eure Antworten, ihr habt mir weitergeholfen.

Grüße ThomasThomas

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: 15. Feb. 2021 21:19    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,

ich möchte mit dem folgenden Code nur bei virtuelle Komponente unter Kategorie ein "K" schreiben. Bekomme aber einen Fehler da Occurrence.DefinitionReference.ReferencedDefinition.Type nicht immer vorhanden ist. Wie kann ich den Fehler abfangen?

Code:
Public Sub Kategorie_Test()
Dim oAsmDoc As AssemblyDocument
Set oAsmDoc = ThisApplication.ActiveDocument
'Anstatt nun direkt durch die Occurrences zu gehen
'übergeben wir die Occurrences (alle Komponenten) an eine andere Sub

Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences) ' Virtuelle Bauteile auf K setzen
End Sub

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences)
    Dim Occurrence As ComponentOccurrence
    'Stop
    For Each Occurrence In Occurrences
        Debug.Print Occurrence.Name
        'Ist die Occurrence eine Baugruppe, ruft wir diese Sub ebenfalls auf
        'Die SUB ruft also sich selbst auf und ggf. wieder und wieder
        'bis sie durch die IAM Unterstruktur durch ist auf der untersten Eben
        'und geht dann weiter in der nächste Ebene
                                                                           
    If Occurrence.DefinitionReference.ReferencedDefinition.Type = kVirtualComponentDefinitionObject Then
                                               
      Occurrence.Definition.PropertySets("Inventor Document Summary Information").Item("Category").Value = "K"
                                               
    End If
                                           
      If Occurrence.DefinitionDocumentType = kAssemblyDocumentObject Then
                Call TraverseAssembly(Occurrence.SubOccurrences)
      End If
     
    Next
End Sub


Vielen Dank

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

bwr
Mitglied
Konstrukteur


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

Beiträge: 129
Registriert: 21.02.2007

Win10 64-bit NVIDIA T500
Inventor 2022
Catia V5-6R2020

erstellt am: 16. Feb. 2021 07: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,

probier's mal mit folgender Abfrage ob es sich um eine virtuelle Komponente handelt:

Code:

If TypeOf Occurrence.Definition Is VirtualComponentDefinition Then
  Occurrence.Definition.PropertySets("Inventor Document Summary Information").Item("Category").Value = "K"
End If


------------------
Grüße
Andreas
etaCAD

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: 16. Feb. 2021 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 Nur für Thomas Thomas 10 Unities + Antwort hilfreich


Hallo,
wenn eine Objektvariable nicht existiert, dann ist das Ergebnis von 'is nothing' = true, also:
Code:

If Occurrence.DefinitionReference.ReferencedDefinition.Type is nothing then
'Objektvariable existiert nicht
else
'Objektvariable existiert
endif


Das vermeidet, dass irgendwelche Fehler geworfen werden, weil die Variable in dem Kontext nicht existiert.
Ansonsten kann man Fehler abfangen, bzw darauf reagieren, indem man
Code:

on error resume next


o.ä. verwendet - das ist aber mit Vorsicht zu geniessen - schließlich unterdrückt der Befehl jegliche (auch andere, die ganz andere Ursachen haben können) Fehlerausgaben - das kann auch fix mal zu einer Einladung zu einer unerquicklichen und langen Fehlersuche werden.

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: 23. Feb. 2021 15: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

Hallo bwr und bkrüger,

vielen Dank für eure Antworten, ich habe beide Varianten probiert, es funktioniert aber leider beides nicht.

@bwr: Fehlermeldung: Method 'Definition' of object 'ComponentOccurrence' faild.

@bkrüger: Fehlermeldung: Compile error: Type mismatch

Hattet ihr es probiert und hat es bei euch funktioniert?

Vielen Dank

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: 23. Feb. 2021 16: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 Nur für Thomas Thomas 10 Unities + Antwort hilfreich

Hallo

Ich vermute es liegt daran, dass die Fehler auslösende Occurrence unterdrückt ist.

Code:

Public Sub Kategorie_Test()
Dim oAsmDoc As AssemblyDocument
Set oAsmDoc = ThisApplication.ActiveDocument
'Anstatt nun direkt durch die Occurrences zu gehen
'übergeben wir die Occurrences (alle Komponenten) an eine andere Sub

Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences) ' Virtuelle Bauteile auf K setzen
End Sub

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences)
    Dim Occurrence As ComponentOccurrence
    'Stop
    For Each Occurrence In Occurrences
        Debug.Print Occurrence.Name
        'Ist die Occurrence eine Baugruppe, ruft wir diese Sub ebenfalls auf
        'Die SUB ruft also sich selbst auf und ggf. wieder und wieder
        'bis sie durch die IAM Unterstruktur durch ist auf der untersten Eben
        'und geht dann weiter in der nächste Ebene
                                                                                 
        If Occurrence.Suppressed = False Then
            If Occurrence.Definition.Type = kVirtualComponentDefinitionObject Then
                Occurrence.Definition.PropertySets("Inventor Document Summary Information").Item("Category").Value = "K"
            End If
            If Occurrence.DefinitionDocumentType = kAssemblyDocumentObject Then
                Call TraverseAssembly(Occurrence.SubOccurrences)
            End If
        End If
    Next
End Sub


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

RKW Solutions GmbH
www.RKW-Solutions.com

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



Projektingenieur Konstruktion (w/m/d)

Das Märkische Werk ist Weltmarkt- und Technologieführer in der Entwicklung und Herstellung von Komponenten und Zylinderkopfsystemen für Industriemotoren in den Bereichen Marine, Lokomotive, Power Generation, Öl- und Gasindustrie sowie High Performance Racing wie z.B. Formel 1 und MotoGP. Als weltweit agierendes Familienunternehmen mit Tochterfirmen in den USA, China und Japan kann das Märkische Werk auf eine über 160-jährige Tradition mit stetigen Innovationen zurückblicken....

Anzeige ansehenProjektmanagement
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: 02. Mrz. 2021 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,

vielen Danke, es funktioniert.

Grüße Thomas

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