Лекция 4. Программирование на языке AutoLISP — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Лекция 4. Программирование на языке AutoLISP

2021-06-30 49
Лекция 4. Программирование на языке AutoLISP 0.00 из 5.00 0 оценок
Заказать работу

Цель лекции: приобрести навыки работы с процедурами AutoLISP и lsp-файлами.

Переменные

Переменные - это символьные имена, которыми можно оперировать в программе. Переменным можно присваивать значения непосредственно в командной строке:

· (setq pt 7) переменной pt присвоено значение 7;

· (setq color "Red") строковой переменной color присвоено значение "Red".

При использовании переменной в параметрах команды перед ней нужно поставить восклицательный знак (!pt).

Задание 4.1

Создать переменные pt1, pt2 координат двух точек и с их помощью построить отрезок. Создать строковую переменную color с обозначением цвета "Red" и закрасить отрезок.

Приведем протокол операций выполнения этого задания.

Command: (setq pt1 "2,2")↵               "2,2"Command: (setq pt2 "12,2")↵              "12,2"Command: (setq color "Red")↵        "Red"Command: _line Specify first point:!pt1↵ "2,2"Specify next point or [Undo]:!pt2↵      "12,2"Specify next point or [Undo]: ↵*Cancel*Command: chprop↵Select objects: 1 foundSelect objects: ↵Enter property to change [Color/LAyer/LType/ltScale/LWeight/Thickness/Material]: c↵New color [Truecolor/COlorbook] <BYLAYER>:!color↵"Red"

По применимости в процедурах переменные разделяются на два типа: локальные и глобальные. Локальные объявляются после косой черты. Они могут принимать определенные значения только во время выполнения той процедуры, в которой они объявлены. После завершения процедуры ячейки памяти, занимаемые этими переменными, освобождаются.

Глобальные переменные доступны всем функциям AutoLISP, которые загружены в чертеж. Их значения доступны в проекте и после завершения той программы, в которой они объявлены. Любая переменная, которая специально не объявлена локальной, является глобальной. В глобальной переменной можно хранить константы, промежуточные значения вычислений, результирующие данные. Однако трудно уследить, какое значение ей присвоено в данной функции и не изменено ли оно другой функцией. Поэтому следует избегать введения глобальных переменных. Рекомендуется имена глобальных переменных отмечать справа и слева звездочками: *Global1* и документировать их.

Задание 4.2

Создать и протестировать локальные и глобальные переменные.

1. Откройте новый чертеж. Закройте все другие чертежи. Откройте редактор Visual LISP.

2. В окне CONSOLE введите строку кода (defun local-var (/ var1). Завершите ее нажатием клавиш CTRL+ENTER. Это даст возможность ввести вторую строку: (setq var1 "I am a local var"))↵.Таким образом вы определили функцию local-var. В теле этой функции объявлена локальная переменная var1 и ей присвоено значение текстового литерала.

3. Для тестирования, т.е. проверки присвоенных значений переменным и функциям, нужно просто набрать их имя в строке окна консоли. В ответ получим текущие значения этих величин. Наберите var1↵. В окне появится ответ nil - текущее значение переменной недоступно. Наберите local-var↵. В окне появится ответ "I am a local var". В функции local-var текущее значение переменной var1 определено.

4. Определите var1 как глобальную переменную. Для этого ее надо объявить не внутри функции, а вне ее. Поэтому просто наберите код (setq var1 "I am a global var").

5. Проверьте текущее значение переменной величины var1. Наберите в окне консоли var1. В ответ получите "I am a global var". Значение глобальной переменной сохраняется. А теперь снова наберите (local-var) ↵. И снова получите ответ "I am a local var". Как видите, хотя имена у локальной var1 и глобальной var1 одинаковые, но это разные переменные.

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

При объявлении глобальных переменных слеш не ставится. Время жизни глобальной переменной совпадает с временем открытия чертежа. Областью ее видимости является весь проект.


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.