Konstruktionsautomatisierung mit SolidWorks-Makros: VBA-Leitfaden
Konstruktionsautomatisierung mit SolidWorks-Makros: VBA-Leitfaden
Solidworks makros: kurz zusammengefasst
SolidWorks Makros mit VBA: Makros aufzeichnen und anpassen, parametrische Modelle steuern, Zeichnungen und DXF-Export automatisieren, Routine sparen.

Ein SolidWorks-Makro ist ein leistungsstarkes Werkzeug, das wiederkehrende Konstruktionsvorgänge automatisiert und die Produktivität von Ingenieuren um ein Vielfaches steigert. Wenn Sie täglich dieselben Schritte wiederholen, können Sie ein SolidWorks-Makro schreiben und diesen Prozess in Sekunden abschließen. In diesem Leitfaden behandeln wir die Grundlagen der VBA-Makroprogrammierung in SolidWorks sowie praktische Beispiele aus der Blechbearbeitung im Detail.
Was ist ein SolidWorks-Makro und wozu dient es?
Bei diesem Werkzeug handelt es sich um Automatisierungsskripte, die mit der SolidWorks-API geschrieben werden. Sie werden in VBA (Visual Basic for Applications) verfasst und mit der Endung .swp gespeichert. Makros lassen sich über Tools > Macro > Record in der Menüleiste aufzeichnen oder von Grund auf neu schreiben.
Der größte Vorteil von Makros ist die Automatisierung wiederkehrender Vorgänge. Stellen Sie sich vor, Sie wiederholen in jeder Konstruktion dieselben 15 Schritte. Wird dieser Vorgang 10-mal am Tag ausgeführt, verbringen Sie bei 250 Arbeitstagen im Jahr rund 625 Stunden damit. Mit einem Makro senken Sie diese Zeit auf unter 50 Stunden.
Die SolidWorks-API bietet eine sehr umfangreiche Funktionsbibliothek. Vom Öffnen, Bearbeiten und Speichern von Part-, Assembly- und Drawing-Dateien über das Hinzufügen benutzerdefinierter Eigenschaften bis hin zum Erstellen von Stücklisten (BOM) und dem PDF-Export lässt sich nahezu jeder Vorgang programmieren.
Grundlagen der SolidWorks-Makro-Automatisierung mit VBA
Den SolidWorks-VBA-Editor erreichen Sie über Tools > Macro > New. Ein einfaches SolidWorks-Makro beginnt mit folgender Struktur: Die Zeilen Dim swApp As SldWorks.SldWorks und Set swApp = Application.SldWorks stellen den Zugriff auf die SolidWorks-Anwendung her.
Für den Zugriff auf das aktive Dokument werden die Zeilen Dim swModel As ModelDoc2 und Set swModel = swApp.ActiveDoc verwendet. Diese beiden Zeilen bilden das Fundament nahezu jedes Makros. Anschließend können Sie über swModel auf Geometrie, Features und Konfigurationen zugreifen.
Für das Abfangen von Fehlern ist es wichtig, mit einer On-Error-GoTo-Zeile eine Fehlerbehandlung einzubauen. Ist während der Makroausführung keine Datei geöffnet oder nichts ausgewählt, darf das Programm nicht abstürzen, sondern sollte dem Anwender eine aussagekräftige Meldung anzeigen.
Die SolidWorks-API im Einsatz
Die SolidWorks-API besitzt vier zentrale Objektmodelle. Das SldWorks-Objekt repräsentiert die Anwendung. ModelDoc2 repräsentiert das geöffnete Dokument. PartDoc, AssemblyDoc und DrawingDoc bieten dokumenttypspezifische Funktionen. Die Objekte Feature, Body und Face ermöglichen den Zugriff auf Geometrieebene.
Die Datei SolidWorks API Help ist Ihre wichtigste Referenzquelle. In der mit der SolidWorks-Installation gelieferten API Help sind alle Objekte, Methoden und Eigenschaften mit ausführlichen Erläuterungen und Codebeispielen dokumentiert.
Sämtliche Sheet-Metal-Funktionen, die wir in unserem Leitfaden zur SolidWorks-Blechkonstruktion beschreiben, sind auch über die API zugänglich. So können Sie Blechbearbeitungsvorgänge per Makro automatisieren.
Makro-Beispiele für die Blechbearbeitung
Eines der am häufigsten eingesetzten SolidWorks-Makro-Beispiele ist das Makro für den Batch-DXF-Export. Dieses Makro speichert die Abwicklungen aller Blechteile in einer Assembly-Datei automatisch im DXF-Format. Für jedes Teil wird eine eigene DXF-Datei erstellt, deren Dateiname aus der Teilenummer übernommen wird.
Das zweite beliebte Beispiel ist das Makro zur automatischen Abwicklung. Es öffnet das Flat-Pattern-Feature des aktiven Blechteils, liest die Abwicklungsmaße aus und schreibt sie in die benutzerdefinierten Eigenschaften (Custom Properties). Diese Angaben werden in der Stückliste (BOM) und im Zuschnittplan verwendet.
Das dritte Beispiel ist das Makro zur automatischen Stücklistenerstellung. Es liest alle Teile aus der Assembly-Datei, sammelt Angaben zu Werkstoff, Dicke, Stückzahl und Abmessungen und überträgt sie in eine Excel-Datei. Dieses Makro spart vor allem beim Versenden von Bestellungen an Lohnfertiger enorm viel Zeit.
Fortgeschrittene SolidWorks-Makro-Tipps und Performance
Um die Makro-Performance zu steigern, verwenden Sie die Zeilen swModel.SetAddToPart = False und swApp.CommandInProgress = True. Diese Einstellungen deaktivieren die Bildschirmaktualisierung und die Aufzeichnung des Befehlsverlaufs, sodass das Makro deutlich schneller läuft.
Für konfigurationsbasierte Vorgänge können Sie mit der Methode swModel.ShowConfiguration2 zwischen Konfigurationen wechseln. Indem Sie für jede Konfiguration eine eigene DXF- oder PDF-Datei ausgeben, automatisieren Sie das Variantenmanagement.
Wenn Sie Ihre Makros statt als .swp als Add-In kompilieren, können Sie der SolidWorks-Symbolleiste eine Schaltfläche hinzufügen. So greifen Sie mit einem einzigen Klick auf das Makro zu. In unserem Beitrag Technische Zeichnung und Stückliste (BOM) sind wir auch auf die Automatisierung der Dokumentation eingegangen.
Zeitersparnis mit SolidWorks-Makros im Überblick
In einem typischen Konstruktionsbüro für Blechbearbeitung ergeben sich durch Makro-Automatisierung folgende Zeitersparnisse: Der Batch-DXF-Export sinkt von manuell 45 Minuten auf 2 Minuten mit Makro. Die Erstellung der Stückliste (BOM) sinkt von manuell 30 Minuten auf 1 Minute mit Makro.
Das Anwenden der Zeichnungsvorlage sinkt von manuell 20 Minuten auf 30 Sekunden mit Makro. Die Aktualisierung der Revisionsnummer sinkt von manuell 15 Minuten auf 10 Sekunden mit Makro. Die tägliche Gesamtersparnis liegt im Schnitt bei etwa 2-3 Stunden.
Auf das Jahr gerechnet bedeutet das eine Ersparnis von 500-750 Stunden. Legt man Stundenkosten von 200 TL für einen Ingenieur zugrunde, ergibt sich ein jährlicher Kostenvorteil von 100.000-150.000 TL. Die Investition in die Makroentwicklung amortisiert sich in der Regel innerhalb von 1-2 Monaten.
Fazit: SolidWorks-Makroentwicklung mit Burak Engineering
Die SolidWorks-Makro-Programmierung ist einer der wirksamsten Wege, die Produktivität im Engineering zu steigern. Sie können mit VBA beginnen, grundlegende Automatisierungen aufbauen und mit der Zeit komplexere Lösungen entwickeln. Mit der umfangreichen Funktionsbibliothek der SolidWorks-API lässt sich im Rahmen Ihrer Vorstellungskraft nahezu alles automatisieren.
Als Burak Engineering bieten wir Automatisierungsentwicklung, VBA-Schulungen und maßgeschneiderte Automatisierungslösungen an. Mit unternehmensspezifischen Makros beschleunigen wir Ihren Konstruktionsprozess.
Über unsere Kontaktseite erreichen Sie uns und erhalten eine kostenlose Vorabbewertung zur SolidWorks-Makroentwicklung und Automatisierungsberatung.
SolidWorks API-Architektur: wie ein SolidWorks Makro das Modell erreicht
Jedes belastbare SolidWorks Makro baut auf derselben Objektkette auf. Code, der diese Kette ignoriert, bricht beim ersten Versionswechsel oder sobald er auf einen anderen Dokumenttyp trifft. Wer die Kette sauber aufbaut, hält ein SolidWorks Makro ein Jahrzehnt lang am Leben.
Die Kette beginnt beim Anwendungsobjekt und führt bis zum einzelnen Feature: die Anwendungsebene steht für die Sitzung, die Dokumentebene für die geöffnete Datei, der Feature-Manager für jeden Knoten im Baum. Der Auswahl-Manager hält fest, was Anwender oder Code markiert haben, und die Dokumenterweiterung versammelt die modernen Methoden.
- Anwendungsebene — öffnet die Sitzung, steuert Öffnen und Schließen von Dokumenten sowie die Benutzereinstellungen.
- Dokumentebene — stellt eigene Schnittstellen für Teil, Baugruppe und Zeichnung bereit; gemeinsame Vorgänge laufen über eine gemeinsame Dokumentschnittstelle.
- Feature-Manager — durchläuft den Konstruktionsbaum, fügt Features hinzu, entfernt sie und ändert ihre Reihenfolge.
- Auswahl-Manager — liefert Typ, Anzahl und Markierung der aktuellen Auswahl und muss vor jedem Vorgang geleert werden.
- Dokumenterweiterung — enthält die Auswahl über dauerhafte Bezeichner, die Befehlsausführung und die erweiterten Speichermethoden.
Frühe oder späte Bindung?
Die frühe Bindung verweist auf die Typbibliothek und bringt Codevervollständigung sowie Prüfung zur Übersetzungszeit. Der Preis ist eine feste Abhängigkeit von der referenzierten Version. Die späte Bindung löst Objekte zur Laufzeit auf, wodurch der Code zwischen Versionen wandern kann, Schreibfehler aber erst im Betrieb auffallen.
In der Praxis arbeiten wir gemischt: schnelle Entwicklung mit früher Bindung, vor der Auslieferung Umstellung der kritischen Aufrufe auf späte Bindung.
| Kriterium | VBA-Makro | .NET-Add-in |
|---|---|---|
| Entwicklungstempo | Sehr hoch, Editor integriert | Mittel, eigener Buildschritt |
| Verteilung | Datei kopieren genügt | Installation und Registrierung |
| Oberflächenintegration | Begrenzt, Schaltfläche zuweisbar | Register, Menüs und Aufgabenbereiche |
| Versionsverwaltung | Schwierig, Binärformat | Einfach, Quelltext als Klartext |
| Wartungsaufwand | Bei kleinen Werkzeugen gering | Bei großen Projekten gering |
| Empfohlen für | Schnelle Erfolge im Einzelbüro | Unternehmensweite Abläufe |
Wie ein produktionsreifes SolidWorks Makro aufgebaut ist
Der Unterschied zwischen einem lauffähigen und einem verlässlichen SolidWorks Makro zeigt sich im Fehlerfall. Ein SolidWorks Makro, das über Nacht hunderte Dateien still und leise falsch verarbeitet, kostet mehr als eines, das gar nicht erst startet.
Eingabeprüfung und sichere Auswahl
Zuerst prüft das SolidWorks Makro, ob überhaupt ein Dokument geöffnet ist, ob es den erwarteten Typ hat und ob die benötigte Konfiguration existiert. Vor jeder Auswahl wird die bestehende Auswahl geleert, und der Rückgabewert des Auswahlaufrufs wird ausnahmslos geprüft.
Kein SolidWorks Makro, das von Bildschirmkoordinaten, festen Indizes oder der zufälligen Markierung des Anwenders abhängt, geht in Produktion. Objekte werden über dauerhafte Bezeichner aufgelöst.
Die Einheitenfalle
Die Programmierschnittstelle rechnet immer in Metern und Radiant, die Oberfläche zeigt Millimeter und Grad. Wer beides vermischt, erzeugt Fehler um den Faktor tausend. Wird die Umrechnung in einer einzigen Hilfsfunktion gebündelt, verschwindet diese Fehlerklasse vollständig.
Neuaufbau, Rückgängig und Warnungssteuerung
Nach einer Reihe von Änderungen löst das SolidWorks Makro einen erzwungenen Neuaufbau aus und wertet dessen Ergebnis aus. Wird der gesamte Vorgang in eine einzige Rückgängig-Gruppe gefasst, kommt der Anwender mit einem Schritt zurück.
Für den stillen Lauf werden Dialoge unterdrückt; die Einstellungen müssen jedoch am Ende und ebenso im Fehlerfall zurückgesetzt werden. Sonst arbeitet der Anwender in einer Sitzung ohne Warnungen weiter.
Eine Regel aus der Werkstatt
Jeder Lauf eines SolidWorks Makro sollte eine Zeile im Protokoll hinterlassen: Dateiname, Vorgang, Dauer, Ergebnis und Fehlermeldung. Diese eine Gewohnheit verkürzt die Fehlersuche von Stunden auf Minuten.
Muster für die Stapelverarbeitung: hunderte Dateien über Nacht
Einen einzelnen Vorgang zu automatisieren ist einfach. Der eigentliche Gewinn entsteht, wenn derselbe Vorgang sicher auf jede Datei eines Ordners angewendet wird. Drei Punkte müssen vor der Schleife geklärt sein: Durchlauf, Öffnen und Wiederaufsetzen.
- Durchlauf — der Ordnerbaum wird rekursiv durchsucht, nach Endung und Namensmuster gefiltert und die Arbeitsliste zuerst im Speicher aufgebaut.
- Reihenfolge — zuerst Teile, dann Unterbaugruppen, zuletzt die Hauptbaugruppe. Die umgekehrte Reihenfolge führt zu Referenzfehlern.
- Stilles Öffnen — das Dokument wird mit ausgelesenen Warn- und Fehlerkennungen geöffnet; der schreibgeschützte Modus verkürzt die Ladezeit großer Baugruppen deutlich.
- Vorgang — hier geschieht die eigentliche Arbeit, und jeder Schritt wird auf seinen Rückgabewert geprüft.
- Schließen — Dokumente werden ohne Speichern geschlossen; nur wirklich geänderte Dateien werden zurückgeschrieben.
- Wiederaufsetzen — schlägt eine Datei fehl, bricht die Schleife nicht ab. Der Fehler wird protokolliert und die nächste Datei bearbeitet.
Mit diesem Muster erzeugt ein SolidWorks Makro Abwicklungen und Zuschnittdateien eines Archivs mit tausend Teilen in einem einzigen Lauf außerhalb der Arbeitszeit erzeugen. Am Morgen ist nur das Fehlerprotokoll zu prüfen.
Fehlende Referenzen und Pfadprobleme
Nicht aufgelöste Referenzen beim Öffnen von Baugruppen sind die häufigste Bruchstelle im Stapelbetrieb. Werden die Suchordner zu Beginn des SolidWorks Makros gesetzt und am Ende zurückgestellt, entfällt der größte Teil dieser Fehler.
Blech- und Zeichnungsautomatisierung
Am schnellsten rechnet sich ein SolidWorks Makro bei wiederkehrenden Ausgaben. Bei Blechteilen sind das Abwicklung und Zuschnittdatei, bei Zeichnungen Ansichtsanordnung und Stückliste.
Qualität von Abwicklung und Zuschnittdatei
Ob eine Zuschnittdatei an der Maschine sauber läuft, hängt weniger von der Geometrie als von der Ebenenstruktur ab. Außenkontur, Innenkonturen, Biegelinien und Beschriftungsgeometrie gehören auf getrennte Ebenen, die maschinenseitig zur Technologietabelle passen müssen.
- Die Außenkontur muss eine einzige geschlossene Kurve ohne doppelte Kanten sein.
- Werden Innenkonturen nach Bohrungsdurchmesser getrennt, lässt sich für kleine Bohrungen eine andere Schnittgeschwindigkeit hinterlegen.
- Biegelinien liegen mit Richtung und Winkel auf einer eigenen Ebene.
- Die Abwicklung stammt aus der Konfiguration, die mit der tatsächlich verwendeten Biegetabelle und dem K-Faktor gerechnet wurde.
- Dateinamen werden im Code erzeugt, damit Teilenummer, Revision und Blechdicke immer enthalten sind.
Zeichnungserstellung
Die Zeichnungsautomatisierung beginnt mit einer Vorlage. Das SolidWorks Makro setzt die Ansichten, wählt den Maßstab passend zum Blattformat, verknüpft die Stückliste und aktualisiert die Revisionstabelle. Weil die Benennung über eine einzige Regelfunktion läuft, bleibt das Archiv einheitlich.
Den größten Nutzen bringt dieser Ablauf, wenn ein SolidWorks Makro und ein parametrisches Modell gemeinsam aufgebaut werden: ein Maß ändert sich, das Modell wird neu aufgebaut, Zeichnung und Zuschnittdatei erneuern sich selbst.
Einstellungen für Leistung und Zuverlässigkeit
Die Laufzeit eines SolidWorks Makros entsteht meist nicht im Code, sondern beim Öffnen und Neuaufbauen der Modelle. Wenige Einstellungen verkürzen die Gesamtdauer erheblich.
- Vereinfachte Bauteile und der Modus für große Baugruppen verkürzen die Ladezeiten spürbar.
- Wird nur die benötigte Konfiguration geladen, sinkt der Speicherbedarf.
- Das Verschieben des Neuaufbaus zwischen Zwischenschritten zahlt sich aus, sobald viele Maße gleichzeitig geändert werden.
- Abgeschaltete Bildschirmaktualisierung beschleunigt lange Schleifen deutlich.
- Wird die Dauer je Datei protokolliert, sind die kritischen Modelle schnell gefunden.
Sicherheit, Versionsführung und Verteilung
Ein SolidWorks Makro ist keine Datei, die man einmal schreibt und vergisst, sondern ein gepflegtes Softwarewerkzeug. Sobald mehrere Personen im Büro dieselben Werkzeuge nutzen, sind Verteilung und Versionsdisziplin Pflicht.
- Sicherheitsstufe — im Unternehmen sollten SolidWorks Makros nur aus festgelegten vertrauenswürdigen Speicherorten starten.
- Eine Quelle — die Werkzeuge liegen in einem einzigen Netzwerkordner; Kopien auf dem Desktop sind nicht zulässig.
- Versionsstempel — jedes SolidWorks Makro schreibt seine Versionsnummer ins Protokoll, sodass bei einer Fehlermeldung der ausgeführte Stand feststeht.
- Versionsverwaltung — der Quelltext liegt als Klartext im Repository, Änderungen werden vor dem Zusammenführen geprüft.
- Umstiegstest — vor dem Wechsel auf eine neue Version werden die Werkzeuge an einem repräsentativen Dateibestand erprobt.
Wann lohnt der Umstieg auf ein Add-in?
Mit wachsender Zahl an SolidWorks Makros wiederholen sich dieselben Hilfsroutinen in mehreren Dateien. Spätestens dann gehört die gemeinsame Bibliothek in ein einziges Add-in, was den Wartungsaufwand senkt und den Anwendern eine geschlossene Oberfläche bietet. Ab etwa fünf Werkzeugen trägt sich der Umstieg meist selbst.
Häufige Fehlerbilder und ihre Behebung
| Symptom | Wahrscheinliche Ursache | Behebung |
|---|---|---|
| Das SolidWorks Makro tut bei manchen Dateien stillschweigend nichts | Ein Auswahlaufruf schlägt fehl, der Rückgabewert wird nicht geprüft | Nach jeder Auswahl den Rückgabewert prüfen und Fehlschläge protokollieren |
| Maße sind um den Faktor tausend zu groß oder zu klein | Ein Millimeterwert wird direkt an eine Methode übergeben | Jede Umrechnung über eine einzige Hilfsfunktion führen |
| Die Stapelverarbeitung bricht beim ersten Fehler ab | Keine Fehlerbehandlung innerhalb der Schleife | Jede Datei in einem eigenen Fehlerblock verarbeiten |
| Beim Öffnen einer Baugruppe fehlen Teile | Suchordner sind nicht gesetzt | Suchpfade zu Beginn setzen und am Ende zurückstellen |
| Beim Anwender bleiben Warnungen abgeschaltet | Einstellungen werden im Fehlerfall nicht zurückgesetzt | Die Rücksetzung in den Ausgang des Fehlerblocks verlegen |
| Nach dem Versionswechsel bricht der Code | Frühe Bindung an eine alte Typbibliothek | Kritische Aufrufe auf späte Bindung umstellen und testen |
| Dasselbe Werkzeug verhält sich bei Anwendern unterschiedlich | Veraltete Kopien auf den Rechnern | Zentralen Speicherort und Versionsstempel verbindlich machen |
Checkliste vor der Freigabe
- Werden aktives Dokument und Dokumenttyp geprüft?
- Wird die Auswahl vor jedem Vorgang geleert und der Rückgabewert geprüft?
- Läuft jede Einheitenumrechnung über eine einzige Stelle?
- Ist der gesamte Vorgang in einer Rückgängig-Gruppe gefasst?
- Werden Warneinstellungen auch im Fehlerfall zurückgesetzt?
- Erzeugt jeder Lauf eine Protokollzeile?
- Liegt das Werkzeug zentral und mit Versionsstempel vor?
- Wurde vor dem Versionswechsel mit einem Referenzbestand getestet?
Ein SolidWorks Makro, das diese acht Punkte erfüllt, kann bedenkenlos in den Tagesbetrieb übernommen werden. Alles andere bleibt zunächst bei einem Pilotanwender.


