| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
|
|
Autor
|
Thema: KI für kleine Makros zu schreiben (548 / mal gelesen)
|
e.pepe Mitglied Technischer Fachwirt/Projektmanager/CAD-Admin
 
 Beiträge: 113 Registriert: 18.02.2012
|
erstellt am: 16. Feb. 2026 20:40 <-- editieren / zitieren --> Unities abgeben:         
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2694 Registriert: 02.10.2006 Firma: SW 2024-5.0 + PDM Prof. Windows 11 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2026-0.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Feb. 2026 21:44 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Hallo Pepe, also mit dem Copilot in Edge habe ich keine guten Erfahrungen gemacht. Er erfindet ständig Befehle, welche nicht existieren. Ich habe regelmäßig Nacharbeit zu leisten. Als Einstieg kann das mal ganz hilfreich sein, um aufs Gleis gestellt zu werden. Wenn du ein fertiges Makro reinstellst, kann er schon mal gute Ratschläge und Verbesserungen vorschlagen. Grüße, Andi B. ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
e.pepe Mitglied Technischer Fachwirt/Projektmanager/CAD-Admin
 
 Beiträge: 113 Registriert: 18.02.2012
|
erstellt am: 16. Feb. 2026 22:30 <-- editieren / zitieren --> Unities abgeben:         
|
Aaron Hartwig Mitglied Konstrukteur

 Beiträge: 15 Registriert: 17.05.2024 SW 2024-5.0 + PDM Prof.
|
erstellt am: 17. Feb. 2026 06:32 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Wenn du dich bisschen mit Programmierung auskennst und codes lesen und verstehen kannst bieten sich Claude 3.5 Sonnet oder klassisch chatgpt an. Die spucken dir zwar nicht fertig brauchbare codes aus aber wenn du weisst was du möchtest und es bisschen verstehst bieten sie dir gute stützen. Wichtig ist nicht ganze codes einzufordern sondern schritt für schritt damit die nicht durcheinander kommen und halluzinieren beginnen. Zudem können sie dir auch erklären was vor sich geht, verständnis wie programmiersprache funktionert ist aber essenziell. Hab damit schon diverse minigames in vba programmiert. ------------------ Solid-Works-Greenhorn, daher alle Angaben ohne Gewähr dafür mit Stoff für Diskussion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deckelmaho Mitglied Konstrukteur
 
 Beiträge: 275 Registriert: 03.03.2020 SolidWorks 2025 SP5 Windows 11 Office 365
