914x
004181
2019-11-25

Criar uma barra resultante através da interface COM

Como é que posso criar uma barras resultante através da interface COM?


Resposta:

Em primeiro lugar, uma barra resultante é criada exatamente como uma barra normal:

  1. código.vb#
  2. Dim model As RFEM5.model
  3. Set model = GetObject(, "RFEM5.Model")
  4. model.GetApplication.LockLicense
  1. On Error GoTo e
  1. Dim data As IModelData
  2. Set data = model.GetModelData
  1. Dim members(0) As RFEM5.Member
  2. members(0).No = 3
  3. members(0).LineNo = 12
  4. members(0).Type = ResultBeamType
  5. members(0).StartCrossSectionNo = 1
  6. members(0).EndCrossSectionNo = 1
  7. members(0).Comment = "result beam 1"
  1. data.PrepareModification
  2. data.SetMembers members
  3. data.FinishModification
#/code#

Em seguida, a interface IMember tem de ser retirada da barra correspondente e utiliza-se o método GetExtraData para obter a interface para IResultMember. Agora, esta interface pode ser utilizada para ler ou escrever os dados do ResultMember. Tenha em atenção que é necessário um bloco Prepare-/Finishmodification ao escrever:

    Dim iMem As IMember
    Set iMem = data.GetMember(3, AtNo)
    
    Dim iRMem As IResultBeam
    Set iRMem = iMem.GetExtraData
    
    Dim RMem As ResultBeam
    RMem = iRMem.GetData
    
    RMem.IncludeSurfaces = "1"
    RMem.IncludeSolids = "all"
    
    RMem.Integrate = WithinCuboidGeneral
    
    Dim params(0 To 3) As Double
    
    RMem.Parameters = params
    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

A macro EXCEL concluída e o correspondente ficheiro de teste estão anexados.


Autor

O Eng. Günthel opera na área do apoio técnico para clientes.

Downloads


;