429x
001660
2020-08-04

[ES] FAQ 004585 | ¿Cómo puedo leer la distribución de carga de una carga lineal de un cuadro combinado en RF-COM ...

Pregunta:
¿Cómo puedo leer la distribución de carga de una carga lineal desde un cuadro combinado en RF-COM?

Respuesta:
La distribución de carga de una carga lineal se define mediante el atributo "Distribución". El atributo "Distribución" es del tipo "LoadDistributionType" y las entradas de la lista del cuadro combinado son del tipo "Cadena", por lo que se requiere la conversión de tipo. La función "GetLoadDistributionType" convierte una entrada de lista del tipo String en LoadDistributionType.

' ----------------------------------------------- -------------------------------------------------- -
Función GetLoadDistributionType (sType As String) As LoadDistributionType
' ----------------------------------------------- -------------------------------------------------- -

    Si sType = "Concentrated2x2QType" Entonces
      GetLoadDistributionType = Concentrated2x2QType
    ElseIf sType = "Concentrated2xQType" Entonces
      GetLoadDistributionType = Concentrated2xQType
    ElseIf sType = "ConcentratedNxQType" Entonces
      GetLoadDistributionType = ConcentratedNxQType
    ElseIf sType = "ConcentratedType" Entonces
      GetLoadDistributionType = ConcentratedType
    ElseIf sType = "ConcentratedUserDefinedType" Entonces
      GetLoadDistributionType = "ConcentratedUserDefinedType"
    ElseIf sType = "LinearType" Entonces
      GetLoadDistributionType = LinearType
    ElseIf sType = "LinearXType" Entonces
      GetLoadDistributionType = LinearXType
    ElseIf sType = "LinearYType" Entonces
      GetLoadDistributionType = LinearYType
    ElseIf sType = "LinearZType" Entonces
      GetLoadDistributionType = LinearZType
    ElseIf sType = "ParabolicType" Entonces
      GetLoadDistributionType = ParabolicType
    ElseIf sType = "RadialType" Entonces
      GetLoadDistributionType = RadialType
    ElseIf sType = "TaperedType" Entonces
      GetLoadDistributionType = TaperedType
    ElseIf sType = "TrapezoidalType" Entonces
      GetLoadDistributionType = TrapezoidalType
    ElseIf sType = "UniformType" Entonces
      GetLoadDistributionType = UniformType
    ElseIf sType = "VaryingType" Entonces
      GetLoadDistributionType = VaryingType
    End If

End Function

El procedimiento "SetLineLoad" crea una carga lineal en la línea 1. La distribución de carga se lee en el cuadro combinado "LoadDistribution" de la hoja de cálculo de Excel "LineLoad".

' ----------------------------------------------- -------------------------------------------------- -
Sub SetLineLoads ()
' ----------------------------------------------- -------------------------------------------------- -

  1. Dim model As RFEM5.model

Carga atenuada como RFEM5.ILoadCase
Atenuar datos (0) Como RFEM5.LineLoad
    ' Obtener la interfaz para el modelo
    Establecer modelo = GetObject (, "RFEM5.Model")

    ' Bloquear la licencia COM y el acceso al programa
    model.GetApplication.LockLicense
    On Error GoTo e
   ' Obtener interfaz para cargas
    Establecer load = model.GetLoads.GetLoadCase (0, AtIndex)
    ' Establecer parámetros para carga de líneas
    datos (0) .No = 1
    datos (0) .LineList = "1"
    datos (0) .Type = ForceType
    ' Distribución de carga desde el cuadro combinado
    data (0) .Distribution = GetLoadDistributionType (Worksheets ("LineLoad"). DropDowns ("LoadDistribution"). List (Worksheets ("LineLoad"). DropDowns ("LoadDistribution"). ListIndex))
    datos (0) .Direction = LocalZType
    datos (0) .DistanceA = 11
    datos (0) .DistanciaB = 22
    data (0) .RelativeDistances = True
    datos (0) .Magnitud1 = 4000
    datos (0) .Magnitud2 = 5000
    datos (0) .Magnitud3 = 6000
    data (0) .OverTotalLength = False
    data (0) .Comment = "carga lineal 1"
    ' Transferir carga lineal
    load.PrepareModification
    load.SetLineLoads datos
    load.FinishModification

e:  If Err.Number 0 Then MsgBox Err.Description`` Err.Source
    Establecer carga = nada
    ' La licencia COM está desbloqueada, es posible volver a acceder al programa
    model.GetApplication.UnlockLicense
    Set model = Nothing

End Sub

El código fuente se puede encontrar en Descargas.