Mark,
Can you take a look at my journal.
I want to extract the maximum stress of my loadcase with the function AskMaximum.
For the moment I'm able to extract only the max displacement. I try to change "Magnitude" by "VonMises" and change the number of "loadCaseIdx" and "iterationIdx", but when I run my journal I have a error message.
-------------------------------------------------
Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.BlockStyler
Module Module2
Dim theSession As Session = Session.GetSession()
Dim theLW As NXOpen.ListingWindow = theSession.ListingWindow()
Dim theUI As NXOpen.UI = NXOpen.UI.GetUI()
Dim theNXMessageBox As NXMessageBox = theUI.NXMessageBox
Sub Main()
Dim theSession As Session = Session.GetSession()
Dim theLW As NXOpen.ListingWindow
theLW = theSession.ListingWindow()
theLW.Open()
Doit()
End Sub
Sub Doit()
Dim nom_loadcase As String
Dim resultParameters1 As CAE.ResultParameters
Dim theSession As Session = Session.GetSession()
Dim resultManager1 As CAE.ResultManager = theSession.ResultManager
Dim simPart As CAE.SimPart = CType(theSession.Parts.BaseWork, CAE.SimPart)
Dim simulation As CAE.SimSimulation = simPart.Simulation()
Dim workSimPart As CAE.SimPart = CType(theSession.Parts.BaseWork, CAE.SimPart)
Dim solution As CAE.SimSolution = simulation.ActiveSolution()
Dim results As CAE.Result = GetResults(solution)
Dim scale As Double = 1.0
Dim loadCaseIdx As Integer = 0
Dim iterationIdx As Integer = 0
Dim resultAccess As CAE.ResultAccess = GetResultAccess(results, loadCaseIdx, iterationIdx, scale)
Dim noeud_result As Double = resultAccess.AskMaximum
Dim Msg, Stl, Ttle
Msg = noeud_result
Stl = vbOKOnly
Ttle = "Bastien"
MsgBox(Msg, Stl, Ttle)
End Sub
Function GetResultAccess(ByRef results As CAE.Result, ByVal loadCaseIdx As Integer, ByVal iterationIdx As Integer, ByVal scale As Double) As CAE.ResultAccess
Dim part As BasePart = theSession.Parts.BaseWork
Dim theResultManager As CAE.ResultManager = theSession.ResultManager()
Dim unit_length As Unit = Nothing
Dim resultParameter As CAE.ResultParameters = theResultManager.CreateResultParameters()
Dim resultType As CAE.Result.Type
Dim averaging As CAE.Result.Averaging
averaging.DoAveraging = False
averaging.AverageAcrossPropertyIds = True
averaging.AverageAcrossMaterialIds = True
averaging.AverageAcrossElementTypes = True
averaging.AverageAcrossFeatangle = True
averaging.AverageAcrossAnglevalue = 45.0
averaging.IncludeInternalElementContributions = True
resultParameter.SetLoadcaseIteration(loadCaseIdx, iterationIdx)
resultParameter.SetResultType(resultType)
resultParameter.SetResultComponent(CAE.Result.Component.Magnitude)
resultParameter.SetSectionPlyLayer(0, 0, 0)
resultParameter.SetAveragingCriteria(averaging)
resultParameter.SetCoordinateSystem(CAE.Result.CoordinateSystem.AbsoluteRectangular)
resultParameter.SetElementValueCriterion(CAE.Result.ElementValueCriterion.Average)
resultParameter.SetComplexCriterion(CAE.Result.Complex.Amplitude)
resultParameter.SetPhaseAngle(0.0)
resultParameter.SetScale(scale)
resultParameter.SetUnit(unit_length)
Dim solResultsAccess As CAE.ResultAccess = theResultManager.CreateResultAccess(results, resultParameter)
solResultsAccess.SetParameters(resultParameter)
Return solResultsAccess
End Function
Function GetResults(ByRef solution As CAE.SimSolution) As CAE.Result
Dim results As CAE.Result = Nothing
Dim part As BasePart = theSession.Parts.BaseWork
Dim theResultManager As CAE.ResultManager = theSession.ResultManager()
Dim solresults As CAE.SolutionResult = theResultManager.CreateSolutionResult(solution)
results = CType(solresults, CAE.Result)
Return results
End Function
End Module
-----------------------------------------------
Regards. Bastien.