筛选相关杆件
目的是将特定截面的杆件传递到 RF-/STEEL EC3 设计中。 在下面的示例中,应筛选所有截面为 IPE 300 的杆件。 为此,必须首先从主程序中获取所有截面:
' 创建所需截面的串crsc_desc =“IPE 300”
' 从 RFEM 获取所有截面变暗 crscs()As RFEM5. 截面crscs = iModelData.GetCrossSections
' 循环所有截面变暗 crsc_no只要crsc_no = -1变暗 i只要关于技术提问和解答: i = 0收件人 UBound(crscs, 1) ' 如果截面描述正确,保存截面编号If InStr(LCase(crscs(i).Description), LCase(crsc_desc)) > 0然后 crsc_no = crscs(i).No 退出End If更多 i
' 如果没有找到,则退出程序If crsc_no = -1然后第513话 "获取截面编号","没有截面 "" " & crsc_desc &” 在其描述中找到了“ ”!End If
截面描述应尽可能同步。 为此,首先通过 "LCase" 将截面描述和要搜索的字符串设置为小写字母,然后在截面描述中搜索该字符串。 如果没有找到合适的截面,截面编号保持在 -1,然后可以通过中止请求和确认。
在这一步之后截面编号就已知了,并且可以搜索具有该截面编号的杆件。 只应采用杆件始端和末端具有该截面的杆件:
' 为成员列表创建字符串并将其设置为零变暗 mems_str作为字符串mems_str = vbanullstr
' 从 RFEM 获取所有杆件变暗 内存()As RFEM5.Membermems = iModelData.GetMembers
' 循环所有杆件关于技术提问和解答: i = 0收件人 UBound(mems, 1)' 如果杆件的始端和末端都有这个截面编号,' 然后在字符串中输入这个数字If mems(i).EndCrossSectionNo = crsc_no然后If mems(i).EndCrossSectionNo = mems(i).StartCrossSectionNo然后 mems_str = mems_str & mems(i).No & ","End IfEnd If更多 i
' 如果没有找到成员,则退出程序If mems_str = vbanullstr然后第514话 “获取成员”,没有截面为“”的杆件 & crsc_desc &” ”找到了!End If
获取附加模块接口
到模块的链接与到 RFEM 或 RSTAB 的链接完全相同。 唯一的区别是打开一个已经打开的实例和打开一个新的实例没有区别,因为总是有一个已经打开的实例:
' 获取模块接口变暗 iStec3As STEEL_EC3.Module集 iStec3 = iModel.GetModule("STEEL_EC3")
接下来,删除所有现有的模块案例:
' 获取现有模块案例的数目变暗 数数只要计数 = iStec3.moGetCaseCount
' 如果有的话,删除表格中的第一个If 计数 > 0然后关于技术提问和解答: i = 0收件人 数 - 1 iStec3.moDeleteCase i,AT_INDEX更多 iEnd If
现在,您可以创建所需的工况,并使用之前创建的字符串输入要设计的杆件。
' 创建'优化'模块案例变暗 iStec3CaseAs STEEL_EC3.ICase集 iStec3Case = iStec3.moSetCase(1,“优化”)
' 设计用集杆件iStec3Case.moSetMemberList mems_str
最后,您可以输入所需的荷载组合:
' 设置荷载组合变暗 iStec3_uls_loads(0)收件人 2) As STEEL_EC3.ULS_LOAD
iStec3_uls_loads(0).DesignSituation = DS_FUNDAMENTALiStec3_uls_loads(0).No = 1iStec3_uls_loads(0).Type = ILOAD_GROUP
iStec3_uls_loads(1).DesignSituation = DS_FUNDAMENTALiStec3_uls_loads(1).No = 2iStec3_uls_loads(1).Type = ILOAD_GROUP
iStec3_uls_loads(2).DesignSituation = DS_FUNDAMENTALiStec3_uls_loads(2).No = 3iStec3_uls_loads(2).Type = ILOAD_GROUP
iStec3Case.moSetULSLoads iStec3_uls_loads
总结和展望
所有COM 可以控制的模块都可以使用本文中介绍的方法进行介绍。 提供的源代码和 Excel 文件可以帮助您更好地理解该主题。 在我的下一篇文章中,我想更深入地讨论这个问题,并解释模块中和主程序中的元素之间的联系。