Dotaz:
Je možné pomocí rozhraní COM vytvořit viditelnosti?
Odpověď:
Viditelnosti je možné vytvořit pomocí rozhraní COM (RF‑COM3/RS‑COM6). V následujícím kódu se nejdříve pro viditelnost vyberou prvky. To se provádí pomocí Selections. Nejdříve se aktivují pomocí "rfEnableSelections", poté je možné pomocí "rfSelectObjects" vybrat objekty:
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
' get interface for view
Dim iView As RFEM3.IrfView2
Set iView = iModel.rfGetActiveView
' remove old views
iView.rfDeletePartialView "test|view"
iView.rfDeletePartialView "test|view2"
iView.rfDeletePartialView "test|view_add"
iView.rfDeletePartialView "test|view_rev"
iView.rfDeletePartialView "test|view_diff"
' create first view
iModData.rfSelectObjects STR_MEMBER, "3-4"
iView.rfSetPartialView "test|view"
' iView.rfSelectPartialView "test|view", PVM_SHOW, True, True
' create second view
iModData.rfSelectObjects STR_SURFACE, "1"
iModData.rfSelectObjects STR_MEMBER, "3"
iView.rfSetPartialView "test|view2"
' iView.rfSelectPartialView "test|view2", PVM_SHOW, True, True
' create sum from view from 1 and 2
iView.rfSelectPartialView "test|view", PVM_SELECT, True, True
iView.rfSelectPartialView "test|view2", PVM_SELECT, False, True
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSetPartialView "test|view_add"
' create differential view 2 minus 1
' first created reversed view
iView.rfSelectPartialView "test|view", PVM_SHOW, True, True
iView.rfSelectPartialView "test|view2", PVM_SHOW, False, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfSelectPartialView "", PVM_SELECT, True, True
iView.rfSetPartialView "test|view_rev"
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
' select view to substract and reverse view
iView.rfSelectPartialView "test|view_rev", PVM_SELECT, True, True
iView.rfSelectPartialView "test|view", PVM_SELECT, False, True
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfSelectPartialView "", PVM_SELECT, True, True
iView.rfSetPartialView "test|view_diff"
iView.rfSelectPartialView "", PVM_SHOW_SELECTION_ONLY, True, True
iView.rfSelectPartialView "", PVM_SHOW_REVERSE, True, True
iView.rfCancelPartialView
e: If Err.Number 0 Then MsgBox Err.description, , Err.Source
iModel.rfGetApplication.rfUnlockLicence
Set iModel = Nothing
End Sub
Pomocí rozhraní "iView" a pomocí příkazu "rfSetPartialView" je možné vytvořit viditelnost. Zde je zvláště důležitý popis. Oddělovač "|" zajistí, aby viditelnost s názvem "view" byla vytvořena ve skupině "test".
Příkaz rfSelectPartialView slouží k zobrazení viditelnosti. Prvním argumentem je název viditelnosti. Pro druhý argument lze vybrat různé příkazy. V závislosti na příkazu je název viditelnosti vyžadován či nikoliv.
Třetí argument se ptá, zda se má vše, co bylo dosud zobrazeno, deaktivovat, nebo ne. Pokud je tedy vyžadováno přídavné zobrazení dvou viditelností, je třeba minimálně při výběru druhé viditelnosti potvrdit "False".
Čtvrtý argument určuje, zda se vše skryté má zobrazit ještě v pozadí, či nikoliv.
Zde je seznam důležitých příkazů druhého argumentu:
PVM_SELECT - vybere prvky v zadané viditelnosti
PVM_SHOW - zobrazí zadanou viditelnost
PVM_SHOW_SELECTION_ONLY - po výběru prvků z viditelností je nyní můžete zobrazit samostatně
PVM_SHOW_REVERSE - všechny dosud zobrazené prvky jdou do pozadí a všechny prvky z pozadí se zobrazí (zobrazení je obrácené).