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