Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  iLogic | benutzerdefiniertes iProperty von mehreren Bauteilen aus Baugruppe öffnen

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:  iLogic | benutzerdefiniertes iProperty von mehreren Bauteilen aus Baugruppe öffnen (875 mal gelesen)
Chris0804
Mitglied
Maschinenbauingenieur


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

Beiträge: 22
Registriert: 16.08.2021

Inventor 2019
Inventor 2020

erstellt am: 17. Nov. 2021 11:10    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,

ich möchte folgendes Problem lösen: Aus einer Baugruppe möchte ich auf ein iProperty aller Bauteile der Baugruppe zugreifen. In dem iProperty steht ein numerischer Wert, den ich in der Baugruppe aufsummieren und in das iProperty der Baugruppe schreiben möchte. Da ich im Inventor direkt in der Baugruppe auf die einzelnen iProperties der Bauteile zugreifen kann, müsste das doch auch über eine iLogic-Regeln funktionieren, aber leider habe ich bei meiner Recherche nichts dazu gefunden.

Folgenden Code habe ich probiert:

Code:
Dim oAsm As Inventor.AssemblyDocument = ThisApplication.ActiveDocument
Dim oPrt As Inventor.PartDocument
Dim iCount As Integer
Dim y As Double

iCount = 1

Dim propertyName As String = "numerischer Wert"
Dim propertyValue As Double

customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
      prop = customPropertySet.Item(propertyName)
Catch
      customPropertySet.Add(propertyValue, propertyName)
End Try

For Each oPrt In oAsm.AllReferencedDocuments
    If oAsm.AllReferencedDocuments.Item(iCount).DocumentType = kPartDocumentObject Then
        'MsgBox (oPrt.FullDocumentName)

y = oAsm.AllReferencedDocuments.Item(iCount).customPropertySet.Item("numerischer Wert").Value
propertyValue = propertyValue + y
End If
    iCount = iCount + 1
Next


Danke im Voraus!

------------------
Gruß
Chris

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. Nov. 2021 13: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 Nur für Chris0804 10 Unities + Antwort hilfreich

Hallo

Berücksichtigt aber nicht wenn ein Bauteil mehrfach vorkommt.

Code:

Dim oAsm As Inventor.AssemblyDocument = ThisApplication.ActiveDocument
Dim oPrt As Inventor.PartDocument
Dim customPropertySet As PropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Dim propertyName As String = "numerischer Wert"
Dim propertyValue As Double

For Each oPrt In oAsm.AllReferencedDocuments
    If oPrt.DocumentType = kPartDocumentObject Then
Try
propertyValue = propertyValue + oPrt.PropertySets("Inventor User Defined Properties").Item(propertyName).Value
Catch
End Try
End If
Next

Try
      customPropertySet.Item(propertyName).Value=propertyValue
Catch
      customPropertySet.Add(propertyValue, propertyName)
End Try


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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Chris0804
Mitglied
Maschinenbauingenieur


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

Beiträge: 22
Registriert: 16.08.2021

Inventor 2019
Inventor 2020

erstellt am: 17. Nov. 2021 14: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

Hallo Ralf,

stimmt, das hatte ich nicht bedacht. Dein Code funktioniert, vielen Dank.

Und dank der For Each-Schleife auch für mehrfach vorkommende Bauteile, oder verstehe ich das falsch?

------------------
Gruß
Chris

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



Geoökologe als Projektingenieur/in (m/w/d)

Die ECB GEO PROJECT GmbH ist bundesweit als unabhängiger Ingenieurdienstleister überall dort aktiv, wo es um die Planung von Pipeline- und Kabelprojekten geht. Mit unseren Spezialisten realisieren wir Jahr für Jahr eine Vielzahl an Leitungsprojekten und Planungen zur Errichtung von Anlagen zur Erzeugung, Lagerung und Fortleitung biogener Brenn- und Treibstoffe. Durch unsere speziellen Erfahrungen können wir u....

Anzeige ansehenProjektmanagement
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. Nov. 2021 14:45    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 Chris0804 10 Unities + Antwort hilfreich

Hallo

Nö, genau anders herum. Kommt ein Bauteil mehrfach vor, wird es trotzdem nur einmal gezählt. Wenn die Anzahl der Exemplare berücksichtigt werden muss, könnte man durch die Occurrences gehen.

Code:

Dim oAsm As Inventor.AssemblyDocument = ThisApplication.ActiveDocument
Dim oOcc As Inventor.ComponentOccurrence
Dim customPropertySet As PropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Dim propertyName As String = "numerischer Wert"
Dim propertyValue As Double

For Each oocc In oAsm.ComponentDefinition.Occurrences.AllLeafOccurrences
    If oOcc.Definition.Type = ObjectTypeEnum.kPartComponentDefinitionObject  Then
Try
propertyValue = propertyValue + oOcc.Definition.Document.PropertySets("Inventor User Defined Properties").Item(propertyName).Value
Catch
End Try
End If
Next

Try
      customPropertySet.Item(propertyName).Value=propertyValue
Catch
      customPropertySet.Add(propertyValue, propertyName)
End Try


------------------
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