| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Autodesk Inventor CAM in der Bahntechnik , ein Anwenderbericht
|
Autor
|
Thema: Aus der .iam iProperties in den Bauteilen mit Ilogic ändern (985 / mal gelesen)
|
Hommel80 Mitglied

 Beiträge: 12 Registriert: 21.03.2015 Inventor 2022 Pro
|
erstellt am: 27. Sep. 2023 11:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo Inventor Gemeinde, ich brauche mal eure Hilfe. Ich möchte eine Ilogic Regel in einer Baugruppe ausführen die sich dann auf die Komponenten auswirkt. Die Regel soll in der Baugruppe manuell ausgelöst werden und dann nach einem Schlüsselwort in den Komponenten der Baugruppe suchen und nur wenn dieses vorhanden ist Einträge in den iProperties der jeweiligen Bauteile vornehmen. Das was ich erstellt habe funktioniert super in der .ipt, es gelingt mir aber nicht das die Regel aus der Baugruppe auf die Komponenten zugreift und die Einträge wie geplant ändert. Hat jemand einen Tipp für mich? Dim oAsm As Inventor.AssemblyDocument = ThisApplication.ActiveDocument For Each oPrt In oAsm.AllReferencedDocuments
If iProperties.Value("Summary", "Keywords") = "Keyword 1" Then iProperties.Value("Custom", "User_Bezeichnung") = "Bezeichnung 1" iProperties.Value("Custom", "User_Beschreibung") = "Beschreibung 1" iProperties.Value("Summary", "Category") = "0100” ElseIf iProperties.Value("Summary", "Keywords") = "Keyword 2" Then iProperties.Value("Custom", "User_Bezeichnung") = "Bezeichnung 2" iProperties.Value("Custom", "User_Beschreibung") = "Beschreibung 2" iProperties.Value("Summary", "Category") = "0200” ElseIf iProperties.Value("Summary", "Keywords") = "Keyword 3" Then iProperties.Value("Custom", "User_Bezeichnung") = "Bezeichnung 3" iProperties.Value("Custom", "User_Beschreibung") = "Beschreibung 3" iProperties.Value("Summary", "Category") = "0300”
End If Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
       

 Beiträge: 13564 Registriert: 02.04.2004 IV 2025.2.1
|
erstellt am: 27. Sep. 2023 11:37 <-- editieren / zitieren --> Unities abgeben:          Nur für Hommel80
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 27. Sep. 2023 13:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Hommel80
Moin Deine Regel greift bei jedem Durchlauf auf die iProps der Baugruppe zu. Das wird so nie was. Ungetestet, probier es mal so: Code:
Sub Main Dim oAsm As Inventor.AssemblyDocument = ThisDoc.Document For Each oPrt As Document In oAsm.AllReferencedDocuments Select Case oPrt.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}").ItemByPropId(5).Value.ToString Case "Keyword 1" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 1") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 1") CoUProp(oPrt, "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", "Category", "0100") Case "Keyword 2" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 2") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 2") CoUProp(oPrt, "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", "Category", "0200") Case "Keyword 3" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 3") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 3") CoUProp(oPrt, "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", "Category", "0300") End Select Next End SubPrivate Sub CoUProp(ByVal oPrt As Document, ByVal sPropSet As String, ByVal sPropName As String, ByVal sPropValue As String) Try oPrt.PropertySets(spropset).Item(spropname).Value = spropvalue Catch oPrt.PropertySets(spropset).Add(spropvalue, spropname) End Try End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hommel80 Mitglied

 Beiträge: 12 Registriert: 21.03.2015 Inventor 2022 Pro
|
erstellt am: 27. Sep. 2023 14:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo Ralf, Danke für die schnelle und kompetente Antwort. Ich habe den Code mit Inventor 2022 Pro getestet und bekomme eine Fehlermeldung. Irgendetwas scheint in der Zeile 25 nicht ganz zu passen. oPrt.PropertySets(sPropSet).Add(sPropValue, sPropName) Könntest Du dir das noch mal anschauen? Gruß, Hommel
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 27. Sep. 2023 21:04 <-- editieren / zitieren --> Unities abgeben:          Nur für Hommel80
Moin Ah sorry, das iProp "Kategorie" steckt in einem anderen PropertySet. Die interne Nummer stimmte nicht. So müsste es gehen: Code:
Sub main Dim oAsm As Inventor.AssemblyDocument = ThisDoc.Document For Each oPrt As Document In oAsm.AllReferencedDocuments Select Case oPrt.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}").ItemByPropId(5).Value.ToString Case "Keyword 1" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 1") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 1") CoUProp(oPrt, "{D5CDD502-2E9C-101B-9397-08002B2CF9AE}", "Category", "0100") Case "Keyword 2" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 2") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 2") CoUProp(oPrt, "{D5CDD502-2E9C-101B-9397-08002B2CF9AE}", "Category", "0200") Case "Keyword 3" : CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Bezeichnung","Bezeichnung 3") CoUProp(oPrt, "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}", "User_Beschreibung", "Beschreibung 3") CoUProp(oPrt, "{D5CDD502-2E9C-101B-9397-08002B2CF9AE}", "Category", "0300") End Select Next End SubPrivate Sub CoUProp(ByVal oPrt As Document, ByVal sPropSet As String, ByVal sPropName As String, ByVal sPropValue As String) Try oPrt.PropertySets(sPropSet).Item(sPropName).Value = sPropValue Catch Logger.Debug(sPropSet) oPrt.PropertySets(sPropSet).Add(sPropValue, sPropName) End Try End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hommel80 Mitglied

 Beiträge: 12 Registriert: 21.03.2015 Inventor 2022 Pro
|
erstellt am: 29. Sep. 2023 11:39 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |