Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Masseneigenschaften auslesen

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
  
Technikerschüler der staatlichen Feintechnikschule Schwenningen zu Besuch bei SolidCAM GmbH in Schramberg
Autor Thema:  API: Masseneigenschaften auslesen (458 mal gelesen)
Misel
Mitglied



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

Beiträge: 31
Registriert: 13.11.2003

SWX2013 SP3.0 / keytech 13

erstellt am: 16. Nov. 2003 17:00    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 zusammen!

Ich versuch ein Makro zu erstellen, mit dem ich die Lage der Trägheitsachsen bestimmen kann. Die Vektoren der Achsen kann ich auslesen, also Ix, Iy und Iz aus dem Menü Extras|EigenschaftenMasse.
Dies funktioniert auch, aber sobald ich an den Maßen des Parts etwas ändere und erneut das Makro ausführe, ändern sich die Werte nicht. Die Werte, die das Part vor dem Ändern hatte, werden wieder ausgegeben. Wenn ich aber das Part abspeichere und erneut öffne (nur speichern hilft auch nix) und nun das Makro ausführe, dann werden die neuen Werte ausgelesen. Weiß jemand, wie ich die aktuellen Werte auslesen kann, sobald ich an der Geometrie etwas ändere? Meine APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Kenntnisse sind nämlich sehr dürftig. 

Mein Code sieht z.B. für Ix folgendermaßen aus:

Public swApp As SldWorks.SldWorks
Public Part  As SldWorks.ModelDoc2
Public Masseneigenschaften As Variant
Public Ix, Iy, Iz As Variant
Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc

'Masseneigenschaften des Dokuments aufrufen
Set Masseneigenschaften = Part.Extension.CreateMassProperty
   
    Ix = Masseneigenschaften.PrincipleAxesOfInertia(0)
   
    a = Ix(0)
    b = Ix(1)
    c = Ix(2)
    swApp.SendMsgToUser "( " & a & " / " & b & " / " & c & " )"
   
End Sub

Wäre echt klasse, wenn mir da jemand einen Tipp geben könnte, sonst kriege ich noch einen Anfall, da ich da einfach nicht voran komme. 

Gruß Misel

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

m_schilke
Mitglied
Senior Manager


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

Beiträge: 212
Registriert: 08.01.2002

erstellt am: 17. Nov. 2003 07:53    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 Misel 10 Unities + Antwort hilfreich

Hallo!

ZU allererst würde ich dir raten, mal auf der SolidWorks Homepage von Stefan Berlitz http://solidworks.cad.de die Rubrik API durchzuschauen, hilft dir garantiert.
Zu deinem Problem:
Man sollte alle Variablen explizit deklarieren (also als allererste Zeile des Makros "Option Explicit" hinschreiben). Damit musst du auch a,b und c deklarieren (als "Long" z.B.). Versuche außerdem, die Variablen vor Beginn der Prozedur zu initialisieren (z.B. a=0) und baue mal ein Part.ForceRebuild ein, damit das Modell auf jeden Fall aktualisiert ist.

------------------
Gruß, Martin.

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 17. Nov. 2003 08:07    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 Misel 10 Unities + Antwort hilfreich

Hallo Misel,

hab ich zwar noch nie gemacht, aber ich vermute, wenn du nicht explizit die Bodies angibst nimmt SolidWorks die Masseeigenschaften aus der Datei, nicht von den aktuellen Körpern.

Schau dir mal in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Hilfe das Beispiel "Get Mass Properties using MassProperty Object Example (VB)" (kommt hinter dem Example-Link bei MassProperty::PrincipleAxesOfInertia), da ist das beschrieben, wie du mit AddBodies Volumenkörper zufügen kannst.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de
KLAMM? Was ist KLAMM?

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

Misel
Mitglied



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

Beiträge: 31
Registriert: 13.11.2003

SWX2013 SP3.0 / keytech 13

erstellt am: 19. Nov. 2003 12: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

Hallo!

Danke Stefan, dein Tipp mit AddBodies hat mich weiter gebracht.
Aber freut euch nicht zu früh, das nächste Problem kommt bestimmt 

Gruß Michael

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