История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2021-06-30 | 49 |
5.00
из
|
Заказать работу |
Цель лекции: приобрести навыки работы с процедурами 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!