Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Event Trigger impfen

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
  
PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
Autor Thema:  Event Trigger impfen (219 / mal gelesen)
RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 14. Dez. 2024 23: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

Guten Abend,

ich habe die Regel gefunden, die Event trigger beim aktuellen Dokument iam und ipt hinzufügt.

https://forums.autodesk.com/t5/inventor-programming-ilogic/is-it-possible-to-add-an-event-trigger-using-ilogic/td-p/9821315

Wenn ich nun eine Baugruppe mit weiteren Unterbaugruppen und daraus folgenden Einzelteilen geöffnet habe, meine Frage:
ist es möglich, dass diese Regel jedes Level der Baugruppe, Unterbaugruppe bis hin zum Einzelteil durchläuft und den Trigger
hinzufügt?

Vielen Dank im voraus.

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 15. Dez. 2024 09:13    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 RP4711 10 Unities + Antwort hilfreich

Moin

Schreib dir einfach eine zweite Regel, die durch alle referenziertem Dokumente der Baugruppe läuft und jeweils deine Regel im Kontext dieser Datei aufruft. Deine Regel sollte dann aber nicht am Anfang etwas mit ThisApplication.ActiveDocument haben, da das unverändert deine Baugruppe sein wird. Das müsste man entweder in ThisDoc.Document ändern oder den Dokumentnamen über ein Regelargument aus der ersten an die zweite Regel mitgeben.

Code:

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
For Each oDoc As Document In oAssDoc.AllReferencedDocuments
    iLogicVb.RunRule(oDoc.FullFileName , "YourRuleName")
Next

Ich weiß nicht was deine evengetriggerten Regeln machen werden. Aber ich rate davon ab, massenhaft evengetriggerte Regeln in allen Dokumenten zu verwenden. Es besteht die Gefahr, dass Inventor merklich langsamer wird wenn ständig Regeln ausgeführt werden. Wenn in allen Dokumenten einer Baugruppe die gleiche Regel ausgeführt werden muss, wäre es vermutlich performanter das zentral und rekursiv aus der obersten Baugruppe zu machen. iLogic muss dann nicht für jedes Dokument den ganzen (für den User unsichtbaren) Overhead zum Starten und Beenden der Regel durchlaufen.

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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 15. Dez. 2024 09:52    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

Guten Morgen, vielen Dank für Ihre Antwort.
Die Regel soll einmalig für ältere Baugruppen benutzt werden, um die neuste Regel mit dem neusten trigger (vor dem speichern ausführen nur in diesem Dokument) verknüpfen.

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 15. Dez. 2024 13:09    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 RP4711 10 Unities + Antwort hilfreich

Moin

Ist die Regel eine externe oder steckt die als interne in der obersten Baugruppe?

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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 15. Dez. 2024 16:24    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,

die Regel liegt im Verzeichnis für iLogic Regeln zentral ab. Nicht im Bauteil oder in der Baugruppe.

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 15. Dez. 2024 17: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 RP4711 10 Unities + Antwort hilfreich

Moin

Dann probier es mal so. Den Regelnamen oben ändern nicht vegessen.

Code:

Option Explicit On
If not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
Exit Sub
End If

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oDoc As Document

' Für externe Regeln muss file:// und ggf. das Unterverzeichnis im iLogicpfad angegeben werden
' Der Regelname wird OHNE die Endung .iLogic.VB o.ä. angegeben
Dim sRuleName As String = "file://YourRuleName" '<<<<<<<<<< EDIT RuleName !!!!!!!!


Dim oAuto As IiLogicAutomation = iLogicVb.Automation

Dim oEventsPropSet As Inventor.PropertySet
Dim sSetName As String = "iLogicEventsRules"
Dim sInternalName As String = "{2C540830-0723-455E-A8E2-891722EB4C3E}"

For Each oDoc In oAssDoc.AllReferencedDocuments
'Getting the Event Triggers iProperty set
Try
oEventsPropSet = oDoc.PropertySets.Item(sSetName)
Catch
End Try

