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 ()”.