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 API-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