| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| myCADtools , eine App
|
Autor
|
Thema: Makro Frontansicht ändern (1065 / mal gelesen)
|
neumiy000 Mitglied
Beiträge: 127 Registriert: 27.12.2015 SWX 2023 SP1.0 Creo 10.0.2.0<P><P>Lenovo ThinkPad-P16-G2 CPU: Intel Core i7-13850HX GPU: NVIDIA RTX 3500 RAM: 64GB DDR5 5600 MHz OS: Win 10 1TB M.2 SSD
|
erstellt am: 28. Apr. 2023 17:45 <-- editieren / zitieren --> Unities abgeben:
Hallo und schönen Freitag Abend euch allen! Ich habe ein kleines Problem was jetzt nicht die Welt bedeutet aber bestimmt durch ein Makro gelöst werden kann, wenn man denn weiß wie (was ich offensichtlich nicht tue ). Ich bin im KFZ-Bereich tätig und vor einiger Zeit habe ich mir für Part und Assembly jeweils ein template erstellt in dem die Z-Achse die Hochachse ist und die X-Achse in Fahrtrichtung zeigt. Bei meinem aktuellen Projekt hatte ich einige Dokumente von einer anderen Firma zu verwenden und die ihre X-Achse nicht in Fahrtrichtung sondern entgegen der Fahrtrichtung ausgerichtet. Anfangs habe ich mir darüber nicht wirklich so viele Gedanken gemacht und fleißig Teile und Baugruppen erzeugt - später bin ich dann auf den Trichter gekommen, dass meine Mausgesten jetzt gedreht sind. Wenn ich via Mausgeste meine Frontansicht haben möchte gucke ich von hinten aufs Fahrzeug und das nervt mich. Also habe ich meine templates für dieses Projekt nochmal so angepasst, dass das wieder funktioniert. Alle neu angelegten Teile und Baugruppen funktionieren jetzt wieder. Hin und wieder stolpere ich nun aber doch nochmal über ein Teil was vor den neuen templates angelegt wurde und ich muss/ möchte das geändert haben. Um mir Klickarbeit zu ersparen dachte ich, dass ich mal die Makro Aufzeichnung ausprobiere. Leider funktioniert das Makro nicht so wie ich mir das vorgestellt habe obwohl ich beim Aufzeichnen eigentlich alles so gemacht habe wie ich es manuell tun würde. Kann sich vielleicht jemand erbarmen und mir damit auf die Sprünge helfen? Das wäre toll Hier einmal das Makro in Textform: Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc ' Named View Part.ShowNamedView2 "*Rückseite", 2 Part.ViewZoomtofit2 ' Named View Part.ShowNamedView2 "*Vorderseite", 1 Part.ViewZoomtofit2 End Sub ------------------ Nur nichts kaputt machen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Spieler Mitglied Mechaniker
Beiträge: 1370 Registriert: 12.12.2002 SOLIDWORKS 2024SP3.1
|
erstellt am: 28. Apr. 2023 18:33 <-- editieren / zitieren --> Unities abgeben: Nur für neumiy000
|
neumiy000 Mitglied
Beiträge: 127 Registriert: 27.12.2015 SWX 2023 SP1.0 Creo 10.0.2.0<P><P>Lenovo ThinkPad-P16-G2 CPU: Intel Core i7-13850HX GPU: NVIDIA RTX 3500 RAM: 64GB DDR5 5600 MHz OS: Win 10 1TB M.2 SSD
|
erstellt am: 29. Apr. 2023 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Andi, vielen Dank für deine Antwort aber ich glaube ich habe mich wohl schlecht ausgedrückt oder du hast mich falsch verstanden. Die Z-Achse ist schon so eingestellt wie du es gezeigt hast. Bisher hatte ich in meinem template die Frontansicht so, dass ich aus positiver X-Richtung schaue. Im aktuellen Projekt brauche ich die Frontansicht aber aus negativer X-Richtung. Wie gesagt ist das für die Parts die ich in Zukunft erstellen werde schon korrigiert. Jetzt möchte ich aber die schon bestehenden Parts dahingehend anpassen und das am liebsten ohne alle selbst durch klicken zu müssen -> Makro. Das Makro habe ich einfach mal auf gut Glück über aufzeichnen erstellt, es tut aber nicht das was es soll. ------------------ Nur nichts kaputt machen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 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: 01. Mai. 2023 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für neumiy000
|
neumiy000 Mitglied
Beiträge: 127 Registriert: 27.12.2015 SWX 2023 SP1.0 Creo 10.0.2.0<P><P>Lenovo ThinkPad-P16-G2 CPU: Intel Core i7-13850HX GPU: NVIDIA RTX 3500 RAM: 64GB DDR5 5600 MHz OS: Win 10 1TB M.2 SSD
|
erstellt am: 02. Mai. 2023 18:13 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von HenryV: HalloDafür gibt es die UpdateStandardViews Method (IModelDocExtension)
Gruss Andrreas
Hallo und schon mal vielen Dank für die Antwort! Das wird wohl das sein was ich suche. Nachdem ich jetzt aber ein bisschen ausprobiert habe muss ich mir wohl eingestehen, dass ich keine Ahnung habe und zwar von nüscht! Ich verstehe nicht mal Bahnhof und bin völlig aufgeschmissen. - Ich habe versucht die "Declaration" wie angegeben zu verwenden und bekomme schon da eine Fehlermeldung "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert" Entweder ich muss das Vorhaben erstmal an den Nagel hängen, weil mir momentan die Zeit fehlt mich in das Thema rein zu lesen oder ich brauche Anleitung für Dumme
------------------ Nur nichts kaputt machen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 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: 03. Mai. 2023 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für neumiy000
Code: Dim swApp As SldWorks.ISldWorks Dim swModel As SldWorks.IModelDoc2Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc 'Teil von Hinten anzeigen swModel.ShowNamedView2 "*Rückseite", 2 'Ansicht auf Vorne aktualisieren swModel.Extension.UpdateStandardViews "*Vorderseite", 1 'auf Teil zoomen swModel.ViewZoomtofit2 End Sub
------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neumiy000 Mitglied
Beiträge: 127 Registriert: 27.12.2015 SWX 2023 SP1.0 Creo 10.0.2.0<P><P>Lenovo ThinkPad-P16-G2 CPU: Intel Core i7-13850HX GPU: NVIDIA RTX 3500 RAM: 64GB DDR5 5600 MHz OS: Win 10 1TB M.2 SSD
|
erstellt am: 03. Mai. 2023 13:41 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank schon mal das funktioniert! Allerdings bin ich jetzt trotzdem noch ein wenig verwirrt. Soweit ergibt alles Sinn - was ich aber nicht verstehe ist folgendes: [...] 'Ansicht auf Vorne aktualisieren swModel.Extension.UpdateStandardViews "*Vorderseite", 1 [...] In der API-Hilfe steht an dieser Stelle instance und diese wurde zuvor mit Dim instance As IModelDocExtension definiert. In deinem Code wird Extension zuvor aber nicht definiert und steht so auch nicht in der API-Hilfe drin. Aber ich schätze mal, dass ich hier einfach meine Unwissenheit erneut offenlege und mich einfach mit dem Thema beschäftigen muss statt zu erwarten, dass es so funktioniert, wie mein Nicht-Programmierer-Hirn gern hätte. Zuletzt noch eine weitere Frage eher allgemeiner Natur: Warum hat das mit dem Aufzeichnen eines Makros so nicht funktioniert? Das Makro hat die Ansichten so gedreht wie ich es haben wollte, diese aber nicht aktualisiert. Offensichtlich taucht der Befehl dafür im aufgezeichneten Makro einfach gar nicht auf. Heißt das man sollte grundsätzlich eher davon Abstand nehmen Makros aufzeichnen zu wollen? Zumindest mir erscheint das jetzt nach meinem so ziemlich ersten Ausflug in die Makros als eher unzuverlässige Methode ------------------ Nur nichts kaputt machen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 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: 03. Mai. 2023 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für neumiy000
In SolidWorks-APi gibt es mehrere Interfaces. siehe hier -> S olidWorks.Interop.sldworks NamespaceIModelDoc2 -> Allows access to SOLIDWORKS documents: parts, assemblies, and drawings. IModelDocExtension -> Allows access to the model. Um nun vom IModelDoc2 zum IModelDocExtension zu kommen, ruft man vom IModelDoc2 die Extension auf. Code: Set swModelDocExt = swModel.Extension
Die IModelDocExtension ist ein Unterobjekt des IModelDoc2. (Wie auch der ConfigurationManager, FeatureManager, ISelectionManager, ModelViewManager & SelectionManager) Zum klareren Verständnis hätte ich den Code so schreiben können:
Code:
Dim swApp As SldWorks.ISldWorks Dim swModel As SldWorks.IModelDoc2 Dim swModelDocExt As SldWorks.IModelDocExtensionSub main() Set swApp = Application.SldWorks 'SolidWorks hohlen Set swModel = swApp.ActiveDoc 'Das aktuelle Dokument holen Set swModelExt = swModel.Extension 'Die Extension des Dokuments hohlen 'Teil von Hinten anzeigen swModel.ShowNamedView2 "*Rückseite", 2 'Ansicht auf Vorne aktualisieren swModelDocExt.UpdateStandardViews "*Vorderseite", 1 'auf Teil zoomen swModel.ViewZoomtofit2 End Sub
Ich habe den Schritt der Zuweisung zu einer Variablen einfach übersprungen und die Extension direkt angesprochen. Der Makro-Rekorder zeichnet leider nicht alles auf. Ich hatte teilweise mehr Glück indem ich in der SOLIDWORKS Journal Datei nachschaute. Die findest du normalerweise hier -> C:\Users\[current user]\AppData\Roaming\SOLIDWORKS\SOLIDWORKS 20XX\swxJRNL.swj (Kann man mit einem Text-Editor öffnen)
Und sonst den englischen Begriff für die gewünschte Funktion herausfinden und danach googlen oder in der API-Hilfe suchen. Natürlich kann man auch hier im Forum fragen.
------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neumiy000 Mitglied
Beiträge: 127 Registriert: 27.12.2015 SWX 2023 SP1.0 Creo 10.0.2.0<P><P>Lenovo ThinkPad-P16-G2 CPU: Intel Core i7-13850HX GPU: NVIDIA RTX 3500 RAM: 64GB DDR5 5600 MHz OS: Win 10 1TB M.2 SSD
|
erstellt am: 03. Mai. 2023 16:46 <-- editieren / zitieren --> Unities abgeben:
|