Ich bin auf der Suche nach einem Maccro, um alle Unterbaugruppen einer offenen Baugruppe zu bewerben. Danach besteht das kleine Extra darin , alle Unterbaugruppen höher zu stufen , mit Ausnahme einer Unterbaugruppen, in der der Titel noch "VER" enthält. Aber schon mit einem Maccro, der die 1. Aktion erklären würde , wäre es super! Ich verlinke einen Maccro, der anderswo gefunden wurde und sich in der Nähe befindet.
Fügen Sie dann den Teil hinzu, in dem Sie die Baugruppe filtern, den zu ignorierenden Filter entsprechend dem Namen anzeigen, und Sie fügen den Code hinzu, um die Baugruppe heraufzustufen.
Ich muss die Strecke in Angriff nehmen, die freundlicherweise von @Cyril.fvorgeschlagen und von @sbadenis weitergeleitet wurde, also wenn ich da rauskomme, sollte ich in der Lage sein, euch diese hier zu machen.
Auf der anderen Seite weiß ich nicht, was es bedeutet, hier zu werben, daher bin ich mir nicht sicher, ob ich es richtig testen kann.
Option Explizit Sub main() Dim swApp als SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swConfig als SldWorks.Configuration Dim vConfNameArr als Variante Dim sConfigName als Zeichenfolge Sonne i So lang
Legen Sie swApp = Application.SldWorks fest SolidWorks ermöglicht in VBA Festlegen von swModel = swApp.ActiveDoc "Ruft das aktive Dokument ab vConfNameArr = swModel.GetConfigurationNames 'Ruft alle Konfigurationen in einem Array ab Für i = 0 Bis UBound(vConfNameArr) Schleife über alle Konfigurationen Set swConfig = swModel.GetConfigurationByName(vConfNameArr(i)) 'sConfigName = vConfNameArr(i) swConfig.ChildComponentDisplayInBOM = swChildComponentInBOMOption_e.swChildComponent_Promote "Aktiviert die Promote-Funktion für jede der Konfigurationen
Ohne den Code zu ändern, können Sie ein Makro auf alle Ihre Baugruppen oder eine Baugruppe und alle Unterbaugruppen über die Integration des MyCad-Dienstprogramms (1-monatige Testphase: https://www.lynkoa.com/mycadtools) oder andernfalls über Batch + (kostenlos?) ausführen:
Der Makroanhang kombiniert die Codes aus den verschiedenen obigen Nachrichten. Es scheint mir, dass es eine Antwort auf Ihre ursprüngliche Anfrage ist. Wie immer: Vor der Verwendung ohne Mäßigung testen und validieren.
Denn das Makro von @m.bltfunktioniert zu Hause sehr gut.
Um die Hauptprozedur zu starten, entweder durch Bearbeiten des Makros, setzen Sie den Mauszeiger nach Sub main() ganz am Ende des Makros und klicken auf f5.
Entweder im Werkzeuglauf und dann im Makropfad.
Wenn immer noch ein Fehler, senden Sie vielleicht eine vereinfachte und ungeschützte Baugruppe über den Projektmanager, um sie zu testen.
Um den Maccro zu starten, habe ich eine Testbaugruppe geöffnet (keine Unterbaugruppe, nur Teile), dann Tool = > Maccro = > Ich zeige auf den Maccro auf meinem Desktop und Ausführen. Dann habe ich mehrmals die Fehlermeldung bekommen, die ich im Bild oben gepostet habe. Ich habe gerade noch einmal getestet (nach dem Neustart des PCs) und es ist sehr seltsam.
Der maccro startete, kein Bug-Alarm, die maccro-Oberfläche verschwunden, keine Fehlermeldung. Aber als ich die Konfigurationen der Assemblys einchecken wollte, hatte keine von ihnen die Heraufstufung aktiviert. Zusammenfassend lässt sich sagen, dass anscheinend nichts passiert ist.
Ich verwende einen Maccro, der automatisch PDFs von mehreren Plänen erstellt und es funktioniert wunderbar. Also ich weiß nicht, warum dieser Maccro keine Wirkung oder Bug hat.
Ihr Screenshot identifiziert den Ort des Fehlers, aber um vollständig und effektiv zu sein, sollten Sie die Nachricht über diesen Fehler anhängen, da sie von VBA zurückgesendet wird. Verdächtige Zeilen:
vChildComp = swComp.GetChildren Für i = 0 TB UBound(vChildComp) Legen Sie swChildComp = vChildComp(i) fest. Wenn (swChildComp.GetSuppression2 = swComponentResolved) oder (swChildComp.GetSuppression2 = swComponentFullyResolved) dann
In der letzten Zeile wird überprüft, ob sich die zu verarbeitende untergeordnete Komponente nicht im Status "Gelöscht" befindet, sondern sich im Status "Aufgelöst" befindet. Ich sehe nicht, was einen Fehler generieren kann ...
Es gibt zwei mögliche Ursachen: - Die swChildComp-Komponente ist nicht vorhanden (Nichts) oder von einem ungeeigneten Typ. Sie können einen Spion platzieren, der seinen Namen (swChildComp.Name2) angibt, um mehr zu erfahren... - Die Konstanten swComponentResolved und swComponentFullyResolved sind auf Ihrem PC nicht bekannt. Sie sind 3 bzw. 2 wert. Um es einfach auszudrücken, Sie können testen, indem Sie sie durch diese Werte ersetzen. Um strenger zu sein, müssen wir diese Konstanten im Code zugänglich machen, ebenso wie alle anderen Konstanten in den SolidWorks APIs. Sie werden im Add-In "SolidWorks 2021 Konstantentyp-Bibliothek" definiert. Fügen Sie es einfach zu den VBA-Referenzen hinzu (Extras > Referenzen, und aktivieren Sie das entsprechende Kontrollkästchen). Stellen Sie sicher, dass die Verweise auf SolidWorks im angehängten Bild sichtbar sind.
Kleine Präzision, ich bin auf SolidWorks 2018 (ich weiß nicht, ob es etwas ändert). Bezüglich der Checkbox sind im Anhang die Referenzen meines maccro.
Um Sylk zu antworten, ich weiß nicht, wovon du sprichst. Wenn ich das maccro starte, ziele ich es über den SW-Explorer an und verweise auf die Datei PromotionMEP.swp . Ich weiß nicht, wie ich sonst darauf hinweisen soll, bevor ich es ausführe.
Das Vergnügen aufeinanderfolgender Versionen von SolidWorks...
Die Funktion GetSuppression2 ist in der Version 2018 nicht vorhanden. Es sollte durch GetSuppression ersetzt werden (also löschen Sie einfach die 2!). Und es sollte anfangen zu funktionieren.
Noch eine Anmerkung: Es scheint mir, dass die Option Erhöhen (oder Ausblenden oder Anzeigen) einer Zeichnung nur für eine Baugruppe sinnvoll ist. Das Makro betrifft also eine Hauptbaugruppe, die Unterbaugruppen enthält, deren Komponenten wir in der MEP-Nomenklatur sehen möchten oder nicht. Eine Baugruppe, die nur Teile enthält, wird nicht berücksichtigt...