Domanda:
È possibile creare visibilità utilizzando l'interfaccia COM?
Risposta:
Sì, è possibile creare visibilità tramite l'interfaccia COM (RF‑COM3/RS‑COM6). Nel codice seguente, gli elementi vengono prima selezionati per una visibilità. Questo viene fatto tramite Selezioni. Innanzitutto, attivali con "rfEnableSelections", quindi puoi utilizzare "rfSelectObjects" per selezionare gli oggetti:
Sottoinsieme_visibilità()
' get interface from the opened model and lock the licence/program
Dim iModel As RFEM3.IrfStructure3
Imposta iModello = GetObject(, "RFEM3.Struttura")
iModel.rfGetApplication.rfLockLicence
On Error GoTo e
' ottieni l'interfaccia per i dati del modello
Dim iModData As RFEM3.IrfStructuralData4
Imposta iModData = iModel.rfGetStructuralData
' ottieni l'interfaccia per la visualizzazione
Dim iView come RFEM3.IrfView2
Imposta iView = iModel.rfGetActiveView
' rimuovi le vecchie viste
iView.rfDeletePartialView "test|view"
iView.rfDeletePartialView "test|view2"
iView.rfDeletePartialView "test|view_add"
iView.rfDeletePartialView "test|view_rev"
iView.rfDeletePartialView "test|view_diff"
' crea la prima vista
iModData.rfSelectObjects STR_MEMBER, "3-4"
iView.rfSetPartialView "prova|vista"
' iView.rfSelectPartialView "test|view", PVM_SHOW, True, True
' crea una seconda vista
iModData.rfSelectObjects STR_SURFACE, "1"
iModData.rfSelectObjects STR_MEMBER, "3"
iView.rfSetPartialView "test|view2"
' iView.rfSelectPartialView "test|view2", PVM_SHOW, True, True
' crea la somma dalla vista da 1 e 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"
' crea vista differenziale 2 meno 1
' prima vista invertita creata
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
' seleziona vista per sottrarre e invertire la vista
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.rfAnnullaVista parziale
e: If Err.Number 0 Then MsgBox Err.description, , Err.Source
iModel.rfGetApplication.rfUnlockLicence
Imposta iModel = Niente
End Sub
È possibile utilizzare l'interfaccia "iView" e il comando "rfSetPartialView" per creare una visibilità. La descrizione è particolarmente importante qui. Il separatore "|" assicura che la visibilità con il nome "vista" sia creata nel gruppo "prova".
Il comando rfSelectPartialView viene utilizzato per visualizzare una visibilità. Il primo argomento è il nome della visibilità. Per il secondo argomento, è possibile selezionare vari comandi. A seconda del comando, è necessario o meno un nome della visibilità.
Il terzo argomento chiede se tutto ciò che è stato mostrato finora debba essere disattivato o meno. Quindi, se si desidera visualizzare anche due visibilità, è necessario confermare "Falso" almeno quando si seleziona la seconda visibilità.
Il quarto argomento controlla se tutto ciò che è nascosto deve essere visualizzato in background o meno.
Ecco un elenco di comandi importanti del secondo argomento:
PVM_SELECT - seleziona gli elementi nella visibilità specificata
PVM_SHOW - mostra la visibilità specificata
PVM_SHOW_SELECTION_ONLY - Dopo aver selezionato gli elementi dalle visibilità, ora possono essere visualizzati da soli.
PVM_SHOW_REVERSE - Tutti gli elementi mostrati finora passano in secondo piano e tutti gli elementi dallo sfondo vengono visualizzati (la visualizzazione è invertita).