;W tym przykładzie zajmiemy się kontrolowaniem sposobu wyświetlania obiektów w ZWCAD.
;Każdy utworzony obiekt w ZWCAD wyświetlany jest normalnie czyli zgodnie z jego właściwościami. Po wybraniu obiektu zostanie on podświetlony, czyli linie będź wyświetlane przerywane nawet kiedy właściwości obiektu będą przewidywały wyświeltanie linii ciągłej.
TrybNormalny

obiekt wyświetlany zgodnie z właściwościami

TrybPodswietlony

;obiekt podświetlony.


;Nie jest to stan stały, wystarczy zaznaczyć ten obiekt standardową funkcją ZWCADa i zmienić zaznaczenie by obiekt był wyświetlany normalnie. Również zamknięcie i ponowne otwarcie pliku spowoduje utratę efektu podświetlania

;By uzyskać taki efekt wystarczy użyć na obiekcie metody highlight
;(vlax-invoke-method obj 'highlight :vlax-true)
;aby wyłączyć ten efekt należy użyć tej samej metody, tym razem z parametrem :vlax-false.

;Przykład praktyczny poprosi Użytkownika o wybranie jednego obiektu i włączy lub wyłączy podświetlanie


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

Wykonanie w ZWCAD 2015+LISP WyswietlanieObiektow 2015

Wykonanie w ZWCAD ClassicLISP WyswietlanieObiektow Classic