907x
004181
2019-11-25

Вопрос

Как создать результирующую балку с помощью интерфейса COM?


Ответ:
Сначала создается результирующая балка, как и у нормального стержня:

Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

Dim data As IModelData
Set data = model.GetModelData

Размеры стержней (0) Как в RFEM5.Member
    
стержней (0) .No = 3
стержней (0) .LineNo = 12
члены (0) .Type = ResultBeamType
    
стержни (0) .StartCrossSectionNo = 1
стержни (0) .EndCrossSectionNo = 1
    
стержни (0) .Comment = "результирующая балка 1"

data.PrepareModification
элементы data.SetMembers
data.FinishModification

Затем необходимо взять интерфейс IMember у соответствующего элемента и использовать метод GetExtraData для получения интерфейса к IResultMember. Теперь этот интерфейс можно использовать для чтения или записи данных ResultMember. Обратите внимание, что блок Prepare-/Finishmodification необходим при записи:

Dim iMem As IMember
Установите iMem = data.GetMember (3, AtNo)
    
Dim iRMem как IResultBeam
Установите iRMem = iMem.GetExtraData
    
Dim RMem как ResultBeam
RMem = iRMem.GetData
    
RMem.IncludeSurfaces = "1"
RMem.IncludeSolids = "все"
    
RMem.Integrate = WithinCuboidGeneral
    
Дим параметры (от 0 до 3) как двойные
    
RMem.Parameters = параметры
RMem.Parameters (0) = 0,5
RMem.Parameters (1) = 0,5
RMem.Parameters (2) = 0,1
RMem.Parameters (3) = 0,1
    
data.PrepareModification
iRMem.SetData RMem
data.FinishModification

Готовый макрос EXCEL и соответствующий тестовый файл прилагаются.