404x
004691
2020-09-01

Вопрос

Как создать видимости через интерфейс COM?


Ответ:

Видимости можно создать с помощью модулей RF‑COM 3 / RS‑COM 6, причем в данных целях используется интерфейс IrfView. Элементы, которые должны входить в видимость, можно выбрать посредством функции rfSelectObjects:

Sub set_visibility()
' get interface from the opened model and lock the licence/program
Dim iModel As RFEM3.IrfStructure3
Set iModel = GetObject(, "RFEM3.Structure")
iModel.rfGetApplication.rfLockLicence

On Error GoTo e

' get interface for modeldata
Dim iModdata As RFEM3.IrfStructuralData4
Set iModdata = iModel.rfGetStructuralData

iModdata.rfSelectObjects STR_MEMBER, "1-2"
iModdata.rfSelectObjects STR_SURFACE, "6,14,17"

' get interface for view
Dim iView As RFEM3.IrfView2
Set iView = iModel.rfGetActiveView
   
iView.rfSetPartialView "test|view"

' select partial view
iView.rfSelectPartialView "test|view", PVM_SHOW, True, True


e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source

iModel.rfGetApplication.rfUnlockLicence
Set iModel = Nothing

End Sub

В данном примере были сначала выбраны Поверхность 6, 14 и 17 вместе со Стержнем 1 и 2. Затем была создана видимость данных элементов с названием «вид». Видимость «вид» находится в группе «тест». Ее создание прошло с помощью разделителя «|». После создания видимости, она все еще будет считаться выбранной, то есть она будет отображаться; в данном случае так будет PVM_SHOW относится к типу «RF_PARTIAL_VIEW_MODE», посредством которого можно также удалить видимость. Кроме того, данная функция позволяет указать, будут ли выбранные элементы отображаться в фоновом режиме.