478x
002411
2021-03-05

[EN]常见问题解答004961 | 如何删除模型中的所有节点或杆件?

问题:
例如,如何使用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 =无

结束子区域

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

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