2088x
001379
20.12.2016

Rozhraní COM ve VBA | 2.1 Vytvoření prutu

Im ersten Teil der Serie ging es um das Öffnen und Erstellen eines Modells in RFEM. Im zweiten Teil soll es am Beispiel eines Stabes um das Anlegen und Verändern von Elementen gehen. Die Elemente aus Teil 1 werden daher nicht erneut angesprochen.

Základy

Prut v RFEMu se skládá z několika prvků, které jsou více či méně na sobě závislé. Pokud některý z těchto prvků chybí, nelze prut vytvořit. Je třeba respektovat následující strukturu.

Aby bylo možné vytvořit tento typ prvku, je třeba získat rozhraní pro statická data:

'Získat rozhraní pro data modelu.
Dim iModelData As iModelData

Set iModelData = iModel.GetModelData ()

Toto rozhraní umožňuje konečný přenos dat do programu RFEM.

Editační režim

Jakmile je třeba upravit nebo vytvořit data v programu RFEM, je třeba přepnout do režimu úprav. Například v tomto režimu nelze provádět žádné výpočty a přenesená data jsou k dispozici až po ukončení režimu. Metodu PrepareModification () je třeba přepnout do režimu úprav a ukončit režim FinishModification ():

'Převzít prvky do režimu úprav.
iModelData.PrepareModification
'...
iModelData.FinishModification

Vytvoření prvku

Cílem je vytvořit prut s průřezem IPE 100 a konstrukční ocelí S235 z bodu P0 (0,0,0) do bodu P1 (1,0,0). Nejdříve je třeba vytvořit uzly. V následujícím příkladu je použito pole, protože představuje největší flexibilitu při dalších úpravách programu:

'Vytvořit uzly.
Dim nodeList (0 Komu 1)As RFEM5.Node
nodeList (0) .RefObjectNo = 0
nodeList (0) .No = 1
nodeList (0) .X = 0 #
nodeList (0) .Y = 0 #
nodeList (0) .Z = 0 #

nodeList (1) .RefObjectNo = 0
nodeList (1) .No = 2
nodeList (1) .X = 1 #
nodeList (1) .Y = 0 #
nodeList (1) .Z = 0 #

iModelData.PrepareModification
iModelData.SetNodes nodeList
iModelData.FinishModification

Jak jsme již zmínili výše, pole včetně dat z uzlů se přenáší metodami PrepareModification () a FinishModification (). Pro číslování je důležitá tato skutečnost: Pokud se má přenést nový prvek, který již obsahuje referenční čísla, stávající prvky se nepřepíšou, ale prvek se přidá na konec seznamu. Pokud zadáme nulu, prvek se automaticky nastaví na další volné místo.

Proces vytváření linií je obdobný, samozřejmě s menším rozdílem v odkazu na uzly. Seznam uzlů se přenáší jako řetězec přesně jako v programu RFEM:

'Vytvořit linie.
Dim lineList (0 Komu 0) As RFEM5.Line
lineList (0) .nodeList = "1,2"
lineList (0) .Type = LineType.PolylineType

'Převzít prvky do režimu úprav.
iModelData.PrepareModification
iModelData.SetLines lineList
iModelData.FinishModification

Úprava prvků

Pro vytvoření průřezu je třeba nejdříve vytvořit materiál. V novém modelu RFEM se vždy použijí materiály z dříve vytvořeného modelu. Aby bylo zajištěno použití příslušného materiálu, je třeba všechny stávající materiály smazat nebo změnit. Smazání všech existujících materiálů a vytvoření nového materiálu je v tomto případě nejjednodušší. Na rozdíl od vytváření nových prvků je třeba v případě smazání nebo změny aktivovat rozhraní jednotlivých prvků. Jedná se o následující kroky:

'Zjistit počet existujících materiálů.
Dim num Jako celé číslo
num = iModelData.GetMaterialCount

