;;; Wyświetlanie obiektów
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: Podświetl i Wygas
;;; Opis: https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/209-drukowanie-wielu-arkuszy.html

(defun XEntSel (tex / SelObj Sel)
;----------------------------------------------------------
; funkcja prosi Użytkownika o wskazanie obiektu
; Argumenty: treść komunikatu jaki ma być wyświetlany przed wskazaniem obiektu
; Wynik: obiekt, jeśli zostanie wskazany,
; nil, jeśli nic nie zostanie wskazane
;----------------------------------------------------------
(setq Sel(vl-catch-all-apply 'entsel (list tex)))
(if Sel (progn
(if (vl-catch-all-error-p Sel)
(progn
(prompt (vl-catch-all-error-message Sel))
(setq SelObj nil )
)
(progn
(setq SelObj (vlax-ename->vla-object(car Sel)))
)
)
))
SelObj
)
(defun C:podswietl ( / wybrany)
(setq wybrany (XEntSel "wskaż obiekt do podświetlenia" ))
(vlax-invoke-method wybrany 'highlight :vlax-true)
nil
)
(defun C:usunpodswietlenie ( / wybrany)
(setq wybrany (XEntSel "wskaż obiekt do usunięcia podświetlenia" ))
(vlax-invoke-method wybrany 'highlight :vlax-false)
nil
)
;W podobny sposób można wogóle wyłączyć wyświetlanie obiektów, Wystarczy zmienić właściwość visible obiektu.
;Ta sama funkcja wyłączająca widoczność obiektu. tej funkcji należy używać ostrożnie, pamiętając że, po
; wyłączeniu widoczności obiektu nie będzie możliwości jego ponownego wybrania funkcja entsel.
; Właściwość ta jest zapisywana do obiektu na stałe, więc obiekt raz wyłączony pozostanie taki do łączenia
; jego widoczności. Nawet zamknięcie i ponowne uruchomienie pliku nie zmieni tego stanu. Konieczne jest jego
; włącznie poprzez nadanie odpowienio właściwości przez funkcję LISP.
; wyłączony w ten sposób obiekt może być zaznaczony przez interface użytkownika ZWCAD np przez [CTRL]+[A]. Nie
; ma możliwości włączenia widoczności obiektu przez standardową funkcję ZWCADa.
(defun C:Wygas ( / )
(setq wybrany (XEntSel "wskaż obiekt do wygaszenia" ))
(vlax-put-property wybrany 'visible :vlax-false )
)
(defun Podswietl-UsunPodswietlenie (obj / )
(vlax-put-property obj 'visible :vlax-true )
)
;(Wyswietl wybrany)