Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: SWX läd Datei ewig

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
  
InnovateNext 26. in Donaueschingen, eine Veranstaltung am 13.11.2025
Autor Thema:  API: SWX läd Datei ewig (526 mal gelesen)
FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 10. Mai. 2005 14:38    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 SWXler,

ich habe folgendes Problem: Ich habe eine Programm geschrieben, dass mit Hilfe von SolidWorks Dateien aus einer Liste in ein anderes Format konvertiert.

Da es sich um viele Dateien handeln kann (bis 4000), läuft der Prozess über Nacht oder am Wochenende auf einem separaten Rechner. Nun trat das Problem auf, dass sich SWX an einer Datei „verschluckt“ hat, sprich es hat endlos versucht die Datei zu laden, es aber nicht geschafft (Keine Ahnung warum -> Prozessorauslastung 100%!). Dadurch kam die Funktion

Code:

retval = SldWorks.OpenDoc6 ( filename, type, options, configuration, &Errors, &Warnings )


nie zurück und das Programm stand! Die restlichen Dateien wurden somit natürlich nicht abgearbeitet, was sehr ärgerlich war…

Wie fangt Ihr ein solches Problem ab? Fangt ihr es überhaupt ab?

Hoffe auf konstruktive Vorschläge – Vielen Dank schon im Voraus!

Gruß
flo


------------------

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

PASCAM
Mitglied
Diplom Informatiker


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

Beiträge: 67
Registriert: 25.11.2002

erstellt am: 12. Mai. 2005 09:40    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 FlorianGerteisz 10 Unities + Antwort hilfreich

Hallo flo,

Das ist ein wirklich schwieriges Problem. Meines erachtens gibts nur eine einfache Loesung, dass Du einen zweiten Prozess hast, der Deinen ersten ueberwacht. Und wenn dieser steht, entsprechende Maßnahemn einleitet (Prozeß killen und neu starten).
Am "Haengen" selber wirst Du nichts machen koennen.

Gruss, Ralph

------------------
PASCAM Ralph Müller
Softwareentwicklung

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 16. Mai. 2005 19:55    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 Ralph,

danke für deine Hilfe!

Eine ähnliche Idee ist mir auch gekommen. Hab die SWX-Interaktion in einem Thread laufen, der überwacht wird. Leider lässt sich dieser nicht so einfach killen. Aber ich werde noch ein paar Varianten ausprobieren.

Meinst du mit Prozess einen "richtigen", anderen Windows-Prozess?

Mit der Überwachung des Programm-Prozesses ist das auch so eine Sache. Mein eigentliches Programm bringt keinen Fehler im Task-Manager ála "Keine Rückmeldung".

Zitat:

Am "Haengen" selber wirst Du nichts machen koennen.


Ja, das ist mir klar;-)

Werde wohl noch ein bissen "tüfteln" müssen

gruß
flo

------------------

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

Rigobert
Mitglied
Konstrukteur


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

Beiträge: 239
Registriert: 21.11.2001

SWX 2017x64-Edition SP 4.1

erstellt am: 17. Mai. 2005 07:25    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 FlorianGerteisz 10 Unities + Antwort hilfreich

Hallo flo,

vielleicht kannst Du einfach über ein Timersteuerelement überprüfen, ob das mit dem Laden voran geht. Und wenn nicht , dann einfach merken bis zu welcher Datei Du gekommen bist, Prozedur beenden, und mit der nächsten Datei weitermachen.

Gruß Andreas

------------------

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 17. Mai. 2005 10: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 Andreas,

danke für deinen Tipp. Dies ist im Grunde genommen auch mein Lösungsansatz. Wie schon gesagt, ist das Problem dabei, dass sich (in meinem Fall) der Thread nicht einfach "abschießen" lässt. Grund dafür ist wahrscheinlich, dass dieser zu dem Zeitpunkt nicht selbst aktiv ist sondern auf eine Rückgabe wartet.

Ich werde in den nächsten Tagen aber noch ein paar Varianten testen.

gruß
flo

------------------

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

BerndB
Mitglied
Ingenieur


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

Beiträge: 616
Registriert: 28.09.2001

erstellt am: 17. Mai. 2005 10:28    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 FlorianGerteisz 10 Unities + Antwort hilfreich

Hallo flo,

ich habe momentan mit SWXSolidWorks 2005 SP3 auch so meine schwierigkeiten

retval = SldWorks.OpenDoc6 ( filename, type, options, configuration, &Errors, &Warnings )


wenn ich aus einer Zeichnung das Modell ermittle und dann versuche mit openDoc6 zu öffnen will SWXSolidWorks das nicht.

Auch wenn ich den filename von Hand fest vorgebe NIX

Erst wenn ich die Zeichnung schließe öffnet er mit dem selben Befehl das 3D Dok ?????

Ist das bei dir auch der fall?

Gruss

Bernd

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 17. Mai. 2005 10: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 Bernd!

Das selbe Problem hatte ich zu Beginn auch. Grund dafür ist, dass SWX beim Öffnen der Zeichnung das Modell mitläd. Dadurch kannst du das Modell nicht öffnen, da es ja schon (nicht sichtbar) geöffnet ist.

Als "Schnelllösung" habe ich auch einfach die Zeichnung geschlossen und dann das Modell nochmals geöffnet. Was eigentlich unsinnig ist, da das Modell somit 2x geladen werden muss.

Um dieses Problem zu umgehen könntest du folgendes versuchen:

Code:

modeldoc = SldWorks.ActivateDoc2 (ModellName, true, err);
modeldoc.Visible(true);

Hab es selbst aber noch nicht versucht...

gruß
flo

------------------

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

Ralf Blokscha
Mitglied
Konstrukteur


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

Beiträge: 175
Registriert: 10.07.2000

XEON 2x3.33GHz, 8.0GB Ram, nVidia Quadro FX 570 256 MB, WIN XP64 SP 2, SWX 2007_x64 SP 5.0

erstellt am: 18. Mai. 2005 06:35    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 FlorianGerteisz 10 Unities + Antwort hilfreich

Hallo zusammen,
ich habe bei einem Programm folgenden Programm schnippsel verwendet um das referenzierte Modell sichtbar zu machen um danach zur Zeichnung zurück zukehren:

If (Model.GetType() = swDocDRAWING) Then
        Set DrawingDoc = swApp.ActiveDoc
        Set View = DrawingDoc.GetFirstView
        Set View = View.GetNextView
   
        If View Is Nothing Then
            keinModell
            Exit Sub
        End If
       
        ModName = View.GetReferencedModelName()
        Zeichnung = Model.GetPathName()
       
        If Zeichnung = Empty Then
            saveAktion
            Exit Sub
        End If
       
        Set Model = swApp.ActivateDoc2(ModName, True, errors)
       
        barDatenAuslesen
       
        swApp.CloseDoc Model.GetTitle()
   
        Set Model = swApp.ActivateDoc2(Zeichnung, True, errors)
        Model.Visible = True
End If

Hoffe es hilft euch weiter

Gruß Ralf

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 18. Mai. 2005 08:35    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

Laut Ralfs Lösung reicht dann sogar
Code:

Set Model = swApp.ActivateDoc2(ModName, True, errors)

@Ralf
Musst du am Ende deiner Routine folgendes machen?

Code:

Model.Visible = True

gruß
flo

------------------

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

Ralf Blokscha
Mitglied
Konstrukteur


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

Beiträge: 175
Registriert: 10.07.2000

XEON 2x3.33GHz, 8.0GB Ram, nVidia Quadro FX 570 256 MB, WIN XP64 SP 2, SWX 2007_x64 SP 5.0

erstellt am: 18. Mai. 2005 12:12    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 FlorianGerteisz 10 Unities + Antwort hilfreich

Hallo Florian,

kann ich dir nicht sagen ob ich sie brauch, den ich habe es erst garnicht ohne probiert.

[Edit/]
Aber vergiss nicht den Namen des referenzierte Modells heraus zufiltern
[/Edit]

Gruß Ralf

[Diese Nachricht wurde von Ralf Blokscha am 18. Mai. 2005 editiert.]

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

FlorianGerteisz
Mitglied
IT-Anwendungsentwickler


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

Beiträge: 43
Registriert: 28.04.2005

erstellt am: 18. Mai. 2005 12:16    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

OK ;-)

gruß
flo

------------------

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