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