If oEventsPropSet Is Nothing Then
Try
oEventsPropSet = oDoc.PropertySets.Item("_" & sSetName)
Catch
End Try
End If

If oEventsPropSet Is Nothing Then
oEventsPropSet = oDoc.PropertySets.Add(sSetName, sInternalName)
End If

'Define the event's PropId range
Dim iRangeStart As Integer = 700
Dim iRangeEnd As Integer = 799
Dim iPropId As Integer

Dim oEventProp As Inventor.Property
Dim oTestProp As Inventor.Property

'Start adding the rule names to the event triggers
For iPropId = iRangeStart To iRangeEnd
Try
oEventProp = oEventsPropSet.ItemByPropId(ipropid)
If oEventProp.Value=sRuleName Then Exit For
Catch
oEventProp = oEventsPropSet.Add(sRuleName, "BeforeDocSave" & iPropId.ToString, iPropId)
Exit For
End Try
Next


If oEventProp Is Nothing Then
MsgBox("Trigger in " & oDoc.FullFileName & " nicht erstellt.")
End If

oEventsPropSet = Nothing
Next


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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 15. Dez. 2024 20:47    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 die Bemühungen. Ich bekomme die folgende Fehlermeldung:
RunRule("D:\Autodesk Inventor\zDatenbank\Blech TTT3_040824.ipt", "Impfen oberste Baugruppe UC") : Ein Dokument mit dem Namen "D:\Autodesk Inventor\zDatenbank\Blech TTT3_040824.ipt" wurde nicht gefunden.

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 15. Dez. 2024 21:32    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 RP4711 10 Unities + Antwort hilfreich

Moin

Die Regel als externe Regel speichern und in der obersten Baugruppe ausführen. Die geht selbst durch alle Bauteile und Unterbaugruppen. Nur den Namen deiner Regel, die in den Ereignisauslöser eingetragen werden soll musst du anpassen.
Die andere von mir gepostete Regel benötigst du dafür nicht mehr.

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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 15. Dez. 2024 22:11    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

Ah, alles klar. Ich werde es morgen umgehend testen. Vielen Dank dafür.

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 16. Dez. 2024 07: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

Guten Morgen, die Regel funktioniert super, 100% getroffen.

Auch wenn ich es in der Formulierung zu Beginn nicht erwähnt habe, ist es möglich wenn die von Ihnen
ausgeführte Regel zum Einsatz kommt, alle bestehenden Ereignisauslöser zu löschen?

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 16. Dez. 2024 08: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 RP4711 10 Unities + Antwort hilfreich

Moin

Ja, geht. Der folgende Code löscht ALLE Ereignisauslöser in jedem/jeder Bauteil/Baugruppe.

Code:

Option Explicit On
If not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
Exit Sub
End If

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oDoc As Document

' Für externe Regeln muss file:// und ggf. das Unterverzeichnis angegeben werden
' Der Regelname wird OHNE die Endung .iLogic.VB angegeben
Dim sRuleName As String = "file://YourRuleName" '<<<<<<<<<< EDIT RuleName !!!!!!!!


Dim oAuto As IiLogicAutomation = iLogicVb.Automation

Dim oEventsPropSet As Inventor.PropertySet
Dim sSetName As String = "iLogicEventsRules"
Dim sInternalName As String = "{2C540830-0723-455E-A8E2-891722EB4C3E}"

For Each oDoc In oAssDoc.AllReferencedDocuments
'Getting the Event Triggers iProperty set
Try
oEventsPropSet = oDoc.PropertySets.Item(sSetName)
Catch
End Try

If oEventsPropSet Is Nothing Then
Try
oEventsPropSet = oDoc.PropertySets.Item("_" & sSetName)
Catch
End Try
End If

If oEventsPropSet IsNot Nothing Then
oEventsPropSet.Delete
End If

oEventsPropSet = oDoc.PropertySets.Add(sSetName, sInternalName)

'Define the event's PropId range
Dim iRangeStart As Integer = 700
Dim iRangeEnd As Integer = 799
Dim iPropId As Integer

