A question related to accessing the information displayed under 'Response Simulation Details View'. If one defines a response simulation, by selecting the 'Normal Modes' one can access the effective mass table in the window 'Response Simulation Details View'. See attached snapshot
Question: Is there a way of accessing this info i.e. the data in the table using a program?
I see that by right -clicking on one the header in the table one can have access to 'Simulation Navigator Properties'
Solved! Go to Solution.
This information is stored in the CAE.ResponseSimulation.ModalProperties object that can be obtained from CAE.ResponseSimulation.Solution.GetModalProperties()
Thanks JimB. Will play with the keyword. I am planning/hoping to extract the % effective mass (X,Y,Z) for each mode to an array
Use CAE.ResponseSimulation.ModalProperties.GetNormalModes() to get the CAE.ResponseSimulation.NormalMode objects from CAE.ResponseSimulation.ModalProperties
Then use the GetXMass(), GetYMass(), GetZMass() properties on CAE.ResponseSimulation.NormalMode to get the mass percentages.
I am a bit at a loss in undersanding the NX doc. JimB intial response pointed me in the right direction but my programming knowledge (but I'll blame it on the NX doc !) is letting me down
I am writing a small function to return the effective mass for the the normal modes for a given SOL 103 repsonse simulation (Solution type: SEMODES 103 - Response Simulation)
Q1: How does one specify the SOL103 resp. sim to use to extract the (list) of normal modes?
Function GetEffectiveMass(theInputSOL103RSName As String) 'Function retrieve the EffectiveMass for a given SOL103 Resp. Sim Solution Dim theSimPart As CAE.SimPart = theSession.Parts.BaseWork Dim thesimulation As CAE.SimSimulation = theSimPart.Simulation() Dim theTargetSolution As CAE.SimSolution = CType(thesimulation.FindObject("Solution[" & theInputSOL103RSName & "]"), CAE.SimSolution) 'CAE.ResponseSimulation.ModalProperties Din arrNmodes() As NormalModes = CAE.ResponseSimulation.ModalProperties.GetNormalModes() 'Get the GetXMass(), GetYMass(), GetZMass() for each mode For each theNmode As NormalMode In arrNmodes Dim dXmass As Double = theNmode.GetXmass() Dim dYmass As Double = theNmode.GetYmass() Dim dZmass As Double = theNmode.GetZmass() TheLW.WriteLine("Xmass is: " & dXMass.ToString) TheLW.WriteLine("Ymass is: " & dXMass.ToString) TheLW.WriteLine("Zmass is: " & dXMass.ToString) Next theNMode End Function
Thanks JimB. Very Much apprecaited. More or less what I ended up doing. I didn't know about the String.Format option you have usedon theLW. Very interesting and will very likely used it in the future!
FYI, String.Format() is standard .NET. It is not tied to NXOpen.ListingWindow in any way.