494x
001846
2020-09-10

[EN] FAQ 004715 | Jak mogę wybierać obiekty za pomocą interfejsu COM?

Pytanie:
Jak mogę wybierać obiekty za pomocą interfejsu COM?

Odpowiedź:
Do wyboru obiektów służy funkcja "SelectObjects" w interfejsie IModelData (lub IModeldata2 i tym podobne). Funkcja oczekuje, że typ obiektu i jego numery zostaną podane w postaci łańcucha znaków. Oto krótki przykład:

Subselect_objects ()

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

On Error GoTo e

    Dim iModdata As IModelData2
    Ustaw iModdata = model.GetModelData

    ' włącz Wybory
    iModdata.EnableSelections Prawda

    ' wybierz węzły 2-3 oraz linie 1 i 3
    iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
    iModdata.SelectObjects ModelObjectType.LineObject, "1,3"

    ' Odznacz węzły i linie
    iModdata.SelectObjects ModelObjectType.NodeObject, ""
    iModdata.SelectObjects ModelObjectType.LineObject, ""

e:  Jeżeli Err.Number 0 to MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense
Ustaw iModdata = Nic
Ustaw model = Nic

End Sub

W górnej części następuje aktywacja wyboru, a następnie wybierane są węzły od 2 do 3 oraz linie 1 i 3. Następnie linie i węzły są odznaczane przez pusty ciąg znaków.

Do odczytania lub modyfikacji wybranych obiektów potrzebna jest funkcja "IModelData.EnableSelections" (znajduje się również powyżej w kodzie). Jeżeli funkcja jest pobierana za pomocą opcji „True”, na przykład tylko wybrane węzły są uzyskiwane za pomocą funkcji „IModelData.GetNodes ()”.