Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программирование в среде AutoCAD.




 

Название языка официально означает LIS t P rocessing. Основное понятие языка Лисп - список. Список представляет собой перечень атомов или списков, отделенных друг от друга пробелами и заключенных в скобки. Атом - это простой (в отличие от списка) тип данных: число, символьная строка, функция [2].

В LISP нет различия между текстом программы и обрабатываемыми данными. По умолчанию любой список является программой, чтобы интерпретатор не пытался выполнить данные, необходимо отключить интерпретацию списка данных оператором QUOTE. Из того, что текст программы - тоже список, вытекает необходимость использования специальной системы его записи - обратной польской нотации (названа так по причине изобретения ее польским математиком Яном Лукасевичем). Вызов любой функции в данной нотации записывается как список следующего вида:

(<имя_функции> a1 a2 a3), где a1, a2, a3 - аргументы функции

Рассмотрим основные функции AUTOLISP (см. табл. 3.1, 3.2 и 3.3). В LISP угловые значения обычно измеряются в радианах.

Таблица 3.1 - Основные математические функции AUTOLISP

Имя функции Аргументы Возвращаемое значение
+ A1 A2... An A1+A2+... +An
- A1 A2... An A1-A2-... -An
* A1 A2... An A1*A2*... *An
/ A1 A2... An A1/A2/... /An
1+ A A+1
1- A A-1
ABS A
SQRT A
EXP A ea
EXPT A B ab
GCD A НОД чисел A и B
LOG A Натуральный логарифм числа А
MIN A1 A2... An Минимум из чисел A1 A2... An
MAX A1 A2... An Максимум из чисел A1 A2... An
REM A B Остаток от деления A/B
SIN A Синус А
COS A Косинус А
ATAN A Арктангенс А в радианах

 

Таблица 3.2 - Функции ввода/вывода

Имя функции Аргументы Описание
PRINC любое выражение Вывод выражения на экран без учета управляющих кодов
PRIN1 любое выражение Вывод выражения на экран с учетом управляющих кодов
PRINT любое выражение Вывод выражения на экран с учетом управляющих кодов, с новой строки и с пробелом в конце
PROMPT текст Вывод текста на экран с учетом управляющих кодов
TERPRI -- Вывод пустой строки
GETINT текст подсказки Ввод целого числа
GETREAL текст подсказки Ввод вещественного числа
GETSTRING текст подсказки Ввод текста

 

Таблица 3.3 - Управляющие коды

Код Значение
\e Символ с кодом 27 (ESC)
\n Переход на новую строку
\r Переход в начало той же строки
\t Переход на следующую позиции табуляции (8 пробелов)
\\ Символ \
\nnn Ввод символа с восьмеричным кодом nnn

 

Все GET-функции возвращают введенное с клавиатуры значение или NIL, если имел место пустой ввод. Для сохранения этого значения его следует записать в переменную, например:

(SETQ (GETINT "\nВведите X:"))

Ввод данных всегда чреват возникновением ошибок. Для автоматического исключения наиболее очевидных ошибочных ситуаций предназначена функция INITGET.

(INITGET <сумма_кодов>)

Действие команды INITGET распространяется только на одну функцию.

Основные коды функции INITGET:

- 1 – запретить пустой ввод;

- 2 – запретить ввод нуля;

- 3 – запретить ввод отрицательного числа.

Большинство команд AutoCAD могут быть выполнены из программы на AutoLISP при помощи функции COMMAND:

(COMMAND < имя команды > < список параметров >)

Есть два особых вида выражений, которые могут быть аргументами функции COMMAND:

- PAUSE позволяет пользователю ввести соответствующий параметр вручную;

- две кавычки или отсутствие параметров вообще равносильно прерыванию команды.

Внутри функции COMMAND нельзя вызывать функции ввода данных.

Среда программирования AutoLISP может использоваться для:

- геометрических вычислений;

- доступа к примитивам, таблицам, системным переменным;

- организации диалога;

- исполнения команд;

- работы с наборами.

Для загрузки и выполнения функции определенной пользователем необходимо определить функцию в формате:

(defun function_name (...))

Если функция определена в файле file_name.lsp, то ее можно загрузить и выполнить реализовав последовательно в командной строке следующие вызовы:

(load "file_name.lsp") и (function_name).

При работе с AutoLISP следует учесть, что значения символов (переменных) хранятся до конца сеанса. Все внесенные изменения вступают только после перезагрузки LISP-программы

