Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Masseneigenschaften überschreiben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von KSAH an!   Senden Sie eine Private Message an KSAH  Schreiben Sie einen Gästebucheintrag für KSAH

Beiträge: 113
Registriert: 18.06.2015

SolidWorks 2010 bis 2021

erstellt am: 22. Mrz. 2022 10:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KSAH 10 Unities + Antwort hilfreich

Hallo Andreas

Die API Doku von Solidworks findest du z.B. hier -> SOLIDWORKS API Help
oder über den Hilfe-Kopf in SolidWorks.
Du kannst auch im VBA-Editor den Objekt-Browser öffnen (mit Taste F2) und dort suchen.

Im Makro überschreibt man die Masse mit GetOverrideOptions Method (IMassProperty2)
dazu gibt es auch ein Beispiel. Get and Override Mass Properties Example (VBA)

Du kannst aber auch das Verhalten in den Optionen ausschalten. Optionen für Baugruppen, die als Teile gespeichert werden
und so setzt du die Option per Makro System Options > Export > SLDPRT from assembly

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KSAH
Mitglied
Freiberufler


Sehen Sie sich das Profil von KSAH an!   Senden Sie eine Private Message an KSAH  Schreiben Sie einen Gästebucheintrag für KSAH

Beiträge: 113
Registriert: 18.06.2015

SolidWorks 2010 bis 2021

erstellt am: 22. Mrz. 2022 12:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von KSAH an!   Senden Sie eine Private Message an KSAH  Schreiben Sie einen Gästebucheintrag für KSAH

Beiträge: 113
Registriert: 18.06.2015

SolidWorks 2010 bis 2021

erstellt am: 22. Mrz. 2022 21:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von deckelmaho an!   Senden Sie eine Private Message an deckelmaho  Schreiben Sie einen Gästebucheintrag für deckelmaho

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 23. Mrz. 2022 08:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KSAH 10 Unities + Antwort hilfreich

Hi Andreas,

hast du deine Override-Werte auch zurück geschrieben?

Code:

    MyMassProp.SetOverrideOptions OvProp, swThisConfiguration, Empty
    MyMassProp.Recalculate

Aus dem Beispiel:
https://help.solidworks.com/2021/English/api/sldworksapi/Get_Mass_Properties_using_MassProperty_Object_Example_VB.htm


Nicht dass du zwar deine Einstellung vorbereitet, diese aber nicht gesetzt hast.


Gruß Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KSAH
Mitglied
Freiberufler


Sehen Sie sich das Profil von KSAH an!   Senden Sie eine Private Message an KSAH  Schreiben Sie einen Gästebucheintrag für KSAH

Beiträge: 113
Registriert: 18.06.2015

SolidWorks 2010 bis 2021

erstellt am: 23. Mrz. 2022 09:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von deckelmaho an!   Senden Sie eine Private Message an deckelmaho  Schreiben Sie einen Gästebucheintrag für deckelmaho

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 23. Mrz. 2022 10:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KSAH 10 Unities + Antwort hilfreich

Hi Andreas,

CreateMassProperty2 ist eine Funktion die dir ein Object zurück gibt.

https://help.solidworks.com/2021/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IModelDocExtension~CreateMassProperty2.html

Da kannst du nicht einfach noch was hinten dran hängen.  

Dieses Zeichen zeigt dir an, das es sich um eine Methode handelt.

Dieser kannst du noch Werte mitgeben, sofern es von der Methode gefordert ist.

Beispielsweise: SetOverrideOptions

http://help.solidworks.com/2020/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IMassProperty2~SetOverrideOptions.html

SetOverrideOptions möchte von dir:

Options As System.Object
(Deine neuen Optionen die du vorbereitet hast OvProp)

Config_option As System.Integer
(In deinem Fall hast du mit Enumerations gearbeitet [swInConfigurationOpts_e.swThisConfiguration Enumeration] entspricht einer "1")
http://help.solidworks.com/2020/english/api/swconst/SOLIDWORKS.Interop.swconst~SOLIDWORKS.Interop.swconst.swInConfigurationOpts_e.html

Config_names As System.Object
(In deinem Beispiel: Empty weil du mit swThisConfiguration die Konfiguration für die es gelten soll schon deklariert hast)

Hättest du swSpecifyConfiguration verwendet könntest du an dieser Stellen die Namen der Konfigurationen mitgeben für die es angewendet werden soll.

Ich hoffe es hilft dir vom Verständnis.

Ab und an hat mir diese Karte geholfen den Weg zu Ziel zu finden.
https://www.codestack.net/solidworks-api/getting-started/api-object-model/class-diagram/

Beste Grüße

Kevin

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

[Diese Nachricht wurde von deckelmaho am 23. Mrz. 2022 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KSAH
Mitglied
Freiberufler


Sehen Sie sich das Profil von KSAH an!   Senden Sie eine Private Message an KSAH  Schreiben Sie einen Gästebucheintrag für KSAH

Beiträge: 113
Registriert: 18.06.2015

SolidWorks 2010 bis 2021

erstellt am: 23. Mrz. 2022 18:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SpeichernUnter.zip

 
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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz