779x
004961
2021-04-08

问题

例如,如何使用COM接口删除模型中的所有节点或杆件?


回复:

在模型数据接口中有删除对象(元素)功能“ DeleteObjects()”。 删除所有杆件的步骤如下:

子test_delete_objects()

iApp初版软件为RFEM5.Application
设置iApp = GetObject(,“ RFEM5.Application”)

iApp.LockLicense

iMod模块给RFEM5.IModel3
设置iMod = iApp.GetActiveModel


出现错误转到e

'获取模型数据的接口
将iModData设置为RFEM5.IModelData2
设置iModData = iMod.GetModelData
    
'得到所有的杆件。
Dim mems()As RFEM5.Member
mems()= iModData.GetMembers
    
''创建会员列表
将Dim mem_list设置为字符串
数值的整数
当i = 0到UBound(mems,1)
mem_list = mem_list&mems(i).no&“,”
下一个
    
'删除杆件
iModData.PrepareModification
iModData.DeleteObjects memberObject,mem_list
iModData.FinishModification
    
e:

如果Err.Number <> 0那么MsgBox错误描述,vbCritical,错误来源

iMod.GetApplication.UnlockLicense
设置iMod =无

结束子区域


请注意,“删除对象”功能只适用于对象编号,不适用于对象索引。 这些编号将作为字符串传输,并以逗号分隔。

出于这个原因,必须首先提取所有杆件。 然后翻阅了杆件栏目,所有的杆件编号输入到该字符串中。