808x
004771
2020-10-14

Pytanie

Czy można tworzyć widoczności za pomocą interfejsu COM?


Odpowiedź:

Tak, istnieje możliwość tworzenia widoczności przez interfejs COM (RF‑COM3/RS‑COM6). W poniższym kodzie najpierw elementy są wybierane do widoczności. Odbywa się to poprzez Selekcje. Najpierw należy je aktywować za pomocą opcji „rfEnableSelections”, a następnie wybrać obiekty za pomocą opcji „rfSelectObjects”.

Sub set_visibility ()
    
' pobierz interfejs z otwartego modelu i zablokuj licencję/program
Dim iModel As RFEM3.IrfStructure3
Ustaw iModel = GetObject(, "RFEM3.Structure")
iModel.rfGetApplication.rfLockLicence
    
On Error GoTo e
    
' Pobierz interfejs dla danych modelu
Dim iModData As RFEM3.IrfStructuralData4
Ustaw iModData = iModel.rfGetStructuralData

' pobierz interfejs do wyświetlenia
Dim iView As RFEM3.IrfView2
Ustaw iView = iModel.rfGetActiveView
' usuń stare widoki
iView.rfDeletePartialView "test | widok"
iView.rfDeletePartialView "test | widok2"
iView.rfDeletePartialView "test|view_add"
iView.rfDeletePartialView "test|view_rev"
iView.rfDeletePartialView "test | widok_różnic"

' utwórz pierwszy widok
iModData.rfSelectObjects STR_MEMBER, "3-4"
iView.rfSetPartialView "test | widok"
' iView.rfSelectPartialView "test | widok", PVM_SHOW, Prawda, Prawda

' utwórz drugi widok
iModData.rfSelectObjects STR_SURFACE, "1"
iModData.rfSelectObjects STR_MEMBER, "3"
iView.rfSetPartialView "test|view2"
' iView.rfSelectPartialView "test | widok2", PVM_SHOW, Prawda, Prawda

' utworzyć sumę z widoku 1 i 2
iView.rfSelectPartialView "test | widok", PVM_SELECT, prawda, prawda
iView.rfSelectPartialView "test | widok2", PVM_SELECT, False, Prawda
iView.rfSelectPartialView „”, PVM_SHOW_SELECTION_ONLY, prawda, prawda
iView.rfSetPartialView "test|view_add"


' utworzyć widok różnicowy 2 minus 1
' Najpierw utworzono widok odwrócony
iView.rfSelectPartialView "test | widok", PVM_SHOW, prawda, prawda
iView.rfSelectPartialView "test | view2", PVM_SHOW, False, True
iView.rfSelectPartialView „”, PVM_SHOW_REVERSE, prawda, prawda
iView.rfSelectPartialView „”, PVM_SELECT, prawda, prawda
iView.rfSetPartialView "test|view_rev"
iView.rfSelectPartialView „”, PVM_SHOW_REVERSE, prawda, prawda

' wybierz widok do odjęcia i widok odwrotny
iView.rfSelectPartialView "test | view_rev", PVM_SELECT, prawda, prawda
iView.rfSelectPartialView "test | widok", PVM_SELECT, False, Prawda
iView.rfSelectPartialView „”, PVM_SHOW_SELECTION_ONLY, prawda, prawda
iView.rfSelectPartialView „”, PVM_SHOW_REVERSE, prawda, prawda
iView.rfSelectPartialView „”, PVM_SELECT, prawda, prawda
iView.rfSetPartialView "test|view_diff"
iView.rfSelectPartialView „”, PVM_SHOW_SELECTION_ONLY, prawda, prawda

iView.rfSelectPartialView „”, PVM_SHOW_REVERSE, prawda, prawda
iView.rfCancelPartialView

    
e: Jeżeli Err.Number <> 0 to MsgBox Err.description, , Err.Source
    
iModel.rfGetApplication.rfUnlockLicence
Ustaw iModel = Nic

Zakończ sub

Widoczność można utworzyć za pomocą interfejsu „iView” oraz polecenia „rfSetPartialView”. Opis jest tutaj szczególnie istotny. Separator „|” zapewnia, że\u200b\u200bwidoczność o nazwie „widok” zostanie utworzona w grupie „test”.

Polecenie rfSelectPartialView służy do wyświetlania widoczności. Pierwszym argumentem jest nazwa widoczności. Jako drugi argument można wybrać różne polecenia. W zależności od polecenia widoczność jest wymagana lub nie.

Trzeci argument brzmi, czy wszystko, co do tej pory pokazano, powinno zostać dezaktywowane, czy nie. Jeśli więc chcesz wyświetlić również dwie widoczności, musisz zatwierdzić "Fałsz" przynajmniej przy wyborze drugiej widoczności.

Czwarty argument kontroluje, czy wszystko, co jest ukryte, ma być wyświetlane w tle, czy nie.

Oto lista ważnych poleceń drugiego argumentu:

PVM_SELECT - wybiera elementy w określonej widoczności

PVM_SHOW - pokazuje określoną widoczność

PVM_SHOW_SELECTION_ONLY - Po wybraniu elementów z widoczności mogą one być teraz wyświetlane samodzielnie.

PVM_SHOW_REVERSE - Wszystkie elementy do tej pory pokazane są na drugim planie i wyświetlane są wszystkie elementy z tła (odwracanie widoku).