问题:
如何通过 COM 接口创建带“图”的杆件端铰?
答案:
为了创建非线性单元,例如使用图表或破坏创建杆件端部释放,必须首先创建杆件端部释放。 如果 RFEM 知道杆件端部释放,则可以使用 IMemberEndRelease 接口获得。 该接口使用方法 GetData() 和 SetData()。 这两种方法都能够读取或写入杆件端部释放类型的简单杆件端部释放数据以及非线性数据。
在下面的示例中,首先在杆件端部铰链中激活 x 方向的释放,然后在 x 方向上设置工作非线性。 在使用准备-完成-修改模块将这些数据传输到 RFEM 后,它会在内部创建非线性。 要输入数据,首先使用 GetData() 从杆件端部释放的接口中获取现有数据。
输入数据(非线性图)后,使用 SetData() 再次传递:
子集NLDiagram()
Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
出错时转到 e
Dim iApp As RFEM5.Application
设置 iApp = model.GetApplication
iApp.LockLicense
iApp.Show
Dim iModelData As RFEM5.iModelData
设置 iModelData = model.GetModelData
' 修改杆件端发布
' 设置 x 平移的非线性“图”
Dim iMemHing As RFEM5.IMemberHinge
设置 iMemHing = iModelData.GetMemberHinge(1, AtNo)
Dim memHing As RFEM5.MemberHinge
memHing = iMemHing.GetData()
memHing.TranslationalConstantX = 0
memHing.TranslationalNonlinearityX = WorkingDiagramType
' 设置新数据
iModelData.PrepareModification
iMemHing.SetData memHing
iModelData.FinishModification
' 创建图表
将 tbl1() 调暗为双精度
重新调整 tbl1 (1, 1)
tbl1(0, 0) = 0 ' ux
tbl1(0, 1) = 0 ' 像素
tbl1(1, 0) = 0.02 ' ux (mm)
tbl1(1, 1) = 2000 ' Px(N)
Dim nldHing as RFEM5.NonlinearityDiagram
nldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForce
nldHing.PositiveZoneType =DiagramAfterLastStepType.TearingDiagramType
nldHing.PositiveZone = tbl1
nldHing.Symmetric = True
Dim iNdiag As RFEM5.INonlinearityDiagram
设置 iNldiag = iMemHing.GetNonlinearity(AlongAxisX)
' 设置新数据
iModelData.PrepareModification
iNdiag.SetData nldHing
iModelData.FinishModification
e: 如果 Err.Number 0 那么 MsgBox Err.description, , Err.Source
模型.获取应用程序.解锁许可证
末端接头
该过程对节点支座和其他非线性问题类似。