1023x
004715
10.9.2020

Dotaz

Jak mohu vybrat objekty pomocí rozhraní COM?


Odpověď:

Pro výběr objektů je k dispozici v rozhraní IModelData (resp. také v IModeldata2 apod.) funkce "SelectObjects". Funkce očekává typ objektu a čísla objektů jako řetězec. Zde je krátký příklad:

Sub select_objects()

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

On Error GoTo e
    
Dim iModdata As IModelData2
Set iModdata = model.GetModelData
    
' enable Selections
iModdata.EnableSelections True
    
' select nodes 2-3 and lines 1 and 3
iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
iModdata.SelectObjects ModelObjectType.LineObject, "1,3"
    
' deselect nodes and lines
iModdata.SelectObjects ModelObjectType.NodeObject, ""
iModdata.SelectObjects ModelObjectType.LineObject, ""
    
    
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense
Set iModdata = Nothing
Set model = Nothing

End Sub

V horní části se aktivují výběry a poté se vyberou uzly 2 až 3 a linie 1 a 3. Poté se linie a uzly odznačí pomocí prázdného řetězce.

Pokud chcete číst nebo upravovat vybrané objekty, potřebujete funkci "IModelData.EnableSelections" (nachází se také v kódu výše). Pokud je funkce označena jako "True", načtou se pouze vybrané uzly například pomocí funkce "IModelData.GetNodes()".