2P Opublikowano 23 Marca 2008 Zgłoś Opublikowano 23 Marca 2008 Spróbujcie załadować taki "kawałek" programu w Lispie: (defun C:test1 () (command "_area" "e" "l") ) (defun C:test2 ( / area) (command "_area" "e" "l") ) Na pierwszy rzut oka oba nowe Polecenia (test1 i test2) powinny wykonać to samo, czyli podać powierzchnię ostatniego narysowanego elementu (np. polilini) Niestety tak dzieje się tylko dla test1. W drugim przypadku polecenie area nie umożliwia podania opcji!!! i kończy swoje działanie przed czasem. Dzieje się tylko tak, jeśli w definicji funkcji podamy jako zmienną lokalną zmienną o nazwie area.... Trochę mnie to czasu dziś i nerwów kosztowało.... Powyższe dotyczy ZwCAD2007 i 2008 - może ktoś przetestuje na AutoCADzie? Będę wdzięczny.... Pzdr
McArti Opublikowano 25 Marca 2008 Zgłoś Opublikowano 25 Marca 2008 na AutoCADzie chodza obie wersje. Command: test1 _area Specify first corner point or [Object/Add/Subtract]: e Select objects: l Area = 55616.5209, Perimeter = 979.1300 Command: nil Command: test2 _area Specify first corner point or [Object/Add/Subtract]: e Select objects: l Area = 55616.5209, Perimeter = 979.1300 Command: nil
dmatusz3 Opublikowano 25 Marca 2008 Zgłoś Opublikowano 25 Marca 2008 Zastanawiam się, czy zmienna może (powinna) nazywać się tak samo jak komenda. Coś takiego działa jak najbardziej: (defun C:test2 ( / area1) (command "_area" "e" "l") ) Pozdrawiam
Rekomendowane odpowiedzi