Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SolidWorks-Post Neuaufbau Notification

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 SOLIDWORKS
  
Beratung auf Augenhöhe: Wie echte Partnerschaft Innovation in der Konstruktion vorantreibt., ein Webinar am 03.02.2026
Autor Thema:  SolidWorks-Post Neuaufbau Notification (1813 mal gelesen)
spielmann
Mitglied


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

Beiträge: 3
Registriert: 27.06.2012

erstellt am: 27. Jun. 2012 15:22    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,

Wir arbeiten im Moment an einem SolidWorks-Plugin (Version 2011 SP5 bzw. 2012 SP3) zum Export von SolidWorks-Baugruppen in unser proprietäres Format. Dazu haben wir eine eigene Toolbar implementiert, die auf Knopfdruck das momentan geöffnete Dokument exportiert.

Wenn man aber ein großes Dokument öffnet wird meist ja das Modell nochmals neu aufgebaut, was natürlich in so einem Fall einige Zeit dauern kann. Aus diesem Grund wollte ich während des Neuaufbaus die Buttons der Toolbar deaktivieren, damit der Benutzer keinen "Blödsinn" machen kann. Laut API-Doku gibts dazu eigentlich zwei Notifications. Zum einen swAssemblyRegenNotify, welches beim Start des Neuaufbaus ausgelöst wird und zum andern swAssemblyRegenPostNotify/swAssemblyRegenPostNotify2 mit dem Auslöser Ende des Neuaufbaus. Das erste Signal kann ich problemlos abfangen, aber beim zweiten habe ich kleinere Probleme. swAssemblyRegenPostNotify2 wird anscheinend GAR nicht ausgelöst und swAssemblyRegenPostNotify wird erst ausgelöst wenn ich SolidWorks beende.

Die mMn relevante Codefragmente schauen bei mir so aus:

Code:

STDMETHOD(OnAssemblyRegenPostNotify2)(LPDISPATCH dispatchPtr);
STDMETHOD(OnAssemblyRegenPostNotify)(void);

BEGIN_SINK_MAP(CSwIPhysicsDE)
SINK_ENTRY_EX(ID_SLDWORKS_EVENTS, __uuidof(DSldWorksEvents), swAssemblyRegenNotify, OnAssemblyRegenNotify)
SINK_ENTRY_EX(ID_SLDWORKS_EVENTS, __uuidof(DSldWorksEvents), swAssemblyRegenPostNotify, OnAssemblyRegenPostNotify)
SINK_ENTRY_EX(ID_SLDWORKS_EVENTS, __uuidof(DSldWorksEvents), swAssemblyRegenPostNotify2, OnAssemblyRegenPostNotify2)
END_SINK_MAP( )

STDMETHODIMP CSwIPhysicsDE::OnAssemblyRegenNotify(void)
{
long msgBoxResult=0;
this->GetSldWorksPtr()->SendMsgToUser2(L"OnAssemblyRegenNotify",swMbInformation, swMbOk, &msgBoxResult);
return S_OK;
}

STDMETHODIMP CSwIPhysicsDE::OnAssemblyRegenPostNotify(void)
{
long msgBoxResult=0;
this->GetSldWorksPtr()->SendMsgToUser2(L"OnAssemblyRegenPostNotify",swMbInformation, swMbOk, &msgBoxResult);
return S_OK;
}

STDMETHODIMP CSwIPhysicsDE::OnAssemblyRegenPostNotify2(LPDISPATCH dispatchPtr)
{
long msgBoxResult=0;
this->GetSldWorksPtr()->SendMsgToUser2(L"OnAssemblyRegenPostNotify",swMbInformation, swMbOk, &msgBoxResult);
return S_OK;
}


Hat irgendjemand eine Idee was da schiefgehen könnte? Ich bin nämlich mit meinem Latein am Ende...

Danke schon mal im Voraus,

Christoph

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 28. Jun. 2012 08:34    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 spielmann 10 Unities + Antwort hilfreich


24278_vba-eventmonitor.zip

 
Hallo Christoph,

ich hab so etwas zwar noch nicht gemacht, aber seinerzeit mal etwas mit dem VBA Event Monitor rumgespielt - und das Ding gerade mal wieder ausgepackt. Wie du im Video siehst wird das RegenPreNotify und RegenPostNotify wohl nur ausgeführt, wenn die Aktion zum Neuaufbau interaktiv angestoßen wird, nicht aber bei einem "internen" Neuaufbau.

Vielleicht hilft dir das ja schon weiter, den VBA Eventmonitor gibt es immer noch als Download bei SolidWorks unter https://forum.solidworks.com/docs/DOC-1453 (oder suchen nach VBA_Events.swp )

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

spielmann
Mitglied


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

Beiträge: 3
Registriert: 27.06.2012

erstellt am: 28. Jun. 2012 09:36    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 Stefan,

Danke für den Tipp... Ich hab mir das ganze einmal angeschaut und was mich ein wenig verwirrt ist, dass ich das RegenPreNotify sehr wohl in meinem Addin kriege (auch beim Öffnen) aber das RegenPostNotify nicht.

Im VBA Event Monitor bekomme ich beim Öffnen (wie Dir schon aufgefallen ist) weder RegenPreNotify noch RegenPostNotify, aber beim manuellen Rebuild schon...

Aber ich hab jetzt schon einen Workaround für unser Problem gefunden. Ich machs einfach beim Öffnen jetzt über swAppFileOpenPreNotify bzw. swAppFileOpenPostNotify und beim Rebuild über RegenPreNotify und RegenPostNotify. Aber Danke nochmals für den Denkanstoss

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



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

spielmann
Mitglied


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

Beiträge: 3
Registriert: 27.06.2012

erstellt am: 28. Jun. 2012 12: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

Okey jetzt bin ich wieder ein bisschen schlauer: Und zwar hab ich den Eventlistener falsch registriert, das hab ich jetzt korrigiert und jetzt krieg ich wenigstens einen manuell angestoßenen Rebuild (also Pre UND Post), ABER den automatisch angestarteten Neuaufbau beim Öffnen krieg ich leider immer noch nicht...

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