404x
004195
7. November 2019

Frage

Wie kann ich über die COM-Schnittstelle einen Stab nachträglich verändern?


Antwort:

Um ein vorhandenes Element verändern zu können, muss das Interface zum entsprechenden Element geholt werden, hier am Beispiel eines Stabes:

    Dim iModel As RSTAB8.model
    Set iModel = GetObject(, "RSTAB8.Model")
    iModel.GetApplication.LockLicense
    
    Dim iModData As IModelData
    Set iModData = iModel.GetModelData
    
    Dim iMem As RSTAB8.IMember
    Set iMem = iModData.GetMember(1, AtNo)

Über diesen Code wird das Interface zum Stab 1 geholt, welcher bereits angelegt sein muss. Danach können über die Methode .GetData() des Interfaces die Stabdaten geholt werden.

Falls Daten modifiziert werden sollen (wie hier die Stabdrehung), können diese danach innerhalb eines Prepare-/FinishModification-Blocks mit der Methode .SetData() an das Programm übergeben werden:


    Dim mem As RSTAB8.Member
    mem = iMem.GetData
    
    mem.Rotation.Angle = 0.5
    mem.Rotation.Type = RSTAB8.Angle
   
    iModData.PrepareModification
    iMem.SetData mem
    iModData.FinishModification