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 linia będzie wyświetlana jak przerywana, nawet kiedy właściwości obiektu będą przewidywały wyświeltanie linii ciągłej.


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

 

Wyswietlanie obiektow

 

Polecenie do uruchomienia skryptu LISP: Podswietl i Wygas

 

Kod źródłowy z opisem

 

;;; Wyświetlanie obiektów
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: Podswietl 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)

 

Wykonanie w ZWCAD 2023

wyswietlanie elementow

 

Wykonanie w ZWCAD 2015

LISP WyswietlanieObiektow 2015

Wykonanie w ZWCAD Classic

LISP WyswietlanieObiektow Classic