|
erstellt am: 17. Feb. 2026 07:34 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
|
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 734 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+<P>CSWE 2018
|
erstellt am: 17. Feb. 2026 09:20 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Ich habe bisher nur ChatGPT und VBA verwendet. Für Excel (zB Inhalt von mehreren Dateien zusammenkopieren und bearbeiten) oder Windows allgemein (zB. xml-Dateien einlesen und die Infos darin verwursten) liegt die Trefferquote, auch bei recht komplexen Aufgabenstellungen direkt ein funktionierendes Makro zu erhalten, bei gefühlt 90%. Meistens passen dabei die Variablendeklarationen nicht. Ausgedachte Befehle hatte ich bisher nur selten. Anders bei SolidWorks. Da sinkt die Trefferquote sehr deutlich auf gefühlt höchstens 50%. Beispiel: Prompt: Code: per api auslesen, ob einem Befehl ein shortcut zugewiesen ist
Ergebnis: Code: ' Makro: Prüfen, ob ein Befehl einen Shortcut hat ' Autor: ChatGPT ' Beschreibung: Gibt den Shortcut für einen Befehl aus (z.B. "Speichern")Dim swApp As SldWorks.SldWorks Dim swCmdMgr As SldWorks.CommandManager Dim swShortcutTable As SldWorks.KeyboardShortcut Dim i As Long Dim cmdID As Long Dim shortcut As String Sub main() Set swApp = Application.SldWorks Set swCmdMgr = swApp.CommandManager ' Command ID für "Speichern" cmdID = swCommands_e.swCommands_Save ' Zugriff auf die aktive Shortcut-Tabelle Set swShortcutTable = swCmdMgr.GetKeyboardShortcut(swApp.GetUserPreferenceInteger(swUserPreferenceInteger_e.swCommandShortcutTable)) If swShortcutTable Is Nothing Then MsgBox "Keine Shortcut-Tabelle gefunden." Exit Sub End If ' Alle Shortcuts durchgehen und prüfen For i = 0 To swShortcutTable.GetCount - 1 If swShortcutTable.GetCommandID(i) = cmdID Then shortcut = swShortcutTable.GetShortcutString(i) MsgBox "Shortcut für 'Speichern': " & shortcut Exit Sub End If Next i MsgBox "Kein Shortcut für 'Speichern' zugewiesen." End Sub
Sieht schick aus, oder? Blöd nur, dass es weder die Klasse SldWorks.KeyboardShortcut noch den Befehl GetKeyboardShortcut gibt. Fazit: Bei SolidWorks-Makros ist ChatGPT keine große Hilfe, wenn man nicht eh schon weiß, was man tut. Es hilft allerdings ungemein dabei, das ganze "Drumherum" zu erledigen, zB. die Fehlerabfragen, Ausgabesteuerung, Arrays befüllen etc. Und das funktioniert in den allermeisten Fällen sehr sauber. Nur wenn es dann ans Eingemachte geht, wird es schwierig. Ich schätze mal, die verfügbare Datenbasis ist einfach wesentlich kleiner als bei sonstigen Windows- oder Office-Anwendungen. Grüße, Jens Edit: Hab noch ein funktionierendes Beispiel gefunden: (außer, dass das True bei GetComponents falsch ist (und auch die Bemerkung dahinter); der Parameter heißt TopLevelOnly...) Prompt:
Code: solidworks vba makro um durch alle komponenten einer baugruppe zu iterieren und die eigenschaft "Test" mit dem Wert "abc" in den benutzerdefinierten Eigenschaften der komponente zu erstellen
Ergebnis:
Code: Option ExplicitDim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swAssy As SldWorks.AssemblyDoc Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc If swModel Is Nothing Then MsgBox "Kein Dokument geöffnet." Exit Sub End If If swModel.GetType <> swDocASSEMBLY Then MsgBox "Aktives Dokument ist keine Baugruppe." Exit Sub End If Set swAssy = swModel Dim vComps As Variant vComps = swAssy.GetComponents(True) ' True = auch Unterbaugruppen Dim i As Long For i = 0 To UBound(vComps) ProcessComponent vComps(i) Next i MsgBox "Fertig." End Sub Sub ProcessComponent(swComp As SldWorks.Component2)
If swComp Is Nothing Then Exit Sub If swComp.IsSuppressed Then Exit Sub Dim swModelComp As SldWorks.ModelDoc2 Set swModelComp = swComp.GetModelDoc2 If swModelComp Is Nothing Then Exit Sub Dim swCustPropMgr As SldWorks.CustomPropertyManager Set swCustPropMgr = swModelComp.Extension.CustomPropertyManager("") ' Eigenschaft hinzufügen oder überschreiben swCustPropMgr.Add3 "Test", _ swCustomInfoType_e.swCustomInfoText, _ "abc", _ swCustomPropertyAddOption_e.swCustomPropertyReplaceValue End Sub
[Diese Nachricht wurde von CAD-Maler am 17. Feb. 2026 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3432 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 17. Feb. 2026 13:38 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Zitat: Original erstellt von deckelmaho: ... https://chatgpt.com/g/g-yWJK0ggaG-solidworks-api-writer ...
Cool,  hab ich gerade mal probiert, der präsentiert selbstbewusst ein ordentlich klingendes Makro mit einem interessanten Ansatz. Grundsätzlich ein logischer Aufbau. Leider schimpft SolidWorks gleich über ein paar grobe Schnitzer, das vorgeschlagene Konzept ließ sich mit einem Vorschlag auch weiter verbessern ... Ein Grundproblem ist vermutlich, wenn die KI die vielen erstmal falschen Vorschläge oder Fragen aus Foren mit lernt, dann wird es die auch als Lösung vorschlagen ... Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3432 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 17. Feb. 2026 14:42 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Zitat: Original erstellt von deckelmaho: ... ich würde davon ausgehen, dass der Ersteller dieses GPTs deine Anfragen einsehen kann...
kann er angeblich nicht auf der Seite steht "Der Builder dieses GPTs kann deine Gespräche nicht anzeigen" erscheint aber nur, wenn man mit der Maus über das kleine Männchen geht, oben mittig neben dem Namen des Erstellers. Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
e.pepe Mitglied Technischer Fachwirt/Projektmanager/CAD-Admin
 
 Beiträge: 113 Registriert: 18.02.2012
|
erstellt am: 17. Feb. 2026 17:31 <-- editieren / zitieren --> Unities abgeben:         
Ich frage aus folgendem Grund: Ich muss mir zwei Makros schreiben, da ich im Internet nichts finde. Wir stellen von AutoCAD in SW um und das Deckblatt soll an AutoCAD angepasst werden. Ich habe eine Vorlage erstellt und aus der Gesamtstückliste einzelne Stücklisten angepasst. Wenn ich die Vorlage kopiere und die BG anpasse, werden die Stücklisten mitkopiert. Erstelle ich eine BG ohne Vorlage, gibt es das Problem, dass ich die Stücklisten nicht so einfach anpassen kann. Das ist zwar möglich, aber sehr aufwendig. Daher die zwei Makros: Eines, das in der Vorlage die erstellten Stücklisten aktualisiert, und ein zweites Makro, das aus der Gesamtstückliste die einzelnen erstellt. Ich habe versucht, Makros zu schreiben. Ich bekomme es hin, dass die Gesamtstückliste nach der Kategorie sortiert wird, aber dann erstellt es mir die einzelnen Stücklisten nicht. Ich habe ein neues Makro versucht, das mir die erstellten Stücklisten aktualisiert. Ich habe die Pfade angegeben, wo die Vorlagen von den einzelnen Stücklisten liegen, aber leider erkennt das Makro keine. Es ist ein bisschen kompliziert, das zu beschreiben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 734 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+<P>CSWE 2018
|
erstellt am: 18. Feb. 2026 08:36 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Dann probier es doch einfach aus. Aber Schritt für Schritt. Erstmal ein einfaches, grobes Makro erstellen lassen, z.B. "Liste in der aktiven Zeichnung alle Stücklisten auf". Das Makro dann im "Dialog" immer weiter verfeinern/ausbauen: zB. "Ergänze in dem Makro den Code, um alle gefundenen Stücklisten zusammenzufassen". Und so weiter. Bei Fehler direkt die Fehlermeldung zurück an die KI, also auch zB. "Es werden keine Stücklisten gefunden, obwohl welche auf der Zeichnung vorhanden sind." Ganz arbeitslos wird dich die KI nicht machen.  Grüße, Jens Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
  
 Beiträge: 734 Registriert: 17.01.2007 SWX 2023 SP5 Draftsight 2023 Win 11 Enterprise Intel i7-13700 2.10 GHz 64GB RAM Nvidia RTX A2000 12GB SWx EPDM AP+<P>CSWE 2018
|
erstellt am: 02. Mrz. 2026 10:21 <-- editieren / zitieren --> Unities abgeben:          Nur für e.pepe
Zitat: Original erstellt von deckelmaho: Hi Pepe,hier hat jemand einen GPT bei ChatGPT erstellt, der wohl mit der Solidworks API gefüttert wurde. https://chatgpt.com/g/g-yWJK0ggaG-solidworks-api-writer Ob die gut funktioniert weiß ich nicht.
Da ich zur Zeit grad mal wieder etwas intensiver programmiere, habe ich den GPT in der letzten Woche ziemlich auf den Zahn gefühlt und muss sagen: Ein Unterschied wie Tag und Nacht zum Standard-ChatGPT-Modell. Ich hab jetzt hier ein ~500 Zeilen SolidWorks-Makro, dass im Grunde nur durch Prompts entstanden ist und verfeinert wurde. In dem ganzen Prozess waren genau 2 Fehler drin, die aber auch vom Bot selbst nach Meldung behoben wurden. Und beides waren keine erfundenen Befehle (aka Halluzinationen), sondern "nur" falsche Zuordnungen. Zum Beispiel war der erste Entwurf
Code: Set swRootComp = swAssembly.GetRootComponent3(True)
Der Befehl funktioniert aber nicht mit dem AssemblyDoc, sondern nur über den Config-Manager:
Code:
Set swConfig = swConfigMgr.ActiveConfiguration Set swRootComp = swConfig.GetRootComponent3(True)
Alles in allem wesentlich sauberer (auch direkt mit ErrorHandler und dergleichen) als im Standard. Danke Kevin für den Tipp! Jens [Diese Nachricht wurde von CAD-Maler am 02. Mrz. 2026 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |