| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Ligna 2025, eine Veranstaltung am 26.05.2025
|
Autor
|
Thema: Makro für Schreibschutz ein/aus (838 / mal gelesen)
|
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 18. Okt. 2024 10:38 <-- editieren / zitieren --> Unities abgeben:         
|
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1473 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 18. Okt. 2024 12:54 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Hallo, versuch es mal damit: Code: Dim swApp As Object Dim swDoc As IModelDoc2 Sub main()
Set swApp = Application.SldWorks Set swDoc = swApp.ActiveDoc If swDoc.IsOpenedReadOnly Then swDoc.SetReadOnlyState (False) Else swDoc.SetReadOnlyState (True) End If End Sub
Wenn du dir das dann noch auf eine Makroschaltfläche legst... ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 18. Okt. 2024 13:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo Andreas, Saugeil, funktioniert...... Welche Literatur würdet ihr empfehlen um mehr über VB für Solidworks zu erlernen?
Ich weiß bei einzelnen Zeilen einfach nicht was gemacht wird und für was es notwendig ist..... auch diese Deklarationen (DIM ... irgendwas am Anfang) sind für mich noch spanisches Dorf. Vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1473 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 18. Okt. 2024 14:03 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Du kannst dir zu Anfang auch die Excel-VBA-Literatur oder auch die frei verfügbaren Tutorials anschauen. Damit bekommst du schon mal einen Einstieg in die Programmierung. Danach gibt es einige VBA-Videos für Solidworks (meist auf Englisch) auf Youtube. Dort werden die speziellen Solidworks-Objekte usw. besprochen. Und zu guter Letzt ist die API-Hilfe auch mit vielen Beispielen gespickt. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 18. Okt. 2024 14:04 <-- editieren / zitieren --> Unities abgeben:         
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2608 Registriert: 02.10.2006 Firma: SW 2024-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2025-1.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 19. Okt. 2024 16:59 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
|
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 20. Okt. 2024 13:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo und vielen Dank. Eine Frage hätte ich noch. Ist es möglich, dynamische Icons einzubinden? Als bezugnehmend auf das obige Makro soll wenn der Schreibschutz gesetzt ist, das Makro mit einem offenem grünen Schloss versehen sein und wenn der Schreibschutz deaktiviert ist, soll das Makro ein geschlossenes rotes Schloss aufweisen. Ist das möglich und wie geht das? schönen Sonntag Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
 
 Beiträge: 378 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 20. Okt. 2024 18:35 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3332 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 21. Okt. 2024 11:03 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
|
R3vo Mitglied staatl. gepr. Techniker, Konstrukteur
 
 Beiträge: 144 Registriert: 03.11.2021 CAD: SOLIDWORKS 2024 SP5.0 PDM: SpeedyPDM 7.5.7 ------------------------ CPU: Intel Core i7-10700 @ 2.90GHz GPU: NVIDIA Quadro RTX4000 RAM: 64 GB Datenträger: SSD Windows 11 23H2 22631.4460 Windows Feature Experience Pack 1000.22700.1047.0
