470x
001846
10.9.2020

FAQ 004715 | Jak mohu vybrat objekty pomocí rozhraní COM?

Dotaz:
Jak mohu vybrat objekty pomocí rozhraní COM?

Odpověď:
Pro výběr objektů je k dispozici v IModelData (resp. také v IModeldata2 apod.) a podobně). 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()".