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




(initget (+ 1 2 4))

(setq lenline

(getreal "\nВведите длину отрезка:_”)

).


Битовые значения представлены арифметической функцией (+ 12 4) только с целью наглядности. Обычно битовые значения, если они используются (например, в описываемой в разделе 6.6 системной переменной OSMODE), сразу представляются их суммой. В рассматриваемом случае это должно выглядеть так:


(initget 7).


Более подробно принципы использования функции initget освещены в [1, 3, 4].

Возвращаясь к примеру, описанному в разд. 4.1, организуем запрос, нужно ли перемещать набор в новое положение.


(initget “Yes No”)

(setq x (getkword “\nПepeмecтить набор? (Yes or No): "))

(if (= x “Yes”)

(command “move” ss “” pt1 pause)

)


В этом примере немаловажно следующее обстоятельство. В функции initget опущен аргумент биты, следовательно на ввод не накладываются никакие ограничения. Это дает возможность установить выбор по умолчанию, которое в данном случае представляет собой отказ от перемещения набора. Поэтому пустой ввод, т.е. нажатие клавиши Enter, вызывает именно эту реакцию. Ввод же литер “Y”, “у” или слов “Yes”, “yes” организует базовую точку набора pt1, после чего программа будет ожидать указание нового положения базовой точки.


4.4. Вычерчивание болта

Ранее уже говорилось о том, что оформление стандартных элементов чертежей (узлов, деталей и т.п.) в виде блоков приводит к разрастанию графической базы данных до немыслимых размеров. Целесообразнее написать программу, которая обрисовывала бы часто используемые детали в соответствии с заданными параметрами. Рассмотрим структуру такой программы на примере вычерчивания болта (рис. 1).

Основными параметрами болта являются: наружный d и внутренний d>вн диаметры резьбы, длина стержня l и длина нарезки l>0 . Для упрощения демонстрационной программы ycтановим высоту головки болта h равной 0.7d, большую хорду головки в плане равной 2d, глубину нарезки равной 0.87t, где t - шаг резьбы. Эти параметры соответствуют стандарту метрической резьбы. Болт изобразим в упрощенном виде, т.е. без обрисовки фасок на головке и стержне. В качестве точки вставки примем точку пересечения оси болта с линией опорной поверхности головки (точка p5 на рис. 1). Предполагаем, что в чертеже созданы ранее необходимые слои (например, путем загрузки описанных выше стандартных форматов). Обозначение точек на чертеже соответствует идентификаторам, используемым в программе.


Рис. 1. Условное изображение болта. Обозначения точек соответствуют идентификаторам, принятым в программе