|
erstellt am: 21. Okt. 2024 14:37 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
|
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 21. Okt. 2024 18:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo miteinander, Vielen Dank an alle für diesen wirklich tollen input. Den Youtube-Channel hatte ich bereits gefunden.
@ Christian: Du schreibst dass dynamische (wechselnte) Icons "nur" in eigenem Formular geht. Frage, was ist ein eigenes Formular? Entschuldige bitte wenn das eine dilettantische Frage ist, aber ich habe keine Ahnung was du meinst. @ R3vo: was habe ich für einen Vorteil wenn ich es via FileSystemObject setze? Oder ist das lediglich eine weitere Möglichkeit innerhalb von VBA. schönen Abend Bernhard 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: 3332 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 22. Okt. 2024 00:13 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Hallo, du kannst deinem Makro ja eine eigene Oberfläche verpassen, in der dann Schaltflächen für Funktionen sind. Die Schaltflächen kann man z.B. mit Bildern hinterlegen und ihren Zustand vom Makro her anpassen (aktiviert/deaktiviert) ... Die Oberfläche meinte ich mit Formular. und zum Filesystemobject: du kannst den Schreibschutz innerhalb von SolidWorks setzen/aufheben - wie von dir gezeigt. Das gilt dann auch nur für diese SolidWorks Sitzung. Manchmal sind Dateien auf Systemebene schreibgeschützt (oder sollen da geschützt werden). Da kommt man dann mit dem FileSystemObject dran. Davon bekommt SolidWorks aber erst was mit, wenn es versucht die Datei zu speichern ...  Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 22. Okt. 2024 07:23 <-- editieren / zitieren --> Unities abgeben:         
Hallo Christian, Ich bin noch immer so weit weg dass ich nur vermuten kann was du meinst... Meinst du eine Userform für ein Makro (eigenes Fenster mit z.B. Auswahlmöglichkeiten, Buttons etc...)? - siehe Beispielbild. Leichter wäre es, wenn du mir einen screenshot mit einem Beispiel zeigen könntest. Vielleicht verstehe ich es dann bzw. kann mich dann gezielt auf die Suche danach machen um es zu verstehen.
LG Bernhard
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1473 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 22. Okt. 2024 09:32 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Hallo Bernhard, wie Christian schon schrieb, ist das Ganze mit einem eigenen Formular machbar. Das sieht dann ähnlich aus, wie dein angehängtes Formular. Nur sind die Buttons dann mit Bildern versehen. Das ist aber keine triviale Aufgabe, dazu benötigst du schon weitergehende Kenntnisse. Selbst ich müsste schauen, wie man Icons oder Bilder unter VBA an einen Button bindet. Unter VB.Net oder C# wüsste ich es...  ------------------ ========== Gruß Andreas ========== 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: 3332 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 22. Okt. 2024 10:25 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Hallo Bernhard, Genau das "Userform" meinte ich mit Formular. bei den Befehlsflächen kannst du bei Eigenschaften auch ein "picture" zuweisen oder "enabled" auf false setzen. aus dem Kopf weiß ich auch nicht, was beim picture zu beachten ist, vielleicht tut es auch einfach ein anderer Text ...  Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 22. Okt. 2024 10:53 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Vielen Dank für die Informationen. Als Userform wäre ein Ansatz. Dabei müßte aber das Makro mit dem Formular ständig laufen (sichtbar sein sonst müßte ich es bei Bedarf jedesmal starten und das generiert wiederum unnötige klicks...) und wird höchstwahrscheinlich zeitweise beim Arbeiten in SWX verdeckt werden (oder man hat einen 2ten Bildschirm). Mein Gedanke war, das so "Platzsparend" wie möglich zu machen, da es ja nur ein ein-aus Schalter ist. Sowas gibt es in SWX - siehe Anhang. Genau so was in der Art hatte ich mir vorgestellt.
lg Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1473 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 22. Okt. 2024 13:01 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Hallo Bernhard, wenn du in VBA dein Formular aufrufst, übergibst du beim Aufruf den Parameter vbModeless: Code: Sub Main frm_MyForm.show vbModeless End Sub
Damit bleibt das Ganze sichtbar ------------------ ========== Gruß Andreas ========== 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: 3332 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 22. Okt. 2024 17:18 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Zitat: Original erstellt von gearloose7: ... ständig laufen (sichtbar sein sonst müßte ich es bei Bedarf jedesmal starten und das generiert wiederum unnötige klicks...) und wird höchstwahrscheinlich zeitweise beim Arbeiten in SWX verdeckt werden ...
Hallo Bernhard, ja das liegt im Zweifelsfall immer im Weg und muss dann auch noch weggeschoben und wieder gesucht werden  Den Schreibschutzzustand der aktuellen Datei in SolidWorks kann man am oberen Rand sehen - da gibt es ein Sternchen, wenn ich nicht irre. Hast du bei den Optionen die "Mehrbenutzerumgebung" aktiviert? Dann kann man Schreibschutz auch mit rechter Maustaste für Komponenten ändern ... Sonst Makro starten - Userform einblenden mit Info und kurz bis 10 zählen ... Userform wieder schließen ...  Gruß, Christian Ach - und über "neu Laden" kannst du den Schreibschutz einer ganzen Baugruppe relativ übersichtlich einzeln einstellen - auch ohne neu zu laden ... (rechts oben "Referenzen anzeigen", links Haken entfernen, recht Haken einstellen ... ) [Diese Nachricht wurde von Christian_W am 22. Okt. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gearloose7 Mitglied Techniker
 
 Beiträge: 119 Registriert: 26.08.2010 Windows 10 x64 Pro NVidia Quadro irgendwas SWX2022 SP5
|
erstellt am: 22. Okt. 2024 17:28 <-- editieren / zitieren --> Unities abgeben:         
Hallo Christian, Vielen Dank für den Hinweis bei "Neu Laden". Das kannte ich so auch nicht mit den Referenzen anzeigen.....
Das mit dem Sternchen heißt doch nur, dass das Teil/Baugruppe verändert und noch nicht gespeichert wurde, oder irre ich mich jetzt. Schreibgeschützt wird doch in eckigen Klammern nach dem Dateinamen angezeigt. .... bis 10 zählen mag ich nicht Grüße Bernhard Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1473 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 22. Okt. 2024 21:06 <-- editieren / zitieren --> Unities abgeben:          Nur für gearloose7
Guten Abend zusammen, ich habe das Ganze mal mit einem ToogleButton gelöst. Wenn der Schreibschutz aktiv ist, wird die Schaltfläche rot eingefärbt und der Text ist Ja. Andersherum ist bei Schreibzugriff die Schaltfläche grün und der Text ist Nein. Das Userformular legt sich vor die Solidworksfenster. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |