Auto CAD

Контрольное значение


Обратите внимание, значение переменной angl в окне Watch (Контрольное значение) показано как 0.785398, оно выглядит как величина угла в радианах — и таковым является. Выделенная строка содержит выражение, которое будет вычислено следующим. Чтобы продолжить выполнение программы до следующей точки останова, щелкните на кнопке Continue (Продолжить) (с зеленым треугольником).

Теперь программа вычисляет выражение в следующей строке. Значение переменной angi в окне Watch (Контрольное значение) меняется, потому что теперь оно переопределено с использованием функции rtd (если у вас эта функция загружена). Значение переменной angi конвертируется из радиан в градусы, и новое значение 45.0 присваивается angi. Это соответствует вашим намерениям, поэтому вы можете еще раз щелкнуть на кнопке Continue (Продолжить).

В этой строке функция SETQ применяется для изменения текущего значения переменной. Это обычная практика в программах на AutoLISP.

Теперь выполняются следующие две строки кода, т. к. точка останова находится после них. VLIDE переключается обратно в AutoCAD, чтобы вы могли указать точку или ввести координаты. Введите с клавиатуры или укажите точку 0,0, и снова откроется редактор Visual LISP. Строка, которая будет выполняться следующей, выделена подсветкой.

При отладке программы вводите значения точек, углов и расстояний, дающие легко предсказуемый результат. Если ваша программа будет работать для таких значений, как 0,0,0 и 45°, вы сможете протестировать ее для более сложных значений.

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

Щелкните на кнопке Continue (Продолжить) и введите в командной строке AutoCAD 5.5,1.5. VLIDE вернется обратно в редактор, и в окне Watch (Контрольное значение) появятся значения переменных pt2, pt3 и pt4. А вот и проблема: переменная pt2 имеет правильное значение (5.5 1.5 0.0), но две другие переменные получили одинаковое значение. Не удивительно, что программа не работает — два угла прямоугольника присвоены одной точке.

Теперь, когда ошибка обнаружена, вы, возможно, слегка удивлены. Как можно было ее допустить? Посмотрите на две предыдущих строки. Коды в них аналогичны, и вы, несомненно, скопировали первую и вставили ее на место второй, а затем отвлеклись и забыли отредактировать.

Комментарии закрыты