Code: Select all
App.ActiveDocument.getObjectsByLabel("myobject")[0].Shape.MatrixOfInertia
Code: Select all
App.ActiveDocument.getObjectsByLabel("myobject")[0].Shape.MatrixOfInertia
Code: Select all
obj = App.ActiveDocument.getObjectsByLabel("myobject")[0]
globalRotMatrix = obj.getGlobalPlacement().Rotation.toMatrix()
globalmoiObj = obj.Shape.MatrixOfInertia
localmoiObj = globalRotMatrix.transposed() * globalmoiObj * globalRotMatrix
Code: Select all
def outerProduct(v1,v2):
'''return outer product of two Vectors v1_i*v2_j (4 x 4) Matrix'''
m = App.Matrix(v1.x*v2.x, v1.x*v2.y, v1.x*v2.z, 0, v1.y*v2.x, v1.y*v2.y, v1.y*v2.z ,0, v1.z*v2.x, v1.z*v2.y, v1.z*v2.z,0, 0, 0, 0, 0)
return m
obj = App.ActiveDocument.getObjectsByLabel("myobject")[0]
globalRotMatrix = obj.getGlobalPlacement().Rotation.toMatrix()
globalmoiObj = obj.Shape.MatrixOfInertia
localmoiObj = globalRotMatrix.transposed() * globalmoiObj * globalRotMatrix
v = obj.Placement.Base
mass = obj.Shape.Mass
localFromOriginmoiObj = localmoiObj + outerProduct(mass * v, v)