374x
002005
2020-10-28

[ZH] 常见问题 004797 | 如何通过COM接口传递杆件有效长度?

问题:
如何通过COM接口传递杆件有效长度?

答案:
有效长度的系数通过杆件接口 IMember 进行传递,该接口称为 SetEffectiveLengths()。 使用 GetEffectiveLengths() 读出数据:

//获取运行 RFEM 应用程序的接口。
iApp = Marshal.GetActiveObject("RFEM5.Application") as IApplication;
iApp.LockLicense();

//获取到活动 RFEM 模型的接口。
iModel = iApp.GetActiveModel();

//获取模型数据的接口
IModelData2 iModData = iModel.GetModelData() as IModelData2;

//获取到成员 1 的接口
IMember iMem = iModData.GetMember(1, ItemAt.AtNo);

MembersEffectiveLengths memEffLen = iMem.GetEffectiveLengths();

memEffLen.No = 1;
memEffLen.CheckBucklingLoad = true;
memEffLen.Enabled = true;
memEffLen.FactorU = 1.1;
memEffLen.FactorV = 1.2;
memEffLen.FactorY = 1.3;
memEffLen.FactorZ = 1.4;

//设置新的有效长度数据
iModData.PrepareModification();
iMem.SetEffectiveLengths(memEffLen);
iModData.FinishModification();

请注意,只能读取结构的有效长度属性(例如 EffectiveLengthY)和临界屈曲荷载属性。