Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  GetObject...

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
  
Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen
Autor Thema:  GetObject... (2509 mal gelesen)
PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 20. Jan. 2012 16: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 zusammen,

hat jemand Erfahrung mit dem Erstellen einer "Verbindung" zu SolidWorks 2010 und VB.net?

Anders gesagt, ich habe eine Anwendung die bisher in der Lage war, sich per GetObject mit SWXSolidWorks zu "verbinden" (siehe unten). Mit der Umstellung auf SWXSolidWorks 2010 funktioniert das allerdings nicht mehr.

Es funktioniert per CreateObject, startet mir dann aber eine ungewünschte Instanz von SWXSolidWorks. Die damit erstellte "Verbindung" ermöglicht mir allerdings alles bisherige.

...

oSwAppCls = CType(Microsoft.VisualBasic.GetObject( _
Class:="SldWorks.Application"), SldWorks.SldWorks)

Return oSwAppCls

...

Hat jemand zufällig das gleiche Problem? Per Google und diesem Internet werde ich einfach nciht fündig ... Es funktioniert auch nicht mit dem Auslesen der inst. Solidworksversion ("SldWorks.Application.18") etc. ... oSwAppCls = NULL ... 

------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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

3DTOM
Mitglied
Softwareentwickler / Konstrukteur


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

Beiträge: 23
Registriert: 26.10.2001

SolidWorks 2010
SP4.0
Programmiersprache: C#

erstellt am: 24. Jan. 2012 08: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 Nur für PaBü 10 Unities + Antwort hilfreich

Hallo Patrick,

in C# machen wir das folgendermaßen:

SldWorks.SldWorks swApp = (SldWorks.SldWorks) Marshal.GetActiveObject("SldWorks.Application");

Damit bekommen wir die aktive Instanz. Vielleicht hilft es dir ja weiter.

Gruß
Thomas

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 24. Jan. 2012 09: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 PaBü 10 Unities + Antwort hilfreich

Hi Patrick,
bei mir sieht das immer so aus und funktioniert:

Code:
    Dim swApp As sldworks.SldWorks

    Function ConnectToSW( _
            ByRef oSwApp As sldworks.SldWorks) As Boolean
        Try
            'Messagebox Rückgabe
            Dim lDialogStatus As Windows.Forms.DialogResult
            Try
                'SolidWorks Objekt belegen
                oSwApp = CType(GetObject(, _
                        "SldWorks.Application"),  _
                        sldworks.SldWorks)
            Catch ex As Exception
                'Fehler beim Belegen des SolidWorks Objekts
                'Evtl. ist SolidWorks nicht geöffnet
        'Hier keine Reaktion, kommt anschließend....
            End Try

            'Wenn das SolidWorks Objekt nicht belegt ist...
            If oSwApp Is Nothing Then
                '... in einer MessageBox nachfragen

                lDialogStatus = MessageBox.Show(My.Resources.msgNoSWXFound, _
                  Mainform.Text, MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)

                'Rückgabewert prüfen
                Select Case lDialogStatus
                    Case Windows.Forms.DialogResult.OK
                        'User hat SolidWorks geöffnet
                        'Funktion einfach nochmal aufrufen
                        Return ConnectToSW(oSwApp)
                    Case Windows.Forms.DialogResult.Cancel
                        'User möchte die Anwendung abbrechen
                        Return False
                End Select
                'SolidWorks anzeigen
                oSwApp.Visible = True
                oSwApp.UserControlBackground = True
            End If
            Return True
        Catch ex As Exception
    'mögliche Fehlerhandlungen ...
            Return False
        End Try
    End Function


Wenn SolidWorks nicht gestartet ist (If oSwApp Is Nothing Then...), wird der Anwender aufgefordert, SWX zu starten oder die die Anwendung zu beenden (OK oder abbrechen). Du kannst stattdessen natürlich auch SolidWorks mit CreateObject starten.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim 

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

PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 24. Jan. 2012 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 Thomas, hallo Klaus,

danke für die Antworten.

In der Zwischenzeit wandte ich mich an Herrn Bühling von MySldWorks.de an dessen Workshopunterlagen ich mich hielt. Mein Programm ist bereits mehrere Jahre alt und funktionierte bis zur Umstellung auf SWX2010.

Herr Bühling vermutete, dass ich in meinem Visual Studio Projekt die NET-dlls statt der COM-dlls eingebunden habe. Seine Vermutung war richtig.
Im Gegensatz zu SWX2007 ist es für SWX2010 wohl zwingend erforderlich die COM-dlls einzubinden und aber auch SWXSolidWorks und das Programm als Administrator auszuführen. (64 bit: SWX2010, Win7)

Also, vielen Dank nochmals,

------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 24. Jan. 2012 16: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 Nur für PaBü 10 Unities + Antwort hilfreich

Hallo Patrick,

das mit dem Admin kann aber nicht sein, ich entwickle und benutze meine Progrämmchen immer ohne Admin-Rechte.
(VB-NET 2010 Express).

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim 

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

PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 24. Jan. 2012 16: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 Klaus,

stimmt, Du hast Recht. Komisch! Beim Probieren nach der Korrektur ging es nur so.

Habe es jetzt nochmal "normal" probiert und es funktioniert tatsächlich ohne Administratorrechte.

Vielen Dank Klaus,

------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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