Группы пользователей Autodesk

Изучение функции gp:getPointInput


Средства отладки Visual LISP

 

Средства отладки Visual LISP 
 

Изучение функции gp:getPointInput



При вызове функции gp:getPointInput управление автоматически передается из VLISP в AutoCAD. После ответа на все три запроса управление передается из AutoCAD в VLISP, а в окне консоли выводится символ T.

Внутри программы происходит следующее:

  • VLISP ожидает указания первой точки.
  • После указания первой точки программа сохраняет ее значение (список из трех координат X, Y и Z) в переменной StartPt.
  • В первой функции if проверяется, было или не было введено правильное значение. После задания начальной точки управление передается следующей функции getpoint.
  • После указания конечной точки значения ее координат сохраняются в переменной Endpt.
  • Результат этого выражения проверяется в следующем выражении if, после чего управление передается функции getdist.
  • Функция getdist позволяет как указывать точку на экране, так и вводить численное значение. Результат выполнения функции getdist хранится в переменной HalfWidth.
  • После этого программа встречает значение T, находящееся внутри функции. Так как далее не следует никаких других функций, данная функция завершается и возвращает значение T. Именно оно (Т) и выводится в окне консоли.
  • Данные необходимо каким-то образом передать из одной функции в другую. Для этого можно, например, создать список значений, полученных функцией gp:getPointInput, как описано ниже:

    (defun gp:getPointInput(/ StartPt EndPt HalfWidth)

    (if (setq StartPt (getpoint "\nStart point of path: "))

    (if (setq EndPt (getpoint StartPt "\nEndpoint of path: "))

    (if (setq HalfWidth (getdist EndPt "\nhalf-width of path: "))

    (list StartPt EndPt HalfWidth)

    )

    )

    )

    )

    Скопируйте этот вариант gp:getPointInput в окно консоли и нажмите ENTER. Теперь можно воспользоваться еще одной служебной функцией окна консоли.

    Для выполнения gp:getPointInput с помощью протокола окна консоли

  • Нажмите TAB.
  • Консоль переходит в режим протокола, и в ней происходит циклический перебор ранее введенных команд. Для перебора команд в обратном порядке служит комбинация SHIFT+TAB.

  • Когда в окне консоли появится подсказка (gp:getPointInput), нажмите ENTER для повторного выполнения функции.
  • Ответьте на запросы, как и в предыдущий раз.
  • Функция возвращает список, содержащий в себе два вложенных списка и одно вещественное число (с плавающей точкой). Возвращаемые значения выглядят приблизительно следующим образом:

    ((4.46207 4.62318 0.0) (7.66688 4.62318 0.0) 0.509124)

    Эти значения соответствуют переменным StartPt,EndPt и HalfWidth.

     



    Содержание раздела