|
vlr-command-reactor |
| Autor |
Wiadomość |
perlon
Dołączył: 15 Maj 2010 Posty: 7
|
Wysłany: Sro Lut 09, 11 23:44 vlr-command-reactor
|
|
|
Witam.
Pytanie dotyczy reaktora jak w temacie wersja 2010.11.25(16241). W dokumentacji znalazłem taki oto przykład:
(vl-load-com)
(vlr-command-reactor nil '((:vlr-commandWillStart . commandWillStart)))
;;;define the callback function
(defun commandWillStart(reactor_object list)
(alert (vl-princ-to-string list))
)
Niestety nie działa
Dodanie po (vl-load-com) jeszcze (vl-load-reactors) nic nie poprawia.
Inne reaktory działają np. vlr-acdb-reactor a na command bez sukcesów.
Czy ma ktoś jakieś doświadczenia z tym reaktorem. Z góry dziękuję za każdą podpowiedź.
Przy okazji. Czy da się zdefiniować reaktory w VBA?
Pozdrawiam |
|
|
|
 |
kruszynski
Pomógł: 17 razy Dołączył: 02 Sty 2009 Posty: 312
|
Wysłany: Czw Lut 10, 11 14:39
|
|
|
Próbowałem uruchomić ten reaktor i u mnie działa bez problemów w LISP.
Może dopisał Pan tam coś więcej niż było w przykładzie i stąd problem.
W zasadzie wystarczy:
| Kod: | (vl-load-com)
(vlr-command-reactor nil '((:vlr-commandWillStart . commandWillStart)))
(defun commandWillStart(reactor_object lista)
(alert (vl-princ-to-string lista))
) |
po uruchomieniu dowolnego polecenia, jego nazwa wyświetli się w dodatkowym okienku na ekranie.
W vba jest to jeszcze łatwiejsze, wystarczy w oknie kodu ThisDocument, wybrać "BeginCommand" jak na załączonym obrazku,
VBAReaktory.jpg
|
 |
| Plik ściągnięto 32 raz(y) 112,78 KB |
|
|
|
|
 |
perlon
Dołączył: 15 Maj 2010 Posty: 7
|
Wysłany: Czw Lut 10, 11 16:14
|
|
|
Dzięki za podpowiedź.
Niestety w lisp'ie mi nie działa Nie wiem o co chodzi.
Czy to, że mam jednocześnie zainstalowaną werję POL i ENG może mieć jakieś znaczenie?
Mój zwcad.lsp
(vl-load-com)
(vlr-command-reactor nil '((:vlr-commandWillStart . commandWillStart)))
(defun commandWillStart(reactor_object lista)
(alert (vl-princ-to-string lista))
)
(princ "zwcad.lsp zaladowany")
Czysty dokument bez żadnych lispów, VBA etc. Zaraz po uruchomieniu ZwCAD'a ( wersja z kluczem nie avaluacyjna ) Nie powinno być innych śmieci. I nie chodzi.
Spod VBA oczywiście działa nawet na kolejnych otwieranych rysunkach. |
|
|
|
 |
perlon
Dołączył: 15 Maj 2010 Posty: 7
|
Wysłany: Czw Lut 10, 11 19:06
|
|
|
Odinstalowałem oba ZwCAD'y instalacja z płyty, czysty ZwCAD EN
reactor.lsp
(vl-load-com)
(vlr-command-reactor nil '((:vlr-commandWillStart . commandWillStart)))
(defun commandWillStart(reactor_object lista)
(alert (vl-princ-to-string lista))
)
Command: _NEW
Command:
Command: (load "reactor.lsp")
COMMANDWILLSTART
Command:
Command: _line
i nic
brak reakcji tzn. pyta o punkt startowy zamiast wyświetlić okno. |
|
|
|
 |
perlon
Dołączył: 15 Maj 2010 Posty: 7
|
Wysłany: Pią Lut 11, 11 09:08
|
|
|
W pracy przeprowadziłem test na produkcie Autodesku.
mój reaktor.lsp
| Kod: | (vl-load-com)
(vl-load-reactors)
(setq *ObslugaStartuKomendy* nil)
(vlr-remove-all :VLR-Command-Reactor)
(defun ObslugaStartuKomendy(obiekt_reaktora lista) (alert (vl-princ-to-string lista)))
(vlr-command-reactor nil '((:vlr-commandWillStart . ObslugaStartuKomendy))) |
Na AutoCAD'zie działa jak należy, Na ZwCAD'zie bez reakcji
Po mojemu ten reaktor w ZwCAD'zie nie działa chyba że trzeba włączyć jakiś pstryczek żeby zadziałał.Sprawdziłem reaktor vlr-acdb-reactor. Ten działa. |
|
|
|
 |
kruszynski
Pomógł: 17 razy Dołączył: 02 Sty 2009 Posty: 312
|
Wysłany: Pią Lut 11, 11 09:45
|
|
|
Kiedyś dawno była w ZWCAD taka zmienna systemowa:
| Kod: | | (setvar "_ZW_UUIDOFUSERMODULE" 1 ) |
Dokładnie jej sensu nie pamiętam, ale pamiętam że miała jakiś związek z reaktorami, proszę sprawdzić, czy jej ustawienie na 1 nie spowoduje jakiejś poprawy.
Zapytam również ZWSOFT o wyjaśnienie co może powodować Pana problemy. |
|
|
|
 |
perlon
Dołączył: 15 Maj 2010 Posty: 7
|
Wysłany: Pią Lut 11, 11 10:33
|
|
|
Niestety nie znalazłem opisu tej zmiennej w System Variables. W ogóle zmiennych _ZW_* nie ma w dokumentacji. Google też milczy. Niemniej pomogło. Dzięki bardzo
Punkcik się należy. |
|
|
|
 |
|
|