VBA中的COM接口| 2.1创建会员

技术文章

关于COM接口的文章系列的第一部分描述了在RFEM中打开和创建模型。第二部分介绍如何在成员示例上创建和修改元素。第1部分中描述的元素将不再在此处解释。

基础知识

RFEM中的杆由几个元素组成,这些元素或多或少地相互依赖。如果缺少其中一个元素,则无法创建人员。必须遵守以下层次结构。

1 - 员工的元素层次结构

为了能够创建这样的元素,必须获取结构数据(英语:Structural Data)的接口(英语:Interface):

' Interface für Modelldaten holen.
Dim iModelData As iModelData
Set iModelData = iModel.GetModelData()

该接口最终允许将数据传输到RFEM。

编辑模式

只要在RFEM中更改或创建数据,就必须将RFEM切换到处理模式。例如,在此模式下,不能执行任何计算,并且传输的数据也仅在终止后可用。要切换到处理,必须使用方法PrepareModification()并离开FinishModification():

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification
' ...
iModelData.FinishModification

创建元素

目的是生产一个带有IPE 100截面的杆,结构钢S235,从点P0(0,0,0)到点P1(1,0,0)。为此,必须首先创建节点。以下示例使用数组,因为它为进一步的程序更改提供了最大的灵活性:

' Knoten anlegen.
Dim nodeList(0 To 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

如前所述,然后在PrepareModification()和FinishModification()方法中传递节点数据数组。以下事实对于编号很重要:如果传输了一个新元素并且其中指定的数字已经存在,则不会覆盖现有元素,但该元素将附加到列表的末尾。输入零时,元素将自动设置为下一个空缺。

线的创建类似于小的差异,当然,这里必须引用节点。节点列表作为字符串传递,就像在RFEM中一样:

' Linien anlegen.
Dim lineList(0 To 0) As RFEM5.Line
lineList(0).nodeList = "1,2"
lineList(0).Type = LineType.PolylineType

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification
iModelData.SetLines lineList
iModelData.FinishModification

改变元素

首先需要创建材料来创建横截面。在新的RFEM模型中,始终首先使用上次创建的模型中的材料。为确保使用所需材料,必须首先删除或更改所有现有材料。删除所有现有材料和创建新材料是最简单的方法。与创建新元素相反,在删除或更改时,必须解决各个元素的界面。为此,请执行以下操作:

' Anzahl der vorhandenen Materialien holen.
Dim num As Integer
num = iModelData.GetMaterialCount

' Schleife über vorhandene Materialien.
iModelData.PrepareModification
DimAs Integer
For i = 0 To num - 1
' Schnittstelle zum Material holen.
Dim iMat As RFEM5.IMaterial
Set iMat = iModelData.GetMaterial(i, AtIndex)
' Material löschen.
iMat.Delete
Next i
iModelData.FinishModification

通过材料编号(AtNo)或通过所有材料列表中的索引检索材料的界面。与材料编号不同,索引从零开始并且没有间隙。

完成工作人员

现在已删除所有材料,可以创建新材料。就像在RFEM下一样,材料也可以通过其名称直接从材料库中寻址。为此,请使用TextID属性输入相应的字符串(有关详细信息,请参阅SDK中的RF-COM-5.chm):

' Neues Material aus Bibliothek anlegen.
Dim mats(0 To 0) As RFEM5.Material
mats(0).TextID = "NameID|Baustahl S 235@TypeID|STEEL@NormID|DIN EN 1993-1-1-10"
mats(0).No = 1

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification
iModelData.SetMaterials mats
iModelData.FinishModification
Ebenso wie das Material wird auch der Querschnitt angelegt. Zusätzlich wird noch die Materialnummer angegeben:
' Neuen Querschnitt aus Bibliothek anlegen.
Dim crs(0 To 0) As RFEM5.CrossSection
crs(0).TextID = "IPE 100"
crs(0).MaterialNo = 1
crs(0).No = 1

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification
iModelData.SetCrossSections crs
iModelData.FinishModification
Da nun alle Elemente für den Stab angelegt wurden, kann jetzt der Stab übergeben werden:
' Neuen Stab anlegen.
Dim mems(0 To 0) As RFEM5.Member
mems(0).LineNo = 1
mems(0).StartCrossSectionNo = 1
mems(0).No = 1

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification
iModelData.SetMembers mems
iModelData.FinishModification

就像使用RFEM一样,条形开始处的横截面规格已经足够,并且不需要创建杆端关节,但是自动地假设它是刚性的。

优化

以前,单独为每个项目列表调用编辑模式。要提高处理速度,可以在编辑模式下传递所有元素。例外是删除材料和创建新材料。这里必须使用两个单独的块,因为无法在块中删除和创建元素:

' Elemente im Bearbeitungsmodus löschen.
iModelData.PrepareModification
DimAs Integer
For i = 0 To num - 1
' Schnittstelle zum Material holen.
Dim iMat As RFEM5.IMaterial
Set iMat = iModelData.GetMaterial(i, AtIndex)
' Material löschen.
iMat.Delete
Next i
iModelData.FinishModification

' Elemente im Bearbeitungsmodus übergeben.
iModelData.PrepareModification

iModelData.SetNodes nodeList
iModelData.SetLines lineList
iModelData.SetMaterials mats
iModelData.SetCrossSections crs
iModelData.SetMembers mems

iModelData.FinishModification

摘要和展望

所提出的程序构成了可通过COM解决的所有结构要素的基础。一个例外是非线性杆端关节或节点轴承,它们包含额外的嵌套。因此,即将到来的贡献将涉及这些要素。

下载

更多信息

联系我们

Kontakt zu Dlubal

如果您有任何关于我们产品的问题或者建议,请联系我们的技术支持或者搜索我们的问题和解答 (FAQs)。

+49 9673 9203 0

(可要求接中文热线)

info@dlubal.com

RFEM 主程序 RFEM
RFEM 5.xx

主程序

结构设计与有限元­分析软件(FEA)可以用于建立 平面与空间结构模型,适用于由杆件、面、 板、墙、折板、膜、壳、实体以及接触单元等的建模与分析计算。

首个许可价格
3,540.00 USD
RFEM 其他附加模块
RF-COM 5.xx

附加模块

RFEM 可编程序的 COM 接口

首个许可价格
580.00 USD