Чтобы добавить команду в AutoCAD необходимо определить ее как:

 

(defun с: function_name (...))

Тогда ее вызов будет выглядеть следующим образом: function_name.

При работе в AutoLISP возможно также осуществлять:

- доступ к системным переменным. Для этого можно использовать следующую команду:

(getvar <имя_переменной> [ <значение> ])

(ver) -запрос версии AutoCAD

- доступ к примитивам

(entnext) -имя первого не удаленного примитива

(entnext e) -имя примитива, следующего за e

(entlast) -имя последнего примитива

(entsel [ <запрос> ]) -имя примитива по запросу (выбор примитива)

(entdel e) -удалить или восстановить примитива е

(entget e) -восстановление расширенных данных е

(entmod <список> )

- работу с меню:

Вызов команды меню: (menucmd < строка >).

Например: (menucmd "S=OSNAP").

Возможна инициализация: (menucmd "P2=KKK").

- геометрические вычисления:

(angle <T1> <T2> ) - возвращает угол в радианах относительно оси Х.

(distance <T1> <T2> ) - в озвращает расстояние между двумя точками. Если переменная FLATLAND=1, то между проекциями на плоскость 0XY текущей системы координат.

(inters <T1> <T2> <T3> <T4> ) -пересечение бесконечных прямых T1T2 и T3T4. Возвращает NIL, если прямые не пересекаются. Если переменная FLATLAND=1, то между их проекциями на плоскость 0XY текущей системы координат.

(polar <T> <угол> <вектор> ) -возвращает точку, на которую указывает <вектор>, расположенный под <угол> относительно оси Х. Если переменная FLATLAND=1, то 2D точка, иначе 3D точка.

(OSNAP <T> <режим> ) -возвращает точку привязки. Если переменная FLATLAND=1, то 2D точка, иначе 3D точка.

(rtos <число> [ <режим> [ <точность> ]]) -возвращает число в заданном формате.

<режим> (LUNITS):

1 - научный;

2 - десятичный;

3 - инженерный;

4 - архитектурный;

5 - дробные числа

<точность> (LUPREC) - точность числа

- и другие возможности.

 

Компьютерная анимация

 

Компьютерная анимация (или CGI анимация) является искусством создания движущихся изображений с использованием компьютера. Это подсистемы компьютерной графики и анимации. Все чаще он будет создан с помощью 3D компьютерной графики, хотя и 2D компьютерной графики по-прежнему широко используется для стилистического, низкая пропускная способность, и быстрее реального времени рендеринга потребностей. Иногда объектом анимации является сам компьютер, но иногда это еще одна цель средних, таких, как фильм. Он называется также CGI (компьютерной генерируемые снимков или компьютерного генерируемые изображений), особенно когда она используется в фильмах.

Чтобы создать иллюзию движения, изображение выводится на экран компьютера и неоднократно заменить новое изображение, похожее на предыдущее фото, но современные легкие в момент домена (как правило, по ставке 24 или 30 кадров / сек). Этот метод является идентичным тому, как иллюзия движения достигается с телевизионных и кинофильмов.

Компьютерная анимация, по существу, является преемником цифрового искусства остановить движение анимация 3D модели и покадровый анимации 2D иллюстраций. Для 3D, объекты (модели) строятся на мониторе компьютера (моделируемые) и 3D данные сфальсифицированы с виртуальным скелет. Рисунок для 2D анимации, отдельных объектов (иллюстраций), и отдельные слои прозрачным используются или без виртуальной скелет. Тогда конечностей, глаз, рта, одеждой и т.д. цифра перемещаются по аниматор на ключевых кадрах. Эти различия во внешнем виде между ключевыми кадрами автоматически рассчитывается с помощью компьютера на процесс, известный как tweening или морфинга. Наконец, анимацией вынесено.

Для 3D, все кадры должны быть вынесено после завершения моделирования. Для 2D векторной анимации, рендеринга процессе является ключевой кадр иллюстрация процесса, в то время как tweened кадры оказываются по мере необходимости. Для предварительной записи выступлений, оказываемых кадры передаются в другом формате или средних, таких, как фильм или цифровое видео. Рамы могут быть вынесены в режиме реального времени, как они представлены в конечных пользователей. Низкая пропускная способность анимации, передаваемых через Интернет (например, 2D Flash, X3D) часто используют программное обеспечение конечным пользователям компьютера оказывать в режиме реального времени в качестве альтернативы потоковых или предварительно загружен высокой пропускной анимацию.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...