Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  in andere Klasse verzweigen

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  in andere Klasse verzweigen (1016 mal gelesen)
MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 09. Apr. 2008 14:15    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 Kollegen aus dem VB - Forum,

ich möchte heut gern einmal eure Hilfe in Anspruch nehmen.
Und zwar bin ich dabei, mir eine Zusatzanwendung für mein CAD SolidWorks zu schreiben (mit Hilfe von Visual Basic 2008 Express Edition). Ok, soweit so gut, das ganze gibt es als Template, direkt vom Hersteller und halbwegs vorgefertig, sodass man eigentlich eine dll erzeugt und der ganze Kram drumherum für einen schon erledigt wurde. Diese wird auch beim Erstellen gleich registriert und es integriert sich das Ganze gleich im SolidWorks.
Ich bin auch soweit gekommen, das für meinen Einstieg notwendige Event anzuzapfen. Allerdings komme ich jetzt nicht weiter.
In der Klasse, die sich SwAddin.vb nennt, bin ich mittlerweile so weit:

Code:
Function SldWorks_FileNewNotify2(ByVal newDoc As Object, ByVal doctype As Integer, ByVal templateName As String) As Integer
        Select Case doctype
            Case SwConst.swDocumentTypes_e.swDocPART

            Case SwConst.swDocumentTypes_e.swDocASSEMBLY

            Case SwConst.swDocumentTypes_e.swDocDRAWING

        End Select
    End Function



Allerdings weiß ich nun nicht wie weiter! Das ist im Moment mein größtes Problem. Mein UserForm, was ich mir angelegt habe, zeigt er mir nicht (Meldung: Der Verweis auf einen nicht freigegebenen Member erfordert einen Objektverweis) und auf eine andere Klasse (z.B. MySldWorkCls) kann ich nicht verweisen, genau so wenig, wie den Event: partdoc::FileSavePostNotify abzufangen und danach wiederum mein UserForm anzuzeigen. Es soll ja auch für jeden Case-Pfad ein anderes Form angezeigt werden.
Sollte ich dermaßen arg auf dem Schlauch stehen, dass es schon zu schmerzen beginnt, stoßt mich bitte bei Seite!  Und ansonsten freue ich mich über jeden hilfreichen Strohhalm!
Grüße

Tobias

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 09. Apr. 2008 14:31    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 MWN 10 Unities + Antwort hilfreich

Hallo Tobias,

die SolidWorks Events werden in meiner SolidWorks API Grundlagen Schulung SolidWorks Objekte und Dokumente
API Grundlagen und Dokumenthandling
im Kapitel 2 beschrieben. Dort kannst du die vorgehensweise nachlesen. Wenn du weitere Fragen hast, einfach melden.


------------------
Mfg Daniel

   

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 09. Apr. 2008 14:54    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 Daniel,

ich weiß, ich weiß, ich habe die ganze Grundlagenschulung (vielen Dank auch an dieser Stelle für das Verfassen diese überaus nützlichen Dokuments) auch schon durchgeackert. Und das nicht nur einmal und ja, sie liegt auch ausgedruckt neben mir.
Ich weiß auch, dass ich in dem Case - Zweig eigentlich auf das FileSavePostNotify Event reagieren will, doch nur wie realisiere ich das an genau diesem Punkt? Genau zwischen den zwei Case - Pfaden.
Oder gibt es eine Möglichkeit von daheraus auf deine MySldWorksCls zu verweisen? Ich bin doch schon soweit, dass ich weiß, dass z.B. ein Part oder ein Assembly vom User erstellt wurde, nur wie reagiere ich jetzt auf das Speichern dieses neu erstellten Part's? Was muss ich da reinschreiben?

Code:
Function SldWorks_FileNewNotify2(ByVal newDoc As Object, ByVal doctype As Integer, ByVal templateName As String) As Integer
        Select Case doctype
            Case SwConst.swDocumentTypes_e.swDocPART
                          was muss hier rein?
            Case SwConst.swDocumentTypes_e.swDocASSEMBLY
                          oder hier, wenn der User
                              ein Assembly erstellt hat

            Case SwConst.swDocumentTypes_e.swDocDRAWING

        End Select
    End Function


Trotzdem Danke für die Hilfe!
Tobias

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 09. Apr. 2008 15: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 Nur für MWN 10 Unities + Antwort hilfreich

Hallo Tobias,

Eine Eventprozedur muss zunächst erstmal mit einem so genannten Eventhandler mit dem eigentlichen Event verbunden werden. Infos dazu gibt es z.B hier und hier.
In meiner Schulung wäre der Eventhandler z.B. Handles oSwAppCls.FileOpenNotify2, in deinem Fall Handles oSwAppCls.FileNewNotify2. Nur die Prozedur alleine nützt nichts!

Wie Kapitel 2.3 beschrieben und wie du schon teilweise angewendet hast, muss du nun zwischen den verschieden SolidWorks Dokumenttypen unterscheiden und mit Hilfe des allgemeinen Dokumentobjekts SldWorks.ModelDoc2 ein spezielles Dokumentobject initialisieren.
Das bedeutet, dass du also in der FileNewNotify2 Ereignisprozedur den Parameter newDoc in ein SldWorks.ModelDoc2 Object steckst.

Code:

Dim oSwModel as SldWorks.ModelDoc2
oSwModel = CType(newDoc, SldWorks.ModelDoc2)

Dann kannst du im Großen und Ganzen so vorgehen wie es in dem Kapitel 2.3, besonderst im Code 2.9, beschrieben ist.

------------------
Mfg Daniel

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 10. Apr. 2008 07: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

Guten Morgen Daniel,

danke noch einmal für deine hilfreiche Antwort. Es hat zwar noch ein weilchen gebraucht, bis ich so recht dahinter gestiegen bin, aber es hat mich doch ein ganzes Stück weiter gebracht.
U's sind schon unterwegs! 
Grüße

Tobias

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