Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  Events abfangen

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 präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Events abfangen (1191 mal gelesen)
freak-tom
Mitglied
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

erstellt am: 12. Mrz. 2007 10:53    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 Forumuser,

kann man irgendwie Events abfangen also z.b. den Speichern Event, ohne in jede einzelne Datei ein Macro schreiben zu müssen?

Also im Anwendungsprojekt nicht im Dokumentprojekt?

MfG Thomas

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 12. Mrz. 2007 13:43    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 freak-tom 10 Unities + Antwort hilfreich

Hallo Tom,

das geht mit einem Klassenmodul.

Public WithEvents oAE As ApplicationEvents
Public oapp As Application

Public Sub Class_Initialize()
Set oapp = ThisApplication
Set oAE = oapp.ApplicationEvents

End Sub

Public Sub oAE_OnSaveDocument(ByVal odoc As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)

xxxxxxxxxx

end sub

Einziges Problem dabei ist das Initialisieren, das muß angestoßen werden, z.B. per Button. Nach Fehlern muß das Initialisieren evtl nochmal gemacht werden.

Ein Add-In, das beim Speichern eine bestimmtes Modul im Anwendugnsprojekt aufruft wäre da eine gute Lösung.

Gruß
Reinhard

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

ccKeyLargo
Mitglied
Verfahrensentwickler


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

Beiträge: 32
Registriert: 15.01.2007

erstellt am: 13. Mrz. 2007 15:39    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 freak-tom 10 Unities + Antwort hilfreich

Hallo Reinhard,

ich würde das was Tom frägt auch gerne realisiren, aber ich verstehe Deine Erklärung nicht ganz.

Ich habe eine Subroutine, die ich ausführen möchte, sobald ein neues Dokument erstellt wird. Dies soll unabhänglg vom Dokument sein - muss also ins Anwendungsprojekt.

Ich habe mir ein neues Klassenmodul erstellt mit folgendem Inhalt:

Public WithEvents oAE As ApplicationEvents
Public oapp As Application

Public Sub Class_Initialize()
    Set oapp = ThisApplication
    Set oAE = oapp.ApplicationEvents
End Sub

Public Sub oAE_OnNewDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum)
   
    MsgBox ("Hello")

End Sub


______________________________________

Nur frage ich mich, wie nun die Methode "OnNewDocument" mit Applikation "Inventor" kommuniziert?

Ich habe mir eine kleine Sub geschrieben, die die Methode "Class_Initialize()" aufruft, um zu testen ob hier der Zusammenhang ist. => Hat aber nicht funktioniert.

Wie schreibe ich also meine Funktion, sodass diese beim erstellen eines neuen Dokumentes abgearbeitet wird? Oder geht das wirklich nur mit einem AddIn?

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 14. Mrz. 2007 07:46    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 freak-tom 10 Unities + Antwort hilfreich

Also bei mir gehts.

Code:

Private myClass As EventClass

Public Sub EventStart()
Set myClass = New EventClass
End Sub



in ein normales Modul und mit einem Button auf die Oberfläche ziehen.
Wenn du das Modul aufrufst und danach ein neus Dokument ertellst, sollte dein "Hellol World" erscheinen.

Gruß
Reinhard

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

freak-tom
Mitglied
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

erstellt am: 14. Mrz. 2007 07:53    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 Reinhard,

kann man das ganze irgendwie automatisieren, das der button z.B. beim Start von Inventor automatisch gedrückt wird?

MfG
Thomas

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

ccKeyLargo
Mitglied
Verfahrensentwickler


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

Beiträge: 32
Registriert: 15.01.2007

Pentium 4 3,4 GHz
2.00 GB RAM
Graphik: NVIDIA Quadro FX 1400
Software: AutoCAD 2007, ADT 2007, Mechanical 2007, Inventor 10 - 2008

erstellt am: 14. Mrz. 2007 08:33    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 freak-tom 10 Unities + Antwort hilfreich

