Buen día, ¿Cómo se podría mostrar los diagramas de fuerza cortante y momento flector, para un caso de carga especifico mediante el API?
1 Respuesta
Aún no existe una función disponible para la visualización gráfica de los diagramas (en API Sap2000 hasta la versión 23). Lo que se tiene por ahora es un método que le permite obtener los resultados de las fuerzas en las estaciónes definidas en los elementos Frame para un caso de carga especifico; con estos valores podria recrear los diagramas de forma manual.
FrameForce
Syntax
SapObject.SapModel.Results.FrameForce
VB6 Procedure
Function FrameForce(ByVal Name As String, ByVal ItemTypeElm As eItemTypeElm, ByRef NumberResults As Long, ByRef Obj() As String, ByRef ObjSta() As Double, ByRef Elm() As String, ByRef ElmSta() As Double, ByRef LoadCase() As String, ByRef StepType() As String, ByRef StepNum() As Double, ByRef P() As Double, ByRef V2() As Double, ByRef V3() As Double, ByRef T() As Double, ByRef M2() As Double, ByRef M3() As Double) As Long
VBA Example
Sub GetFrameForces() 'dimension variables Dim SapObject as cOAPI Dim SapModel As cSapModel Dim ret As Long Dim NumberResults As Long Dim Obj() As String Dim ObjSta() As Double Dim Elm() As String Dim ElmSta() As Double Dim LoadCase() As String Dim StepType() As String Dim StepNum() As Double Dim P() As Double Dim V2() As Double Dim V3() As Double Dim T() As Double Dim M2() As Double Dim M3() As Double 'create Sap2000 object Set SapObject = CreateObject("CSI.SAP2000.API.SapObject") 'start Sap2000 application SapObject.ApplicationStart 'create SapModel object Set SapModel = SapObject.SapModel 'initialize model ret = SapModel.InitializeNewModel 'create model from template ret = SapModel.File.New2DFrame(PortalFrame, 3, 124, 3, 200) 'run analysis ret = SapModel.File.Save("C:\SapAPI\x.sdb") ret = SapModel.Analyze.RunAnalysis 'clear all case and combo output selections ret = SapModel.Results.Setup.DeselectAllCasesAndCombosForOutput 'set case and combo output selections ret = SapModel.Results.Setup.SetCaseSelectedForOutput("DEAD") 'get frame forces for line object "1" ret = SapModel.Results.FrameForce("1", Object, NumberResults, Obj, ObjSta, Elm, ElmSta, LoadCase, StepType, StepNum, P, V2, V3, T, M2, M3) 'close Sap2000 SapObject.ApplicationExit False Set SapModel = Nothing Set SapObject = Nothing End Sub