perlon

Użytkownik forum
  • Postów

    434
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    36

Treść opublikowana przez perlon

  1. Witam Przerabiam lispy na platformę ZwCAD i napotkałem taki oto problem: W ACAD jest OK Command: (vl-load-com) Command: (setq oExtendSlownik (vla-getextensiondictionary (vla-get-layers (vla-get-activedocument (if (= (getvar "PRODUCT") "ZWCAD") (vlax-get-zwcad-object) (vlax-get-acad-object)))))) # W ZwCAD :-( Command: (vl-load-com) Command: (SETQ OEXTENDSLOWNIK (VLA-GETEXTENSIONDICTIONARY (VLA-GET-LAYERS (VLA-GET-ACTIVEDOCUMENT (IF (= (GETVAR "PRODUCT") "ZWCAD") (VLAX-GET-ZWCAD-OBJECT) (VLAX-GET-ACAD-OBJECT)))))) error: bad argument (VLA-GETEXTENSIONDICTIONARY (VLA-GET-LAYERS (VLA-GET-ACTIVEDOCUMENT (IF (= (GETVAR "PRODUCT") "ZWCAD") (VLAX-GET-ZWCAD-OBJECT) (VLAX-GET-ACAD-OBJECT))))) (SETQ OEXTENDSLOWNIK (VLA-GETEXTENSIONDICTIONARY (VLA-GET-LAYERS (VLA-GET-ACTIVEDOCUMENT (IF (= (GETVAR "PRODUCT") "ZWCAD") (VLAX-GET-ZWCAD-OBJECT) (VLAX-GET-ACAD-OBJECT)))))) Winowajcą jest funkcja jak w temacie. Czy składnia funkcji VLA-GETEXTENSIONDICTIONARY różni się na platformach czy może nie jest prawidłowo zaimplementowana?
  2. 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.
  3. W pracy przeprowadziłem test na produkcie Autodesku. mój reaktor.lsp (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.
  4. 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.
  5. 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.
  6. 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
  7. Czy jest gdzieś ślad tego środowiska w postaci edytora, debuggera etc na wzór autodeskowego VisualLISP Editor? Jakiś zalążek był w inny_cad2009 w wersji 2010 beta wycięty. Co zamierzają programiści ZwCAD'a? Proponuję dorzucić powyższe do listy w ankiecie.