Dim oEventProp As Inventor.Property
Dim oTestProp As Inventor.Property

'Start adding the rule names to the event triggers
For iPropId = iRangeStart To iRangeEnd
Try
oEventProp = oEventsPropSet.ItemByPropId(ipropid)
If oEventProp.Value=sRuleName Then Exit For
Catch
oEventProp = oEventsPropSet.Add(sRuleName, "BeforeDocSave" & iPropId.ToString, iPropId)
Exit For
End Try
Next


If oEventProp Is Nothing Then
MsgBox("Trigger in " & oDoc.FullFileName & " nicht erstellt.")
End If

oEventsPropSet = Nothing
Next


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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 16. Dez. 2024 10:05    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 ist super. Vielen Dank.
Eine Frage noch. Wenn nun ipt´s also Normbauteil/Standardbauteil und Blechbauteil mit Regel 1
und Baugruppen iam mit Regel 2 als Ereignisauslöser bestückt und auch nur so
ausgeführt werden sollen, geht das?
Inhaltscenterbauteile können ignoriert werden.

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: 2687
Registriert: 15.11.2006

Windows 10 x64, AIP 2020-2025

erstellt am: 16. Dez. 2024 10: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 Nur für RP4711 10 Unities + Antwort hilfreich

Moin

Code:

Option Explicit On
If not ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
Exit Sub
End If

Dim oAssDoc As AssemblyDocument = ThisDoc.Document
Dim oDoc As Document

' Für externe Regeln muss file:// und ggf. das Unterverzeichnis angegeben werden
' Der Regelname wird OHNE die Endung .iLogic.VB angegeben

Dim sRuleNamePart As String = "file://YourRuleName1" '<<<<<<<<<< EDIT RuleName !!!!!!!!
Dim sRuleNameAssembly As String = "file://YourRuleName2" '<<<<<<<<<< EDIT RuleName !!!!!!!!

Dim sRuleName As String
Dim oAuto As IiLogicAutomation = iLogicVb.Automation

Dim oEventsPropSet As Inventor.PropertySet
Dim sSetName As String = "iLogicEventsRules"
Dim sInternalName As String = "{2C540830-0723-455E-A8E2-891722EB4C3E}"

For Each oDoc In oAssDoc.AllReferencedDocuments

If oDoc.IsModifiable = False Then Continue For

If oDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then
sRuleName = sRuleNamePart
ElseIf oDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
sRuleName = sRuleNameAssembly
Else
Continue For
End If

'Getting the Event Triggers iProperty set
Try
oEventsPropSet = oDoc.PropertySets.Item(sSetName)
Catch
End Try

If oEventsPropSet Is Nothing Then
Try
oEventsPropSet = oDoc.PropertySets.Item("_" & sSetName)
Catch
End Try
End If

If oEventsPropSet IsNot Nothing Then
oEventsPropSet.Delete
End If

oEventsPropSet = oDoc.PropertySets.Add(sSetName, sInternalName)

'Define the event's PropId range
Dim iRangeStart As Integer = 700
Dim iRangeEnd As Integer = 799
Dim iPropId As Integer

Dim oEventProp As Inventor.Property
Dim oTestProp As Inventor.Property

'Start adding the rule names to the event triggers
For iPropId = iRangeStart To iRangeEnd
Try
oEventProp = oEventsPropSet.ItemByPropId(ipropid)
If oEventProp.Value=sRuleName Then Exit For
Catch
oEventProp = oEventsPropSet.Add(sRuleName, "BeforeDocSave" & iPropId.ToString, iPropId)
Exit For
End Try
Next


If oEventProp Is Nothing Then
MsgBox("Trigger in " & oDoc.FullFileName & " nicht erstellt.")
End If

oEventsPropSet = Nothing
Next


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

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

RP4711
Mitglied
Technischer Produktdesigner


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

Beiträge: 39
Registriert: 01.03.2024

Inventor 2024

erstellt am: 16. Dez. 2024 11: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, funktioniert super. Wiedermal die Anfrage übertroffen. Nochmals vielen Dank.

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