836x
004771
2020-10-14

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