Ich erstelle eine Makrofunktion, die meinen Zeichnungen eine Plannummer hinzufügt und eine .pdf- und .slddrw-Version an einem bestimmten Speicherort speichert.
Der Code in meiner Funktion "Neu erstellen und Bearbeiten", die von meinem Feature-Makro aufgerufen wird, ist identisch, aber wenn ich meine Zeichnung rekonstruiere, wird mein Plan nicht gespeichert (die Funktion "Speichern" gibt "False" zurück), während es funktioniert, wenn ich auf mein Feature-Makro klicke und auf "Definition bearbeiten" klicke. Ich habe überprüft, dass meine Rebuild-Funktion aufgerufen wird, aber nicht speichert, während sie für Edit funktioniert, da es sich um genau denselben Code handelt. Gibt es einen dunklen Zauber, von dem ich nichts weiß?
Schaffen Sie es, in der Rebuild-Funktion Ihrer Feature-Makros zu speichern?
Beachten Sie, dass ich diese Methode verwende: http://help.solidworks.com/2017/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldocextension~saveas.html
Und dass der Wert der Parameter "Errors" und "Warnings" in der Rebuild- und Edit-Funktion 0 ist. Der einzige Unterschied besteht darin, dass es auf der einen Seite False (Rebuild) und auf der anderen Seite True (Edit) zurückgibt.
Ich habe noch nie Feature-Makros erstellt, aber nach dem, was ich hier gelesen habe, gibt es offensichtlich Einschränkungen für das, was in der Rebuild-Funktion getan werden kann, die SaveAs-Funktion ist wahrscheinlich eine davon.
Ich habe zwar auch gelesen, dass es Einschränkungen bei dieser Funktion (Link) gab, andererseits steht nicht wirklich geschrieben, dass es unmöglich ist zu speichern. Ich habe versucht, das Ding zu fälschen, indem ich ein Makro ausführe, das in der Rebuild-Funktion (RunMacro2-Methode) speichert, aber es funktioniert auch nicht. Eine der letzten Möglichkeiten, die mir noch bleibt, besteht darin, zu überprüfen, ob sich das aktive Dokument während der Neuerstellungsfunktion nicht ändert, und es mit der GetSelections3-Methode zu versuchen (wie ich in diesem Forum gelesen habe).
Im Moment habe ich eine Makro-Schaltfläche, auf die ich klicken kann, und sie funktioniert perfekt, aber meine perfektionistische Seite drängt mich, keine Makro-Schaltfläche zu haben, auf die ich :) klicken kann, aber im schlimmsten Fall, wenn ich nicht finde, wird es keine große Sache sein.
Ich habe es nicht versucht, aber es ist wahrscheinlich möglich, Ihre Makrofunktion mit einem Ereignis zu koppeln. Alles, was Sie tun müssen, ist, den Registrierungscode auf die Veranstaltung zu setzen.
Oder erstellen Sie ein Ereignisabonnement-Makro, das gestartet wird, wenn SW ausgeführt wird.
Hallo, tatsächlich hatte ich irgendwo gelesen, dass man Ereignisse verwenden kann. Auf den ersten Blick handelt es sich nicht mehr um ein einfaches Makro, sondern um die Erstellung eines SOLIDWORKS Add-Ins. Wenn ich Freizeit habe, werde ich es herausfinden. Vielen Dank für Ihre Antwort.
Es ist nicht erforderlich, ein Add-In zu erstellen, um die Lüftungsschlitze zu verwalten. Sie können sie mit einem einfachen VBA-Makro verwalten, das beim Öffnen der SW ausgeführt wird. Schauen Sie im Netz nach, Sie können viele Tutorials finden.
FeatureMakros werden am häufigsten zum Aktualisieren von Daten in einem Modell verwendet.
In Ihrem Fall werde ich die Lüftungsschlitze durchgehen, in dem Wissen, dass eine Teilenummer nicht bei jedem Umbau aktualisiert werden muss.
Toll, ich kannte diese Technik nicht. In der Tat habe ich Beispiele für Codes gefunden, in denen sie Ereignisse verwenden. Das ist genau das, was ich machen wollte: Mit diesen neuen Werkzeugen werde ich in der Lage sein, noch effizientere Makros zu erstellen. Danke für Ihre Hilfe!