| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| E-Book: Bessere Konstruktion von Industrieanlagen dank SOLIDWORKS Simulation |
Autor
|
Thema: Solidworks VB.net Makro-Vorlage (1985 mal gelesen)
|
Dango Mitglied
Beiträge: 5 Registriert: 03.11.2016 Solidworks 2015 SP5
|
erstellt am: 03. Nov. 2016 22:08 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich beschäftige mich gerade ein wenig mit grundlegender Makro- und Addin-Programmierung für Solidworks. Es können ja Makros in VBA, vb.net und c#.net angelegt werden. Ich möchte meine Makros gerne in vb.net schreiben, habe aber das Problem, dass ich keine Makrovorlage in Solidworks erstellen kann. Die Funktion "Makro > neu" funktioniert bei mir nur für c# und vba. Ich gehe davon aus, dass es ein Einrichtungsproblem ist, möchte aber ungerne meine Zeit damit vergeuden, danach zu suchen. Wäre hier jemand so freundlich mir eine Vorlage zu erstellen? Also in Solidworks einmal "Makro > Neu" zu drücken, als Dateityp "SW VSTA VB Macro (*.vbproj)" auszuwählen, das zu speichern und hier hochzuladen (müsste einen Ordner ergeben). Danke im vorraus.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 04. Nov. 2016 00:10 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Hallo, und herzlich Willkommen hier im Forum. anbei dein gewünschter Ordner. Ich habe aus SW raus noch nie mit vb.net Programmiert, sondern immer nur mit VBA. Kann dir also nicht helfen, warum das bei dir nicht funktioniert. Aber evtl. hilft dir dieses Dokument von Daniel Bühling weiter. SolidWorks Objekte und Dokumente API Grundlagen und Dokumenthandling http://solidworks.cad.de/mm_boerse05.htm Wünsch dir viel Erfolg. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dango Mitglied
Beiträge: 5 Registriert: 03.11.2016 Solidworks 2015 SP5
|
erstellt am: 04. Nov. 2016 00:18 <-- editieren / zitieren --> Unities abgeben:
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 04. Nov. 2016 07:15 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Hallo Dango, SWX kann VBA, VB.NET, Visual C#, Visual C++ 6.0 und Visual C++/CLI. Ich würde sagen Visual Studio for Application (VSTA VB/C#) ist nicht so der Hit das ist für Add in's genauso bescheiden nutzbar wie VBA. Ich würde dir eher empfehlen für Add in's Microsoft Visual Studio mit den entsprechenden Templates aus der SWX API SDK zu verwenden. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 04. Nov. 2016 07:28 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 04. Nov. 2016 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
|
Dango Mitglied
Beiträge: 5 Registriert: 03.11.2016 Solidworks 2015 SP5
|
erstellt am: 04. Nov. 2016 12:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, erstmal Danke für die vielen Antworten. Die Makro-Vorlage von Andi hab ich ausprobiert, konnte sie aber leider nicht so einfach zum laufen kriegen, wie ich mir das vorgestellt hatte. Einfach die Referenz-Assemblies austauschen hat leider nicht gereicht - da scheint es noch Framework-Differenzen zu geben. Der verlinkte Beitrag von nahe schient genau mein Problem zu beschreiben - leider hat das einfache neu initialisieren nicht geholfen. Da muss ich nochmal weiter suchen. Grundsätzlich zum Hintergrund - ich denke nämlich auch, dass ihr mit "VSTA ist nicht so der Hit" recht habt: Der Code soll später mal in ein Addin in .net einfließen. Mein Test-Addin habe ich dabei komplett selbst erstellt - einfach um die ganze Thematik besser zu verstehen. Hierfür verwende ich normalerweise SharpDevelop 4.4. Ich konnte mich bisher noch nicht zu dem Umstieg auf Visual Studio durchringen (Hab die aktuelle Community Version aber schon installiert). Jetzt fand ich es aber ziemlich lästig, jedes mal, wenn man seinen Code testen will, Solidworks neu zu starten und die Baugruppe neu zu laden. Ich wollte also erstmal in einem Makro den Code aufbauen, das ich dann on-Demand jederzeit bei laufender Solidworks-Sitzung testen kann, um dann den fertigen Code in das Addin zu kopieren. Ich wollte also eigentlich nur den "LeerCode" aus dem VSTA rausholen um dann in SharpDevelop/Visual Studio weiterzumachen. Das ganze Drumherum des Makros brauche ich ja später im Addin sowieso nicht mehr. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 04. Nov. 2016 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Ich weiß ja nicht, was du da gerade programmieren willst. Ein Addin macht IMHO nur Sinn, wenn du tatsächlich etwas an der Solidworksumgebung ändern willst. Also neue Toolbars hinzufügen, neue Tabs im Featuremanager mit eigenen Controls etc. Wenn es nur darum geht, irgendwas an einem geöffneten SolidWorks-Dokument zu manipulieren, reicht es doch immer aus, eine normale Anwendung zu programmieren, die mit Solidworks kommuniziert. Ich habe mir bisher nur ein einziges Addon geschrieben, das ist mein flexibles User-Menü. Alles andere sind Visual Studio Anwendungen, die dann über dieses Menü bzw. die entsprechende Toolbar oder den Command-Manager-Reiter gestartet werden. Der Vorteil ist die einfachere Entwicklung und das Debugging. Du musst nicht immer SWX neu starten, um die frisch kompilierte DLL zu laden, sondern kannst SWX im Hintergrund offen lassen, deine Modelle/Zeichnungen geladen haben und kannst dann dein Programm testen. ------------------ Klaus http://www.al-ko.com/de/fahrzeugtechnik/ | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dango Mitglied
Beiträge: 5 Registriert: 03.11.2016 Solidworks 2015 SP5
|
erstellt am: 04. Nov. 2016 12:58 <-- editieren / zitieren --> Unities abgeben:
Grundsätzlich ist das Addin tatsächlich nur als eigenes Menü für die Funktionen zuständig. Vielleicht habe ich hier einen Denkfehler und muss die Funktion nicht direkt einbinden. Sind deine geschriebenen Anwendungen dann "Stand-Alone"? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 04. Nov. 2016 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Hallo Dango, es kommt halt auch drauf an, was Dein Makro erledigen soll. Wenn es "nur" um reine Aufgaben innerhalb von SWX oder Manipulation von SWX Elementen geht ohne großartige Benutzerschnittstelle, würde ich überhaupt VBA verwenden. Anders sieht dies Sache aus, wenn Du Schnittstellen zu externen Daten und/oder Programmen brauchst, z.B.: einer SQL-Datenbank von der Du Abfrageergebnisse anzeigen lassen musst, ..... da würde ich dann auch eher zu Visual Studio tendieren
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dango Mitglied
Beiträge: 5 Registriert: 03.11.2016 Solidworks 2015 SP5
|
erstellt am: 04. Nov. 2016 14:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Heinz, wie gesagt beschäftige ich mich aktuell eher grundlegend mit der Thematik und weiß noch nicht so genau, wo die Reise hingehen soll. Ich möchte aber eigentlich keine Möglichkeiten verbauen, indem ich mich pauschal auf VBA beschränke - wo ich mich darüber hinaus auch noch einarbeiten müsste. ------------------ Gruß Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 07. Nov. 2016 06:32 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Hallo, ich würde den Vorrednern zustimmen das in 95% der Fälle VBA ausreicht. Bei Event Handling, Zugriff auf Datenbanken, Stand-Alone Anwendungen oder sehr komplexen Wünschen wie z.B. verwenden der Property Manager Page, Task Page oder ähnlichen kommst du um VB kaum herum bzw. ist in VBA nicht so einfach zu handeln. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 07. Nov. 2016 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für Dango
Zitat: Original erstellt von Dango: .... Sind deine geschriebenen Anwendungen dann "Stand-Alone"?
Ja, das sind Standalone-Anwendungen, die eben über die üblichen Windows-Wege mit SolidWorks kommunizieren. Beim Kompilieren werden alle erforderlichen Dateien in einem Verzeichnis erstellt, das kannst du dann als Kopie verteilen und die entsprechende .exe-Datei ausführen. Oder du verteilst es (wenn nötig) per ClickOnce über ein freigegebenes (Netzwerk-)Laufwerk. Das hat den Vorteil, dass es auf den User-Rechnern automatisch upgedatet wird, wenn du was geändert hast. Oder du erstellst ein "richtiges" Setup-Projekt. Das habe ich nach ersten Versuchen wieder aufgegeben. Bei interner Verwendung reicht ClickOnce völlig aus, das Setup-Projekt ist mit Kanonen auf Spatzen geschossen. Und wenn ich doch mal sowas brauche, nehme ich lieber eine externe Lösung. Zitat: Original erstellt von nahe: Hallo Dango,es kommt halt auch drauf an, was Dein Makro erledigen soll. Wenn es "nur" um reine Aufgaben innerhalb von SWX oder Manipulation von SWX Elementen geht ohne großartige Benutzerschnittstelle, würde ich überhaupt VBA verwenden. ...
Ich mache das eher von der Komplexität abhängig. Kleine Dinge (auch mit Forms), die möglicherweise auch nur selten benötigt werden, eher in VBA, komplexere Projekte auf jeden Fall in VS. Ist natürlich auch immer eine Frage des persönlichen Geschmacks und der Gewohnheit. Mir ist VS inzwischen auch geläufiger als VBA. Es gibt doch immer wieder kleine Unterschiede, die einen wahnsinnig machen. Und die Programmierumgebung von VS ist natürlich viel komfortabler und mächtiger.
------------------ Klaus http://www.al-ko.com/de/fahrzeugtechnik/ | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |