833x
004688
2020-09-01

Pytanie

Jak mogę zmodyfikować ustawienia siatki ES za pomocą interfejsu COM?


Odpowiedź:

Ogólne ustawienia siatki ES można modyfikować za pomocą interfejsu IFeMeshSettings. Ten interfejs znajduje się w IModel> IModelData> ICalculation. Rysunek 01 pokazuje, które elementy można zmodyfikować/wyświetlić.

Oto przykład kodu, w którym docelowa długość elementów ES jest ustawiona na 100 mm. Ponadto aktywowany jest podział prętów o takim samym rozmiarze elementu, a minimalny podział jest ustawiony na 3 elementy:

Sub mesh_params ()

Dim iApp As RFEM5.Application

' pobierz interfejs dla danych modelu
Dim iModel As RFEM5.model
Set iModel = GetObject(, "RFEM5.Model")

On Error GoTo e

Jeśli nie iModel jest niczym, to
    
' pobranie interfejsu do aplikacji i zablokowanie licencji
Ustaw iApp = iModel.GetApplication ()
iApp.LockLicense
    
' pobierz interfejs do danych modelu
Dim iModdata As RFEM5.IModelData2
Ustaw iModdata = iModel.GetModelData
    
' pobierz interfejs do obliczeń
Dim iCalc As RFEM5.ICalculation2
Ustaw iCalc = iModel.GetCalculation ()
    
' Pobierz interfejs do ustawień siatki
Dim iMeshSet As RFEM5.IFeMeshUstawienia
Ustaw iMeshSet = iCalc.GetFeMeshUstawienia
    
' uzyskać ogólne ustawienia siatki
Dim meshGen As RFEM5.FeMeshGeneralSettings
meshGen = iMeshSet.GetGeneral
    
meshGen.ElementLength = 0,1
    
' wstawić nowe ogólne ustawienia siatki
iModdata.PrepareModification
iMeshSet.Set General meshGen
iModdata.FinishModification
    
' uzyskać ustawienia pręta siatki
Dim meshMem As RFEM5.FeMeshMembersUstawienia
meshMem = iMeshSet.GetMembers
    
meshMem.DivideStraightMembers = True
meshMem.ElementLength = 0,1
siatkiMem.MinStraightMemberDivisions = 3
    
' wstawić nowe ustawienia pręta siatki
iModdata.PrepareModification
iMeshSet.SetMembers meshMem
iModdata.FinishModification
    
    
iApp.UnlockLicense
End If

e: Jeżeli Err.Number <>0 Wtedy
MsgBox Err.description, , Err.Source
End If
iApp.UnlockLicense
Ustaw iApp = Nic
Ustaw iModel = Nic

Zakończ sub


Podprogram jest również uzupełniany o procedurę przechwycenia błędu (On Error GoTo e) i podobnie jak w przypadku modyfikacji innych elementów wymagany jest blok Prepare-/FinishModification. Tutaj blok jest tworzony za pomocą interfejsu IFeMeshSettings.


Autor

Pan Günthel zapewnia wsparcie techniczne klientom firmy Dlubal Software i zajmuje się ich zapytaniami.