Nehmen Sie die Antwort von RiriFifi und testen Sie den Code (normalerweise ist der Code effizient.
Wenn es gut funktioniert, müssen Sie diesen Code an alle Dateien in einem Verzeichnis anpassen, indem Sie den Namen des Blocks für die Aufnahme abrufen.
Für Neulinge wie uns in der Makroerstellung gibt es eine Funktion zum Erfassen von Funktionen in SW. Sie starten die Aufnahme, Sie führen Ihre Manipulation durch und SW erstellt automatisch den Code dessen, was Sie auf dem Bildschirm getan haben.
Damit haben Sie 90% Ihres Makros.
Alles, was Sie brauchen, sind die Schleife(n), um die .sldblk-Datei zu ändern, sowie die Deklaration der Variablen (Name der Datensatzdatei, wahrscheinlich einige temporärere Variablen..).
Ich habe mir den Link in 3dexperience angesehen, ich habe die Daten (Pfad meiner Dateien und andere) aktualisiert, aber beim Starten des Makros passiert nichts. Ich habe das besagte Makro mit einer geöffneten Datei ausgeführt, aus einer Skizze, ohne dass etwas geöffnet ist, passiert nichts... Scham
Ich habe ein Makro aufgenommen, das die Arbeit für etwa 1 Datei erledigt.
Auf der anderen Seite weiß ich nicht, wie ich einen Loop und eine Aufnahme unter dem gleichen Namen wie den Block integrieren kann. Gibt es ein Thema zu diesen Elementen, könnte es eine Alternative zu meiner Suche sein.
Hängen Sie das Makro aus einem ausgewählten Raum an, eine Aufnahme, starten Sie dann das Makro und es funktioniert (außer dass der Block nicht fixiert ist)
Es muss verbessert werden, aber wir kommen dem näher.
Nachdem Sie Ihre Anfrage gesehen haben, wenn Sie nur 100 Blöcke zu ändern haben, bin ich mir nicht sicher, ob die Entwicklung eines Makros, das nicht existiert, für 1000 Blöcke oder mehr schneller ist, auf der anderen Seite. 100 Block = 1 bis 2 Stunden ist viel weniger als die Entwicklung eines Makros, selbst für jemanden, der sich auskennt.
Vielen Dank für Ihr Feedback. Ja, ich glaube, ich habe das ririfififi Makro mit class1 und module1 getrennt und Daten (Dateipfad...) in Übereinstimmung mit meinen Dateien verwendet.
Vielen Dank für Ihr Makro, aber es entspricht nicht wirklich meinen Bedürfnissen. Ich für meinen Teil schaffe es mit meinem Makro, einen neuen Raum zu erstellen, den Block zum Skalieren einzufügen, zu speichern und zu schließen. Für 1 definiertes Modell.
Mir fehlt der "Schleifen"-Aspekt, der das Öffnen des nächsten Blocks automatisieren und die Aktionen reproduzieren würde.
Ich habe geschaut, aber leider bleibe ich stecken... Ich werde in den "manuellen" Modus wechseln, also
Die Antwort kann etwas spät kommen, aber das angehängte Makro sollte Ihr Problem lösen. Generierung der Teile mit Skizze in der Flächenebene, Einfügen am Ursprung, im Maßstab 4. Es sollen 3 Zeilen geändert werden, um es an Ihr System anzupassen: - Zeile 35: Quellverzeichnis von Blockdokumenten (mit der Erweiterung "SLDBLK"); - Zeile 36: Zielverzeichnis der Bauteildateien, mit dem gleichen Namen wie die Blöcke, mit der Erweiterung "SLDPRT"; - Zeile 40: Der Pfad und der Name des Standard-Teilemodells für Ihre Version von SolidWorks.
Wenn dies der Fall ist, müssen Sie überprüfen, ob die Variablen Part und swModel nicht leer sind: Im Debug-Modus müssen Sie nur den Cursor über einer dieser beiden Variablen lassen, um deren Inhalt anzuzeigen. Wenn sie gleich Nothing sind, bedeutet dies, dass die vorherige Anweisung Part = swApp.NewDocument... (Zeile 40) gibt nichts zurück, und das SolidWorks Dokument ist nicht geöffnet. Daher der Fehler beim Erstellen des Skizzenmanagers. Die Zeichenfolge, die die Vorlagendatei definiert, ist wahrscheinlich falsch, Sie müssen sehr sorgfältig überprüfen, ob sie existiert, mit dem angegebenen Pfad (in meiner Quelldatei befindet sie sich im Ordner SW 2018).