Введение в Автолисп | страница 10



(angle точка1 точка2). Эта функция возвращает значение угла между осью X текущей системы координат и отрезком, определяемым начальной (точка1) и конечной (точка2) точками отрезка прямой. Угол замеряется в радианах от оси X до отрезка в направлении против часовой стрелки, если системная переменная ANGDIR установлена в 0. Если отрезок находится в трехмерном пространстве, возвращается угол между осью X и проекцией этого отрезка на текущую плоскость XY.

(distance точка1 точка2). Функция возвращает расстояние между двумя точками в трехмерном пространстве. Если одна координата хотя бы у одной точки опущена, Автолисп считает обе точки находящимися в двумерном пространстве и возвращает расстояние между проекциями этих точек на текущий план.

(inters точка1 точка2 точка3 точка4 [условие]). Функция анализирует параметры двух линий и возвращает точку их пересечения или nil, если таковая отсутствует. Если дополнительный аргумент условие присутствует и имеет значение nil, точка пересечения возвращается, даже если она находится вне одного или обоих отрезков. Если же аргумент условие опущен или не равен nil, точка пересечения должна находиться внутри отрезков, в противном случае возвращается nil.

Пусть определены точки:


(setq a '(1.0 1.0) b '(5.0 5.0))

(setq с ‘(6.0 1.0) d ‘(6.0 2.0)),


тогда


(inters a b с d) возвращает nil,

(inters a b с d T) возвращает nil,

(inters a b с d nil) возвращает (6.0 6.0).


(polar точка1 угол расстояние). Функция определяет положение точки, находящейся на указанном расстоянии от точки точка1 под углом угол к оси X текущей системы координат и возвращает ее координаты.

Функция polar очень часто используется в структуре программ, так как она позволяет указывать положение точек в относительных координатах, привязывая каждую последующую точку к предыдущей. Примером такого использования может служить программа format, описываемая ниже.


3. ВЗАИМОДЕЙСТВИЕ АВТОЛИСПА С АВТОКАДОМ

3.1. Вызов команд Автокада в Автолисп

Вызов команд Автокада Автолисп осуществляет с помощью функции command. Необходимо помнить, что эта функция не имеет ничего общего с командами Автокада, которые входят в эту функцию в качестве аргументов. Количество аргументов функции не ограничивается, они могут представлять собой строки, списки, числа, но во всех случаях их тип должен соответствовать типу, ожидаемому Автокадом. Введение пустой строки (“”) соответствует нажатию на клавишу Space или Enter, например: