(vlr-object-reactor owners data callbacks )
Tworzy reaktor wywoływany przy zdarzeniu związanym z poszczególnymi objektami
Funkcja zwraca objekt reaktora
Parametry wywołania funkcji:
- owners - lista obserwowanych obiektów
- data - Dane AutoLISP - może to byc nazwa reaktora , może być nil
- callbacks - lista - para elementów: nazwa wydarzenia, funkcja wywoływana przez reaktor
Obsługiwane wydarzenia:
:vlr-erased - Objekt został usunięty.
:vlr-unerased - Objekt został "przywrócony" znacznik usunięcia został anulowany - np operacja undo
:vlr-openedForModify - Objekt został otwarty do modyfikacji - jeszcze nie został zmodyfikowany.
:vlr-modified - Objekt został zmodyfikowany.
przykład:
(vl-load-com)
(defun c:TestReaktor(/ vname vnamelist)
(setq vname (vlax-ename->vla-object (car (entsel "\nWybierz element do którego chcesz dodać reaktor: "))))
(setq vnamelist (list vname))
(vlr-object-reactor vnamelist nil '((:vlr-modified . modified )))
)
(defun modified( object reactor lista_parametrów )
; lista argumentów funkcji wywoływanej przez reaktor jest stała i są to:
; - objekt na którym wywoływany jest reaktor - np polilinia która została wybrana w czasie działania funkcji: TestReaktor
; - obiekt reaktora który wywołał funkcję.
; - lista_parametrów - lista zależna od tego jakie zdarzenie wywołuje funkcję. w przypadku zdarzeń :vlr-erased :vlr-unerased :vlr-openedForModify :vlr-modified jest to nil
(print (strcat
"Długość elementu: "
(vl-princ-to-string (vlax-get-property notifier-object 'Length))))
)