Page 24 - AutoLISP и Visual LISP в среде AutoCAD
P. 24

Нет необходимости записывать площадь в переменную. Она является
                  возвращаемым значением потому, что оказалась последним выражением в
                  функции. При вызове функции Geron ей должны быть переданы три
                  аргумента, значения которых запишутся в локальные переменные a, b, c,
                  например: (Geron 3 4 6) или (Geron 2.5 6.8 3.3).
                      Если  имя  пользовательской  функции  начинается  с  "C:",  то  после  ее
                  загрузки  в AutoCad появится  новая  команда  с  именем,  совпадающим  с
                  именем  функции.  При  этом  пользовательская  функция  не  может  иметь
                  аргументов.  Организовать  передачу  данных  такой  функции  можно
                  интерактивно, т.е. запрашивая у пользователя.
                      Пример создания функции рисующей прямоугольник:
                  (defun C:MyBOX (/ pt1 pt2)
                         (setq pt1 (getpoint "\nПервая точка: "))
                         (setq pt2 (getcorner pt1 "\nВторая точка: "))
                         (command "._Pline"
                                pt1
                                (list (car pt2) (car (cdr pt1)))
                                pt2
                                (list (car pt1) (car (cdr pt2))) "_C"
                           ); command
                         (prin1)
                  ); end defun

                      В приведенном примере используются функции работы со списками (list,
                  car, cdr), описание которых представлено в следующем подразделе.














































                                                                                                             23
   19   20   21   22   23   24   25   26   27   28   29