| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Wie Hersteller von Industrieanlagen Konstruktions- und Entwicklungsherausforderungen mit SOLIDWORKS meistern |
Autor
|
Thema: VBA: Blatt einer Zeichnung löschen (822 mal gelesen)
|
magge84 Mitglied Dipl.-Ing. (Entwicklung)
Beiträge: 66 Registriert: 04.09.2008 Solid Works 2018 + PDM Windows 10 64-bit HP Z-Book Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz NVIDIA Quadro M3000M
|
erstellt am: 12. Nov. 2020 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich bin grad am verzweifeln. Ich möchte gerne per VBA-Makro Zeichnungsblätter aus einem Drawing löschen. Der nachfolgende Code ist in eine Schleife verpackt, die alle Zeichnungsblätter durchgeht und deren Namen abgleicht. Enthält der Blattname nicht den String, der in vDoc(j) gespeichert wird, soll das Blatt gelöscht werden. Den Code hat mir das Makroaufzeichnungstool ausgespuckt. Blatt aktivieren funzt. Blatt selektieren funzt. Doch wenn die Befehlszeile löschen kommt, passiert nichts. In SWX kommt ein kleines PopUp, das mir sagt, dass nichts gelöscht wurde. sehr hilfreich Code:
If Not vSheetNamesTemp(i) Like "*" + vDoc(j) + "*" Then swModel.ActivateSheet (vSheetNamesTemp(i)) SelectStatus = swModel.Extension.SelectByID2(vSheetNamesTemp(i), "SHEET", 0, 0, 0, False, 0, Nothing, 0) swModel.EditDelete End If
Ich habe schon verschiedene Code-Schnipsel aus dem Netz getestet. Doch leider ohne Erfolg. Hat von euch jemand ne Idee, wo der Fehler liegt. BTW: Wenn ich das aufgezeichnete Makro von SWX ausführe, passiert auch nichts. Nur dieses blöde PopUp. ------------------ Gruß, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1366 Registriert: 20.12.2003
|
erstellt am: 12. Nov. 2020 16:27 <-- editieren / zitieren --> Unities abgeben: Nur für magge84
|
magge84 Mitglied Dipl.-Ing. (Entwicklung)
Beiträge: 66 Registriert: 04.09.2008 Solid Works 2018 + PDM Windows 10 64-bit HP Z-Book Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz NVIDIA Quadro M3000M
|
erstellt am: 12. Nov. 2020 16:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, das habe ich bereits probiert. Die "DeleteSelection2-Methode" funzt nur in der Modellumgebung. Nicht in der Drawing-Umgebung. Trotzdem Danke für den Hinweis. ------------------ Gruß, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1366 Registriert: 20.12.2003
|
erstellt am: 12. Nov. 2020 18:01 <-- editieren / zitieren --> Unities abgeben: Nur für magge84
Hallo Markus, bei mir funktioniert es: Code: Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swModelDocExt As SldWorks.ModelDocExtension Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim sheetName As String Dim ret As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swModelDocExt = swModel.Extension Set swDraw = swModel ' Zugriff auf das aktuelle Blatt Set swSheet = swDraw.GetCurrentSheet ' Ermitteln des Namens sheetName = swSheet.GetName ' Referenzen löschen Set swSheet = Nothing ' Auswählen des Blattes ret = swModelDocExt.SelectByID2(sheetName, "SHEET", 0, 0, 0, False, 0, Nothing, 0) ' Löschen des Blattes und Einfügen eines leeren Blattes ret = swModelDocExt.DeleteSelection2(swDelete_Absorbed) End Sub
------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magge84 Mitglied Dipl.-Ing. (Entwicklung)
Beiträge: 66 Registriert: 04.09.2008 Solid Works 2018 + PDM Windows 10 64-bit HP Z-Book Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz NVIDIA Quadro M3000M
|
erstellt am: 13. Nov. 2020 09:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, perfekt. Das funktioniert. Hatte dieses Vorgehen schon mal getestet. Da hats nicht gefunzt. Naja, evtl. hatte ich irgendwo nen Fehler. Vielen Danke für deine Unterstützung.
------------------ Gruß, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|