Pytanie:
Jak mogę odczytać rozkład obciążenia liniowego z listy rozwijanej w RF-COM?
Odpowiedź:
Rozkład obciążenia liniowego jest zdefiniowany za pomocą atrybutu „Rozkład”. Atrybut „Dystrybucja” jest typu „LoadDistributionType”, a wpisy na liście w polu kombi są typu „String”, zatem konwersja typu jest wymagana. Funkcja "GetLoadDistributionType" konwertuje wpis na liście typu String na LoadDistributionType.
' ------------------------------------------------ -------------------------------------------------- -
Funkcja GetLoadDistributionType (sType As String) As LoadDistributionType
' ------------------------------------------------ -------------------------------------------------- -
Jeżeli sType = "Concentrated2x2QType", to
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" Wtedy
GetLoadDistributionType = LinearType
ElseIf sType = "LinearXType" Wtedy
GetLoadDistributionType = LinearXType
ElseIf sType = "LinearYType" Wtedy
GetLoadDistributionType = LinearYType
ElseIf sType = "LinearZType" Wtedy
GetLoadDistributionType = LinearZType
ElseIf sType = "ParabolicType" Then
GetLoadDistributionType = ParabolicType
ElseIf sType = "RadialType" Then
GetLoadDistributionType = RadialType
ElseIf sType = "TaperedType" Wtedy
GetLoadDistributionType = typ stożkowy
ElseIf sType = "TrapezoidalType" Wtedy
GetLoadDistributionType = TrapezoidalType
ElseIf sType = "UniformType" Then
GetLoadDistributionType = UniformType
ElseIf sType = "VaryingType" Then
GetLoadDistributionType = VaryingType
End If
Funkcja zakończenia
Procedura "SetLineLoad" tworzy obciążenie liniowe w Linii 1. Rozkład obciążenia jest odczytywany z listy rozwijanej „Obciążenie liniowe” arkusza Excel „Obciążenie liniowe”.
' ------------------------------------------------ -------------------------------------------------- -
Podzbiory obciążeń liniowych ()
' ------------------------------------------------ -------------------------------------------------- -
Dim model As RFEM5.model
Obciążenie wymiarowe As RFEM5.ILoadCase
Dim data (0) As RFEM5.LineLoad
'Pobierz interfejs dla modelu
Set model = GetObject(, "RFEM5.Model")
'Zablokuj licencję COM i dostęp do programu
model.GetApplication.LockLicense
On Error GoTo e
'Pobierz interfejs dla obciążeń
Ustaw obciążenie = model.GetLoads.GetLoadCase(0, AtIndex)
'Ustawić parametry dla obciążenia liniowego
dane (0) .No = 1
data(0) .LineList = "1"
data(0).Typ = ForceType
'Rozkład obciążenia z pola kombi
data(0).Distribution = GetLoadDistributionType(Worksheets("LineLoad").DropDowns("LoadDistribution").List(Worksheets("LineLoad").DropDowns("LoadDistribution" .ListIndex))
dane (0). Kierunek = Lokalny TypZ
dane (0). Odległość A = 11
dane (0) .Odległość B = 22
data(0).RelativeDistances = True
dane (0).Magnuda1 = 4000
dane (0).Magnitud2 = 5000
data(0).Magnitude3 = 6000
data(0) .OverTotalLength = False
dane (0) .Comment = "obciążenie liniowe 1"
'Obciążenie linii transferu
Load.PrepareModification
load.SetLineLoads data
load.FinishModyfikacja
e: Jeżeli Err.Number 0 to MsgBox Err.Description, , Err.Source
Ustawić obciążenie = Nic
'Licencja COM jest odblokowana, ponownie dostęp do programu
model.GetApplication.UnlockLicense
Ustaw model = Nic
End Sub
Kod źródłowy można znaleźć w sekcji Do pobrania.