FAQ
Häufig gestellte Fragen
Was ist solidworks makros?
SolidWorks Makros mit VBA: Makros aufzeichnen und anpassen, parametrische Modelle steuern, Zeichnungen und DXF-Export automatisieren, Routine sparen.
Was ist ein SolidWorks-Makro und wozu dient es?
Bei diesem Werkzeug handelt es sich um Automatisierungsskripte, die mit der SolidWorks-API geschrieben werden. Sie werden in VBA (Visual Basic for Applications) verfasst und mit der Endung .swp gespeichert.
Grundlagen der SolidWorks-Makro-Automatisierung mit VBA: Was ist zu beachten?
Den SolidWorks-VBA-Editor erreichen Sie über Tools > Macro > New. Ein einfaches SolidWorks-Makro beginnt mit folgender Struktur: Die Zeilen Dim swApp As SldWorks.SldWorks und Set swApp = Application.SldWorks stellen den Zugriff auf die SolidWorks-Anwendung her.
Die SolidWorks-API im Einsatz: Was ist zu beachten?
Die SolidWorks-API besitzt vier zentrale Objektmodelle. Das SldWorks-Objekt repräsentiert die Anwendung. ModelDoc2 repräsentiert das geöffnete Dokument. PartDoc, AssemblyDoc und DrawingDoc bieten dokumenttypspezifische Funktionen.
Wie kann ich mit Burak Engineering an solidworks makros arbeiten?
Teilen Sie Ihre Zeichnungen und Ziele mit uns; wir prüfen Ihre Anforderungen zu solidworks makros und schlagen ein passendes Arbeitsmodell vor. Über die Kontaktseite erreichen Sie uns.