1024x
004715
2020-09-10

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

Model przyciemnienia Jak w RFEM5.model
Ustaw 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

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