Hallo Reinhard,

mein Code sieht nun so aus:

Modul1:

Private myClass As EventClass

Public Sub EventStart()
    Set myClass = New EventClass
End Sub
______________________

Klassenmodul EventClass:
Public WithEvents oAE As ApplicationEvents
Public oapp As Application

Public Sub Class_Initialize()
    Set oapp = ThisApplication
    Set oAE = oapp.ApplicationEvents
End Sub

Public Sub oAE_OnNewDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum)
 
    MsgBox ("Hello")

End Sub
_______________________

Das Makro "EventStart" habe ich mir als Button in die Toolbar gezogen.
Beim drücken wird auch die Klasse initialisiert. Wenn ich direkt im Code bin, werden beim Debuggen auch die Instanzen lokal angezeigt.
Der Überwachungsbereich jedoch sagt zu jeder Zeit, er würde "myClass" nicht kennen. (auch wenn ich myClass als public deklariere nicht)
Funktioniert also leider noch nicht. Fehlt mir noch was?

Ich schätze, ich muss den Code wohl doch in ein Dokumentprojekt und dort in jedes Template schreiben...

Danke für Deine Antworten!

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 14. Mrz. 2007 08: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 Nur für freak-tom 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ccKeyLargo:
Ich schätze, ich muss den Code wohl doch in ein Dokumentprojekt und dort in jedes Template schreiben...

Das würde ich nicht tun. Es kann leicht Ärger bei der Migration von Daten geben.

------------------
Grüße Igor

FX64 Software Solutions
HMI ~ 16.-20. April 2007 ~ CAD.de Halle 17, Stand F60

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

freak-tom
Mitglied
PDM-/CAD-Admin


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

Beiträge: 347
Registriert: 07.03.2006

erstellt am: 14. Mrz. 2007 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

Hallo Igor,

wie würdest du das dann machen?

MfG
Thomas

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

daywa1k3r
Ehrenmitglied V.I.P. h.c.
Softwareentwickler



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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 14. Mrz. 2007 08:58    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 freak-tom 10 Unities + Antwort hilfreich

Nicht mit VBA. Ein AddIn wäre da das Richtige. Aber das wurde schon gesagt.

------------------
Grüße Igor

FX64 Software Solutions
HMI ~ 16.-20. April 2007 ~ CAD.de Halle 17, Stand F60

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

ccKeyLargo
Mitglied
Verfahrensentwickler


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

Beiträge: 32
Registriert: 15.01.2007

erstellt am: 14. Mrz. 2007 09:51    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 freak-tom 10 Unities + Antwort hilfreich

Hallo,

ich muss meine Aussage von vorhin korrigieren.
Der Event wird ausgelöst. Mein Fehler war, dass ich vor der Deklaration von "myClass" noch eine andere Sub stehen hatte.
Der Compiler hat mich nicht gewarnt, also dachte ich, es sei egal.

Beispiel von oben funktioniert also!!!


=>Zu dem eigentlichen Problem: Ja, dann wird wohl wiedermal ein AddIn das cleverste sein...
Danke für die Antworten!

Eigentlich bin ich mit meinem eigentlichen Problem nun ganz schön weit abgedrifftet. Ich möchte eigentlich nur, dass automatisch beim erstellen eines neuen Projektes die Inhaltscenter Dateien im Projektpfad abgelegt werden.
Es würde mir auch genügen, einen Eintrag bei den "Standard Inhaltscenter Dateien" zu machen, aber das klappt nicht wenn dort nur als Pfad steht: ".\ContentCenterFiles". Inventor ändert es dann in "\.\ContentCenterFiles" und speichert die Inhaltscenterdateien unter "Eigene Dateien" und nicht im Projektlaufwerk.

Also muss ich das wohl mit meinem Code ändern und dafür ein AddIn erstellen....
Oder hat jemand eine andere Idee?

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)2025 CAD.de | Impressum | Datenschutz