Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции пользователя

В AutoLISP нет программ – есть функции. Программа состоит из функций и сама является функцией.

Пользователь может создавать свои функции и применять их параллельно со встроенными. Не рекомендуется в качестве имен своих функций брать зарезервированные имена, т. к. это приведет к некорректной работе отдельных команд системы AutoCAD. Для того чтобы получить полный перечень зарезервированных символов AutoLISP, можно воспользоваться функцией atoms-family, имеющей следующий синтаксис:

(atoms-family <форма> [<список>])

Если аргумент <список>, который содержит строковые имена символов, проверяемых на резервирование, задан, то функция возвращает имена тех символов, которые отнесены в данной версии системы AutoCAD к резервированным; если аргумент <список> не задан, то функция возвращает полный список зарезервированных символов (основу этого списка составляют имена функций); аргумент <форма> может принимать значения 0 или 1, он влияет на форму возвращаемого списка (при 0 в список помещаются символы, при 1 - строки).

Пример:

(acad_strisort (atoms-family l)) - возвратит список зарезервированных символов, который будет тут же с помощью функции acad_strlsort отсортирован по алфавиту.

Для создания функций пользователя предназначена специальная функция defun:

(defun <имя> ([<аргументы>] [/ <переменные>]) <выражения>) ≈ описывает тело функции, ее аргументы и локальные переменные (т. е. переменные, которые не являются глобальными и имеют действие только в теле самой функции; вне тела функции эти символы не определены); возвращаемым значением функции является результат последнего вычисленного выражения ее тела.

Пример:

(defun oursum (al а2 а3 / s)

(setq s (+ a1 а2))

(- s a3)

); конец тела функции

Здесь определена функция с именем oursum. У функции три аргумента: a1, а2 и аЗ ≈ вместо них AutoLISP подставит значения, с которыми эта функция будет вызвана. Переменная s используется для временного хранения результата операции суммирования. В теле функции всего два выражения: первое вычисляет сумму a1 и а2 и сохраняет ее в переменной s, а второе вычисляет разность между s и а3. Вычисленная разность является значением последнего выражения в теле функции, поэтому является и возвращаемым значением функции oursum. Как аргументы al, а2 и а3, так и переменная s являются локальными переменными, т. е. их значения не доступны вне тела функции. Для того чтобы функцией oursum можно было воспользоваться в текущем рисунке AutoCAD, ее необходимо предварительно сохранить в текстовом файле с расширением lsp (например, ourfunctions.lsp) и затем загрузить этот файл с помощью функции load:

(load "ourfunctions.lsp")

Имя загружаемого файла с расширением lsp может содержать и путь. При отсутствии такого пути AutoCAD ищет файл в путях доступа к файлам поддержки, заданных в настройке. После того, как файл, содержащий тело функции oursum, загружен, можно обратиться к функции в любом месте программы, задав значения ее трех аргументов, например:

(setq newvall (oursum 55.02 0.933 -2.64))

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

 


СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1 Романычева, Э.Т. Инженерная и компьютерная графика / Романычева Э.Т., Соколова Т.Ю., Шандурина Г.Ф.. – 2-е изд., перераб. – М.: ДМК Пресс, 2001. – 592 с.: ил. – ISBN 5-94074-051-0.

2 Ткачев Д. AutoCAD 2002: Самоучитель.- СПб: Питер, К.: БХВ, 2003. – 416 с.: ил. – ISBN 5-318-00788-0.

3 Ткачев Д.А. AutoCAD 2004: Самоучитель. - СПб: Питер, 2005. – 432 с.: ил.

4 Хрящев В. Моделирование и создание чертежей в системе AutoCAD / В. Хрящев, Г. Шипова.: СПб. БХВ – Питербург, 2004. – 224 с.

 

 

Навчальне видання

 

Комп'ютерна графіка

 

Конспект лекцій

для студентів спеціальності 6.050101
«Інформаційні технології проектування»

очної і заочної форм навчання

 

 

Укладачі САВИЦЬКИЙ Василь Васильович

 

 

Редактор

 

Підп. до друку. Формат 60х80 1/16.

Папір офсетний. Ум. друк. арк.. Обл.-вид. арк.

Тираж 50 прим. Зам №

 

Видавець і виготівник

«Донбаська державна машинобудівна академія»

84313, м. Краматорськ, вул. Шкадінова, 72.

Свідоцтво про внесення суб’єкта видавничої справи

до Державного реєстру

серія ДК № 1633 від 24.12.2003 р.

 

<== предыдущая лекция | следующая лекция ==>
Другие функции | Основные показатели страховой статистики
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 279; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.