Ausführen eines Makros in einer Bibliothek

Ich habe ein Makro erstellt, mit dem Sie die Bildqualität, Facettierung und Krümmung in Bibliotheksteilen reduzieren können, um deren Verwendung zu optimieren. Die Schwierigkeit besteht darin, dass ich nur laufen kann, wenn das Teil in Solidworks geöffnet ist.
Kennen Sie eine Methode, um diese Aufgabe direkt mit dem Taskplaner auszuführen, indem Sie das gewünschte Verzeichnis auswählen?
Vielen Dank im Voraus

Wenn Sie das MyCadtools-Tool haben, können Sie dies mit Integration tun, andernfalls nutzen Sie die Vorteile der 1-monatigen Testversion!
In 1 wählen Sie Ihre Datei aus.
In 2 erstellen Sie eine neue Regel
In 3 die systematische Bedingung, dass Sie auf den UND-Ordner ziehen
In 4 Operation Verschiedenes, Start eines Makros
In 5 füllen Sie das Makro aus (Pfad zum Gehen und Finden)
In 6 wird die Methode (Main?)
In 7 ziehen Sie Ihr Makro in die Operation
In 8 filtern Sie ggf. (Artikel, Baugruppe, Zeichnung)
Endlich bewerben


Solidworks verarbeitet dann die Auswahlliste 1 nach und nach im Stapel und wendet Ihr Makro darauf an.
Und ich habe vergessen, dass Sie direkt unter der Aktion ändern können, ob Sie speichern oder nicht, indem Sie es beenden. (für Ihren Fall die Änderung gespeichert)

2 „Gefällt mir“

Hallo
In der Tat muss es die Hauptmethode sein
Hier ist das Makro

Option Explizit

’ ******************************************************************************
" von F.PENNERAS
' 27. DEZ 2023
’ ******************************************************************************

Früh gebundene Variablen
Dim swApp als SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dimmen des Teils als SldWorks.ModelDoc2

' Hinzuzufügende Variablen (Variablenvariablen)
Dim CurVal als Double
Dim MaxVal als Doppelzimmer
MinVal als Doppelzimmer dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Dim swTextFormat As SldWorks.TextFormat
Dim TextFormatObj als Objekt
Dimmen ModelDocExtension als ModelDocExtension

Sub main()

• Verbindung zum aktuell aktiven SolidWorks Dokument
Legen Sie swApp = Application.SldWorks fest
Festlegen von swDoc = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Festlegen von ModelDocExtension = Part.Extension

'Fehlerbehandlung, wenn keine Dokumente geladen werden
Wenn Part nichts ist, dann MsgBox "Eine Solid Works-Datei muss aktiv sein!", vbCritical: Sub beenden

' Rufen Sie die aktuellen, minimalen und maximalen Werte aus den Einstellungen für die Schattierungsabweichung der Bildqualität ab.
' Laden Sie diese Werte in die Variablen 'CurVal', 'MinVal' und 'MaxVal'.
swDoc.Extension.GetUserPreferenceDoubleValueRange swImageQualityShadedDeviation, CurVal, MinVal, MaxVal

' Setzt einen neuen Wert für die Schattierungsabweichung
swDoc.SetUserPreferenceDoubleValue swImageQualityShadedDeviation, MaxVal

' Deaktivieren Sie das Kontrollkästchen 'Kantenlänge optimieren'.
Part.SetUserPreferenceUmschalten swImageQualityUseHighQualityEdgeSize, False

' Deaktivieren Sie das Kontrollkästchen 'Facetisierung speichern'.
Part.SetUserPreferenceToggle swImageQualitySaveTesselationWithPartDoc, False

' Deaktivieren Sie das Kontrollkästchen 'Kurvenqualität verbessern'.
Part.SetUserPreferenceUmschalten swImageQualityWireframeHighCurveQuality, False

' Legen Sie einen neuen Wert für 'Drahtgitterauflösung und HLR/HLV in hoher Qualität' fest.
Part.SetUserPreferenceIntegerValue swImageQualityWireframeValue, 1

Ende Sub

Den Link zur Installation der MyCadTools Tools Tools finden Sie hier:

1-monatige Testversion.
Dann verwenden Sie die Integration und sehen sich die Tipps und das Bild aus dem vorherigen Beitrag an, um sich zu orientieren.

1 „Gefällt mir“

Es ist perfekt ich werde es testen, vielen Dank

Hier werden wir sehen, wie es aussieht

Testen Sie es an 2-3 Stücken, um es zu sehen und vorsichtig zu sein, es muss schriftlich zugänglich sein.
Aber bereits verwendet und es funktioniert sehr gut (wenn das Makro funktionsfähig ist)

1 „Gefällt mir“

Es ist an der Spitze, beim ersten Mal zu arbeiten! Die große Zeitersparnis! 4 Minuten pro Stück sparen!!

Vielen Dank

1 „Gefällt mir“

Ja, deshalb haben wir in MYcad-Tools investiert! Weil es sehr nützlich für Batch-Aufgaben ist.
Und der Schlag für uns wird über das Jahr weitestgehend abgefedert

3 „Gefällt mir“

Sie können Ihr Makro im SolidWorks Taskplaner automatisieren, indem Sie eine Problemumgehung verwenden. Speichern Sie zunächst Ihr Makro als separate Datei. Erstellen Sie dann ein Batch-Skript, das SolidWorks öffnet, jedes Teil aus dem gewünschten Verzeichnis lädt und das Makro darauf ausführt. Sie können festlegen, dass dieses Batchskript über den Taskplaner zu geplanten Zeiten ausgeführt wird. Leider unterstützt der SolidWorks Taskplaner das direkte Ausführen von Makros nicht nativ, sodass diese Methode ein wenig Automatisierung hinzufügt. Sie können auch SolidWorks PDM erkunden, wenn Sie Zugriff haben, da es über robustere Automatisierungsoptionen verfügt.