1081x
004715
2020-09-10

通过 COM 接口选择对象

如何通过COM接口选择对象?


回复:

对于对象的选择,可使用接口 IModelData(或 IModeldata2 等)中的 "SelectObjects" 函数. Die Funktion erwartet den Objekttyp und die Objektnummer(n) als Zeichenkette. Hier ein kurzes Beispiel:

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

Im oberen Teil werden die Selektionen aktiviert und dann die Knoten 2 bis 3 sowie die Linien 1 und 3 selektiert. Danach werden die Linien und Knoten durch eine leere Zeichenkette wieder deselektiert.

Wenn Sie selektierte Objekte auslesen oder modifizieren wollen, benötigen Sie die Funktion "IModelData.EnableSelections" (oben ebenfalls im Code zu finden). Wenn die Funktion mit "True" aufgerufen wird, werden danach beispielsweise mit der Funktion "IModelData.GetNodes()" nur die selektierten Knoten ausgelesen.


作者

Günthel 先生为Dlubal 软件客户提供技术支持。

下载


;