Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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 возвращает в виде списка координаты точки, отстоящей от точки a на расстояние dist под углом angle (рисунок).

 
 

 

Рисунок - Функция 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в текущих единицах измерения расстояний.


Date: 2015-12-12; view: 474; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию