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

技术文章

This article was translated by Google Translator

View original text

本系列文章的第一部分介绍了如何在RFEM中打开和创建模型。 第二部分在一个杆件实例上说明了如何创建和修改单元。 在此不再赘述在第1部分中描述的元素。

基础

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

图片 01 - 1-杆件单元结构
昏暗 iModelData 作为 iModelData
设置 iModelData = iModel.GetModelData()

最后,该接口允许您将数据传输到RFEM。

编辑模式

在RFEM中更改或创建数据后,必须将RFEM切换到编辑模式。 例如,在该模式下无法进行计算,并且只有在退出后才能传输数据。 要切换到处理,请使用PrepareModification()方法并退出FinishModification():

'在编辑模式下传输元素。
iModelData.PrepareModification
'...
iModelData.FinishModification

创建单元

目的是创建一个截面为IPE 100的低碳钢S235,从点P0(0,0,0)到点P1(1,0,0)的杆件。 为此必须首先创建节点。 在下面的示例中,使用数组是因为它在以后的程序更改中具有最大的灵活性:

'创建节点。
昏暗 nodeList(0 1) 作为 RFEM5.Node
nodeList(0).RefObjectNo = 0
nodeList(0)。否= 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中一样,节点列表作为字符串传输:

'创建线。
昏暗 lineList(0 0) 作为 RFEM5.Line
lineList(0).nodeList = “ 1.2”
lineList(0).Type = LineType.PolylineType

'在编辑模式下传输元素。
iModelData.PrepareModification
iModelData.SetLines lineList
iModelData.FinishModification

修改元素

首先创建截面需要创建材料。 在新的RFEM模型中,最后创建的模型中的材料始终被使用。 为了确保使用所需的材料,必须首先删除或更改所有现有材料。 删除所有现有材料并创建新材料是最简单的方法。 与创建新元素相反,在删除或修改时必须考虑单个元素的接口。 为此,请按照下列步骤操作:

'获取可用材料的数量。
昏暗 num 作为整数
num = iModelData.GetMaterialCount

'在现有材料上进行循环。
iModelData.PrepareModification
昏暗作为整数
对于 i = 0 num-1
'获取材料接口。
昏暗 IMAT 作为 RFEM5.IMererial
设置 iMat = iModelData.GetMaterial(i,AtIndex)
'删除材料。
iMat.Delete
下一个 i
iModelData.FinishModification

要获取材料的界面,请使用材料编号(AtNo)或所有材料列表中的索引。 与物料编号相反,索引从零开始并且没有空隙。

完成杆件

现在已经删除了所有材料,现在可以创建一个新的材料。 与RFEM一样,您可以直接通过材料库的名称访问材料。 为此,请使用TextID属性输入相应的字符串(有关详细信息,请参见SDK中的RF-COM-5.chm):

'从库中创建新材料。
昏暗 垫子(0 0) 作为 RFEM5.Material
垫(0).TextID = “ NameID |结构钢S 235 @ TypeID |钢@ NormID | DIN EN 1993-1-1-10”
垫(0)否= 1

'在编辑模式下传输元素。
iModelData.PrepareModification
iModelData.SetMaterials垫
iModelData.FinishModification
与材料一样,截面也被创建。 此外还指定材料编号:
'从库中创建新的截面。
昏暗 crs(0 0) 作为 RFEM5.CrossSection
crs(0).TextID = “ IPE 100”
crs(0).MaterialNo = 1
crs(0)。否= 1

'在编辑模式下传输元素。
iModelData.PrepareModification
iModelData.SetCrossSections crs
iModelData.FinishModification
由于已经为该杆件创建了所有元素,所以现在可以转移杆件:
'创建新的杆件。
昏暗 记忆(0 0) 作为 RFEM5.Member
mems(0).LineNo = 1
内存(0).StartCrossSectionNo = 1
mems(0).No = 1

'在编辑模式下传输元素。
iModelData.PrepareModification
iModelData.SetMembers内存
iModelData.FinishModification

就像在RFEM中一样,在杆件起点处指定截面就足够了,并且不必创建杆件铰链,而是自动假定杆件为刚体。

优化

以前,每个元素列表的编辑模式都是单独打开的。 为了提高处理速度,可以在一种编辑模式下传送所有元素。 例外情况是删除材料和创建新材料。 此处必须使用两个单独的块,因为不能在一个块中删除和创建元素:

'在编辑模式下删除元素。
iModelData.PrepareModification
昏暗作为整数
对于 i = 0 num-1
'获取材料接口。
昏暗 IMAT 作为 RFEM5.IMererial
设置 iMat = iModelData.GetMaterial(i,AtIndex)
'删除材料。
iMat.Delete
下一个 i
iModelData.FinishModification

'在编辑模式下传输元素。
iModelData.PrepareModification

iModelData.SetNodes nodeList
iModelData.SetLines lineList
iModelData.SetMaterials垫
iModelData.SetCrossSections crs
iModelData.SetMembers内存

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