Maccro-Montage-Aktion

Hallo

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.

Herzliche Grüße


ficap_macro_promouvoir.swp

Sie müssen eine zusätzliche Schleife erstellen, um die Komponenten zu durchlaufen:

Schauen Sie sich diesen von @Cyril.f  vorgeschlagenen Code in diesem Link an:

https://www.lynkoa.com/forum/autres-produits/macro-s%C3%A9lectionner-un-composant-dans-un-assemblage?page=0#answer-

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.

 

 

 

2 „Gefällt mir“

Ich verstehe den durchzuführenden Prozess, aber da ich kein Programmierer bin, kann ich diesen Maccro nicht ändern.

Ich muss die Strecke in Angriff nehmen, die freundlicherweise von @Cyril.f vorgeschlagen 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.

2 „Gefällt mir“

Promote ist für die Nomenklaturen und geschieht auf der Ebene der Nomenklaturen:

https://help.solidworks.com/2021/french/WhatsNew/c_wn2021_pdm_bom_options.htm

2 „Gefällt mir“

Hier ist mein Makro:

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
       
    Weiter i
Ende Sub

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:

https://cadplus.xarial.com/batch/assembly/

Vielen Dank für Ihr Feedback, die Idee war, ein Tool zu haben, das vom Team sowohl für heute als auch für 2 Jahre oder + verwendet werden kann.
 

Hallo

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.

Herzliche Grüße.


promotionmep.zip
2 „Gefällt mir“

Nach dem Testen hatte ich einen Fehler beim Ausführen des maccro.
Im Anhang finden Sie den Screenshot dieses Fehlers.

 


bug_maccro.png

Haben Sie den Eingriff von Hand begonnen?

Denn das Makro von @m.blt funktioniert 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.

1 „Gefällt mir“

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.

Wie bereits @sbadenis müssen Sie das Hauptverfahren aus dem "Makropfad" auswählen und dann validieren.

Wenn Sie die Schaltfläche zu einer Symbolleiste hinzufügen, müssen Sie die Schaltfläche bearbeiten und die Hauptprozedur auswählen.

1 „Gefällt mir“

Hallo @Psyno,

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.

 

1 „Gefällt mir“

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.


screenshot.png

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...

3 „Gefällt mir“

In der Tat, nach dem Bearbeiten der GetSuppression2-Zeilen  funktioniert der maccro sehr gut!
Vielen Dank an alle!