Работа с системными переменными — КиберПедия 

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

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

Работа с системными переменными

2021-06-30 43
Работа с системными переменными 0.00 из 5.00 0 оценок
Заказать работу

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

Пример 1

Системная переменная FILEDIA включает (значение равно 1) и выключает (значение равно 0) вывод на экран диалоговых окон выбора файлов по команде File - Open. Проверьте это. Затем верните старое значение:

Command: filediaEnter new value for FILEDIA <1>: 0

Пример 2

При запуске функции COMMAND процедур AutoLISP все сообщения команд AutoCAD отображались в командной строке. Системная переменная CMDECHO определяет, будут ли отображаться в командной строке приглашения и параметры при работе функции COMMAND. По умолчанию режим отображения включен - текущее значение системной переменной равно 1. Если изменить это значение на 0, то режим отображения отключится.

Для работы с системными переменными в среде AutoLISP используются операторы SETVAR и GETVAR.

Оператор SETVAR (SET VARiable - установить переменную) изменяет текущее значение системной переменной. Новое значение помещается после имени переменной, заключенной в двойные кавычки: (setvar "cmdecho" 0).

Оператор GETVAR (GET VARiable - получить переменную) возвращает значение системной переменной. Его можно присвоить другой переменной или системной переменной. Часто так возвращают системной переменной старое значение, которое изменялось в процессе работы процедуры. Синтаксис операции: (getvar "cmdecho").

Задание 4.3

Работа в среде AutoLISP с системными переменными

Создайте новый чертеж. Откройте редактор Visul LISP. Откройте новый файл и наберите в нем следующие процедуры:

(defun chred (selected_object)(command "_chprop" selected_object "" "_color" "red" ""))(defun c:chgcolor (/ selected old_cmdecho);описываем две локальные переменные(setq old_cmdecho (getvar "cmdecho"))   ;присваиваем old_cmdecho значение 1(setvar "cmdecho" 0)                    ;присваиваем cmdecho новое значение 0(terpri)                 ;в командной строке выводится начало пустой строки(setq selected (entsel "Выделите объект для изменения цвета на красный:"))(chred selected)(setvar "cmdecho" old_cmdecho))

Процедура работает следующим образом.

1. В функции chgcolor добавляется переменная old_cmdecho.

2. Этой переменной присваивается текущее значение системной переменной cmdecho, равное 1. Текущее значение считывается оператором getvar.

3. Системной переменной cmdecho присваивается новое текущее значение 0.

4. В последней строке восстанавливается старое значение системной переменной cmdecho оператором присвоения setvar.

После составления процедуры выполните следующие действия:

1. Сохраните файл.

2. Щелкните на кнопке Load Active Edit Window - загрузите процедуру.

3. Щелкните на кнопке Activate AutoCAD - перейдите в AutoCAD.

4. Начертите произвольный объект.

5. Наберите в командной строке chgcolor↵

6. В ответ на приглашение выделите объект, нарисованный по п.4.

7. Проверьте текущее значение системной переменной cmdecho.

Функции AutoLISP

Определение функции всегда начинается с оператора DEFUN. При этом можно выделить три типа функций:

1. Именам функций предшествует префикс С:.Это позволяет использовать имя функции как команду AutoCAD. В выражениях AutoLISP при ссылках имя функции вместе с префиксом заключают в круглые скобки (с:name).

2. Имена функций создаются без префикса С:. Такой тип функций наиболее удобен при вызове функции по имени другими выражениями AutoLISP. Но в командной строке необходимо заключать имя функции в круглые скобки.

3. Третий тип функций - S::STARTUP. Функция с таким именем будет автоматически выполнена после инициализации чертежа. Функции сохраняют в файлах acad.lsp и acaddoc.lsp. Эти файлы инициализации, создаваемые пользователем, загружаются автоматически. Файл acad.lsp загружается один раз перед началом сеанса AutoCAD, а файл acaddoc.lsp загружается перед открытием каждого нового чертежа.

Задание 4.4

Создание файла инициализации

Пусть вы хотите увидеть рамку с приветствием на экране при открытии каждого чертежа. Создадим процедуру и сохраним ее в файле AutoCAD 2010\Support\acaddoc.lsp:

(defun s::startup ()(command "rectang" "_width" "5" "0,0" "50,35")(command "_chprop" "_last" "" "_color" "t" "255,0,0" "")(command "_text" "10,15" "" "Hello!")(command "_chprop" "_last" "" "_color" "t" "255,0,0" "")(command "_zoom" "_extents" ""))

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

В среде AutoLISP можно создавать функции с аргументами. Аргумент передает свое значение функции. Функция использует значение аргумента в процессе отработки операций. Аргументы располагают в круглых скобках до косой черты (слеша). Если у функции нет локальных переменных, то слеш не ставится. Пример объявления функции с одним аргументом приведен в задании 4.3: (defun chred (selected_object) …

Функцию с аргументом можно вызвать и выполнить с помощью оператора вызова функции. В операторе задается имя функции и фактические переменные, которые заменяют в теле функции формальные аргументы. В задании 4.3 формальным аргументом является переменная selected_object. Фактическим параметром, передаваемым функции chred в качестве аргумента является переменная selected. При каждом обращении к функции chred из какой-либо процедуры необходимо задавать значение аргумента. В качестве аргумента можно использовать:

· переменную, значение которой вычислено в вызывающей процедуре;

· значение, введенное пользователем;

· значение, заданное при использовании функции.

Вернемся к заданию 4.3 и опишем работу функций.

В первой строке определена функция chred и ее аргумент selected_object.

При вводе в командную строку команды chgcolor начинает выполняться функция c: chgcolor. В предпоследнем операторе функции - (chred selected) - управление передается функции chred с аргументом. Значение переменной selected извлекается из предыдущего этапа как результат операции entsel. Переменная selected - это аргумент, который передается функции chred. Функция подставляет при осуществлении своих действий вместо аргумента selected_object значение переменной selected.

Прорабатывая свой код, функция chred применяет команду chprop для изменения цвета объекта на красный.


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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

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

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



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

0.01 с.