Hi
I am currently writing some c# code to extract modal anlysis data based on this post
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
Solved! Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
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
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
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.Eigenvectors
Set REV = RobApp.Project.Structure.Results.Advanced.Eigenvalues
Modalcase = 3
NModes = RobApp.Project.Structure.Cases.Get(Modalcase).ModesCount
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
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
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?
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
Can't find what you're looking for? Ask the community or share your knowledge.