Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: EmodelViewControl bleibt hängen

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
Autor Thema:  API: EmodelViewControl bleibt hängen (971 mal gelesen)
ChrisB
Mitglied



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

Beiträge: 61
Registriert: 14.03.2005

SolidWorks 2006/2008
WinXP Pro
MS VS 2005

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

Hallo Freunde der wohlgepflegten API-Unterhaltung!


Wir benutzen ein selbst geschriebenes Programm, mit dem wir nach SWXSolidWorks-Dateien suchen, und diese in einem kleinen Vorschaufenster anzeigen lassen. Die Vorschau bereitet aber immer wieder Probleme.

Das Programm besteht im Wesentlichen aus einem Formular, in dem sich das EmodelViewControl und noch ein bisschen anderes Zeugs befindet.

Nach der Auswahl eines Dokuments wird dieses mit EmodelViewControl.openDoc geöffnet.


Nun treten aber seit längerem immer wieder Probleme damit auf.
Vor allem, wenn mehrmals hintereinander in schneller Abfolge Dokumente geöffnet werden, hängt sich das Control komplett auf.
(weißer Hintergrund, keine Events werden mehr geschickt, ...).

Solange ich dann nicht weiter auf das Control zugreife (Dokument lade, Eigenschaften abfrage, etc) läuft meine Anwendung auch normal weiter. Sobald ich aber versuche in irgendeiner Weise mit dem Control zu interagieren, hängt sich die Anwendung komplett auf.

Ich habe schon versucht ein solchermaßen "kaputtes" control aus dem Formular zu löschen und neu hinzuzufügen, was aber auch keinen Erfolg brachte.

Bis das control ein finished/failedLoading event sendet wird verhindert, dass neue Dokumente geöffnet werden. Daran sollte es also eigentlich nicht liegen.
Allerdings scheint das Control Probleme mit größeren Dateien zu haben, bei diesen tritt das Problem häufiger (aber nicht ausschließlich) auf.


Da ich mit VB.NET arbeite wird von dem original-EmodelViewControl eine Wrapper-Assembly erstellt. Ob es daran liegen kann, weis ich nicht. Bisher hat das mit allen anderen Controls immer wunderbar funktioniert.


Ich verwende VB.NET 2005 und den E-Drawings Viewer 2007.

Hat vielleicht jemand von euch Erfahrung mit dem EModelViewControl?

Grüße

Christian

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

tbd
Mitglied
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
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 07. Mrz. 2007 11: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 ChrisB 10 Unities + Antwort hilfreich

Hallo Christian,

mit dem EModelViewControl habe ich leider keine Erfahrung.
Wenn es jedoch nur um eine Vorschau der SolidWorks Dokumente geht, konntest du doch auch nur ein Bitmap in einer PicturBox anzeigen.
Stefan hat dieses wunderbar (dafür auch von mit nochmal danke) auf seiner Homepage erklärt. http://solidworks.cad.de/apitut_kap06.htm
Dies wäre zumindest eine Alternative, auch wenn ich dir bei deinem eigentlichen Problem nicht helfen kann.

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

Beim Bill Gates, bei uns .net!
------------------

SolidWorks Programmierung; Schuler Design Automation GmbH

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

ChrisB
Mitglied



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

Beiträge: 61
Registriert: 14.03.2005

SolidWorks 2006/2008
WinXP Pro
MS VS 2005

erstellt am: 07. Mrz. 2007 12:04    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

Danke schonmal für die schnelle Antwort Daniel!

Ich fürchte mir wird wohl nichts anderes übrig bleiben, als wirklich eine Bitmap aus den Dateien rauszuziehen. Aber so weit ich weis ist man dabei darauf festgelegt, wie das Dokumtent beim letzten Speichern ausgesehen hat (Lage, Zoom, etc.).
Deswegen wäre der E-Drawing-Viewer meine erste Wahl gewesen. Was man mit diesem Control machen kann ist eben schon ziemlich scharf.

Aber wenns eben nicht zuverlässig läuft... 
Trotzdem danke für den Link! Werd ich gleich mal ausprobieren 

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

tbd
Mitglied
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
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 07. Mrz. 2007 12: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 ChrisB 10 Unities + Antwort hilfreich

Hallo Christian,

als weitere Möglichkeit fällt mir da auf die Schnelle nur ein das du anstelle der OpenDoc Methode die Filename Property nutzen könntest.
Zudem würde ich dir vorschlagen das Öffnen eines Dokuments in einen eigenen Thread zu verschieben.
Während des Laden das EmodelViewControl ausschalten und durch das Event finished/failedLoading wieder einschalten (Stichwort Enabled).
Dadurch würde dein Formular auf Klicks und ähnliches reagieren, jedoch könne das EmodelViewControl in ruhe seine arbeit verrichten und das Dokument öffnen.
Vieleicht kommts du ja so zu deinem Ziel.

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

Beim Bill Gates, bei uns .net!
------------------

SolidWorks Programmierung; Schuler Design Automation GmbH

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

ChrisB
Mitglied



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

Beiträge: 61
Registriert: 14.03.2005

SolidWorks 2006/2008
WinXP Pro
MS VS 2005

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

Hi!

Das mit der property filename werd ich gleich mal ausprobieren 
Irgendwie hatte ich in Erinnerung, dass die readonly war, aber ist nicht so. Naja, vielleicht war das in einer früheren Version so? Egal.

Aber das mit dem Multithreading... Boah.
Sind Formulare nicht Single-Thread-Appartments, d. h. alle Controls in einem Thread? Kann man da einzelne Controls überhaupt abkoppeln?
Hui, das wird ein Spaß. 

Mal sehn, vielleicht funktioniert es ja 

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

tbd
Mitglied
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
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 07. Mrz. 2007 13:06    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 ChrisB 10 Unities + Antwort hilfreich

Hallo Christian,

ja das mit der Threadprogrammierung in einem Formular ist schon eine sache für sich, aber es geht!
Aber keine Angst es wird sich lohnen.
Infos gibt zum Beispiel hier: http://www.galileocomputing.de/openbook/visual_basic/Kapitel_11-001.htm#984e3eb426270601ceb274efabcb04c3
Kapitel 11 Multithreading des E-Books Visual Basic 2005 von Andreas Kühnel

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

Beim Bill Gates, bei uns .net!
------------------

SolidWorks Programmierung; Schuler Design Automation GmbH

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

ChrisB
Mitglied



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

Beiträge: 61
Registriert: 14.03.2005

SolidWorks 2006/2008
WinXP Pro
MS VS 2005

erstellt am: 08. Mrz. 2007 13:07    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

Howdy!

Also das mit dem Control als extra Thread hab ich auf die Schnelle nicht hinbekommen. Es gibt ja die Regel dass alle Controls und sub-Controls in dem Thread angesprochen werden müssen, in dem sie erzeugt wurden. Und ein Formular ist ja auch nur ein Control...


Jedenfalls hab ich mir jetzt ein schnuckeliges UserControl gebastelt, welches mit dem Befehl preview.OpenDoc eine Vorschau anzeigt. Geht verdammt schnell, war einfach zu programmieren, und tut auch seinen Dienst.

Wenn ich noch Zeit habe und mir langweilig ist bastel ich noch eine Zoom/Pan-Funktion ein 

Wenn Interesse an dem Control besteht kann man mich ja mal anschreiben 
Bin allerdings nur ein Wald-und-Wiesen-Hobby-Programmiere, also übernehme ich keine Gewähr 


MfG
Christian

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