| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Erweiterte virtuelle Simulation mit SOLIDWORKS & SIMULIA |
Autor
|
Thema: VBA Allgemein: Klassen benutzen zum Sammeln von Daten? (1070 mal gelesen)
|
red5000 Mitglied
Beiträge: 47 Registriert: 23.08.2011 Solidworks 2012 x64 Windows 7 Xeon W3565 Quadro 4000 RAM 12 GB
|
erstellt am: 14. Okt. 2014 16:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, ist es sinnvoll Klassen zu benutzen um bestimmte Daten zu sammeln? Die Daten sollen dann später weiter verwendet werden um bestimmte Sachen zu prüfen/berichtigen und in ListBoxen aufzulisten. Was Klassen angeht bin ich noch Anfänger aber Arrays wären denke ich zu umständlich und Collections zu langsam? Z.Z. werden die Listen teilweise direkt gefüllt und zum Teil Daten in Arrays u. Collections gespeichert. Zu den Daten: U.a. sollen Zeichnungen (als ModelDoc2), Namen der Zeichnungen, Zeichenansichten, Maßstäbe der Zeichenansichten, Maßstäbe der Zeichnungen, in den Zeichenansichten referenzierte Teile, bestimmte Eigenschaften dieser Teile u.v.m. gesammelt bzw. geprüft werden. Brauche echt Hilfe, habe sonst eher kleinere Tools geschrieben und jetzt habe ich ein Makro das unaufhaltsam wächst und neue Funktionen bekommt (bekommen soll). Brauche da ein System. Gruß, red 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: 14. Okt. 2014 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für red5000
Also wirklich beantworten kann ich deine Frage nicht, das ist alles ein bischen Geschmacks- und Gewohnheitssache. Klassen würde ich nur nehmen, wenn du eigenständige Objekte incl. spezieller Methoden und Eigenschaften definieren willst. Um nur Daten unterzubringen, finde ich das mit Kanonen auf Spatzen geschossen. Arrays..hmm..würde ich auf Anhieb nur für eine Sammlung gleichartiger elemente verwenden. Collections zu langsam..bei VBA? Also wenn du was Schnelles programmieren willst, darfst du kein VBA nehmen, sondern besser gleich zu VB.Net wechseln-wenn du bei VB bleiben willst. Was spricht gegen benutzerdefinierte Typen?
Code: Type xxx laenge As Integer breite As Integer vorhanden As Boolean End TypeDim meinXXX As xxx Sub main() meinXXX.breite = 100 ' ... end sub
Ganz abgesehen davon gehört der Beitrag wohl eher hier hinein: VBasic / vb.net / vbs / wsh ------------------ Klaus www.al-ko.com | mein Gästebuch [Diese Nachricht wurde von KMassler am 14. Okt. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
red5000 Mitglied
Beiträge: 47 Registriert: 23.08.2011 Solidworks 2012 x64 Windows 7 Xeon W3565 Quadro 4000 RAM 12 GB
|
erstellt am: 14. Okt. 2014 16:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, danke für den Tipp, mit benutzerdefinierten Typen hatte ich mich bis jetzt noch nicht beschäftigt. Hast recht, wenn ich mir das so anschaue, eignen die sich ja viel besser als Klassen. Da du es gerade angesprochen hast, wie kann ich denn ein Solidworks-Makro in VB.Net programmieren? Oder vielleicht kennst du eine Seite, wo das erklärt wird? Ich spiele jetzt erst mal mit benutz. Typen rum Gruß, red Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1366 Registriert: 20.12.2003
|
erstellt am: 14. Okt. 2014 17:03 <-- editieren / zitieren --> Unities abgeben: Nur für red5000
|
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 14. Okt. 2014 17:16 <-- editieren / zitieren --> Unities abgeben: Nur für red5000
Hallo red So zum Anfang sind die SolidWorks Lehrbücher "SolidWorks API" und "SolidWorks API-Lehrbücher für Fortgeschrittene" sicher auch nicht schlecht. Gruss Andreas ------------------ 21 ist nur die halbe Antwort. 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: 15. Okt. 2014 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für red5000
Die Seite http://www.mysldworks.de hätte ich auch empfohlen, Daniel Bühling hat da einige feine Sachen rund um SolidWorks und VBA/VB.Net. Wenn du dir die Snippets für VB.Net anschaust, siehst du, wie du die Objekte von SWX ansprechen und nutzen kannst. Grundsätzlich eigentlich genau wie in VBA, nur die Syntax ist ein wenig anders. Aber auch wieder nicht so viel, dass man nicht mit beidem arbeiten kann. Du musst die nötigen SolidWorks-Module als Verweis aufnehmen und sinnvollerweise mit dem Import-Befehl in deine VB.Net module importieren, damit die Elemente davon direkt angesprochen werden können (andernfalls musst du immer den kompletten Objekt-Verweispad angeben). Der Rest ist überwiegend Gewohnheitssache. VB.Net bietet einfach viel mehr Möglichkeiten als VBA. U.a. auch viel mehr verschiedene Controls für fast alle Zwecke. Und es ist viel flexibler, da es eben nicht SolidWorks (oder Office oder sonst was) im Hintergrund benötigt. Und obwohl ich schon seit langem damit arbeite, lerne ich jedes Mal wieder was neues. ------------------ Klaus www.al-ko.com | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |