Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Dokument schließen

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
  
SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
Autor Thema:  API: Dokument schließen (410 mal gelesen)
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: 28. Jun. 2007 16:59    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


SchliessenDoc1.jpg


SchliessenDoc2.jpg

 
Hallo,

der Beitragstitel klingt einfacher als mein Problem wirklich ist.

Folgendes Beispiel:
Ich habe in SolidWorks die Baugruppe 10577033_Stempel und die Zeichnung 52906337_Grundkoerper geöffnet.
In dieser Baugruppe und Zeichnung ist die, ebenfalls geöffnete, Baugruppe 52906337_Grundkoerper als Referenz vorhanden.
(Siehe Bild SchliessenDoc1.jpg)

Gewünschte Vorgehensweise:
Die Baugruppe 52906337_Grundkoerper möchte ich nun per API schließen.
Dies geschiet in einer For-Each Schleife, in der ich die vorhandenen Pfadangaben in einer Collection abarbeite und alle Dokumente schließen möchte:

Code:

Dim oSwAktuellModel As SldWorks.ModelDoc2
For Each sPfad As String In scDokumente
  oSwAktuellModel = oSwApp.GetOpenDocument(sPfad)
  'Ist dieses Dokument evtl. wegen einer Baugruppe bereits geschloßen?
  If Not oSwAktuellModel Is Nothing Then
      oSwApp.QuitDoc(oSwAktuellModel.GetTitle)
  End If
Next

Das Problem:
Die Baugruppe 52906337_Grundkoerper wird in SolidWorks, wie geschünscht geschloßen. Jedoch nicht richtig. Sie wird immer noch im Datei-Explorer mit einem durchsichtigen Icon dargestellt.
(Siehe Bild SchliessenDoc2.jpg)
Auch das ModelDoc2 dieser Baugruppe kann ich mir in SolidWorks besorgen weiterhin besorgen.
Woran das liegt ist klar. Die Baugruppe 52906337_Grundkoerper ist in der Zeichnung und in der Hauptbaugruppe wiederhin in Verwendung.

Wie kann ich jedoch die Baugruppe 52906337_Grundkoerper so schließen, das auch das ModelDoc2 und somit die Baugruppe im Datei-Explorer weg ist?

Gibt es eine einfache und laufzeitschonende Methode ein ModelDoc2 zu fragen in welchen anderen geöffneten Dokument es verwendet wird.
Es wäre für mich kein Problem auch die Zeichnung und die Hauptbaugruppe zu schließen.
Jedoch weis ich nicht wie ich an die Information komme, welche mir mitteilt das die Baugruppe 52906337_Grundkoerper von diesen beiden Dokumenten verwendet wird und ich diese auch schließen muss.

Ich hoffe ich habe alles verständlich erklärt und freue mich über jeden Tipp und Hinweis!

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

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 29. Jun. 2007 09:27    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 tbd 10 Unities + Antwort hilfreich

Das ModelDoc kannst Du nicht fragen, wo es verwendet wird. Aber Du könntest Baugruppen und Zeichnungen (über die Ansichten) nach ihren Referenzen suchen lassen...
Das ModelDoc ist weg, wenn Du ihm den Wert Nothing gibst, dann müßtest Du es neu zuweisen. Eine Baugruppe oder Zeichnung behält aber immer ihre referenzierten Teile im Speicher. Was ist denn, wenn Du das zu schließende Teil unterdrückst?

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

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: 29. Jun. 2007 09: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

Hallo Lutz,

die Idee mit dem Auslesen der Referenzen hatte ich auch schon.
Ich finde dies aber zu umständlich.
Sollten zum Beipiel bei sehr großen Baugruppen mal über 500 ModelDoc's in SolidWorks vorhanden sein, müsste ich ja für jedes die Referenzen auslesen und diese dann vergleichen.
Das geht ganz schön auf die Laufzeit!

Unterdrücken nützt mir nichts. Es kann sein das ich ein Dokument mit dem gleichen Namen im weitern Programmverlauf öffnen möchte. Und das läßt SolidWorks nicht zu, wenn bereits ein anders, aber namensgleiches Dokument geöffnet ist.

Jedoch danke für deine Ideen!
Ich glaube ich werde das mal an den API Support schicken, so als Verbesserungsvorschlag.

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

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

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