| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Strömungssimulation auf der 3DEXPERIENCE Plattform |
Autor
|
Thema: Masseneigenschaften überschreiben (805 mal gelesen)
|
KSAH Mitglied Freiberufler
Beiträge: 113 Registriert: 18.06.2015 SolidWorks 2010 bis 2021
|
erstellt am: 22. Mrz. 2022 10:32 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Problem mit einem Makro von mir. Ich habe ein Makro erstellt, womit ich Baugruppen in Teile umwandeln kann. Nur setzt SW die Häkchen unter: Evaluieren / Masseneigenschaften /Masseneigenschaften überschreiben. Die setzt er auch wenn man manuell speichert. Jetzt suche ich die passenden Variablen dazu im Makro. Wie kann man überhaupt in Objekte; Klassen; Strukturen sehen? Unter VBA geht sehr viel. Man kommt sogar an Funktionen der User32.dll. Man kann auch Timer setzen, Fenster verschieben. Aber SW selbst ist irgendwie nicht so richtig dokumentiert. Viele Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
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: 22. Mrz. 2022 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für KSAH
|
KSAH Mitglied Freiberufler
Beiträge: 113 Registriert: 18.06.2015 SolidWorks 2010 bis 2021
|
erstellt am: 22. Mrz. 2022 12:09 <-- editieren / zitieren --> Unities abgeben:
Servus Andreas, Danke für Deine Antwort. Die englische API Doku kannte ich noch nicht. Da muss ich mich erst durcharbeiten. Mit dem Pbjeltbrowser F2 komme ich nicht klar. Man kann sich auch irgendwie nicht durchhangeln. Hatte ich schon versucht. Das Häkchen in den Systemeinstellungen unter Export ist es nicht. SW setzt trotzdem unter den Eigenschaften die Häckchen: "Masse überschreiben" "Massemittelpunkt überschreiben" Trägheitsmomente überschreiben" Vielleicht hilft es auch mal SW auf Englisch zu stellen. Dann kann man vielleicht besser in der API suchen, wenn man weiß wie was heißt. Viele Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KSAH Mitglied Freiberufler
Beiträge: 113 Registriert: 18.06.2015 SolidWorks 2010 bis 2021
|
erstellt am: 22. Mrz. 2022 21:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe die Variablen gedunden. Aber es funktioniert nicht. Das ist der Pfad: swModelDoc.Extension.CreateMassProperty2.GetOverrideOptions.OverrideMass Als ich die Variablen gefunden habe, fand ich auch in der Hilfe ein Beispiel. Das funktioniert natürlich. Umgestrickt auf mein Problem geht nicht. Dim Extn As SldWorks.ModelDocExtension Dim MyMassProp As SldWorks.MassProperty2 Dim OvProp As SldWorks.MassPropertyOverrideOptions Set Extn = swModelDoc.Extension Set MyMassProp = Extn.CreateMassProperty2 Set OvProp = MyMassProp.GetOverrideOptions OvProp.OverrideMass = False OvProp.OverrideMomentsOfInertia = False OvProp.OverrideCenterOfMass = False Warum muss ich alles einzeln schreiben? Im Beispiel wurden die Variablen eingeschalten. Ich will diese ausschalten. Das nimmt SW aber nicht an. Ich habe mit dem Einschalten experimentiert. Da stellte ich fest, ich muss wirklich alle "Set" schreiben. Das kenne ich so auch nicht. Auch nicht wenn ich in Excel rein bin. Der Pfad konnte lang sein, es funktioniert. Mir gehen die Ideen aus Viele Grüße Andreas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deckelmaho Mitglied Konstrukteur
Beiträge: 239 Registriert: 03.03.2020 SolidWorks 2023 SP5 Windows 10 64bit Office 2019
|
erstellt am: 23. Mrz. 2022 08:08 <-- editieren / zitieren --> Unities abgeben: Nur für KSAH
|
KSAH Mitglied Freiberufler
Beiträge: 113 Registriert: 18.06.2015 SolidWorks 2010 bis 2021
|
erstellt am: 23. Mrz. 2022 09:15 <-- editieren / zitieren --> Unities abgeben:
Hi Kevin, Danke, das wars. Ja das war mein Beispiel was ich genommen hatte. Den unteren Teil des Codes hatte ich noch nicht angesehen. Das wollte ich heute machen und Stück für Stück durchgehen.
Code: Private Sub BgZuTeil() Const cEndung = "SLDPRT" Dim strPfad As String strPfad = Left(swPart.GetPathName, InStrRev(swPart.GetPathName, ".")) 'Punkt von hinten suchen und abschneiden swPart.ShowNamedView2 "*Isometrisch", 7 'Isometrisch swPart.ViewZoomtofit2 'Zoom Call swPart.SaveAs3(strPfad + cEndung, 0, 0) 'Endung anhängen und speichern swPart.Save2 False 'speichern swApp.CloseDoc swPart.GetPathName Set swPart = swApp.OpenDoc(strPfad + cEndung, swDocPART) 'Pfad: swPart.Extension.CreateMassProperty2.GetOverrideOptions.OverrideMass 'Ab hier Eigenschaften zurücksetzen. Es muss gestückelt werden Dim Extn As Object Dim MyMassProp As Object Dim OvProp As Object Set Extn = swPart.Extension Set MyMassProp = Extn.CreateMassProperty2 Set OvProp = MyMassProp.GetOverrideOptions OvProp.OverrideMass = False OvProp.OverrideMomentsOfInertia = False OvProp.OverrideCenterOfMass = False MyMassProp.SetOverrideOptions OvProp, swThisConfiguration, Empty MyMassProp.Recalculate End Sub
Das ist der Code. Ich habe das für Step, Parasolid, DWG, und PDF. Aber warum muss der Pfad gestückelt werden?
Viele Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
deckelmaho Mitglied Konstrukteur
Beiträge: 239 Registriert: 03.03.2020 SolidWorks 2023 SP5 Windows 10 64bit Office 2019
|
erstellt am: 23. Mrz. 2022 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für KSAH
|
KSAH Mitglied Freiberufler
Beiträge: 113 Registriert: 18.06.2015 SolidWorks 2010 bis 2021
|
erstellt am: 23. Mrz. 2022 18:05 <-- editieren / zitieren --> Unities abgeben:
Hi Kevin, ich komme aus dem C++ Sektor. Da sehen Funktionen eindeutig aus. Für mich war es eine Struktur oder Klasse. Und so kommen die Fehler. Jetzt funktioniert alles bestens. Danke für eure Hilfe. Ich habe mal das Makro angehängt. Vielleicht nützt es jemanden. Viele Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |