Hi,
I am doing a macro to post-process modal analysis results in Excel using VBA, and I have trouble finding the modal masses mX, mY and mZ.
Through the path RobApp.Project.Structure.Results.Advanced.MassSum I can retrieve some other mass properties, but not the modal masses - which is what I need for calculating the stationary response of an analogous single-dof system.
I know it is possible to do a time history analysis to get the reponse, but redefinening the load time history to achieve resonance every time modifications to the model change the eigenfrequency is quite tidious - I would prefer to save the THA as a control of the stationary response in the final version of the model, after optimizing the model. After all the results are usually identical unless multiple modes are exited significantly by the same load.
Is it possible to retrieve the modal masses directly though the API some other way?
If not, is it possible to export the Mass Matrix along with the mode shape vector to calculate it outside Robot?
Best Regards,
Mikkel
Solved! Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
Is it possible to retrieve the modal masses directly though the API some other way?
Not implemented. I will put it on the wishlist.
If not, is it possible to export the Mass Matrix .
No
along with the mode shape vector to calculate it outside Robot?
Robapp.Project.Structure.Results.Advanced.Eigenvectors.Value
Thanks for the quick reply,
Sad that it is not an possible.
I assume that it is not possible to export load vectors either either? Would be practical for calculating the modal loads.
Best regards
Mikkel
Sad that it is not an possible.
this way:
Dim rt As RobotTable Set rt = RobApp.Project.ViewMngr.CreateTable(I_TT_DYNAMIC, I_TDT_DEFAULT) rt.AddColumn (1767) rt.AddColumn (1768) rt.AddColumn (1769) Path = "c:\modalres.csv" rt.Printable.SaveToFile Path, I_OFF_TEXT
Then extract data from this text file.
Or basing on this macro :
you can modify code to convert csv to ANSI and open it Excel in one run.
Thank you,
I believe that should do the trick. I will just try to figure out how to make it close the extra table again, or I will have a lot of tables open 🙂
Any suggestions on how to get the load vector out?
I could off course copy the model, apply the displacements as as forced displacements, and get the reactions. But that seems like an exsessive workaround.
how to make it close the extra table again,
Any suggestions on how to get the load vector out?
Sorry I do not understand what is "load vector". Could you please explain?
Thank you for the closing table command.
I am talking about the load vector f for specific load case, fulfilling
f = Ku
where K is the stiffness matrix and u the displacement vactor.
In calculating the staionary response I need the modal load.
For a dynamic mode with normalized eigenvactor v, the modal load corresponding to the static load for the loadcase of f is calculated as the scalar product of f and v.
Here you are: columns of your interest 251, 252, 253
Set rt = RobApp.Project.ViewMngr.CreateTable(I_TT_NODE_DISPLACEMENTS, I_TDT_DEFAULT) rt.AddColumn (251) rt.AddColumn (252) rt.AddColumn (253)
Hi
@Rafal.Gaweda
where can I find the columns numbers?
Currently I'm trying to get the 'Height' column in the 'Stories' table:
Dim RS As RobotTable Set RS = RobApp.Project.ViewMngr.CreateTable(IRobotTableType.I_TT_STOREYS, I_TDT_DEFAULT) RS.AddColumn (????) RS.Printable.SaveToFile directory, I_OFF_TEXT