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


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


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

 

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

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

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

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

  1. VLISP ожидает указания первой точки.
  2. После указания первой точки программа сохраняет ее значение (список из трех координат X, Y и Z) в переменной StartPt.
  3. В первой функции if проверяется, было или не было введено правильное значение. После задания начальной точки управление передается следующей функции getpoint.
  4. После указания конечной точки значения ее координат сохраняются в переменной Endpt.
  5. Результат этого выражения проверяется в следующем выражении if, после чего управление передается функции getdist.
  6. Функция getdist позволяет как указывать точку на экране, так и вводить численное значение. Результат выполнения функции getdist хранится в переменной HalfWidth.
  7. После этого программа встречает значение 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 с помощью протокола окна консоли

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

  3. Когда в окне консоли появится подсказка (gp:getPointInput), нажмите ENTER для повторного выполнения функции.
  4. Ответьте на запросы, как и в предыдущий раз.

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

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

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

 




Начало  Назад  Вперед