'Smyčka přes stávající materiály.
iModelData.PrepareModification
Dim iJako celé číslo
For i = 0Komu num - 1
'Dostaňte rozhraní k materiálu.
Dim iMat As RFEM5.IMaterial
Set iMat = iModelData.GetMaterial (i, AtIndex)
'Smazat materiál.
iMat.Delete
Next i
iModelData.FinishModification

Rozhraní materiálu lze získat buď pomocí příslušného čísla materiálu (AtNo), nebo pomocí indexu v seznamu všech materiálů. Na rozdíl od čísla materiálu začíná index na nule a nemá žádné mezery.

Dokončení prutu

Po smazání všech materiálů můžete vytvořit nový materiál. Stejně jako v programu RFEM je i zde možné přenášet materiál pomocí názvu přímo z databáze materiálů. Za tímto účelem se pomocí vlastnosti TextID zadá příslušný řetězec (více viz RF -COM 5.chm v SDK):

'Vytvořit nový materiál z databáze materiálů.
Dim rohože (0 Komu 0) As RFEM5.Materiál
mats (0) .TextID = "NameID | Steel S 235 @ TypeID | STEEL @ StandardID | DIN EN 1993-1-1-10"
mats (0) .No = 1

'Převzít prvky do režimu úprav.
iModelData.PrepareModification
Podložky iModelData.SetMaterials
iModelData.FinishModification
Průřez se vytvoří stejným způsobem jako materiál. Dále se uvede číslo materiálu:
'Vytvořit nový průřez z databáze.
Dim crs (0 Komu 0) As RFEM5.CrossSection
crs (0) .TextID = "IPE 100"
crs (0) .MaterialNo = 1
crs (0) .No = 1

'Převzít prvky do režimu úprav.
iModelData.PrepareModification
iModelData.SetCrossSection crs
iModelData.FinishModification
Protože byly vytvořeny všechny prvky prutu, lze prut převést nyní:
'Vytvořit nový prut.
Dim mems (0 Komu 0) As RFEM5.Member
mems (0) .LineNo = 1
mems (0) .StCartCrossSectionNo = 1
mems (0) .No = 1

'Převzít prvky do režimu úprav.
iModelData.PrepareModification
iModelData.SetMembers mems
iModelData.FinishModification

Stejně jako v programu RFEM i zde stačí zadat průřez na začátku prutu. Vytvoření kloubu na konci prutu není nutné, protože se automaticky předpokládá, že je tuhý.

Optimalizace

Režim úpravy byl dosud načten pro každý prvek zvlášť. Chcete-li zvýšit rychlost zpracování dat, můžete převést všechny prvky do jednoho režimu úprav, Výjimku tvoří mazání materiálů a vytváření nových materiálů. V takovém případě je nutné použít dva oddělené bloky, protože v jednom bloku nelze mazat a vytvářet prvky:

'Smazat prvky v režimu úprav.
iModelData.PrepareModification
Dim iJako celé číslo
For i = 0Komu num - 1
'Dostaňte rozhraní k materiálu.
Dim iMat As RFEM5.IMaterial
Set iMat = iModelData.GetMaterial (i, AtIndex)
'Smazat materiál.
iMat.Delete
Next i
iModelData.FinishModification

'Převzít prvky do režimu úprav.
iModelData.PrepareModification

iModelData.SetNodes nodeList
iModelData.SetLines lineList
Podložky iModelData.SetMaterials
iModelData.SetCrossSection crs
iModelData.SetMembers mems

iModelData.FinishModification

Shrnutí a výhled

Postupy vysvětlené v tomto článku tvoří základ pro všechny konstrukční prvky, které lze přenášet pomocí COM. Výjimkou jsou nelineární pruty nebo uzlové podpory, které zahrnují další vnoření. Tyto prvky budou vysvětleny v následujících článcích této řady.


Autor

Ing. Günthel zajišťuje technickou podporu zákazníkům.

Odkazy
Stahování