基本
RFEM中的杆件由多个或多或少相互依赖的元素组成。 如果缺少这些元素之一,则无法创建杆件。 必须遵循以下结构。
为了能够创建这种类型的单元,您必须获得结构数据的接口:
'获取模型数据接口。
暗淡 iModelData As iModelData 设置 iModelData = iModel.GetModelData()
该接口允许您最终将数据传输到RFEM。
编辑模式
在RFEM中的数据被修改或创建后,必须切换到编辑模式。 例如,不能在该模式下进行任何计算,并且数据只能在退出该模式后才能使用。 必须使用PrepareModification()方法切换到编辑模式,使用FinishModification()退出编辑模式:
'将元素转移到编辑模式。
iModelData.PrepareModification
'...
iModelData.FinishModification
创建单元
其目的是创建从点P0(0,0,0)到点P1(1,0,0)截面为IPE 100和杆件S235的杆件。 首先,需要创建节点。 在下面的示例中,使用数组,因为它代表了进一步修改程序的最大灵活性:
'创建节点。
暗淡 nodeList(0 收件人 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中完全相同的形式传输:
'创建线。
暗淡 lineList(0 收件人 0) As 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作为整数
对于 i = 0 收件人 num-1
'获取材料的接口。
暗淡 iMat As RFEM5.IMererial
设置 iMat = iModelData.GetMaterial(i,AtIndex)
'删除材料。
iMat.Delete
下一个 i
iModelData.FinishModification
您可以通过相关的材料编号(AtNo)或通过所有材料列表中的索引获取材料的接口。 与物料编号相反,索引从零开始并且没有空隙。
完成杆件
删除所有材料后,您可以创建一个新的材料。 与在RFEM中一样,也可以使用名称直接从材料库中导入材料。 为此,使用TextID属性输入相应的字符串(更多详细信息请参见SDK中的RF-COM 5.chm):
'从材料库创建新材料。
暗淡 垫子(0 收件人 0) As RFEM5.Material
mats(0).TextID = “名称ID | Steel S 235 @ TypeID | STEEL @ StandardID | DIN EN 1993-1-1-10”
mats(0).No = 1
'将元素转移到编辑模式。
iModelData.PrepareModification
iModelData.SetMaterials垫
iModelData.FinishModification
截面的创建方法与材料相同。 此外,还指定了物料编号:
'从库中创建新的截面。
暗淡 crs(0 收件人 0) As RFEM5.CrossSection
crs(0).TextID = “ IPE 100”
crs(0).MaterialNo = 1
crs(0).No = 1
'将元素转移到编辑模式。
iModelData.PrepareModification
iModelData.SetCrossSections crs
iModelData.FinishModification
由于该杆件的所有元素都已经创建,所以杆件现在可以被转移:
'创建新的杆件。
暗淡 内存(0 收件人 0) As RFEM5.Member
mems(0).LineNo = 1
mems(0).StartCrossSectionNo = 1
mems(0).No = 1
'将元素转移到编辑模式。
iModelData.PrepareModification
iModelData.SetMembers内存
iModelData.FinishModification
在杆件始端指定截面就足够了,与RFEM一样。 不需要创建杆端铰,
优化和成本/二氧化碳排放估算
到目前为止,已经针对每个元素分别检索了编辑模式。 为了提高数据处理的速度,可以在一个编辑模式下传送所有元素, 例外情况是删除材料和创建新的材料。 在这种情况下必须使用两个分开的块,因为在一个块中不能删除和创建单元:
'在编辑模式下删除元素。
iModelData.PrepareModification
暗淡 i作为整数
对于 i = 0 收件人 num-1
'获取材料的接口。
暗淡 iMat As 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提交的结构构件的基础。 非线性杆件释放或节点支座,包括附加嵌套,是异常情况。 这些元素将在本系列的后续文章中介绍。