API Modal Analysis - Eigenvectors and Modal Masses

GGB.BHB
Enthusiast

API Modal Analysis - Eigenvectors and Modal Masses

GGB.BHB
Enthusiast
Enthusiast

Hi

 

I am currently writing some c# code to extract modal anlysis data based on this post

https://forums.autodesk.com/t5/robot-structural-analysis/api-modal-analysis-results/m-p/5699437/high...

 

I have two questions

a. Is it possible to extract the normalised eigenvectors rather than unnormalised eigenvectors?

b. Has the API been written yet to extract the modal masses which correpond to the eigenvectors?  Previous posts suggested that this was in the pipeline.

 

Many thanks

0 Likes
Reply
Accepted solutions (1)
1,051 Views
9 Replies
Replies (9)

Rafal.Gaweda
Autodesk Support
Autodesk Support

b. Has the API been written yet to extract the modal masses which correpond to the eigenvectors?  Previous posts suggested that this was in the pipeline.

 

Dim MS As RobotMassSumServer
Set MS = RobApp.Project.Structure.Results.Advanced.MassSum

 



Rafal Gaweda
0 Likes

Rafal.Gaweda
Autodesk Support
Autodesk Support

a. Is it possible to extract the normalised eigenvectors rather than unnormalised eigenvectors?

 

Not implemented in API

So either dump adjusted table or get results as they are and normalize them by yourself

 



Rafal Gaweda
0 Likes

GGB.BHB
Enthusiast
Enthusiast

Thanks Rafal

 

I still think I'm missing the section of code that gets the value of the specific part of the mass sum which represents the modal mass.

e.g. in the following bit of code RDD (of type RobotDisplacementData) is used to extract the values of the eigenvectors.  Is there a similar type to extract the various masses?

 

Many thanks

 

 

 

Dim RDD As RobotDisplacementData
Dim Nodes  As RobotNodeServer
Dim RES As RobotEigenvectorsServer
Dim REV As RobotEigenvaluesServer


Set Nodes = RobApp.Project.Structure.Nodes
Set RES = RobApp.Project.Structure.Results.Advanced.Eigenvec​tors
Set REV = RobApp.Project.Structure.Results.Advanced.Eigenval​ues

Modalcase = 3
NModes = RobApp.Project.Structure.Cases.Get(Modalcase).Mode​sCount
row = 1

For I = 1 To Nodes.GetAll.Count

    NodeNumber = Nodes.GetAll.Get(I).Number

    For Modenum = 1 To NModes
   
        Set RDD = RES.Value(NodeNumber, Modalcase, Modenum)
        Cells(row, 1) = Str(NodeNumber) + " / " + Str(Modalcase) + " / " + Str(Modenum)
        Cells(row, 2) = REV.Value(Modalcase, Modenum).Frequence
        Cells(row, 3) = RDD.UX
        Cells(row, 4) = RDD.UY
        Cells(row, 5) = RDD.UZ
        row = row + 1
    Next Modenum
   
Next I

0 Likes

Rafal.Gaweda
Autodesk Support
Autodesk Support

Example code:

 

[A9].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Current(13, 9).UX ' cur mass ux
[B9].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Current(13, 9).UY  ' cur mass uy
[A10].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Current(13, 10).UX ' cur mass ux
[B10].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Current(13, 10).UY ' cur mass uy

[D9].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Total(13, 3).UX
[E9].Value = RobApp.Project.Structure.Results.Advanced.MassSum.Total(13, 3).UY

[D10].Value = RobApp.Project.Structure.Results.Advanced.MassSum.PartCoeff(13, 10).UX
[E10].Value = RobApp.Project.Structure.Results.Advanced.MassSum.PartCoeff(13, 10).UY


Rafal Gaweda
0 Likes

GGB.BHB
Enthusiast
Enthusiast

Thanks Rafal,
The masses I was actually after were the Modal Masses mX, mY and mZ.  Is there a call for them or can they be calculated some other way?

0 Likes

Rafal.Gaweda
Autodesk Support
Autodesk Support
Accepted solution
Dim RS As RobotResultServer
Set RS = RobApp.Project.Structure.Results

Dim ModalCase As RobotSimpleCase
ModalCaseNumber = 71

RS.Any.LoadCase = ModalCaseNumber

Set ModalCase = RobApp.Project.Structure.Cases.Get(ModalCaseNumber)

For I = 1 To ModalCase.ModesCount
    RS.Any.Mode = I
    RS.Any.ResultId = 1767
    Cells(I, 1) = RS.Any.ResultValue
    RS.Any.ResultId = 1768
    Cells(I, 2) = RS.Any.ResultValue
    RS.Any.ResultId = 1769
    Cells(I, 3) = RS.Any.ResultValue
Next I


Rafal Gaweda
0 Likes

GGB.BHB
Enthusiast
Enthusiast

Brilliant, fantastic!

All up and running,

Many thanks

0 Likes

WALIDGIO
Advocate
Advocate

is this code can run for the ROBOT 2025 version ?

0 Likes

Stephane.kapetanovic
Mentor
Mentor

yes.

0 Likes