Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Bauteil direkt in Baugruppe modifizieren » Trigger AppEvents_OnSaveDocument?

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:  Bauteil direkt in Baugruppe modifizieren » Trigger AppEvents_OnSaveDocument? (297 mal gelesen)
mb-ing
Mitglied
F&E-Mangement, MB-Ing. (u)


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

Beiträge: 723
Registriert: 06.09.2012

Inventor 2021 WIN 10 (64bit), Dell Precision T1650, 16GB (Pro.File 8.7)

erstellt am: 29. Nov. 2021 14:00    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 habe eine Funktion "UpdateStandardIProperties()" implementiert, welche bestimmte I-Properties abhängig vom Dokumenttyp aktualisiert.
Diese wird unter anderem durch folgenden Trigger angesprochen:

Code:
Private Sub AppEvents_OnSaveDocument(DocumentObject As _Document, BeforeOrAfter As EventTimingEnum, Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum) Handles AppEvents.OnSaveDocument
   If BeforeOrAfter = EventTimingEnum.kBefore Then
     ...
     iProperties.UpdateStandardIProperties()
     ...
...

Das funktioniert soweit auch tadellos, ABER ...    

Wenn ich eine IPT in einer IAM direkt modifiziere (Doppelklick auf die Komponente), zurück in die IAM gehe und dann speichere, werden nur die I-Properties der IAM aktualisiert.
Inventor speichert zwar beide Dateien korrekt ab, aber der obige Trigger wird nur bei der IAM ausgelöst.

Wie bekomme ich es hin, dass auch die modifizierte IPT angesprochen wird?
Natürlich will ich nicht, dass immer alle Komponenten durchgeiert werden  

Eigentlich voll die Zwickmühle...

Speichere ich die IPT während der "Direktbearbeitung" in der IAM läuft die Funktion wie gewünscht durch.

Ich hoffe ich konnte mein Anliegen nachvollziehbar erörtern  

Ergänzung:

Der Trigger:

Code:
Private Sub DocEvents_OnSave(BeforeOrAfter As EventTimingEnum, Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum) Handles DocEvents.OnSave
  If BeforeOrAfter = EventTimingEnum.kBefore Then
  ...
...

liefert bei den anderen zu speichernden Dokumenten nur "kAfter"!?
Aber ich möchte die I-Properties ja vor dem Speichern aktualisieren 
Oder stehe ich auf dem Schlauch?

Danke und Grüße
MB-Ing.

------------------
Wissen ist Macht. Nichts wissen macht auch nichts  

[Diese Nachricht wurde von mb-ing am 29. Nov. 2021 editiert.]

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: 29. Nov. 2021 14: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 mb-ing 10 Unities + Antwort hilfreich

Hallo

Wie sprichst du denn in deiner iProperties.UpdateStandardIProperties() das gewünschte Dokument an? Ich hoffe nicht über ActiveEditDocument? Weil genau danach klingt es, das es funktioniert wenn du in der Direktbeabeitung speicherst.
Ich würde das DocumentObject des OnSave-Events als Argument mitgeben. Gegebenenfalls könnte man das Argument ja auch als Optional deklarieren und wenn kein DocumentObject übergeben wird, nimmt die Funktion das aktive Dokument.

Aus dem Kopf in etwa so (Syntaxfehler nicht ausgeschlossen):

Code:
Private Sub AppEvents_OnSaveDocument(DocumentObject As _Document, BeforeOrAfter As EventTimingEnum, Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum) Handles AppEvents.OnSaveDocument
   If BeforeOrAfter = EventTimingEnum.kBefore Then
     ...
     iProperties.UpdateStandardIProperties(DocumentObject)
     ...
...

Code:

Private Function UpdateStandardIProperties(Optional ByVal Document as Document = Nothing)

    Dim myDoc as Document = Document
    If Document is Nothing then
        myDoc=myInventor.ActiveDocument
    End if

    ...



EDIT: DocEvents sollte mW auch ein kBefore haben. 

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

mb-ing
Mitglied
F&E-Mangement, MB-Ing. (u)


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

Beiträge: 723
Registriert: 06.09.2012

Inventor 2021 WIN 10 (64bit), Dell Precision T1650, 16GB (Pro.File 8.7)

erstellt am: 30. Nov. 2021 07:08    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

Hi Ralf,

und erneut vielen, vielen herzlichen Dank für Deine Hilfe, die mein Problem gelöst hat.

Schande über mein Haupt, Fehler 70 

Ich habe zwischendurch das gewünschte Objekt mit "ActiveEditDocument" überschrieben 
Der Murks fällt natürlich erst bei der genannten Konstellation mit der Bauteilbearbeitung in der Baugruppe auf...

Danke und Grüße
MB-Ing.

------------------
Wissen ist Macht. Nichts wissen macht auch nichts 

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