A distribuição de carga de uma carga em linha é definida pelo atributo "Distribution". O atributo "Distribution" é do tipo "LoadDistributionType", e as entradas da lista da caixa de combinação são do tipo "String", de modo que seja necessária uma conversão de tipos. A função "GetLoadDistributionType" converte uma entrada de lista do tipo "String" numa do tipo "LoadDistributionType".
- código.vb#
'--------------------------------------------------------------------------------------------------
Function GetLoadDistributionType(sType As String) As LoadDistributionType
'--------------------------------------------------------------------------------------------------
- If sType = "Concentrated2x2QType" Then
- GetLoadDistributionType = Concentrated2x2QType
- ElseIf sType = "Concentrated2xQType" Then
- GetLoadDistributionType = Concentrated2xQType
- ElseIf sType = "ConcentratedNxQType" Then
- GetLoadDistributionType = ConcentratedNxQType
- ElseIf sType = "ConcentratedType" Then
- GetLoadDistributionType = ConcentratedType
- ElseIf sType = "ConcentratedUserDefinedType" Then
- GetLoadDistributionType = "ConcentratedUserDefinedType"
- ElseIf sType = "LinearType" Then
- GetLoadDistributionType = LinearType
- ElseIf sType = "LinearXType" Then
- GetLoadDistributionType = LinearXType
- ElseIf sType = "LinearYType" Then
- GetLoadDistributionType = LinearYType
- ElseIf sType = "LinearZType" Then
- GetLoadDistributionType = LinearZType
- ElseIf sType = "ParabolicType" Then
- GetLoadDistributionType = ParabolicType
- ElseIf sType = "RadialType" Then
- GetLoadDistributionType = RadialType
- ElseIf sType = "TaperedType" Then
- GetLoadDistributionType = TaperedType
- ElseIf sType = "TrapezoidalType" Then
- GetLoadDistributionType = TrapezoidalType
- ElseIf sType = "UniformType" Then
- GetLoadDistributionType = UniformType
- ElseIf sType = "VaryingType" Then
- GetLoadDistributionType = VaryingType
- End If
End Function
#/code#
Die Prozedur "SetLineLoad" erzeugt eine Linielast an Linie 1. Der Lastverlauf wird aus dem Kombinationsfeld "LoadDistribution" des Excel-Arbeitsblattes "LineLoad" ausgelesen.
'--------------------------------------------------------------------------------------------------
Sub SetLineLoads()
'--------------------------------------------------------------------------------------------------
Dim model As RFEM5.model
Dim load As RFEM5.ILoadCase
Dim data(0) As RFEM5.LineLoad
'Get interface for model
Set model = GetObject(, "RFEM5.Model")
'Block COM licence and program access
model.GetApplication.LockLicense
On Error GoTo e
'Get interface for loads
Set load = model.GetLoads.GetLoadCase(0, AtIndex)
'Set parameters for lineload
data(0).No = 1
data(0).LineList = "1"
data(0).Type = ForceType
'Load Distribution from combo box
data(0).Distribution = GetLoadDistributionType(Worksheets("LineLoad").DropDowns("LoadDistribution").List(Worksheets("LineLoad").DropDowns("LoadDistribution").ListIndex))
data(0).Direction = LocalZType
data(0).DistanceA = 11
data(0).DistanceB = 22
data(0).RelativeDistances = True
data(0).Magnitude1 = 4000
data(0).Magnitude2 = 5000
data(0).Magnitude3 = 6000
data(0).OverTotalLength = False
data(0).Comment = "line load 1"
'Transfer lineload
load.PrepareModification
load.SetLineLoads data
load.FinishModification
e: If Err.Number <> 0 Then MsgBox Err.Description, , Err.Source
Set load = Nothing
'COM licence is unlocked, program access possible again
model.GetApplication.UnlockLicense
Set model = Nothing
End Sub