1022x
001571
20.7.2020

[CS] KB 001639 | Převod žebra na plošný model s výsledkovým prutem pomocí VBA

Téma:
Převod žebra na plošný model s výsledkovým prutem pomocí VBA

Poznámky:
Pokud je žebro součástí nelineárního posouzení nebo pokud vykazuje tuhé spojení s navazujícími stěnami, je třeba místo prutu použít pro modelování plochu. Aby bylo nicméně možné žebro stále posuzovat jako prut, potřebujeme výsledkový prut se správnou excentricitou, který vnitřní síly na ploše převádí na vnitřní síly prutu.

Popis:
Protože modelovat žebro jako plochu s výsledkovým prutem je podstatně složitější než použít prut typu žebro, vytvoříme pro převod prutu typu žebro na plošný model včetně výsledkového prutu následující program v EXCELu-VBA.

Pro převod žebra na plošný model je třeba provést následující kroky:

1.
Načtení parametrů žebra (průřez, orientace atd.)
2.
Vytvoření plochy žebra
3.
vytvořit výsledkový prut
4.
Smazání prutu typu žebro

V následujícím textu uvádíme pro ukázku výňatky z celého zdrojového kódu. Celý kód si můžete stáhnout v připojeném souboru na konci tohoto článku.

Načtení parametrů žebra

Uživatel má možnost vybrat příslušné žebro k převodu v rozhraní programu. K tomu je třeba pracovat s funkcí EnableSelections. Dokud je funkce EnableSelections nastavena na true, budou se z RFEMu načítat pouze vybrané prvky. Načtení vybraného prutu pak bude vypadat následovně.

' get interface of active model
Set iMod = iApp.GetActiveModel

' get interface of (structural) model data
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData

' get selected member
iModData.EnableSelections True

Dim mems() As RFEM5.Member
Dim selMem As RFEM5.Member
mems = iModData.GetMembers
selMem = mems(0)

iModData.EnableSelections False

Pro modelování žebra jsou zapotřebí následující parametry:

Průřez žebra, čísla ploch a spolupůsobící šířky
Orientace žebra
Materiál žebra

V programu RFEM je žebro typem prutu. Při programování přes rozhraní COM to znamená, že data žebra se musí načíst přes dvě různá rozhraní. Zaprvé je to rozhraní pro prut a zadruhé rozhraní pro žebro. Rozhraní na žebro lze vyvolat přes IModelData.GetRib. GetRib čeká na číslo žebra, které je v prutu obsaženo prostřednictvím Member.RibNo.

' get parameters of rib
' #####################
Dim iRb As RFEM5.IRib
Set iRb = iModData.GetRib(selMem.RibNo, AtNo)

Dim selRb As RFEM5.Rib
selRb = iRb.GetData

Dim rbCrsc As RFEM5.RibCrossSection
rbCrsc = iRb.GetRibCrossSection

Rozhraní na žebro pak nabízí dva různé prvky: obecné údaje o žebru přes strukturu Rib a údaje o průřezu žebra přes RibCrossSection. Rib obsahuje čísla ploch, polohu žebra a spolupůsobící šířky. RibCrossSection obsahuje označení a rozměry vnitřního průřezu žebra, který používá také RF-CONCRETE Members (ITCU).

Dále je potřeba také orientace, která je dána lokálním osovým systémem prutu. Přístup k osovému systému zajišťuje rozhraní na prut. Funkce IMemer.GetLocalCoordinateSystem vrací strukturu CoordinateSystem.

Dim cosy As RFEM5.CoordinateSystem
cosy = iModData.GetMember(selMem.no, AtNo).GetLocalCoordinateSystem(0#).GetData

GetLocalCoordinateSystem ještě čeká na x-místo na prutu, které zde bylo nastaveno na 0,0, respektive na počátek. Kromě uvedených parametrů je zapotřebí dále materiál prutu, který obdržíme přes průřez prutu.

Dim selCrsc As RFEM5.CrossSection
selCrsc = iModData.GetCrossSection(selMem.StartCrossSectionNo, AtNo).GetData

Vytvoření plochy žebra

Program se nejdříve vytvoří pouze pro přímá žebra na kladné straně z. Protože žebro může ležet také šikmo v prostoru, měla by se vytvořit plocha na základě orientace prutu. Proměnná cosy pro lokální osový systém prutu obsahuje směrový vektor pro lokální z osu cosy.AxisZ s příslušnými třemi hodnotami x, y a z. Tento vektor je normován tak, že při jeho vynásobení výškou žebra udává vzdálenost a směr spodní hrany žebra. Pro hraniční linie plochy žebra se tedy tento vektor vynásobí výškou žebra a přičte se k počátečnímu a koncovému uzlu. Získají se tak oba koncové uzly dolní hrany plochy žebra. Je třeba si přitom uvědomit, že k výšce žebra náleží také polovina tloušťky plochy spolupůsobící šířky. Pro zjednodušení se použije pouze tloušťka plochy na první straně (-y v lokálním osovém systému) od průřezu žebra (UpperLeftFlangeThickness). Poté, co jsou k dispozici uzly, je možné vytvořit hranici...