Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  VB.NET + SolidWorks: PartDoc = ModelDoc2 Problem

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
Autor Thema:  VB.NET + SolidWorks: PartDoc = ModelDoc2 Problem (573 / mal gelesen)
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: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 15. Sep. 2021 10:18    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 Experten,

ich habe mal wieder ein unerklärliches Problem.

In einem Programm, dass schon einige Zeit unverändert und problemlos läuft, tritt auf einmal ein Fehler auf.

Ich öffne mit OpenDoc6 ein Modell als ModelDoc2 und weise dann dieses ModelDoc2 einem PartDoc zu, da ich die Funktion partDoc.RemoveAllDisplayStates benötige.

Dabei tritt seit neuestem ein Ausnahmefehler auf, den ich vorher nicht hatte:
System.InvalidCastException: "Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "SolidWorks.Interop.sldworks.PartDoc"

Die Vorgehensweise ist im Prinzip genaus so in der API Hilfe vorgegeben:
http://help.solidworks.com/2020/English/api/sldworksapi/Clear_Display_States_Example_VBNET.htm

Mein Code:

Code:

Public swModel As SolidWorks.Interop.sldworks.ModelDoc2
Public swPartDoc As SolidWorks.Interop.sldworks.PartDoc


'....
swModel = swApp.OpenDoc6(SWXFilename, swxType, swOpenDocOptions_e.swOpenDocOptions_ReadOnly, "Standard", Warnings, Errors)
    ModelTitle = swModel.GetTitle
    If Not swModel Is Nothing Then
'....
        'Erscheinungsbilder löschen
        swPartDoc = swModel 'Hier tritt die Ausnahme auf
        boolstatus = partDoc.RemoveAllDisplayStates
'....
End if


Auch TryCast bringt mir als Ergebnis zwar keinen Fehler, aber eben Nothing.

Code:
swPartDoc = TryCast(swModel, SolidWorks.Interop.sldworks.PartDoc)


Ich verstehe nicht, warum jetzt auf einmal dieses Problem auftritt, obwohl an dem Programm nichts verändert wurde.
Als Workaround kann ich das nur auskommentieren bzw. mit Try und Catch klammern, das ist aber keine Lösung.

Kann mir hier jemand auf die Sprünge helfen?

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

http://www.alko-tech.com | mein Gästebuch

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2537
Registriert: 02.10.2006

erstellt am: 16. Okt. 2021 10: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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,
hast du hier einen Schreibfehler?

Code:
boolstatus = partDoc.RemoveAllDisplayStates

Sollte doch wohl lieber so heißen.

Code:
boolstatus = swPartDoc.RemoveAllDisplayStates

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 18. Nov. 2021 11:01    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 Andi,
stimmt, da ist ein Schreibfehler, danke für den Hinweis 
Aber das eigentliche Problem war eine Zeile darüber, die Ausnahme ist immer aufgetreten bei
swPartDoc = swModel
Inzwischen funktioniert es wieder, ich habe keine Ahnung, warum. 

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

http://www.alko-tech.com | mein Gästebuch

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