Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Использование команд Автокада. Геометрические построенияВ Автокаде возможен ввод следующих типов параметров команд с клавиатуры: Текстовые строки (например, название команды или имя файла); Координаты точек; Выбор объекта; Численные значения (например, номер цвета); Ключевые слова; Прерывание выполнения команды. Большинство команд Автокада могут быть выполнены из программы на Автолиспе при помощи функции COMMAND: (COMMAND t1 t2.. tn) где t1 - имя вызываемой команды; t2... tn - параметры вызываемой команды. Чтобы не пытаться создавать принципиально невозможные программы, сразу следует отметить: Из программы на Автолиспе нельзя вызвать следующие команды: ДТЕКСТ, ЭСКИЗ, ПЕЧАТАЙ, ЧЕРТИ, ПАКЕТ. Есть два особых вида выражений, которые могут быть аргументами функции COMMAND: PAUSE позволяет пользователю ввести соответствующий параметр вручную; "" (две кавычки) или отсутствие параметров вообще [ (COMMAND)] равносильно прерыванию команды. Пример: нарисуем из программы на Автолиспе квадрат с левым нижним углом в точке (10,10) и стороной 25мм (рисунок).
Рисунок Построение квадрата.
На Автолиспе это будет выглядеть так:
(COMMAND "ПЛИНИЯ" "10,10" "@10,0" "@0,10" "@-10,0" "ЗАМКНИ")
Все константы, являющиеся параметрами функции COMMAND, задаются как текстовые строки, даже если они являются числами или координатами точек. Однако главное свойство функции COMMAND - возможность подстановки в качестве параметров результатов выполнения программ. Любой параметр функции COMMAND можно заменить на имя переменной или выражение Автолиспа. Данный параметр примет значение, равное значению переменной или результату вычисления выражения. Ограничение: внутри функции COMMAND нельзя вызывать функции ввода данных (GETREAL, GETSTRING и т.д.) Как получить средствами Автолиспа текстовую строку, в общем, понятно. Однако возникает естественный вопрос: как представить координату точки? Координаты точек являются списками из двух или трех вещественных чисел - координат по осям X, Y и Z соответственно. Таким образом, точка с координатами 10,10 может быть задана как текстовой строкой "10,10", так и списком: (LIST 10 10). Второй способ позволяет использовать переменные и выражения Автолиспа для указания координат. Например. если координата Х точки записана в переменной А, а координата Y равна , то следует записать: (LIST A (/ (* (+ A 20) (+ a 20)) 4))
В принципе имеющихся в Автолиспе математических функций достаточно, чтобы выполнять геометрические построения. Однако для удобства язык имеет ряд специальных встроенных функций для вычисления координат точек. Основная геометрическая функция - POLAR: (POLAR a angle dist) где a - список из двух элементов (координаты точки); angle - угол в радианах; dist - расстояние в текущих единицах измерения.
Рисунок - Функция POLAR. Положительное направление отсчета углов - против часовой стрелки (рисунок). Рисунок - Направления отсчета углов в Автокаде.
Единицы измерения, как и многие другие параметры, определяются значениями системных переменных Автокада. Системная переменная - ячейка памяти, содержащая определенное значение и имеющая неизменное имя. Значения системных переменных задают различные режимы работы команд Автокада. Не путайте переменные Автолиспа и системные переменные Автокада - это абсолютно разные вещи! К системным переменным нельзя обращаться напрямую, как к обычным переменным Автолиспа. Для доступа к системным переменным в Автолиспе имеются две функции: (GETVAR "имя") (SETVAR "имя" значение) Функция GETVAR возвращает значение системной переменной с именем "имя", заданным как текстовая строка. Например, системная переменная "LASTPOINT" содержит координаты текущей точки. Для их использования в программе следует использовать функцию GETVAR в виде: (GETVAR "LASTPOINT") Если в ходе отрисовки полилинии следующую точку удобнее рассчитать от предыдущей при помощи функции POLAR, необязательно записывать все промежуточные точки в переменные. Можно использовать функцию GETVAR, например: (COMMAND "ПЛИНИЯ" (LIST (+ A 10) (- B 20)) (POLAR (GETVAR "LASTPOINT") 0 40) "") В приведенном примере координаты начальной точки рассчитываются. Чтобы не записывать эту точку в отдельную переменную (вопрос нехватки памяти в Автолиспе стоит очень остро), следующая точка, координаты которой рассчитывается при помощи функции POLAR, использует в качестве опорной координаты текущей (т.е. начальной) точки, всегда записываемые в виде списка в системную переменную "LASTPOINT". Функция SETVAR меняет значение соответствующей системной переменной. При геометрических расчетах используются также следующие функции:(INTERS т1 т2 т3 т4 признак) возвращает точку пересечения двух отрезков, проходящих через точки т1 и т2 и т3 и т4 соответственно. Признак показывает, следует ли находить точку пересечения бесконечных прямых проходящих через точки т1 и т2 и т3 и т4(если признак=NIL) или же только отрезков (если признак¹NIL). Если точка пересечения отсутствует, функция возвращает NIL. Функция (ANGLE т1 т2) возвращает угол в радианах между положительным направлением оси Х и прямой, проходящей через точки т1 и т2. Функция (DISTANCE т1 т2) возвращает расстояние от точки т1 до точки т2в текущих единицах измерения расстояний.
|