This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
ББК 32.973.26-018.2.75 Т40 УДК 681.3.07 Издательский дом “Вильямс” Главный редактор С.Н. Тригуб Зав. редакцией В.Р. Гинзбург Перевод с английского и редакция И.В. Шуляка
По общим вопросам обращайтесь в Издательский дом “Вильямс” по адресу: [email protected], http://www.williamspublishing.com 115419, Москва, а/я 783; 03150, Киев, а/я 152 Тику, Шам. Т40
Настройка AutoCAD. : Пер. с англ. — М. : Издательский дом “Вильямс”, 2006. — 768 с. : ил. — Парал. тит. англ. ISBN 5-8459-0931-7 (рус.)
В настоящей книге, являющейся официальным руководством Autodesk, представлено подробное и всестороннее описание основных функциональных средств, используемых для настройки программы AutoCAD версий 2004/2005/2006. Эта книга может быть с успехом использована и как учебное пособие, и как справочник для разработчиков и специалистов в области систем автоматизированного проектирования. Здесь вы найдете детальное описание методов настройки, таких как создание шаблонов чертежа, настройка панелей инструментов, меню быстрого вызова команд и диалоговых окон. Кроме этого вы познакомитесь с основными функциями AutoLISP, Visual Basic for Applications (VBA), Visual LISP и макровыражениями DIESEL, используемыми для настройки системы AutoCAD. Будет ли это вашим первым знакомством с AutoCAD или вы хотите просто усовершенствовать свои навыки работы с этой программой, настоящая книга поможет вам повысить свой профессиональный уровень и сделать работу более продуктивной. ББК 32.973.26-018.2.75
Глава 2. Файлы сценариев и организация показа слайдов
53
Глава 3. Создание типов линий и образцов штриховки
97
Глава 4. Редактирование файла ACAD.PGP
143
Глава 5. Раскрывающиеся и неполные меню, меню быстрого вызова команд и настройка панелей инструментов
157
Глава 6. Мозаичные меню
207
Глава 7. Кнопочные и вспомогательные меню
223
Глава 8. Планшетные меню
241
Глава 9. Экранные меню
265
Глава 10. Настройка стандартного меню AutoCAD
313
Глава 11. Геометрические фигуры и текстовые шрифты
369
Глава 12. Использование AutoLISP
403
Глава 13. Использование Visual LISP
459
Глава 14. Visual LISP: редактирование базы данных чертежа
497
Глава 15. Программирование диалоговых окон с помощью языка Dialog Control Language
515
Глава 16. DIESEL: язык строковых выражений
567
Глава 17. Visual Basic для приложений
585
Глава 18. Организация доступа к внешним базам данных
619
Глава 19. Вычисление математических и геометрических выражений
645
Приложение А. Системные требования и установка AutoCAD
666
Приложение Б. Команды AutoCAD
669
Приложение В. Системные переменные AutoCAD
704
Предметный указатель
763
Содержание Введение
16
Глава 1. Шаблоны чертежей
21 22 22 28 29 35 39 42
Создание шаблонов чертежей Стандартные шаблоны Загрузка шаблона чертежа Настройка чертежей по слоям и размерам Настройка чертежей по параметрам листа Настройка чертежей по конфигурации видовых экранов Настройка чертежей по масштабу и размерам области печати
Глава 2. Файлы сценариев и организация показа слайдов Что такое сценарий? Запуск файла сценария Повторное выполнение сценария Ввод временных задержек в файлы сценариев Возобновление работы сценария Ключи командной строки Вызов файла сценария во время загрузки AutoCAD Показ слайдов Что такое слайды Создание слайдов Просмотр слайдов Предварительная загрузка слайдов Библиотеки слайдов Слайды с растровыми изображениями Сочетание векторных и растровых изображений
Глава 3. Создание типов линий и образцов штриховки Стандартные типы линий Определение типа линии Заголовок типа линии Образец типа линии Элементы спецификации типа линии Создание различных типов линий Спецификация выравнивания Команда LTSCALE Масштаб печати Текущее масштабирование линий (CELTSCALE) Дополнительные типы линий Модификация типов линий Сложные типы линий Создание строкового типа линий Создание геометрического типа линий
Определение образцов штриховки Заголовок строки Описатели штриховки Угол наклона линий штриховки Как формируется штриховка Создание простого образца штриховки Влияние угла и масштаба на внешний вид штриховки Образцы штриховки со штрихами и точками Задание пути доступа к файлу образца штриховки Штриховка, имеющая несколько определений Сохранение образца штриховки в отдельном файле Файл нестандартного образца штриховки
124 124 125 125 127 128 129 130 132 133 138 138
Глава 4. Редактирование файла ACAD.PGP
143 144 151 151 151 152 154
Файл программных параметров AutoCAD Разделы файла ACAD.PGP Комментарии Внешние команды Псевдонимы команд Повторная инициализация файла ACAD.PGP
Глава 5. Раскрывающиеся и неполные меню, меню быстрого вызова команд и настройка панелей инструментов Меню программы AutoCAD Стандартные меню Запись меню Загрузка меню Ограничения Каскадное размещение подменю Контекстные меню и меню быстрого вызова команд Подменю Определение подменю Ссылка на подменю Отображение подменю Загрузка экранных и мозаичных меню Загрузка экранного меню Загрузка мозаичного меню Неполные меню Метки разделов меню Запись неполного меню Ускоряющие клавиши Виртуальные клавиши Общезначимые модификаторы Панели инструментов Система справочной информации Настройка панелей инструментов Редактирование изображения на кнопке и изменение всплывающей подсказки Удаление кнопок на панели инструментов
Удаление панели инструментов Копирование кнопок инструментов Создание пользовательских панелей инструментов Создание клавишных комбинаций быстрого вызова команд
Глава 6. Мозаичные меню Мозаичные меню Подменю Определение подменю Ссылка на подменю Отображение подменю Запись мозаичного меню Слайды, используемые в мозаичном меню Загрузка меню Ограничения Метки элементов мозаичного меню Формат меток элементов меню
Глава 7. Кнопочные и вспомогательные меню Кнопочные меню Запись кнопочного меню Специальная обработка кнопочных меню Подменю кнопочного меню Определение подменю Ссылка на подменю Загрузка меню Загрузка экранного меню Загрузка меню из кнопочного меню Загрузка мозаичного меню Вспомогательные меню
Глава 8. Планшетные меню Стандартное планшетное меню Функции планшетного меню Настройка планшетного меню Запись планшетного меню Конфигурирование графического планшета Загрузка меню Графический планшет с блоками разного размера Назначение команд блокам планшетного меню Автоматическая выгрузка меню
Глава 9. Экранные меню Экранное меню Загрузка меню Подменю экранного меню Определение подменю Ссылка на подменю Вложенные подменю
Использование нескольких подменю Длинные определения меню Повторение команд меню Автоматическая выгрузка меню Системная переменная MENUECHO Меню на иностранном языке Использование управляющих символов в элементах меню Специальные символы Определение команды без пробелов и точки с запятой Элементы меню, работающие в режиме выбора одного объекта Использование функций AutoLISP в определении меню Использование выражений DIESEL
Стандартное меню программы AutoCAD Подменю стандартного меню Определение подменю Ссылка на подменю Загрузка экранного меню Загрузка раскрывающегося меню Загрузка мозаичного меню Настройка области планшета 1 Подменю планшетного меню Настройка области планшета 2 Настройка области планшета 3 Настройка области планшета 4 Настройка кнопочных и вспомогательных меню Настройка раскрывающихся меню и меню быстрого вызова команд Каскадное размещение подменю Меню быстрого вызова команд Подменю меню быстрого вызова команд Выгружаемые меню Настройка мозаичных меню Подменю мозаичного меню Метки элементов мозаичного меню Настройка экранного меню Подменю экранного меню Вложенные подменю
Глава 11. Геометрические фигуры и текстовые шрифты Файлы геометрических фигур Описание фигуры Заголовок Спецификация фигуры Кодирование направления и длины вектора Специальные коды Стандартные коды Файлы текстовых шрифтов Описание текстового шрифта
369 370 370 370 370 371 374 375 389 389
10
Содержание
Перевод строки Определение формы
Глава 12. Использование AutoLISP Знакомство с AutoLISP Математические операции Сложение Вычитание Умножение Деление Возрастающие и убывающие числа и абсолютное значение числа Возрастающие числа Убывающие числа Абсолютное значение числа Тригонометрические функции Функция синус (sin) Функция косинус (cos) Функция арктангенс (atan) Функция angtos Операторы отношения Функция “равно” Функция “не равно” Функция “меньше” Функция “меньше или равно” Функция “больше” Функция “больше или равно” Функции defun, setq, getpoint и Command Функция defun Функция setq Функция getpoint Функция Command Загрузка программ на языке AutoLISP Кнопка Load Вкладка Loaded Applications Вкладка History List Флаговая кнопка Add to History Кнопка Unload Кнопка Remove Пиктограмма Startup Suit Функции getcorner, getdist и setvar Функция getcorner Функция getdist Функция setvar Функция list Функции car, cdr и cadr Функция car Функция cdr Функция cadr
Функции graphscr, textscr, princ и terpri Функция graphscr Функция textscr Функция princ Функция terpri Функции getangle и getorient Функция getangle Функция getorient Функции getint, getreal, getstring и getvar Функция getint Функция getreal Функция getstring Функция getvar Функции polar и sqrt Функция polar Функция sqrt Функции itoa, rtos, strcase и prompt Функция itoa Функция rtos Функция strcase Функция prompt Пояснения Блок-схемы Условные операторы Функция if Функция progn Функция while Функция repeat
Visual LISP Знакомство с Visual LISP Консоль Visual LISP Текстовый редактор Visual LISP Средства форматирования Visual LISP Отладка программы Общие рекомендации по написанию программ AutoLISP Отслеживание переменных Коды ошибок и сообщения об ошибках, используемые в Visual LISP
Глава 14. Visual LISP: редактирование базы данных чертежа Редактирование базы данных Функция ssget Функция ssget "X" Групповые коды функции ssget "X" Функция sslength Функция ssname Функция ssadd Функция ssdel
497 498 498 500 501 502 502 503 503
12
Содержание
Функция entget Функция assoc Функция cons Функция subst Функция entmod Поиск и редактирование базы данных Функции, используемые для извлечения данных Функция entnext Функция entlast Функция entsel
Глава 15. Программирование диалоговых окон с помощью языка Dialog Control Language Язык управления диалогом Диалоговые окна Основные компоненты диалогового окна Кнопки и текстовые элементы Кнопки Текстовые элементы Свойства элементов Типы значений Предопределенные атрибуты Атрибуты key, label и is_default Атрибут key Атрибут label Атрибут is_default Атрибуты fixed_width и alignment Атрибут fixed_width Атрибут alignment Загрузка файлов DCL Отображение нового диалогового окна Использование функции AutoLISP для загрузки файлов DCL Использование стандартных кнопочных субблоков Функции AutoLISP Функция load_dialog Функция unload_dialog Функция new_dialog Функция start_dialog Функция done_dialog Функция action_tile Использование AutoLISP для управления диалоговыми окнами Обычные и блочные строки элементов Строка (элемент row) Блочная строка Столбцы и переключатели Столбец Блочный столбец Переключатели
Атрибуты ускоряющих клавиш Функции AutoLISP Функции logand и logior Функции atof и rtos Функции get_tile и set_tile Предопределенные переключатели, организованные в столбцы и строки Одиночный переключатель Столбец предопределенных переключателей Блочный столбец селективных кнопок Строка предопределенных переключателей Текстовое окно Атрибуты width и edit_width Атрибут width Атрибут edit_width Ползунки и изображения Ползунки Изображения Атрибуты min_value, max_value, small_increment и big_increment Атрибуты aspect_ratio и color Функции AutoLISP Функции dimx_tile и dimy_tile Функция vector_image Функция fill_image Функция start_image Функция end_image Функция $value
DIESEL: язык строковых выражений Строка состояния Системная переменная MODEMACRO Настройки строки состояния Макровыражения, написанные на языке DIESEL Использование переменной MODEMACRO с функциями AutoLISP Использование выражений DIESEL в различных меню Системная переменная MACROTRACE Строковые функции DIESEL Функция “сложение” Функция “вычитание” Функция “умножение” Функция “деление” Реляционные операторы Функция eq Функция angtos Функция eval Функция fix Функция getvar Функция rtos
14
Содержание
Функция if Функция strlen Функция upper Функция edtime
Глава 17. Visual Basic для приложений Первое знакомство с Visual Basic Visual Basic для приложений Использование VBA в программе AutoCAD Редактор Visual Basic Editor Объекты Visual Basic Объект приложения Объект документа Иерархия объектов Метод Add Построение окружности с помощью метода AddCircle Построение отрезка с помощью метода AddLine Построение дуги с помощью метода AddArc Создание надписи с помощью метода AddText Получение справки по методам и свойствам Сохранение и загрузка проектов VBA Получение данных, введенных пользователем Метод GetPoint Метод GetDistance Метод GetAngle Методы PolarPoint и AngleFromXAxis Метод PolarPoint Метод AngleFromXAxis Дополнительные примеры
Глава 18. Организация доступа к внешним базам данных Использование баз данных База данных Система управления базами данных Элементы таблицы базы данных Соединение с базой данных AutoCAD Конфигурирование базы данных Диспетчер DBCONNECT MANAGER Просмотр и редактирование табличных данных Режим Read-only (Только чтение) Режим Edit (Редактирование) Создание связей с графическими объектами Дополнительные опции просмотра Редактирование данных Создание меток Свободные метки Прикрепленные метки Обновление меток Импорт и экспорт шаблонов
Среда языка структурированных запросов (ASE) Редактор запросов AutoCAD Вкладка Quick Query Вкладка Range Query Вкладка Query Builder Вкладка SQL Query Импорт и экспорт запросов SQL Формирование наборов выбора путем отбора связей Выбор Объединение Пересечение Вычитание А–В Вычитание В–А Сохранение ссылок ASE в формате AutoCAD 2000 или в формате более поздних версий Сохранение ссылок AutoCAD 2004/2006 в формате R13/R14
Глава 19. Вычисление математических и геометрических выражений Геометрическая счетная машина Вещественные, целочисленные и векторные выражения Вещественные и целочисленные выражения Векторные выражения Математические функции Использование режимов привязки Определение радиуса геометрической фигуры Определение положения точки на линии Определение угла Функция ang(v) Функция ang(р1,р2) Функция ang(apex,p1,p2) Функция ang(apex,p1,p2,р) Определение координат точки пересечения Способы применения геометрического калькулятора Использование переменных AutoLISP Координатные фильтры Преобразование единиц измерения Дополнительные функции
Приложение А. Системные требования и установка AutoCAD
666
Приложение Б. Команды AutoCAD
669
Приложение В. Системные переменные AutoCAD
704
Предметный указатель
763
642 643
Введение Программа AutoCAD, разработанная компанией Autodesk, является наиболее популярной системой автоматизированного проектирования на сегодняшнем рынке. В настоящее время программу AutoCAD, позволяющую создавать чертежи самых различных типов, используют около 2,1 миллиона пользователей в 80 странах мира. В 2000 году доля AutoCAD на компьютерном рынке увеличилась на 78 процентов, благодаря чему эта программа стала международным стандартом в области производства чертежной продукции. Кроме этого, AutoCAD имеет открытую архитектуру, которая дает возможность сторонним разработчикам создавать прикладное программное обеспечение, что гарантирует еще большую популярность данной программы. Например, автор этой книги разработал программный пакет “SMLayout” для расчета деталей из листового металла, с помощью которого можно вычерчивать контуры плоских заготовок для получения изделий самой разнообразной формы, создаваемых в процессе пробивки, вырубки, гибки, конической вытяжки или вытяжки с формовкой днища. В Канаде и Соединенных Штатах этот пакет программного обеспечения используют несколько компаний, которые занимаются проектированием и производством различной продукции. Кроме этого, AutoCAD содержит ряд возможностей, которые позволяют пользователям настраивать эту программу, тем самым повышая эффективность и производительность работы. Цель этой книги состоит в том, чтобы познакомить вас с возможностями настройки AutoCAD версий 2004/2005/2006. Учебный материал излагается просто и понятно. Все предлагаемые методы снабжены примерами и иллюстрациями, что облегчает понимание принципов настройки программы AutoCAD. Читая эту книгу, вы будете создавать шаблоны чертежей, писать файлы сценариев, редактировать уже существующие и формировать свои собственные меню, писать текстовые файлы, создавать новые типы линий и образцы штриховок, определять новые команды, писать программы на языке AutoLISP, редактировать базы данных чертежей, создавать диалоговые окна, используя для этого возможности DCL, настраивать строку состояния с помощью соответствующих функций DIESEL и редактировать файл программных параметров (ACAD.PGP). Знакомясь с материалом, вы откроете для себя некоторые совершенно уникальные способы применения AutoCAD, которые могут оказать существенное влияние на создаваемые чертежи. Кроме этого вы получите представление о том, почему AutoCAD стал самым популярным пакетом программного обеспечения и международным стандартом в области систем автоматизированного проектирования. Для использования этой книги не обязательно быть программистом или специалистом в области автоматизированного проектирования. Если вы знакомы с основными командами AutoCAD, то без труда освоите материал, изложенный на этих страницах. В предлагаемой книге вы найдете подробное описание различных методов, которые могут быть использованы для настройки вашей системы. В каждой главе приводится несколько примеров, иллюстрирующих возможные применения того или другого метода. В конце главы имеется ряд упражнений, которые предлагаются пользователям для самостоятельной работы. При проведении практических занятий эти упражнения позволят выяснить, насколько хорошо студенты усвоили материал, изложенный в главе. Главы, посвященные программированию на языке AutoLISP, написаны с учетом того, что многие пользователи не имеют специального образования, поэтому все команды объясняются подробно и основательно, благодаря чему этот язык становится простым для понима-
Введение
17
ния и интересным для изучения. Главы этой книги, за исключением глав, посвященных организации показа слайдов и редактированию базы данных чертежа, независимы друг от друга, поэтому их можно читать в любой последовательности и использовать изученный материал, не знакомясь с другими главами. Есть только одно условие: прежде чем познакомиться с организацией показа слайдов, пользователи должны прочитать главу, посвященную файлам сценариев. Кроме этого, перед тем как браться за редактирование баз данных, следует познакомиться с программированием на языке AutoLISP. Тем не менее, чтобы получить более полное представление о методах настройки, рекомендуется начать с первой главы и читать их по порядку, глава за главой. Познакомьтесь с кратким содержанием глав этой книги.
Глава 1, “Шаблоны чертежей” В этой главе рассказывается о создании шаблонов чертежей и способах стандартизации данных, которые являются общими для всех чертежей проекта. Вы также узнаете о том, как создается шаблон чертежа, имеющего определенный формат (т.е. размеры листа) и предварительно определенные проекции (виды).
Глава 2, “Файлы сценариев и организация показа слайдов” Эта глава знакомит пользователей с файлами сценариев и рассказывает о способах группировки команд AutoCAD, выполняемых в определенной последовательности. В этой главе также рассказывается о применении файлов сценариев для организации показа слайдов, которые могут быть использованы для презентации выпускаемой продукции.
Глава 3, “Создание типов линий и образцов штриховки” В этой главе рассказывается о способах создания новых типов линий и редактировании файлов, содержащих соответствующие данные (acad.lin). Вы также познакомитесь с методами создания новых образцов штриховки и влиянием масштабного коэффициента и угла наклона линий на внешний вид образцов.
Глава 4, “Редактирование файла ACAD.PGP” Эта глава познакомит вас с использованием файла программных параметров (acad.pgp) для определения альтернативных имен команд операционной системы и некоторых команд программы AutoCAD.
Глава 5, “Раскрывающиеся и неполные меню, меню быстрого вызова команд и настройка панелей инструментов” В этой главе рассказывается о создании меню с вытеснением нижней строки, меню быстрого вызова команд и неполного меню. Также вы узнаете о способах настройки панелей инструментов. Методы, описанные в этой главе, проиллюстрированы многочисленными примерами.
Глава 6, “Мозаичные меню” Эта глава познакомит вас с особенностями и способами формирования пиктограммных меню. Кроме этого вы узнаете, что такое подменю и как создаются стилизованные изображения, используемые в пиктограммных меню.
18
Введение
Глава 7, “Кнопочные и вспомогательные меню” В этой главе вы познакомитесь с кнопками и вспомогательными меню, а также узнаете о том, как назначать команды AutoCAD кнопкам мыши или различным многокнопочным координатно-указательным устройствам.
Глава 8, “Планшетные меню” В этой главе вы узнаете о способах записи планшетного меню и его использовании для загрузки других меню. Кроме этого вы познакомитесь с его структурой, отличиями и преимуществами, а также узнаете, как назначаются команды AutoCAD различным блокам планшетного меню.
Глава 9, “Экранные меню” В этой главе описывается процесс формирования экранного меню, состоящего из нескольких подменю, а также рассказывается о способах его использования для загрузки пиктограммных меню или меню с вытеснением нижней строки.
Глава 10, “Настройка стандартного меню AutoCAD” В этой главе вы узнаете о различных способах редактирования и изменения разделов стандартного меню программы AutoCAD (acad.mnu). Кроме этого вы познакомитесь с подменю и узнаете о способах их загрузки.
Глава 11, “Геометрические фигуры и текстовые шрифты” В этой главе рассказывается о геометрических фигурах, используемых в программе AutoCAD, а также о способах создания фигур и текстовых шрифтов. Кроме этого приводится подробное описание специальных кодов, применяемых для создания шрифтов и геометрических фигур.
Глава 12, “Использование AutoLISP” В этой главе вы познакомитесь с различными функциями AutoLISP и узнаете об их использовании при написании программ. Также вы познакомитесь с основными методами программирования и с правилами применения реляционных и условных операторов в создаваемых программах.
Глава 13, “Использование Visual LISP” В этой главе рассказывается об использовании языка Visual LISP в программе AutoCAD и запуске приложений, написанных на этом языке, о применении текстового редактора, окна консоли и форматтера Visual LISP, а также о поиске и исправлении ошибок в программах Visual LISP.
Глава 14, “Visual LISP: редактирование базы данных чертежа” В этой главе описывается функция AutoLISP, которая дает возможность пользователям редактировать базу данных чертежной продукции.
Глава 15, “Программирование диалоговых окон с помощью языка Dialog Control Language” Эта глава является введением в язык диалоговых средств управления (DCL — Dialog Control Language) и рассказывает о применении этого языка для настройки уже суще-
Введение
19
ствующих и создания новых диалоговых окон. Вы узнаете также об управлении диалоговыми окнами, осуществляемом с помощью функций AutoLISP.
Глава 16, “DIESEL: язык строковых выражений” В этой главе вы познакомитесь с языком строковых выражений DIESEL, а также узнаете о способах настройки строки состояния, осуществляемых путем изменения значений системной переменной MODEMACRO.
Глава 17, “Visual Basic для приложений” В этой главе описывается инсталляция пакета VBA (Visual Basic for Application), загрузка и запуск проектов VBA, работа с редактором Visual Basic, использование объектов AutoCAD и изменение их свойств, а также применение и использование методов AutoCAD.
Глава 18, “Организация доступа к внешним базам данных” В этой главе рассказывается о создании базы данных на основе информации, описывающей различные объекты AutoCAD (такие как блоки). Извлеченная информация может быть организована в столбцы и строки.
Глава 19, “Вычисление математических и геометрических выражений” Geometry Calculator представляет собой приложение ADS, которое может быть использовано для выполнения вычислений в диалоговом режиме. В этой главе рассказывается об использовании калькулятора для вычисления векторных, действительных и целочисленных выражений. С его помощью можно также вызывать существующие геометрические функции, используя для этого три первых буквы имени соответствующей стандартной функции привязки объектов AutoCAD (например, MID, CEN, END и т.п.).
Web-узлы автора Для профессорско-преподавательского состава Свяжитесь с автором этой книги по адресу [email protected], чтобы получить доступ к соответствующему разделу Web-узла, на котором вы сможете найти следующие материалы: 1. Чертежи, которые используются в примерах и упражнениях, приведенных в этой книге. 2. Справочник преподавателя, содержащий решения упражнений и ответы на вопросы, имеющиеся в каждой главе.
Для студентов Если вы хотите загрузить чертежи, описанные в упражнениях, учебные пособия, листинги программ и другие специальные материалы, обратитесь на Web-узлы www.cadcim.com или http://technology.calumet.purdue.edu/met/tickoo/students/ students.htm.
20
Введение
Посвящение Преподавателям, всецело отдавшим себя делу просвещения юных и любознательных представителей наших будущих поколений. Студентам, посвятившим себя изучению новых технологий и пытающимся улучшить мир, в котором мы живем.
Благодарности Студентам и профессорско-преподавательскому составу машиностроительного факультета Университета Пердью (г. Хаммонд), оказавшим автору посильную помощь в написании этой книги. Дипак Маини (Deepak Maini), Абхинав Раи (Abhinav Rai), Сакет Сингхал (Saket Singhal), Пуджа Манчанда (Puja Manchanda), Гурприт Сингх (Gurpreet Singh) сделали значительный вклад в написание этой книги. Технические редакторы Манаш Чаттерджи (Manash Chatterjee) и Ашвин Амбалиа (Ashvin Ambalia), а также литературный редактор Анупама Шарма (Anupama Sharma) помогли выйти этой книге в свет.
Ждем ваших отзывов! Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес. Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится вам эта книга или нет, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас. Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию последующих книг. Наши координаты: [email protected] E-mail: http://www.williamspublishing.com WWW: Адреса для писем: из России: 115419, Москва, а/я 783 из Украины: 03150, Киев, а/я 152
Глава 1
Шаблоны чертежей
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • создавать шаблоны чертежей; • загружать шаблоны чертежей, используя диалоговые окна и командную строку; • задавать исходные параметры чертежей; • настраивать чертежи, изменяя параметры используемых слоев и размерные характеристики; • настраивать чертежи, используя листы, видовые экраны и пространство листа.
22
Глава 1
Создание шаблонов чертежей Одним из способов настройки AutoCAD является создание чертежных шаблонов, определяющих исходные параметры чертежа, а также содержащих видимые объекты и текстовые надписи. Когда пользователь начинает работу над новым чертежом, автоматически загружаются параметры настройки, соответствующие заданному шаблону. При создании чертежа “с чистого листа” программа AutoCAD загружает параметры настройки, установленные по умолчанию. Например, лимиты чертежа по умолчанию определяются значениями (0.0, 0.0) и (12.0, 9.0), а стандартным слоем является слой 0 (белого цвета), содержащий сплошные линии. Как правило, перед использованием программы AutoCAD для создания чертежа на компьютере необходимо восстановить стандартные настройки. Как вы понимаете, чтобы установить слои, цвета, типы и толщину линий, лимиты, привязки, единицы измерения, высоту текста, а также определить размерные переменные и другие параметры чертежа, потребуется немало времени. Иногда шаблоны чертежей могут содержать также рамку и форму для заполнения основной надписи. При создании чертежей большая часть параметров настройки остается неизменной. Например, название и логотип компании, используемые слои, рамка, размерные переменные, высота текста, значение переменной LTSCALE и другие параметры чертежей практически не изменяются. Вы сэкономите немало времени, если сохраните, а затем, начиная работать над новым чертежом, загрузите заданные параметры. Для этого достаточно создать ряд шаблонов, содержащих исходные параметры чертежей, выполненных в соответствии со спецификациями вашей компании. Подобные шаблоны могут также содержать рамку, форму для заполнения основной надписи с названием и логотипом компании, таблицу допусков, таблицу габаритных размеров, плавающие видовые экраны, расположенные на листе в определенном порядке, а также текстовую информацию, одинаковую для всех чертежей (например, технические условия или технические требования).
Стандартные шаблоны В программе AutoCAD имеется ряд стандартных шаблонов, к числу которых относятся Acad.dwt, Acadiso.dwt, Ansi a (portrait) -color dependent plot styles.dwt, Din a1 -named plot styles.dwt и многие другие. Шаблоны чертежей ANSI, DIN и ISO созданы на основе чертежных стандартов, разработанных Национальным институтом стандартизации США (ANSI American National Standards Institute), DIN (Германия) и Международной организацией по стандартизации (ISO International Organization for Standardization). Когда вы открываете новый чертеж, используя для этого диалоговое окно Startup (Начало работы), на экране появляется диалоговое окно Create New Drawing (Создание нового рисунка). Чтобы воспользоваться каким-нибудь шаблоном, щелкните на кнопке Use a Template (По шаблону) и в диалоговом окне появится список стандартных шаблонов. Выберите из списка шаблон, который наиболее полно отвечает вашим потребностям. Если вы хотите начать чертеж, имеющий стандартные параметры настройки, откройте диалоговое окно Create New Drawing и щелкните на кнопке Start from Scratch (Простейший шаблон). Перед вами появится список значений, присваиваемых по умолчанию системным переменным, которые определяют параметры нового чертежа:
Значение по умолчанию 0.500 0.500 ByLayer Off 2 25.4 None On 0.18 0.500 0.500 0 Left 0.0000,0.0000 12.000,9.0000 1.0 1 (Зеркальное отображение текста выполняется точно так же, как и других объектов) 1 (On)
Пример 1 Создайте шаблон чертежа с помощью мастера Advanced Setup (Детальная подготовка), пиктограмма которого находится на вкладке Create New Drawing (Создание нового рисунка). Установите следующие параметры и сохраните шаблон чертежа под именем proto1.dwr. Единицы измерения Угол Направление угла Размеры листа
Инженерные с точностью 0'-0.00" Десятичные градусы с точностью 0 Против часовой стрелки 144×96 дюймов
Шаг 1 Откройте диалоговое окно Options (Настройка), выбрав команду Tools Options (СервисПараметры), перейдите на вкладку System (Система) и выберите опцию Show Startup dialog box (Показывать окно начала работы) из раскрывающегося списка Startup (Начало работы). Затем откройте диалоговое окно Create New Drawing, выбрав команду FileNew (ФайлНовый). Щелкните на кнопке Use a Wizard (Вызов мастера) и выберите опцию Advanced Setup (Детальная подготовка), как показано на рис. 1.1. Щелкните на кнопке ОК. На экране появится страница Units (Единицы) диалогового окна Advanced Setup.
Шаг 2 В разделе Select the unit of measurement (Выбор единиц измерения) выберите переключатель Engineering (Инженерные). В раскрывающемся списке Precision (Точность) выберите опцию 0'-0.00", как показано на рис. 1.2, а затем щелкните на кнопке Next (Далее). На экране появится диалоговое окно Advanced Setup, открытое на странице Angle (Углы).
24
Глава 1
Рис. 1.1. Диалоговое окно Create New Drawing с выбранной опцией Advanced Setup
Рис. 1.2. Страница Units диалогового окна Advanced Setup
Шаг 3 На странице Angle выберите переключатель Decimal Degrees (Десятичные градусы), а в раскрывающемся списке Precision (Точность) выберите опцию 0, как показано на рис. 1.3. Щелкните на кнопке Next (Далее). На экране отобразится диалоговое окно Advanced Setup, открытое на странице Angle Measure (Измерение углов).
Шаг 4 На странице Angle Measure выберите переключатель East (Восток). Затем перейдите на страницу Angle Direction (Направление угла), щелкнув на кнопке Next (Далее).
Шаг 5 Выберите переключатель Counter-Clockwise (Против часовой стрелки) и щелкните на кнопке Next (Далее). На экране появится страница Area (Зона рисования). Определите размеры области (144×96 дюймов), введя значения 144 и 96 в текстовые окна Width (Ширина) и Length (Длина). Затем щелкните на кнопке Finish (Готово). Чтобы отобразить на экране область с заданными размерами, введите команду ZOOM с опцией All. Сохраните шаблон чертежа, присвоив ему имя proto1.dwt. Примечание Если вы хотите изменить только тип линейных единиц и размеры области рисования, можете воспользоваться опцией Quick Setup (Быстрая подготовка) диалогового окна Create New Drawing (Создание нового рисунка).
Пример 2 Создайте шаблон чертежа c параметрами, указанными в таблице, а затем сохраните его под именем proto2.dwt. Лимиты
18.0, 12.0
Шаг привязки
0.25
Шаг сетки
0.50
Высота текста
0.125
Единицы измерения
Английские (футы и дюймы) Три знака после десятичной точки Десятичные градусы Два знака после десятичной точки Отсчет угла от положительной оси X (восток) Угол положительный, если измеряется против часовой стрелки
26
Глава 1
Шаг 1: начало работы Запустите программу AutoCAD и выберите опцию Start from Scratch (Простейший шаблон) в диалоговом окне Create New Drawing (Создание нового рисунка). В разделе Default Settings (Единицы по умолчанию) выберите переключатель Imperial (feet and inches) (Английские (футы и дюймы)), как показано на рис. 1.4. Откройте новый файл, щелкнув на кнопке OK.
Рис. 1.4. Диалоговое окно Create New Drawing с выбранной опцией Start from Scratch
Шаг 2: определение лимитов, шага привязки, сетки и высоты текста Вызовите команду LIMITS (ЛИМИТЫ). Для этого выберите опцию Drawing Limits (Лимиты чертежа) из меню Format (Формат) или введите выражение LIMITS в командную строку: Command: LIMITS Specify lower left corner or [ON/OFF] <0.00,0.00>: 0,0 Specify upper right corner <12.0,9.0>: 18.0,12.0 ◊◊◊ Команда: LIMITS Левый нижний угол или [Вкл/Выкл] <0.00,0.00>: 0,0 Правый верхний угол <12.0,9.0>: 18.0,12.0
После того, как будут установлены лимиты чертежа, увеличьте область рисунка, показанную на экране. Чтобы отобразить область с указанными размерами, воспользуйтесь командой ZOOM (ПОКАЗАТЬ) с опцией All (Все). Щелкните правой кнопкой мыши на кнопке Snap (Шаг) или Grid (Сетка), которые находятся в строке состояния, и выберите из контекстного меню опцию Settings (Настройки). На экране появится диалоговое окно Drafting Settings (Режимы рисования). Кроме этого, диалоговое окно Drafting Settings можно открыть, щелкнув на кнопке Object Snap Settings (Настройка объектной привязки), которая находится на панели инструментов Object Snap (Объектная привязка). Перейдите на вкладку Snap and Grid (Шаг и сетка). Введите значения 0.25 и 0.25 в текстовые окна Snap X spacing (Шаг привязки по X) и Snap Y spacing (Шаг привязки по Y), соответственно. Введите значения 0.5 и 0.5 в текстовые окна Grid X spacing (Шаг сетки по X) и Grid Y spacing (Шаг сетки по Y), а затем щелкните на кнопке OK.
Шаблоны чертежей
27
Примечание Для установки требуемых значений можно также использовать команды SNAP и GRID.
Чтобы изменить высоту текста, введите выражение TEXTSIZE в командную строку: Command: TEXTSIZE Enter new value for TEXTSIZE <0.2000>: 0.125 ◊◊◊ Команда: TEXTSIZE Введите новое значение TEXTSIZE <0.2000>: 0.125
Шаг 3: установка единиц измерения Откройте диалоговое окно Drawing Units (Единицы рисования), показанное на рис. 1.5. Для этого выберите команду FormatUnits (ФорматЕдиницы) или введите выражение UNITS в командную строку . Выберите опцию 0.000 из раскрывающегося списка Precision (Точность), который находится в разделе Length (Линейные размеры). Затем выберите опцию Decimal Degrees (Десятичные градусы) из раскрывающегося списка Type (Тип) и опцию 0.00 из раскрывающегося списка Precision (Точность), которые находятся в разделе Angle (Углы). Проверьте, не установлен ли флажок опции Clockwise (По часовой стрелке), флаговая кнопка которой также находится в разделе Angle.
Рис. 1.5. Диалоговое окно Drawing Units
Откройте диалоговое окно Direction Control (Установка направления), щелкнув на кнопке Direction (Направление), и выберите переключатель East (Восток) (рис. 1.6). Затем закройте все вызванные диалоговые окна.
Шаг 4 Теперь сохраните файл чертежа под именем proto2.dwt, вызвав команду SAVE (СОХРАНИТЬ). Выберите опцию AutoCAD Drawing Template (*dwt) (Шаблон рисунка AutoCAD (*.dwt)) из раскрывающегося списка Files of type (Тип файла), который находится в нижней части диалогового окна Save Drawing As (Сохранение), введите выражение proto2.dwt в окно File name (Имя файла) и щелкните на кнопке Save (Сохранить).
28
Глава 1
Чертеж будет сохранен в каталоге, выбранном по умолчанию. Используя диалоговое окно Save Drawing As, можно сохранить чертеж на дискете, которая находится в дисководе A или B.
Рис. 1.6. Диалоговое окно Direction Control
Загрузка шаблона чертежа Созданные шаблоны можно с успехом использовать для работы над новым чертежом. Для этого запустите программу AutoCAD или щелкните на кнопке QNEW (БНовый), которая находится на панели инструментов Standard (Стандартная). На экране появится диалоговое окно, выбор которого зависит от параметров запуска программы, установленных в диалоговом окне Options (Настройка). Если в раскрывающемся списке Startup (Начало работы) была выбрана опция Show Startup dialog box, то при запуске AutoCAD на экране появится диалоговое окно Create New Drawing (Создание нового рисунка). Выберите опцию Use a Template (По шаблону). В списковом окне Select a Template (Выбор шаблона) будут показаны все шаблоны, сохраненные в каталоге Templates (рис. 1.7). Если вы сохранили шаблон в другом каталоге, щелкните на кнопке Browse (Обзор). На экране появится диалоговое окно Select a template file (Выбор файла шаблона), с помощью которого вы сможете перейти в каталог, содержащий файл шаблона.
Рис. 1.7. Список шаблонов, содержащихся в каталоге Templates
Шаблоны чертежей
29
Если вместо Show Startup dialog box была выбрана какая-нибудь другая опция, при щелчке на кнопке QNew на экране появится диалоговое окно Select Template (Выбор шаблона), показанное на рис. 1.8. В этом диалоговом окне будут отображены все файлы шаблонов, хранящиеся в каталоге Templates. Это позволит вам выбрать шаблон, который вы хотите открыть.
Рис. 1.8. Диалоговое окно Select template, отображающееся на экране при запуске программы
Используя один из перечисленных методов, выберите файл шаблона proto1.dwt. AutoCAD откроет новый чертеж, который будет иметь тот же набор заданных параметров, что и шаблон чертежа proto1.dwt. Можно создать несколько шаблонов, каждый из которых будет иметь определенные параметры (например, шаблон PROTOB, предназначенный для чертежей формата 18×12 дюймов, и шаблон PROTOC, используемый в чертежах форматом 24×18 дюймов). Примечание Для загрузки шаблонов можно также использовать командную строку. Присвойте системной переменной FILEDIA значение 0, а затем введите в командную строку выражение QNEW. При выполнении этой команды появится приглашение, позволяющее ввести имя нужного шаблона.
Настройка чертежей по слоям и размерам В большинстве случаев рабочие чертежи состоят из нескольких слоев, которые используются для отображения объектов различного типа. Кроме этого слоям чертежа назначаются определенные цвета, которые позволяют контролировать толщину линий во время вычерчивания графических изображений. Таким образом, можно создать шаблон чертежа, содержащий требуемое количество слоев с линиями определенного типа и цвета, которые соответствуют спецификациям вашей компании. В дальнейшем этот шаблон может быть использован для создания новых чертежей. Следующий пример иллюстри-
30
Глава 1
рует процесс настройки чертежа, состоящего из нескольких слоев, имеющих определенный цвет и содержащих линии заданного типа.
Пример 3 Создайте шаблон чертежа proto3.dwt с рамкой и формой для заполнения основной надписи, содержащей логотип и название вашей компании (рис. 1.9).
Рис. 1.9. Шаблон чертежа для примера 3
Шаблон чертежа будет иметь следующие исходные параметры: Лимиты чертежа Высота текста Толщина линии рамки Масштаб
48.0,36.0 0.25 0.012" 4.0
Размеры Общий масштабный коэффициент — 4.0 Текст размера над выносной линией Текст размера выравнивается по выносной линии Слои Название слоя
White (Белый) Red (Красный) Yellow (Желтый) Blue (Синий) Green (Зеленый) Magenta (Пурпурный)
Шаблоны чертежей
31
Шаг 1: установка лимитов, высоты текста, ширины полилиний и глобального масштаба типов линий Откройте новый чертеж, имеющий параметры, заданные по умолчанию. Для этого откройте диалоговое окно Create New Drawings (Создание нового рисунка) и щелкните на кнопке Start from Scratch (Простейший шаблон). Затем установите указанные параметры чертежа. После этого начертите рамку и форму для заполнения основной надписи (рис. 1.9). Пунктирные линии, показанные на этом рисунке, изображают границы листа, которые находятся на расстоянии 1 дюйм (1.0 единиц) от рамки чертежа. При вычерчивании рамки необходимо увеличить вес линии до 0.012". Чтобы создать прототип чертежа для примера 3, выполните следующую процедуру: 1. Вызовите команду LIMITS, выбрав команду Drawing Limits (Лимиты чертежа) из меню Format (Формат) или введя выражение LIMITS в командную строку. В командной строке появятся следующие приглашения: Command: LIMITS Specify lower left corner or [ON/OFF] <0.00,0.00>: 0,0 Specify upper right corner <12.0,9.0>: 48.0,36.0 ◊◊◊ Команда: LIMITS Левый нижний угол или [Вкл./Выкл.] <0.00,0.00>: 0,0 Правый верхний угол <12.0,9.0>: 48.0,36.0
2. Увеличьте область листа, отображаемую на экране, вызвав команду ZOOM с опцией All. 3. Измените размер текста, введя выражение TEXTSIZE в командную строку. Command: TEXTSIZE Enter new value for TEXTSIZE <0.2000>: 0.25 ◊◊◊ Команда: TEXTSIZE Новое значение TEXTSIZE <0.2000>: 0.25
4. Начертите прямоугольную рамку, используя для этого команду RECTANG. При выполнении этой операции в зоне командных строк появятся следующие приглашения: Command: RECTANG Specify first corner point or [Chamfer/Elevation/Fillet/Thickness/Width]: 1.0,1.0 Specify other corner point or [Dimensions]: 47.0,35.0 ◊◊◊ Команда: RECTANG Первая вершина или [Скос/Высота/Сопряжение/Толщина/Ширина]: 1.0,1.0 Вторая вершина или [Размеры]: 47.0,35.0
5. Теперь выделите построенный прямоугольник и выберите опцию 0.012" из раскрывающегося списка Lineweight Control (Толщина линии), который находится на панели инструментов Properties (Свойства). Проверьте, “нажата” ли кнопка режима Show/Hide Lineweight (Показать/скрыть толщину линии), расположенная в строке состояния.
32
Глава 1
6. Чтобы изменить масштабный коэффициент отображения линий, введите выражение LTSCALE в командную строку. Command: LTSCALE Enter new linetype scale factor <current>: 4.0 ◊◊◊ Команда: LTSCALE Новый масштабный коэффициент отображения линий <текущий>: 4.0
Шаг 2: установка параметров, определяющих способ простановки размеров Для определения значений размерных переменных обычно используется диалоговое окно Dimension Style Manager (Диспетчер размерных стилей), показанное на рис. 1.10. Чтобы открыть это диалоговое окно, щелкните на кнопке Dimension Style (Размерный стиль), которая находится на панели инструментов Dimension (Размеры), или выберите опцию Style (Стиль) из меню Dimension (Размеры).
Можно также отобразить диалоговое окно, введя выражение DIMSTYLE в командную строку. Щелкните на кнопке New (Новый), которая находится в правой части диалогового окна Dimension Style Manager. На экране появится диалоговое окно Create New Dimension Style (Создание нового размерного стиля). Присвойте новому стилю имя MYDIM1, введя это имя в текстовое окно New Style Name (Имя нового стиля), а затем щелкните на кнопке Continue (Далее) (рис. 1.11). На экране появится диалоговое окно New Dimension Style:MYDIM1 (Новый размерный стиль:MYDIM1).
Глобальный масштаб Чтобы определить глобальный масштабный коэффициент, перейдите на вкладку Fit (Размещение) диалогового окна New Dimension Style:MYDIM1. Введите значение 4 в окно Use overal scale of (Глобальный масштаб), которое находится в разделе Scale for Dimension Features (Масштаб размерных элементов) (рис. 1.12).
Шаблоны чертежей
33
Рис. 1.11. Диалоговое окно Create New Dimension Style
Рис. 1.12. Вкладка Fit диалогового окна New Dimension Style:MYDIM1
Положение размерного числа относительно размерной линии Перейдите на вкладку Text (Текст) диалогового окна New Dimension Style (Новый размерный стиль) и выберите переключатель Over the dimension line, with a leader (Строить выноску), который находится в разделе Text Placement (Выравнивание текста).
Выравнивание размерного текста по размерной линии Выберите переключатель Aligned with the dimension line (Вдоль размерной линии), который находится на вкладке Text (Текст) в разделе Text Alignment (Ориентация текста). Затем закройте диалоговое окно New Dimension Style (Новый размерный стиль), щелкнув на кнопке ОК.
Установка нового размерного стиля Новый размерный стиль, которому присвоено имя MYDIM1, показан в разделе Styles (Стили) диалогового окна Dimension Style Manager (Диспетчер размерных стилей). Чтобы сделать его текущим, выделите имя созданного стиля, а затем щелкните на кнопке Set Current (Установить). Затем закройте диалоговое окно, щелкнув на кнопке Close (Закрыть).
34
Глава 1
Шаг 3: установка параметров слоев Откройте диалоговое окно Layer Properties Manager (Диспетчер свойств слоев), щелкнув на кнопке Layer Properties Manager (Диспетчер свойств слоев), которая находится на панели Layers (Слои), или выбрав команду Layer (Слои) из меню Format (Формат) (рис. 1.13).
Существует еще один способ, позволяющий открыть диалоговое окно Layer Properties Manager. Для этого необходимо ввести выражение LAYER в командную строку. Щелкните на кнопке New (Новый), которая находится в правом верхнем углу диалогового окна Layer Properties Manager, и переименуйте слой Layer1, присвоив ему имя OBJ. Откройте диалоговое окно Select Color (Выбор цвета), щелкнув на образце цвета слоя OBJ, выберите из палитры красный цвет (red) и щелкните на кнопке OK; этот цвет будет назначен слою OBJ. Создайте еще один слой, щелкнув на кнопке New, а затем переименуйте его, присвоив появившемуся слою Layer1 имя CEN. Откройте диалоговое окно Select Linetype (Выбор типа линии), щелкнув левой кнопкой мыши на значке или названии типа линии. Если требуемого типа линии в окне нет, загрузите его. Для этого откройте диалоговое окно Load or Reload Linetypes (Загрузка или перезагрузка типов линий), щелкнув на кнопке Load (Загрузить). Выберите элемент CENTER из списка Available Linetypes (Доступные типы линий) и щелкните на кнопке OK. Откройте диалоговое окно Select Color (Выбор цвета), выберите из палитры желтый цвет (yellow) и щелкните на кнопке OK; этот цвет будет назначен слою CEN. Подобным образом можно назначить цвета и типы линий другим слоям, упомянутым в этом примере. С помощью командной строки можно также создавать новые слои и устанавливать все необходимые параметры (например, цвет и тип линий). Для этого используется команда -LAYER.
Шаг 4: добавление формы для заполнения основной надписи Начертите рамку и форму для заполнения основной надписи и введите название предприятия и другие текстовые данные. Сохраните созданный чертеж под именем proto3.dwt. Таким образом, вы создали шаблон чертежа (PROTO3), который содержит всю информацию, приведенную в примере 3.
Шаблоны чертежей
35
Настройка чертежей по параметрам листа Лист (пространство чертежного листа) представляет собой наиболее удобный способ вычерчивания различных проекций или видов трехмерного (объемного) или обычного двумерного (плоского) чертежа. Как вы понимаете, для того, чтобы установить параметры видовых экранов, которые отличаются направлением взгляда и масштабом изображения, требуется немало времени. Поэтому создайте чертеж-прототип, содержащий видовые экраны с предварительно определенными параметрами и заданным направлением взгляда, а также другую необходимую информацию. При создании нового или вставке уже существующего чертежа будут автоматически сформированы все необходимые проекции. Следующий пример иллюстрирует процесс создания чертежа-прототипа с определенной компоновкой пространства листа и пространства модели.
Пример 4 Создайте шаблон чертежа, как показано на рис. 1.14. Пространство листа (Лист3) разделено на четыре части, содержащие вид спереди, вид сверху, вид сбоку и аксонометрическую проекцию детали. Размеры области печати — 10,5×8 дюймов. Масштаб чертежа — 0,5 или 1/2"=1". Видовые экраны пространства листа должны иметь следующие параметры: Видовые экраны
Направление взгляда
Вид
Правый верхний Левый верхний Правый нижний Левый нижний
1, -1, 1 0, 0, 1 1, 0, 0 0, -1,0
Аксонометрия Вид сверху Вид сбоку Вид спереди
Рис. 1.14. Пространство листа с четырьмя видовыми экранами
36
Глава 1
Запустите программу AutoCAD и создайте новый чертеж. Установите требуемые параметры, используя следующие команды и опции.
Шаг 1 Прежде всего создайте новый лист, вызвав команду LAYOUT. Можно также открыть контекстное меню, щелкнув правой кнопкой мыши на ярлычке Model (Модель) или Layout (Лист), и выбрать из него команду New Layout (Новый лист). Command: LAYOUT Enter layout option [Copy/Delete/New/Template/Rename/SAveas/Set/?] <set>: N Enter new Layout name : Layout3 ◊◊◊ Команда: LAYOUT Опция листа [Копировать/Удалить/Создать/Шаблон/Переименовать/ СохранитьКак/Параметры/?] <параметры>: N Имя нового листа : Layout3
Шаг 2 Откройте диалоговое окно Page Setup - Layout3 (Параметры листа - Лист3), щелкнув мышью на ярлычке нового листа (Layout3). По умолчанию выбирается вкладка Plot Device (Устройство вывода). Выберите принтер или другое печатающее устройство, которое вы хотите использовать. В нашем примере используется принтер HP LaserJet 4000.
Шаг 3 Перейдите на вкладку Layout Settings (Параметры листа) и выберите формат, который поддерживается выбранным печатающим устройством. В нашем примере размер листа равен 8,5×11 дюймов. Чтобы применить установленные параметры и закрыть диалоговое окно, щелкните на кнопке ОК. На экране отобразится новый лист (Layout3) с видовым экраном, выбранным по умолчанию. Сотрите его, введя выражение ERASE в командную строку.
Шаг 4 Теперь необходимо создать слой VIEW, в котором будут находиться видовые экраны, и назначить ему зеленый цвет. Откройте диалоговое окно Layer Properties Manager (Диспетчер свойств слоев). Щелкните на кнопке New (Новый), а затем переименуйте появившийся слой Layer1, присвоив ему имя VIEW. Откройте диалоговое окно Select Color (Выбор цвета), щелкнув на образце цвета слоя VIEW, выберите из палитры зеленый цвет (green) и щелкните на кнопке OK; этот цвет будет назначен слою VIEW. Сделайте этот слой текущим, а затем закройте диалоговое окно, щелкнув на кнопке OK.
Шаг 5 Чтобы создать четыре видовых экрана, воспользуйтесь командой MVIEW. Для вызова этой команды выберите опцию Viewports4Viewports (Видовые экраны4 видовых экрана) из меню View (Вид) или введите выражение MVIEW в командную строку. Затем перейдите в пространство модели, что позволит вам вдвое увеличить размеры области, отображаемой на экране.
Шаблоны чертежей
37
Command: MVIEW Specify corner of viewport or [ON/OFF/Fit/Hideplot/Lock/Object/Polygonal/Restore/2/3/4] : 4 Specify first corner or [Fit] : 0.25,0.25 Specify opposite corner: 10.25,7.75 ◊◊◊ Команда: MVIEW Угол видового экрана или [Вкл/Выкл/Подогнать/Удалить/Блокировать/Объект/Многоугольник/ Восстановить/2/3/4] <Подогнать>: 4 Первый угол или [Подогнать] <Подогнать>: 0.25,0.25 Противоположный угол: 10.25,7.75
Чтобы активизировать пространство модели, щелкните на кнопке PAPER (ЛИСТ), которая находится в строке режимов, или введите выражение MSPACE в командную строку. Command: MSPACE (или MS)
Активизируйте первый видовой экран, щелкнув в зоне экрана левой кнопкой мыши, а затем установите масштаб 0,5, используя команду ZOOM. Для этого выберите команду ViewZoomScale (ВидМасштабМасштаб) или введите выражение ZOOM в командную строку. Command: ZOOM Specify corner of window, enter a scale factor (nX or nXP), or [All/Center/Dynamic/Extents/Previous/Scale/Window] : 0.5XP ◊◊◊ Команда: ZOOM Угол окна, масштабный коэффициент (nX или nXP) или [Все/По центру/Динамический/В пределах/Предыдущий/Масштаб/Окно] <в реальном времени>: 0.5XP
Затем активизируйте следующий видовой экран и установите нужный масштаб. Повторите эту операцию во всех остальных экранах.
Шаг 6 На следующем этапе необходимо с помощью команды VPOINT установить нужное направление взгляда в видовых экранах, имеющихся в пространстве листа. Для вызова этой функции выберите команду View3D ViewsVPOINT или введите выражение VPOINT в командную строку. Command: VPOINT Current view direction: VIEWDIR=0.0000, 0.0000, 1.0000 Specify a view point or [Rotate] : 0,-1,0 ◊◊◊ Команда: VPOINT Текущее направление взгляда: VIEWDIR=0.0000,0.0000,1.0000 Точка обзора или [Повернуть] <отобразить компас и трехосную систему координат>: 0,-1,0
Таким же образом установите направление взгляда в остальных видовых экранах.
38
Глава 1
Шаг 7 Перейдите в пространство листа, щелкнув мышью на кнопке MODEL (Модель), которая находится в строке режимов, и создайте слой PBORDER желтого цвета. Сделайте этот слой текущим, а затем, вызвав команду PLINE, начертите рамку и форму для заполнения основной надписи (если это необходимо). Для перехода в пространство листа можно также использовать команду PSPACE. Чтобы вызвать команду PLINE (ПЛИНИЯ), щелкните на кнопке Polyline (Полилиния), которая находится на панели инструментов Draw (Рисование), или выберите команду Polyline (Полилиния) из меню Draw (Рисование). Можно также ввести выражение PLINE в командную строку. Command: PLINE Specify start point: 0,0 Current line-width is 0.0000 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
0,8.0 10.5,8.0 10.5,0 C
◊◊◊ Команда: PLINE Начальная точка: 0,0 Текущая ширина линии — 0.0000 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]:
0,8.0 10.5,8.0 10.5,0 C
Шаг 8 И последнее: перейдите на вкладку Model (или присвойте переменной TILEMODE значение 1) и сохраните чертеж-прототип. Чтобы проверить правильность создания макета листа, начертите аксонометрическую проекцию детали, как показано на рис. 1.18, или постройте какой-нибудь трехмерный объект. Перейдя на вкладку Layout3, вы должны обнаружить четыре вида указанного объекта (рис. 1.15). Если в видовых экранах отсутствуют соответствующие виды, попробуйте изменить их расположение с помощью команды PAN (ПАН). Если вы не хотите, чтобы видовые экраны отображались на чертеже, “заморозьте” слой VIEW. Созданный чертеж можно распечатать из листа Layout3, установив масштаб 1:1, который обеспечивает вычерчивание детали в натуральную величину.
Шаблоны чертежей
39
Рис. 1.15. Четыре вида трехмерного объекта в пространстве листа
Настройка чертежей по конфигурации видовых экранов В определенных случаях для отображения тех или других видов объекта могут использоваться различные конфигурации пространства модели, содержащего несколько видовых экранов. Конфигурирование пространства модели включает в себя создание видовых экранов и последующее изменение направления взгляда в соответствии с параметрами требуемых проекций чертежа. В этом случае создается чертеж-прототип, содержащий требуемое количество видовых экранов (или окон просмотра) и данные, определяющие направление взгляда. При вставке трехмерного изображения в одну из плоскостей чертежа вы автоматически получаете различные виды изображенного объекта без настройки видовых экранов или определения направления взгляда. Следующий пример иллюстрирует процесс создания чертежа-прототипа, имеющего стандартное количество видовых экранов (четыре) и соответствующие направление взглядов.
Пример 5 Создайте чертеж-прототип с четырьмя видовыми экранами, как показано на рис. 1.16. Видовые экраны должны иметь следующие параметры: Видовой экран Правый верхний Левый верхний Правый нижний Левый нижний
Вид Аксонометрия Вид сверху Вид справа Вид спереди
40
Глава 1
Рис. 1.16. Четыре видовых экрана, каждый из которых имеет соответствующее направление взгляда
Шаг 1 Запустите AutoCAD и создайте новый чертеж.
Шаг 2: установка видовых экранов Для определения видовых экранов и установки соответствующего направления взгляда используется команда VPORTS (ВЭКРАН). Можно также открыть диалоговое окно Viewports (Видовые экраны), показанное на рис. 1.17, щелкнув на кнопке Display Viewports Dialog, которая находится на панели инструментов Viewports (Видовые экраны), или выбрав команду ViewportsNew Viewports (Видовые экраныНовые видовые экраны) из меню View (Вид). В разделе Standard Viewports (Стандартные конфигурации) открывшегося диалогового окна выберите опцию Four:Equal (Четыре: Одинаковые). В окне Preview (Образец) отобразятся четыре одинаковые области. Из раскрывающегося списка Setup (Режим) выберите опцию 3D. Теперь в окне предварительного просмотра будут показаны четыре видовых экрана, содержащие следующие виды: Top (Вид сверху), Front (Вид спереди), Right (Вид справа) и SE Isometric (Изометрическая проекция). Направление взгляда определяется следующими значениями: для вида сверху (Top) — 0,0,1, для вида спереди (Front) — 0,-1,0, для вида справа (Right) — 1,0,0, для изометрической проекции (SE Isometric) — 1,-1,1, соответственно. Щелкните на кнопке OK. Сохраните чертеж, присвоив ему имя proto5.dwt. Для установки видовых экранов и определения направления взглядов можно использовать команды VPOINT и -VPORTS, введя соответствующие выражения в командную строку.
Шаг 3 Откройте новый лист и постройте трехмерную модель клиновидной призмы, показанную на рис. 1.18.
Шаблоны чертежей
41
Шаг 4 Откройте еще один новый лист и создайте чертеж TEST, используя для этого шаблон proto5.dwt. Щелкните левой кнопкой мыши в правом верхнем видовом экране и начертите трехмерное изображение или вставьте чертеж, показанный на рис. 1.18. На экране автоматически появятся четыре различных вида (рис. 1.19).
Рис. 1.17. Диалоговое окно Viewports
Рис. 1.18. Клиновидная призма
42
Глава 1
Рис. 1.19. Проекции клиновидной призмы
Настройка чертежей по масштабу и размерам области печати При определении размеров области печати рекомендуется использовать различные макеты чертежа. Например, можно создать чертеж, имеющий произвольные размеры, определить размеры листа с помощью соответствующего макета, а затем начертить рамку и форму для заполнения основной надписи. Следует заметить, что чертеж детали, как правило, создается в пространстве модели, после чего системным переменным присваиваются значения, которые обеспечивают соответствие напечатанного чертежа спецификациям вашей компании. Это позволяет создавать шаблоны чертежей в соответствии с масштабом и размерами листа. Например, если вы хотите напечатать чертеж, созданный в масштабе 1/16"=1', на листе с размерами 36×24 дюймов, вам необходимо вычислить параметры чертежа, такие как размеры листа, значения системных переменных DIMSCALE и LTSCALE, а затем сохранить их в соответствующем шаблоне. Это позволит сберечь немало времени, которое обычно уходит на предварительную настройку исходных параметров чертежа, и обеспечит единообразие создаваемых чертежей. В следующем примере описывается процедура, выполняемая при настройке чертежа в соответствии с масштабом и размерами области печати. Примечание Для определения масштаба и размеров области печати можно также использовать пространство листа.
Шаблоны чертежей
43
Пример 6 Создайте шаблон чертежа (PROTO6), имеющий следующие параметры: Размеры листа Масштаб Шаг Сетка Высота текста Масштаб отображения линий Масштаб размерных линий и чисел Единицы
Рамка
36×24 дюйма (рис. 1.20) 1/8"=1.0' 3' 6' 1/4" в напечатанном виде Вычислить Вычислить Архитектурные Точность 0'-01/16" Углы измеряются в градусах/минутах/секундах Точность 0d00' Отсчет угла от положительной оси X (восток) Угол положительный, если измеряется против часовой стрелки Линии рамки должны находиться на расстоянии 1" от границ листа. В напечатанном виде линии рамки должны иметь толщину 1/32" (рис. 1.20)
Рис. 1.20. Рамка шаблона чертежа
Шаг 1: определение размеров листа, высоты текста, ширины полилиний и масштаба отображения линий и размеров В этом примере перед установкой параметров чертежа вам необходимо вычислить значения некоторых величин. В частности, размеры листа (лимиты) зависят от масштаба и размеров чертежа в напечатанном виде. Точно так же, значения системных переменных LTSCALE и DIMSCALE зависят от масштаба, используемого при вычерчивании чертежа. При определении лимитов чертежа, масштаба отображения основных и вспомогательных линий, масштаба размерных линий и размерных чисел, а также высоты текста выполняются следующие вычисления.
44
Глава 1
Лимиты чертежа Дано: Размер листа — 36×24 дюйма Масштаб — 1/8"=1' или 1"=8' Вычислить: • предельный размер по оси X (X Limit) • предельный размер по оси Y (Y Limit) Так как размер листа равен 36×24 дюйма, а масштаб — 1/8"=1', то • X Limit = 36 × 8' = 288' • Y Limit = 24 × 8' = 192'
Высота текста Дано: Высота текста в напечатанном виде — 1/4" Масштаб — 1/8"=1' Вычислить: • высоту текста Так как масштаб равен 1/8"=1' • или 1/8"=12" • или 1"=96", следовательно, масштабный коэффициент равен 96. Таким образом, высота текста равна 1/4"× 96 = 24" = 2'
Масштаб отображения линий чертежа, размерных линий и чисел Дано: Масштаб — 1/8"=1' • или 1/8'=12" • или 1"=96" Вычислить: • значения переменных LTSCALE и DIMSCALE Так как масштабный коэффициент равен 96, то • LTSCALE = масштабный коэффициент = 96. По аналогии с этим, DIMSCALE = 96 (Значения всех размерных переменных, таких как DIMTXT или DIMASZ, следует умножить на 96.)
Ширина полилиний Дано: Масштаб — 1/8"=1' Вычислить: • Ширина полилиний
Шаблоны чертежей
45
Так как масштаб равен 1/8"=1' • или 1/8'=12" • или 1"=96", то ширина полилинии будет равна 1/32 × 96 = 3" Выполнив описанные вычисления, установите параметры чертежа, используя для этого соответствующие команды AutoCAD, а затем сохраните чертеж под именем proto6.dwt.
Шаг 2: задание единиц Начните новый чертеж и откройте диалоговое окно Drawing Units (Единицы рисования), выбрав команду Units (Единицы) из меню Format (Формат) или введя выражение UNITS в командную строку. Выберите опцию Architectural (Архитектурные) из раскрывающегося списка Type (Тип), который находится в разделе Length (Линейные размеры). Из раскрывающегося списка Precision (Точность) выберите опцию 0'-01/16". Проверьте, не установлен ли флажок опции Clockwise (По часовой стрелке), флаговая кнопка которой находится в разделе Angle (Угловые размеры). Из раскрывающегося списка Type (Тип) выберите элемент Deg/Min/Sec (Град/Мин/Сек), а из раскрывающегося списка Precision (Точность) — элемент 0d00'. После этого откройте диалоговое окно Directional Control (Определение направления), щелкнув на кнопке Direction (Направление). В разделе Base Angle (Базовый угол) выберите переключатель East (Восток), а затем щелкните на кнопке OK.
Шаг 3: определение лимитов чертежа, величины шага и сетки, высоты текста, масштаба отображения линий и размеров, стиля простановки размеров и ширины полилиний Вызовите команду LIMITS. Для этого выберите команду Drawing Limits (Лимиты чертежа) из меню Format (Формат) или введите выражение LIMITS в командную строку. Command: LIMITS Specify lower left corner or [ON/OFF] <0'-00",0'-00">: 0,0 Specify upper right corner <1'-0",0'-9">: 288',192' ◊◊◊ Команда: LIMITS Левый нижний угол или [Вкл/Выкл] <0'-00",0'-00">: 0,0 Правый верхний угол <1'-0",0'-9">: 288',192'
Щелкните правой кнопкой мыши на кнопке Snap (Шаг) или Grid (Сетка), которые находятся в строке состояния, и выберите из контекстного меню опцию Settings (Настройки). На экране появится диалоговое окно Drafting Settings (Режимы рисования). Кроме этого, диалоговое окно Drafting Settings можно открыть, щелкнув на кнопке Object Snap Settings (Настройка объектной привязки), которая находится на панели инструментов Object Snap (Объектная привязка). Перейдите на вкладку Snap and Grid (Шаг и сетка). Введите значения 3' и 3' в текстовые окна Snap X spacing (Шаг привязки по X) и Snap Y spacing (Шаг привязки по Y), соответственно. Введите значения 6' и 6' в текстовые окна Grid X spacing (Шаг сетки по X) и Grid Y spacing (Шаг сетки по Y), а затем щелкните на кнопке OK. Можно также установить требуемые значения, введя команды SNAP и GRID в командную строку.
46
Глава 1
Чтобы изменить высоту текста, введите выражение TEXTSIZE в командную строку: Command: TEXTSIZE Enter new value for TEXTSIZE <current>: 2' ◊◊◊ Команда: TEXTSIZE Новое значение TEXTSIZE <текущее>: 2'
Чтобы определить значение переменной LTSCALE, откройте диалоговое окно Linetype Manager (Диспетчер типов линий), выбрав команду Linetype (Тип линии) из меню Format (Формат) или введя выражение LINETYPE в командную строку. Щелкните на кнопке Show details (С подробностями) и введите значение 96 в текстовое окно Global scale factor (Глобальный масштаб). Можно также изменить масштаб типов линий, введя выражение LTSCALE в командную строку. Чтобы установить значение переменной DIMSTYLE, откройте диалоговое окно Dimension Style Manager (Диспетчер размерных стилей), щелкнув на кнопке Dimension Style (Размерный стиль), которая находится на панели инструментов Dimension (Размеры), или выбрав опцию Style (Стиль) из меню Dimension (Размеры). Щелкните на кнопке New (Новый), которая находится в правой части диалогового окна Dimension Style Manager. На экране появится диалоговое окно Create New Dimension Style (Создание нового размерного стиля). Присвойте новому стилю имя MYDIM2, введя это имя в текстовое окно New Style Name (Имя нового стиля), а затем щелкните на кнопке Continue (Далее). На экране появится диалоговое окно New Dimension Style:MYDIM2 (Новый размерный стиль:MYDIM2). Для определения глобального масштабного коэффициента перейдите на вкладку Fit (Размещение) диалогового окна New Dimension Style:MYDIM2. Введите значение 96 в окно Use overal scale of (Глобальный масштаб), которое находится в разделе Scale for Dimension Features (Масштаб размерных элементов). Вернитесь в диалоговое окно Dimension Style Manager, щелкнув на кнопке ОК. Затем закройте его, щелкнув на кнопке Close (Закрыть). Чтобы вызвать команду PLINE (ПЛИНИЯ), щелкните на кнопке Polyline (Полилиния), которая находится на панели инструментов Draw (Рисование), или введите выражение PLINE в командную строку. Command: PLINE Specify start point: 8',8' Current line-width is 0.0000 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: W Specify starting width <0.00>: 3 Specify ending width <0'-3">: <Enter> Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: 280',8' Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: 280',184' Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: 8',184' Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: C ◊◊◊ Команда: PLINE Начальная точка: 8',8' Текущая ширина линии — 0.0000 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: W Начальная ширина <0.00>: 3
Шаблоны чертежей
47
Конечная ширина <0'-3">: Нажмите на клавишу <Enter> Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: 280',8' Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: 280',184' Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: 8',184' Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: C
Теперь сохраните чертеж, присвоив ему имя proto6.dwt.
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Шаблоны чертежей хранятся в папке ___________. 2. Чтобы создать чертеж с помощью шаблона, щелкните на кнопке _____________, которая находится в верхней части диалогового окна Create New Drawing (Создание нового рисунка). 3. Чтобы создать чертеж со стандартными настройками, выберите опцию _________ диалогового окна Create New Drawing (Создание нового рисунка). 4. Если лист печатающего устройства имеет размеры 36×24 дюймов, а масштаб равен 1/2"=1', то предельные размеры чертежа составят ________ по оси X и ________ по оси Y. 5. Для определения видовых экранов в пространстве листа можно использовать команду AutoCAD __________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Значение, присваиваемое по умолчанию переменной DIMSCALE, равно ________. 2. Значение, присваиваемое по умолчанию переменной DIMTEXT, равно _________. 3. Значение, присваиваемое по умолчанию переменной SNAP, равно _________. 4. Для выбора архитектурных единиц измерения можно использовать команды __________ и _________. 5. В программе AutoCAD используются следующие стандартные шаблоны чертежей: ___________, ___________ и __________. 6. Если напечатанный лист имеет размеры 24×18 дюймов, а масштаб равен 1=20, то предельные размеры чертежа составят ________ по оси X и _________ по оси Y. 7. Если напечатанный лист имеет размеры 200×150, а область чертежа ограничена точками с координатами (0.00,0.00) и (600.00,450.00), то масштабный коэффициент LTSCALE будет равен _________. 8. Чтобы перейти в пространство листа, можно воспользоваться командой _______. 9. Переменной TILEMODE может быть присвоено значение ________ или ________. 10. Для того чтобы в пространстве модели вдвое уменьшить размеры области, отображаемой на экране, необходимо ввести команду ZOOM с опцией __________.
48
Глава 1
Упражнения Упражнение 1 (Общее) Создайте шаблон чертежа (protoe1.dwt) со следующими спецификациями. Единицы измерения Угол Базовый угол Направление угла Предельные размеры
Архитектурные с точностью 0'-0 1/16" Десятичные градусы с точностью 0 Восток Против часовой стрелки 48'×36'
Упражнение 2 (Общее) Создайте шаблон чертежа (protoe2.dwt) со следующими спецификациями. Лимиты чертежа Шаг Сетка Высота текста Единицы измерения
36.0,24.0 0.5 1.0 0.25 Десятичные Точность 0.00 Десятичные градусы Точность 0 Отсчет угла от положительной оси X (восток) Угол положительный, если измеряется против часовой стрелки
Упражнение 3 (Общее) Создайте шаблон чертежа (protoe3.dwt) со следующими спецификациями. Лимиты чертежа Высота текста Ширина полилинии LTSCALE DIMSCALE Размеры листа
Белый (White) Зеленый (Green) Пурпурный (Magenta) Синий (Blue) Красный (Red) Голубой (Cyan)
Шаблоны чертежей
49
Упражнение 4 (Общее) Создайте чертеж-прототип со следующими параметрами и сохраните его под именем protoe4.dwt. Лимиты чертежа Рамка Шаг Сетка Высота текста Единицы LTSCALE Текущий слой
Белый (White) Красный (Red) Желтый (Yellow) Зеленый (Green) Синий (Blue) Пурпурный (Magenta) Белый (White)
Чертеж-прототип должен иметь рамку и форму для заполнения основной надписи, как показано на рис. 1.21.
Рис. 1.21. Чертеж-прототип
50
Глава 1
Упражнение 5 (Общее) Создайте чертеж-прототип со следующими параметрами и сохраните его под именем protoe5.dwt. Размеры листа Масштаб Высота текста LTSCALE DIMSCALE Единицы
Рамка
36"×24" (рис. 1.22) 1/2" = 1.0' 1/4" в напечатанном виде 24 24 Архитектурные Точность 0'-0 1/32' Углы измеряются в градусах/минутах/секундах Точность 0d00"00" Угол положительный, если измеряется против часовой стрелки Линии рамки должны находиться на расстоянии 1-1/2" от границ листа. В напечатанном виде линии рамки должны иметь толщину 1/32".
Рис. 1.22. Чертеж, используемый в упражнении 5
Шаблоны чертежей
51
Упражнение 6 (Общее) Создайте чертеж-прототип со следующими параметрами и сохраните его под именем protoe6.dwt. Размеры листа Масштаб Рамка
24"×18" (рис. 1.23) 1/2" = 1.0' Линии рамки должны находиться на расстоянии 1" от границы листа. В напечатанном виде линии рамки должны иметь толщину 0.05" (рис. 1.23).
Рис. 1.23. Чертеж-прототип
• • • • •
Размерные числа над размерными линиями Размеры выровнять по размерным линиям Вычислить общий масштабный коэффициент Разрешить отображение альтернативных единиц измерения Ассоциативная простановка размеров
Ответы на вопросы для самопроверки 1 — .dwt, 2 — Use a Template (По шаблону), 3 — Start From Scratch (Простейший шаблон), 4 — 72"×48", 5 — MVIEW.
Глава 2
Файлы сценариев и организация показа слайдов Цель занятия Познакомившись с материалом этой главы, вы научитесь: • писать сценарии и загружать файлы сценариев, используя команду SCRIPT; • использовать команды RSCRIPT и DELAY при написании сценариев; • загружать файлы сценариев при запуске программы AutoCAD; • создавать показы слайдов; • выполнять предварительную загрузку слайдов во время показа презентации.
54
Глава 2
Что такое сценарий? Программа AutoCAD позволяет создавать так называемые сценарии, которые дают возможность объединить несколько различных команд AutoCAD, а затем выполнить их в определенной последовательности. Эти команды могут быть записаны в виде обычного текстового файла, для чего используется текстовый редактор, например, Notepad (Блокнот), или команда EDIT (если файл ACAD.PGP существует, а команда EDIT определена в этом файле). Файлы сценариев имеют расширение .scr (например, plot1.scr) и выполняются с помощью команды SCRIPT. Файлы сценариев позволяют создавать слайды презентаций, устанавливать исходные параметры чертежей, а также вычерчивать чертежи в соответствии с ранее определенными спецификациями. Кроме того, с их помощью можно автоматизировать выполнение последовательностей команд, которые часто используются при формировании, редактировании и визуальном отображении чертежей. Запомните: файлы сценариев не позволяют обращаться к каким-либо меню или диалоговым окнам. Когда команда, открывающая то или иное диалоговое окно, выдается из файла сценария, программа AutoCAD не вызывает указанное окно, а загружает соответствующую версию этой команды в командную строку.
Пример 1 Напишите сценарий, который позволит установить исходные параметры чертежа (файл сценария называется script1.scr). Предполагается, что чертеж будет вычерчиваться на листе бумаги размером 12×9 дюймов. (Масштабный коэффициент вычерчивания равен 4.) Ортогональный режим Сетка Шаг Лимиты Масштабировать Высота текста LTSCALE DIMSCALE
Вкл. (On) 2.0 0.5 0,0 48.0,36.0 Все 0.125 4.0 4.0
Шаг 1: знакомство с командами и опциями командной строки Прежде чем браться за написание сценария, необходимо познакомиться с командами AutoCAD и данными, которые следует ввести в командную строку. Чтобы выяснить, какую функцию выполняет тот или иной параметр, введите команду в командную строку и посмотрите, что происходит при выборе различных опций. Ниже приведен список команд и опций AutoCAD, которые используются в примере 1. Command: ORTHO Enter mode [ON/OFF] : ON ◊◊◊ Команда: ORTHO Введите режим [Вкл/Откл] <Откл>: ON
Файлы сценариев и организация показа слайдов Command: GRID Specify grid spacing(X) or [ON/OFF/Snap/Aspect] <1.0>: 2.0 ◊◊◊ Команда: GRID Шаг сетки по оси X или [Вкл/Откл/Привязка/Соотношение] <1.0>: 2.0 Command: SNAP Specify snap spacing or [ON/OFF/Aspect/Rotate/Style/Type] <1.0>: 0.5 ◊◊◊ Команда: SNAP Шаг привязки или [Вкл/Откл/Соотношение/Поворот/Стиль/Тип] <1.0>: 0.5 Command: LIMITS Reset Model space limits: Specify lower left corner or [ON/OFF] <0.0,0.0>: 0,0 Specify upper right corner <12.0,9.0>: 48.0,36.0 ◊◊◊ Команда: LIMITS Сброс лимитов пространства модели: Левый нижний угол или [Вкл/Откл] <0.0,0.0>: 0,0 Правый верхний угол <12.0,9.0>: 48.0,36.0 Command: ZOOM Specify corner or window, enter a scale factor (nX or nXP), or [All/Center/Dynamic/Extents/Previous/Scale/Window] : A ◊◊◊ Команда: ZOOM Угол или окно, масштабный коэффициент (nX или nXP) или [Все/По центру/Динамический/В пределах/Предыдущий/Масштаб/Окно] <в реальном времени>: A Command: TEXTSIZE Enter new value for TEXTSIZE <0.02>: 0.125 ◊◊◊ Команда: TEXTSIZE Новое значение TEXTSIZE <0.02>: 0.125 Command: LTSCALE Enter new linetype scale factor <1.0000>: 4.0 ◊◊◊ Команда: LTSCALE Новый масштаб отображения линий <1.0000>: 4.0 Command: DIMSCALE Enter new value for DIMSCALE <1.000>: 4.0 ◊◊◊ Команда: DIMSCALE Новое значение DIMSCALE <1.0000>: 4.0
55
56
Глава 2
Шаг 2: запись файла сценария Теперь, когда вы познакомились с командами и теми опциями, которые следует ввести в командную строку, можете написать файл сценария, используя какой-нибудь простенький текстовый редактор, например Notepad (Блокнот). Можно также воспользоваться командой EDIT (РЕДАКТИРОВАТЬ). При вызове этой команды AutoCAD предлагает ввести имя файла, который вы хотите отредактировать. Чтобы открыть окно редактора MS-DOS (MS-DOS Editor), при появлении приглашения на ввод команды нажмите клавишу <Enter>. Перед вами листинг сценария для примера 1. ORTHO ON GRID 2.0 SNAP 0.5 LIMITS 0,0 48.0,36.0 ZOOM ALL TEXTSIZE 0.125 LTSCALE 4.0 DIMSCALE 4.0
Обратите внимание, что в файле сценария команды и введенные параметры располагаются точно в таком же порядке. Кроме этого, можно записать несколько операторов в одной строке, как показано в следующем примере: ;Это мой первый сценарий, SCRIPT1.SCR ORTHO ON GRID 2.0 SNAP 0.5 LIMITS 0,0 48.0,36.0 ZOOM ALL TEXTSIZE 0.125 LTSCALE 4.0 DIMSCALE 4.0
Сохраните файл сценария под именем script.scr на дискете или на жестком диске и закройте текстовый редактор. Запомните, текстовый файл, не сохраненный в формате .scr, не будет работать как файл сценария. Обратите внимание на пробелы, разделяющие команды и опции, вводимые в командную строку (например, команду ORTHO и опцию ON или команду GRID и параметр 2.0). Примечание В файлах сценариев пробелы обозначают конец команды или введенного параметра. Таким образом, пробелы играют очень важную роль. Проверьте, нет ли в сценарии “лишних” пробелов, за исключением тех, которые требуются для нажатия клавиши <Enter> более одного раза. После того как вы измените предельные размеры чертежа, введите команду ZOOM с опцией All, что позволит увеличить область чертежа, отображаемую на экране.
Файлы сценариев и организация показа слайдов
57
Совет Программа AutoCAD игнорирует и не выполняет строки сценариев, которые начинаются точкой с запятой (;). Это дает вам возможность вводить комментарии в текст сценария, начиная текстовую строку с этого знака.
Запуск файла сценария Команда SCRIPT (СЦЕНАРИЙ) дает возможность запускать файлы сценариев во время работы в графическом редакторе. Откройте диалоговое окно Select Script File (Выбрать файл сценария), показанное на рис. 2.1, выбрав команду Run Script (Выполнить сценарий) из меню Tools (Сервис). Это диалоговое окно также можно открыть, введя выражение SCRIPT в командную строку. После этого введите имя файла сценария или примите имя, заданное по умолчанию. Обычно имя сценария совпадает с именем чертежа. Если вы хотите ввести новое файловое имя, наберите имя сценария без файлового разрешения (.SCR). (Наличие соответствующего файлового разрешения предполагается, поэтому нет необходимости включать его в имя файла.)
Шаг 3: запуск файла сценария Чтобы запустить файл сценария из примера 1, введите команду SCRIPT в командную строку, выберите в диалоговом окне Select Script File файл SCRIPT1, а затем щелкните на кнопке Open (Открыть) (см. рис. 2.1).
Рис. 2.1. Диалоговое окно Select Script File
Имя файла сценария можно также ввести в командную строку, присвоив системной переменной FILEDIA значение 0. Последовательность команд, используемых для запуска сценария с помощью командной строки, приведена в следующем примере: Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: SCRIPT Enter script file name <current>: Имя файла сценария ◊◊◊
58
Глава 2 Команда: FILEDIA Новое значение переменной FILEDIA <1>: 0 Команда: SCRIPT Имя файла сценария <текущее>: Имя файла сценария
Пример 2 Напишите файл сценария, с помощью которого можно было бы создать несколько дополнительных слоев, имеющих определенные цвета и типы линий. Сохраните этот файл под именем script2.scr. Имя слоя
по умолчанию по умолчанию по умолчанию по умолчанию по умолчанию 0.05
Шаг 1: знакомство с командами и опциями командной строки Перед тем как написать файл сценария, необходимо познакомиться с командами AutoCAD и данными, которые вы будете вводить в командную строку. В этом примере вы создаете слои, имеющие определенные цвета и линии того или другого типа. Для этого вам потребуются следующие команды: Command: -LAYER ◊◊◊ Команда: -LAYER
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: N Enter name list for new layer(s): OBJECT,CENTER,HIDDEN,DIM,BORDER,HATCH ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ВесЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: N Имя нового слоя (слоев): OBJECT,CENTER,HIDDEN,DIM,BORDER,HATCH
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: L Enter loaded linetype name or [?] : CENTER Enter name list of layer(s) for linetype "CENTER" <0>: CENTER ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: L
Файлы сценариев и организация показа слайдов Имя загружаемого типа линии или [?] <Сплошная>: CENTER Имя слоя (слоев) для типа линий "CENTER" <0>: CENTER
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: L Enter loaded linetype name or [?] : HIDDEN Enter name list of layer(s) for linetype "HIDDEN" <0>: HIDDEN ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: L Имя загружаемого типа линии или [?] <Сплошная>: HIDDEN Имя слоя (слоев) для типа линий "HIDDEN" <0>: HIDDEN
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: RED Enter name list of layer(s) for color 1 (red) <0>: OBJECT ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: RED Имя слоя (слоев) для цвета 1 (красный) <0>: OBJECT
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: YELLOW Enter name list of layer(s) for color 2 (yellow) <0>: CENTER ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: YELLOW Имя слоя (слоев) для цвета 1 (желтый) <0>: CENTER
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: BLUE Enter name list of layer(s) for color 5 (blue) <0>: HIDDEN ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: BLUE Имя слоя (слоев) для цвета 1 (синий) <0>: HIDDEN
59
60
Глава 2
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: GREEN Enter name list of layer(s) for color 3 (green) <0>: DIM ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: GREEN Имя слоя (слоев) для цвета 1 (зеленый) <0>: DIM
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: MAGENTA Enter name list of layer(s) for color 6 (magenta) <0>: BORDER ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: MAGENTA Имя слоя (слоев) для цвета 1 (пурпурный) <0>: BORDER
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: C New color [Truecolor/COlorbook] <7 (white)>: CYAN Enter name list of layer(s) for color 4 (cyan) <0>: HATCH ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: C Новый цвет [НатурЦвет/ПалитраЦветов] <7 (белый)>: CYAN Имя слоя (слоев) для цвета 1 (голубой) <0>: HATCH
Введите опцию [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: LW Enter lineweight (0.0mm - 2.11mm): 0.05 Enter name list of layer(s) for lineweight 0.05mm <0>: HATCH [?/Make/Set/New/ON/OFF/Color/Ltype/Lweigth/Plot/Pstyle/Freeze/ Thaw/Lock/Unlock/stAte]: <Enter> ◊◊◊ [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: LW (Введите толщину линии (0,0 мм - 2,11 мм): 0.05
Файлы сценариев и организация показа слайдов
61
Имя слоя для линии толщиной 0,05 мм <0>: HATCH [?/СделатьТекущим/Установить/Создать/Вкл/Откл/Цвет/ТипЛинии/ ШиринаЛинии/Печать/СтильПечати/Заморозить/Разморозить/Блокировать/ Разблокировать/Состояние]: Нажмите клавишу <Enter>
Шаг 2: запись файла сценария Перед вами листинг файла сценария, с помощью которого вы сможете создать несколько дополнительных слоев и назначить им определенные цвета и типы линий: ;Этот сценарий создает новые слои и назначает им ;различные цвета и определенные типы линий LAYER NEW OBJECT,CENTER,HIDDEN,DIM,BORDER,HATCH L CENTER CENTER L HIDDEN HIDDEN C RED OBJECT C YELLOW CENTER C BLUE HIDDEN C GREEN DIM C MAGENTA BORDER C CYAN HATCH (Пустая строка, завершающая команду LAYER. Конец файла сценария.)
Сохраните файл сценария, присвоив ему имя script2.scr.
Шаг 3: запуск файла сценария Чтобы запустить файл сценария, приведенный в этом примере, откройте диалоговое окно Select Script File (Выбрать файл сценария). Для этого выберите команду Run Script (Выполнить сценарий) из меню Tools (Сервис) или введите выражение SCRIPT в командную строку. Выделите файл SCRIPT2, а затем щелкните на кнопке Open (Открыть). Можно также ввести в командную строку команду SCRIPT и файловое имя сценария, присвоив системной переменной FILEDIA значение 0.
62
Глава 2
Пример 3 Напишите файл сценария, при выполнении которого фигура, состоящая из отрезка и окружности, будет поворачиваться вокруг нижнего конца отрезка с 45-градусным шагом (рис. 2.2). После каждого поворота на 45 градусов должна возникать 2-секундная пауза. Предполагается, что отрезок и окружность уже начерчены. Сохраните файл сценария под именем script3.scr.
Рис. 2.2. Отрезок и окружность, вращающиеся с 45-градусным шагом
Шаг 1: знакомство с командами и опциями командной строки Перед тем как написать файл сценария, необходимо познакомиться с командами AutoCAD и данными, которые вы будете вводить в командную строку. Записывайте опции и параметры в том же порядке, в каком они будут вводиться при выполнении данной операции. Ниже перечислены команды AutoCAD, выполняющие поворот фигуры, состоящей из окружности и отрезка, вокруг нижнего конца отрезка: Command: ROTATE Current positive angle in UCS: ANGDIR=counterclockwise ANGBASE=0 Select objects: W Specify first corner: 2.25,5.0 Specify opposite corner: 6.25,9.0 Select objects: <Enter> Specify base point: 4.25,6.5 Specify rotation angle or [Reference]: 45 ◊◊◊ Команда: ROTATE Текущий положительный угол в ПСК: ANGDIR=против часовой стрелки ANGBASE=0 Выберите объекты: W (Опция Window (W), используемая для выбора объекта) Первый угол: 2.25,5.0 Противоположный угол: 6.25,9.0 Выберите объекты: Нажмите клавишу <Enter> Базовая точка: 4.25,6.5 Угол поворота или [НачалоОтсчета]: 45
63
Файлы сценариев и организация показа слайдов
Шаг 2: запись файла сценария Теперь, когда вы познакомились с командами и опциями AutoCAD, которые необходимо ввести в командную строку, попробуйте написать файл сценария, используя простенький текстовый редактор. Перед вами листинг сценария, при выполнении которого фигура, описанная в этом примере, будет поворачиваться на заданный угол. Номера строк не являются частью файла, а используются только в качестве ссылок. Пустая строка выполняет ту же роль, что и возврат каретки в исходное положение. ROTATE W 2.25,5.0 6.25,9.0 (Пустая строка для возврата каретки) 4.25,6.5 45
1 2 3 4 5 6 7
Строка 1 ROTATE
В этой строке ROTATE — команда AutoCAD, которая используется для поворота выделенных объектов.
Строка 2 W
В этой строке W — опция Window (Рамка), используемая для выбора редактируемых объектов.
Строка 3 2.25,5.0
В этой строке параметры 2.25 и 5.0 определяют координаты X и Y левого нижнего угла рамки, используемой для выбора объектов.
Строка 4 6.25,9.0
В этой строке параметры 6.25 и 9.0 определяют координаты X и Y правого верхнего угла рамки, используемой для выбора объектов.
Строка 5 Пустая строка завершающая процесс выбора объекта.
Строка 6 4.25,6.5
В этой строке параметры 4.25 и 6.5 определяют координаты X и Y оси вращения.
Строка 7 45
В этой строке 45 — величина угла поворота.
64
Глава 2 Примечание Одним из недостатков сценариев является то, что вся информация должна содержаться в файле, так как файлы подобного типа не позволяют вводить дополнительную информацию. Например, чтобы выделить какой-либо объект с помощью опции Window (Рамка), необходимо ввести в файл сценария опцию Window (W) и параметры, определяющие координаты углов обычной или секущей рамки. То же самое можно сказать о координатах оси вращения и других параметрах, содержащихся в этом файле. Существует только один способ, с помощью которого можно вывести приглашение ко вводу тех или иных параметров, а затем возобновить выполнение сценария. Для этого используются встроенные команды AutoLISP.
Шаг 3: сохранение файла сценария Сохраните файл сценария, присвоив ему имя script3.scr.
Шаг 4: запуск файла сценария Откройте диалоговое окно Select Script File (Выбор файла сценария), выбрав команду Run Script (Выполнить сценарий) из меню Tools (Сервис) или введя команду SCRIPT (СЦЕНАРИЙ) в командную строку. Выделите файл SCRIPT3, а затем щелкните на кнопке Open (Открыть). Вы заметите, что при каждом выполнении сценария отрезок и окружность, отображенные на экране, будут поворачиваться на угол, равный 45 градусам. Тем не менее, это мало похоже на непрерывное вращение графического объекта. В следующем разделе, который называется “Повторное выполнение сценария”, вы узнаете о том, как обеспечить повторное воспроизведение операций, записанных в файле сценария. В последующих разделах этой главы вы познакомитесь с тем, как создается временная задержка (пауза) между периодически выполняемыми командами.
Повторное выполнение сценария Команда RSCRIPT дает возможность выполнять сценарий в течение неограниченного времени, вплоть до получения команды о его отмене. Это может оказаться весьма полезным в тех случаях, когда пользователю приходится постоянно выполнять одну и ту же операцию. Например, во время показа презентации, рассказывающей о выпускаемой продукции, команда RSCRIPT может быть использована для периодического запуска файла сценария, выполнение которого завершается при нажатии клавиши <Esc>. В частности, в ранее рассмотренном примере для обеспечения непрерывного вращения геометрической фигуры необходимо постоянно выполнять команду вращения. Чтобы получить требуемый эффект, введите в сценарий команду RSCRIPT, как показано в следующем листинге. ROTATE W 2.25,5.0 6.25,9.0 (Пустая строка для возврата каретки) 4.25,6.5 45 RSCRIPT
Выполнение команды RSCRIPT, расположенной в строке 8, приведет к повторению всех предыдущих команд (строки 1-7) и образованию непрерывного цикла. Теперь при запуске файла script3.scr вы заметите, что отрезок и окружность непрерывно вра-
Файлы сценариев и организация показа слайдов
65
щаются вокруг указанной точки. К сожалению, скорость вращения объектов довольно высока, поэтому разглядеть их практически невозможно. Таким образом, после каждого повторения вам необходимо сделать небольшую паузу, т.е. ввести временную задержку. Чтобы прекратить выполнение сценария, достаточно нажать клавишу <Esc> или . Примечание Можно также ввести в файл сценария условные операторы, которые обеспечат завершение сценария при выполнении определенных условий. Но для этого вам придется воспользоваться соответствующими функциями AutoLISP.
Ввод временных задержек в файлы сценариев Как уже говорилось, некоторые операции, описанные в файлах сценариев, выполняются слишком быстро, поэтому разглядеть, что происходит в это время на экране, довольно трудно. В подобных случаях приходится делать паузы между определенными операциями, вводя временные задержки в файл сценария. Например, между слайдами презентации, рассказывающей о том или другом виде товарной продукции, должны быть достаточно продолжительные паузы, которые дадут возможность зрителям рассмотреть каждый слайд. Паузы создаются с помощью команды DELAY (ПАУЗА), которая задерживает выполнение следующей команды на определенное время. Эта команда имеет следующий синтаксис: Command: DELAY время
где • Command — приглашение ко вводу команды AutoCAD; • DELAY — команда DELAY (ПАУЗА); • время — время в миллисекундах. После названия команды указывается время в миллисекундах. Например, задержка на 2000 миллисекунд означает, что перед выполнением следующей команды программа AutoCAD сделает двухсекундную паузу. Каждый компьютер имеет определенное быстродействие, поэтому пауза будет примерно равна двум секундам. Максимальное время задержки, которое вы можете ввести, составляет 32 767 миллисекунд (около 32 секунд). В примере 3 для создания двухсекундной паузы необходимо ввести команду DELAY в файл сценария, разместив ее между 7 и 8 строками, как показано в следующем листинге: ROTATE W 2.25,5.0 6.25,9.0 (Пустая строка для возврата каретки) 4.25,6.5 45 DELAY 2000 RSCRIPT
Первые семь строк сценария обеспечивают поворот выделенного объекта на 45 градусов. Перед выполнением команды RSCRIPT, которая находится в строке 8, создается пауза
66
Глава 2
длительностью в 2000 миллисекунд (примерно 2 секунды). Команда RSCRIPT повторно выполняет файл сценария, что приводит к повороту объекта на следующие 45 градусов. Таким образом создается презентация, в которой смена слайдов (в данном случае поворот объекта на 45 градусов) происходит через каждые две секунды.
Возобновление работы сценария Если вы хотите возобновить выполнение файла сценария, работа которого была прервана по какой-либо причине, воспользуйтесь командой RESUME. Command: RESUME
Эта команда может также использоваться в тех случаях, когда при выполнении сценария возникает ошибка, которая приводит к временному прекращению его работы. Команда RESUME (ПРОДОЛЖИТЬ) позволяет пропустить команду, которая привела к ошибке, и перейти к выполнению оставшейся части сценария. Если ошибка возникла во время непосредственного выполнения команды, введите эту команду в так называемом прозрачном режиме, используя для этого версию команды с открывающим апострофом ('RESUME). Command: 'RESUME
Ключи командной строки Ключи командной строки являются независимыми переменными файла acad.exe, используемого для запуска программы AutoCAD. Например, вы можете установить необходимые параметры среды с помощью диалогового окна Options (Настройка) или ввести набор переменных окружения в файл autoexec.bat. Ключи командной строки и переменные окружения дают вам возможность на время текущего сеанса аннулировать набор параметров, заданных с помощью диалогового окна Options. Использование ключей не оказывает никакого влияния на системный реестр вашего компьютера. Перед вами список ключей командной строки: Ключ
Функция
/c
Определяет каталог, в котором хранится файл AutoCAD, содержащий сведения о конфигурации аппаратных средств. По умолчанию этим файлом является acad 2004.cfg
/s
Определяет, в каком каталоге находятся вспомогательные файлы, если их нет в текущем каталоге
/b
Указывает сценарий, выполняемый после запуска программы AutoCAD
/t
Определяет шаблон, используемый при создании нового чертежа
/nologo
Запускает программу AutoCAD без отображения экрана, используемого для ввода регистрационных данных
/v
Определяет проекцию чертежа, отображаемую на экране при запуске программы AutoCAD
/r
Выполняет реконфигурацию программы AutoCAD, используя параметры конфигурации устройств, заданные по умолчанию
/p
Определяет профиль, используемый при запуске программы
Файлы сценариев и организация показа слайдов
67
Вызов файла сценария во время загрузки AutoCAD Файлы сценариев могут быть выполнены во время загрузки AutoCAD, т.е. до того, как на экране появится окно графического редактора. Команда, используемая для запуска файла сценария во время загрузки AutoCAD, должна иметь следующий формат: "C:\Program Files\AutoCAD2004\acad.exe" [имя чертежа] [/t имя шаблона] [/v название проекции] /b имя файла сценария
В следующем примере AutoCAD откроет имеющийся чертеж (MYdwg1), а затем запустит файл сценария. Для этой цели используется диалоговое окно Run (Выполнить), показанное на рис. 2.3.
Рис. 2.3. Диалоговое окно Run, используемое для запуска файла сценария во время загрузки программы AutoCAD
Пример "C:\Program Files\AutoCAD2004\acad.exe" MYdwg1 /b Setup
где • AutoCAD2004 — подкаталог AutoCAD 2004, содержащий системные файлы AutoCAD; • acad.exe — файл, запускающий программу AutoCAD; • MYdwg1 — имя существующего файла чертежа; • Setup — имя файла сценария. В следующем примере AutoCAD откроет новый чертеж со стандартным именем (Drawing), созданный по шаблону temp1, а затем запустит файл сценария (Setup). Пример "C:\Program Files\AutoCAD2004\acad.exe" /t temp1 /b Setup
где • temp1 — имя существующего файла шаблона; • Setup — имя файла сценария или "C:\Program Files\AutoCAD2004\acad.exe" /t temp1 "C:\MyFolder" /b Setup
где • C:\Program Files\AutoCAD2004\acad.exe — путевое имя файла acad.exe; • C:\MyFolder — путевое имя файла сценария Setup.
68
Глава 2
В следующем примере AutoCAD откроет новый чертеж со стандартным именем (Drawing), а затем запустит файл сценария (Setup). Пример "C:\Program Files\AutoCAD2004\acad.exe" /b Setup
где • Setup — имя файла сценария. Предполагается, что системные файлы AutoCAD находятся в каталоге AutoCAD 2004. Примечание Чтобы вызвать файл сценария во время загрузки AutoCAD, файлы чертежа или шаблона, определенные в этой команде, должны находиться в указанном каталоге. Следует заметить, что нельзя создать новый файл, присвоив ему определенное имя. Тем не менее, при запуске файла сценария с помощью диалогового окна Run вы сможете использовать любой шаблон чертежа, файл которого находится в каталоге шаблонов.
Совет Старайтесь избегать аббревиатур, использование которых может привести к неразберихе. Например, буква "С" служит для вызова опции, которая обеспечивает соединение концов незамкнутого контура. Кроме этого, она может использоваться в качестве альтернативного имени команды, применяемой для вычерчивания окружности. При использовании одинаковых аббревиатур в одном сценарии часто возникает путаница.
Пример 4 Напишите сценарий, который можно будет вызывать во время загрузки AutoCAD и использовать его для создания чертежа, имеющего следующие параметры (файловое имя сценария script4.scr). Сетка Шаг Лимиты чертежа Масштабировать Высота текста LTSCALE DIMSCALE
3.0 0.5 0,0 36.0,24.0 Все 0.25 3.0 3.0
Слои Имя
Цвет
Тип линии
Obj Cen Hid Dim
Красный (Red) Желтый (Yellow) Синий (Blue) Зеленый (Green)
Шаг 1: запись файла сценария Напишите сценарий и сохраните его под именем script4.scr. Ниже приведен листинг сценария, при выполнении которого новому чертежу присваиваются некоторые исходные параметры:
Файлы сценариев и организация показа слайдов
69
GRID 3.0 SNAP 0.5 LIMITS 0,0 36.0,24.0 ZOOM ALL TEXTSIZE 0.25 LTSCALE 3 DIMSCALE 3.0 LAYER NEW OBJ,CEN,HID,DIM L CENTER CEN L HIDDEN HID C RED OBJ C YELLOW CEN C BLUE HID C GREEN DIM (Пустая строка для нажатия клавиши <Enter>)
Шаг 2: загрузка файла сценария с помощью диалогового окна Run После того, как вы напишите сценарий и сохраните его под указанным именем, выйдите из графического редактора. Чтобы загрузить файл сценария SCRIPT4, выберите команду StartRun (ПускВыполнить), а затем введите в открывшееся диалоговое окно следующее выражение: "C:\Program Files\AutoCAD2004\acad.exe" /t EX4 /b SCRIPT4
где • acad.exe — файл, запускающий программу AutoCAD; • EX4 — файловое имя шаблона чертежа; • SCRIPT4 — файловое имя сценария. Предполагается, что файлы шаблона (EX4) и сценария (SCRIPT4) находятся на диске С. Когда вы введете это выражение, загрузится программа AutoCAD и откроется файл ex4.dwt. После этого автоматически загрузится файл сценария (SCRIPT4) и будут выполнены все команды, определенные в этом файле. В следующем примере AutoCAD откроет новый чертеж с именем по умолчанию (Drawing), а затем запустит файл сценария SCRIPT4 (рис. 2.4).
Рис. 2.4. Диалоговое окно Run, используемое для запуска файла сценария во время загрузки программы AutoCAD
70
Глава 2
Пример "C:\Program Files\AutoCAD2004\acad.exe" /b SCRIPT4
где • SCRIPT4 — файловое имя сценария. Предполагается, что системные файлы программы AutoCAD находятся в каталоге AutoCAD 2004.
Пример 5 Напишите сценарий, при выполнении которого чертеж размером 36×24 дюймов будет распечатан на листе бумаги формата 8,5×11 дюймов. Для печати документа используется системный принтер или плоттер. Для выбора фрагмента чертежа, отправляемого на печать, используется опция Window (Рамка).
Шаг 1: знакомство с командами и опциями командной строки Прежде чем писать сценарий для вывода чертежа на печать, познакомьтесь со спецификациями плоттера, которые должны быть введены в файл сценария для получения отпечатка, имеющего требуемые параметры. Чтобы выяснить, какую функцию выполняет тот или иной параметр, введите команду -PLOT (-ПЕЧАТЬ) в командную строку и посмотрите, что будет происходить при выборе различных опций. Обратите внимание на порядок ввода тех или других параметров (для каждого принтера и плоттера могут использоваться различные параметры). Ниже приведен листинг спецификаций плоттера с выбранными опциями и заданными параметрами: Command: -PLOT Detailed plot configuration? [Yes/No] : Yes Enter a layout name or [?] <Model>: <Enter> Enter an output device name or [?] : <Enter> Enter paper size or [?] : <Enter> Enter paper units [Inches/Millimeters] : I Enter drawing orientation [Portrait/Landscape] : L Plot upside down? [Yes/No] : N Enter plot area [Display/Extents/Limits/View/Window] : W Enter lower left corner of window <0.000000,0.000000>: 0,0 Enter upper right corner of window <0.000000,0.000000>: 36,24 Enter plot scale (Plotted Inches=Drawing Units) or [Fit] : F Enter plot offset (x,y) or [Center] <0.00,0.00>: 0,0 Plot with plot styles? [Yes/No] : Y Enter plot style table name or [?] (enter . for none) <>: . Plot with lineweight? [Yes/No] : Y Enter shade plot settings [As displayed/Wireframe/Hidden/Rendered] : <Enter> Write the plot to a file [Yes/No] : N Save changes to page setup? Or set shade plot quality? [Yes/No/Quality] : <Enter> Proceed with plot [Yes/No] : Y ◊◊◊
Файлы сценариев и организация показа слайдов
71
Команда: -PLOT Подробная конфигурация вычерчивания? [Да/Нет] <Нет>: Yes Имя листа или [?] <Модель>: Нажмите клавишу <Enter> Имя печатающего устройства или [?] : Нажмите клавишу <Enter> Формат листа или [?] : Нажмите клавишу <Enter> Единицы измерения листа [Дюймы/Миллиметры] <Дюймы>: I Ориентация чертежа [Книжная/Альбомная] <Альбомная>: L Перевернуть изображение [Да/Нет] <Нет>: N Область печати [Экран/Размеры/Пределы/Вид/Окно] <Экран>: W Координаты левого нижнего угла окна <0.000000, 0.000000>: 0,0 Координаты правого верхнего угла окна <0.000000, 0.000000>: 36,24 Введите масштаб печати (Вычерченные дюймы=Единицы чертежа) или [Разместить] <Разместить>: F Смещение чертежа (x,y) или [Центрировать] <0.00,0.00>: 0,0 Учитывать стили чертежа? [Да/Нет] <Да>: Y Название таблицы стиля вычерчивания или [?] (если нет, введите точку (.)) <>: . Учитывать толщину линий? [Да/Нет] <Да>: Y Печать оттенков [Как изображено/Обвести по контуру/Скрыть/ Тонировать] <Как изображено>: Нажмите клавишу <Enter> Записать чертеж в файл [Да/Нет] <Нет>: N Сохранить изменения параметров страницы? Или установить качество вычерчивания полутонов? [Да/Нет/Качество] <Нет>: Нажмите клавишу <Enter> Приступить к печати [Да/Нет] <Да>: Y
Шаг 2: запись файла сценария Теперь вы сможете создать файл сценария, записывая команды и параметры, которые необходимо вводить в командную строку. Ниже приведен листинг сценария, обеспечивающего внесение требуемых изменений в спецификации печатающего устройства и последующее вычерчивание чертежа размером 36"×24" на листе бумаги форматом 8,5"×11". Комментарии, показанные в правой части листинга, в файл сценария не входят. Plot Y (Пустая строка для нажатия клавиши <Enter>, выбор листа по умолчанию) (Пустая строка для нажатия клавиши <Enter>, выбор принтера по умолчанию) (Пустая строка для нажатия клавиши <Enter>, выбор размера бумаги по умолчанию) I L N W 0,0 36,24 F 0,0 Y . (Если нет, введите точку (.))
72
Глава 2 Y (Пустая строка для нажатия клавиши <Enter>, печатать так, как показано на экране) N N Y
Сохранение и запуск файла сценария выполняется точно так же, как и в предыдущем примере. Чтобы ввести значение, заданное по умолчанию, можно использовать пустую строку. При считывании пустой строки, встреченной в файле сценария, происходит возврат к исходным параметрам. Тем не менее, не следует использовать параметры печати, заданные по умолчанию, так как может оказаться, что этот файл был изменен другим пользователем или каким-нибудь другим сценарием. Поэтому если вы не хотите, чтобы при выполнении сценария использовались параметры, заданные по умолчанию, всегда вводите только фактические значения.
Упражнение 1 (Общее) Напишите сценарий, который позволит распечатать чертеж размером 288'×192' на листе бумаги форматом 36"×24". Масштаб вычерчивания равен 1/8"=1'. (Файловое имя сценария — script9.scr.) Предполагается, что программа AutoCAD сконфигурирована для плоттера HPGL; описание плоттера — HPGL-Plotter).
Пример 6 Напишите сценарий компьютерной анимации часов с вращающимися стрелками. При каждом выполнении сценария секундная (длинная) стрелка поворачивается вокруг центра часов на 5 градусов, а минутная (более короткая) — на 2 градуса (рис. 2.5). Отрезки вращаются по часовой стрелке.
Рис. 2.5. Рисунок для примера 6
Файлы сценариев и организация показа слайдов
73
Ниже приведены основные спецификации чертежа. Корпус часов, изображенный в виде кольца Цвет кольца Внутренний диаметр кольца Наружный диаметр кольца Координаты центра кольца
Синий (Blue) 8.0 8.4 5,5
Штрихи на циферблате (отрезки полилиний) Цвет штрихов Координаты начальной точки Начальная ширина полилинии Конечная ширина полилинии Длина отрезка
Зеленый (Green) 5,8.5 0.5 0.5 0.5
Длинная секундная стрелка (полилиния) Цвет секундной стрелки Координаты начальной точки Начальная ширина полилинии Конечная ширина полилинии Длина отрезка Поворот секундной стрелки
Красный (Red) 5,5 0.5 0.0 3.5 на 5 градусов по часовой стрелке
Короткая минутная стрелка (полилиния) Цвет минутной стрелки Координаты начальной точки Начальная ширина полилинии Конечная ширина полилинии Длина отрезка Поворот минутной стрелки
Голубой (Cyan) 5,5 0.35 0.0 3.5 на 2 градуса по часовой стрелке
Шаг 1: знакомство с командами и опциями командной строки Для этого примера вы можете написать два сценария, а затем соединить их в одно целое. При выполнении первого сценария будет создано изображение часов. Второй сценарий обеспечит вращение минутной и секундной стрелок. Прежде всего, напишите сценарий создания чертежа с указанными параметрами, а затем сохраните файл сценария под именем clock.scr. Для этого вам потребуются следующие команды: Command: -COLOR Enter default object color [Truecolor/COlorbook] : Blue Command: DONUT Specify inside diameter of donut <0.5>: 8.0 Specify outside diameter of donut <0.5>: 8.4 Specify center of donut <exit>: 5.5 Specify center of donut <exit>: <Enter> Command: -COLOR Enter default object color [Truecolor/COlorbook] : Green Command: PLINE Specify start point: 5,8.5 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Width
74
Глава 2 Specify starting width <0.00>: 0.25 Specify ending width <0.25>: 0.25 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @0.25<270 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: <Enter> Command: -ARRAY Select objects: Last Select objects: <Enter> Enter the type of array [Rectangblar/Polar] : Polar Specify center point of array: 5.5 Enter the number of items in the array: 12 Specify the angle to fill(+= ccw, -= cw) <360>: 360 Rotate arrayed objects? [Yes/No] : Y Command: -COLOR Enter default object color [Truecolor/COlorbook] : Red Command: PLINE Specify start point: 5,5 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Width Specify starting width <0.5>: 0.5 Specify ending width <0.5>: 0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @3.5<0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: <Enter> Command: -COLOR Enter default object color [Truecolor/COlorbook] : Cyan Command: PLINE Specify start point: 5,5 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Width Specify starting width <0.5>: 0.35 Specify ending width <0.35>: 0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @3<90 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: <Enter> Command: SCRIPT ROTATE.SCR ◊◊◊ Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Blue Команда: DONUT Внутренний диаметр кольца <0.5>: 8.0 Наружный диаметр кольца <0.5>: 8.4 Координаты центра кольца <выход>: 5.5 Координаты центра кольца <выход>: Нажмите клавишу <Enter> Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Green Команда: PLINE Начальная точка: 5,8.5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: Width Начальная ширина <0.00>: 0.25 Конечная ширина <0.25>: 0.25 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: @0.25<270 Следующая точка или [Дуга/Соединить/Полуширина/Длина/
Файлы сценариев и организация показа слайдов
75
Отмена/Ширина]: Нажмите клавишу <Enter> Команда: -ARRAY Выбор объекта: Last Выбор объекта: Нажмите клавишу <Enter> Тип массива [Прямоугольный/Полярный] <Прямоугольный>: Polar Центральная точка массива: 5.5 Количество элементов в массиве: 12 Угол заполнения (+= против часовой стрелки, -= по часовой стрелке) <360>: 360 Поворачивать упорядочиваемые объекты? [Да/Нет] <Да>: Y Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] BYLAYER>: Red Команда: PLINE Начальная точка: 5,5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Width Начальная ширина <0.00>: 0.5 Конечная ширина <0.25>: 0 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: @3.5<0 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Нажмите клавишу <Enter> Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Cyan Команда: PLINE Начальная точка: 5,5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Width Начальная ширина <0.00>: 0.35 Конечная ширина <0.25>: 0 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: @3<90 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Нажмите клавишу <Enter> Команда: SCRIPT ROTATE.SCR
Теперь вы можете написать сценарий, введя указанные параметры в соответствующие строки файла clock.scr. Обратите внимание на дефис (-), который ставится перед именем команд, выполняемых из командной строки. Запомните: при введении команды в файл сценария добавлять дефис к ее имени не следует. Когда команда вводится с помощью сценария, диалоговое окно не отображается и эта команда выполняется из командной строки. Например, в данном сценарии команды COLOR (ЦВЕТ) и ARRAY (МАССИВ) будут выполнены с помощью командной строки. Листинг файла сценария имеет следующий вид: Color Blue Donut 8.0 8.4 5,5
76
Глава 2 Пустая строка для нажатия клавиши <Enter> Color Green Pline 5,8.5 W 0.25 0.25 @0.25<270 Пустая строка для нажатия клавиши <Enter> Array L Пустая строка для нажатия клавиши <Enter> P 5,5 12 360 Y Color Red Pline 5,5 W 0.5 0 @3.5<0 Пустая строка для нажатия клавиши <Enter> Color Cyan Pline 5,5 W 0.35 0 @3<90 Пустая строка для нажатия клавиши <Enter> Script (Имя файла сценария, который обеспечивает ROTATE.SCR вращение стрелок)
Присвойте файлу сценария имя clock.scr и сохраните его в каталоге, в котором находятся вспомогательные файлы программы AutoCAD. В этом же каталоге рекомендуется сохранить и файл rotate.scr. Запомните: если файлы разместить не в том каталоге, который был определен в пути доступа к вспомогательным файлам AutoCAD, связанный файл сценария (rotate.scr) может не загрузиться. Пути доступа определяются с помощью диалогового окна Options (Настройка).
Шаг 2: знакомство с командами и опциями, обеспечивающими вращение стрелок В последней строке описанного сценария содержится выражение ROTATE.SCR, представляющее собой имя файла сценария, при выполнении которого осуществляется поворот стрелок на указанный угол. Перед тем как писать сценарий, введите в командную
Файлы сценариев и организация показа слайдов
77
строку команду ROTATE (ПОВЕРНУТЬ), а затем введите данные, которые требуются для выполнения указанной операции. Ниже приведены команды AutoCAD, последовательное выполнение которых приводит к повороту объектов на заданный угол. Command: ROTATE Select objects: L Select objects: <Enter> Specify base point: 5,5 Specify rotation angle or [Reference]: -2 Command: ROTATE Select objects: C Specify first corner: 3,3 Specify other corner: 7,7 Select objects: Remove Remove objects: L Remove objects: <Enter> Specify base point: 5,5 Specify rotation angle or [Reference]: -5 ◊◊◊ Команда: ROTATE Выберите объекты: L Выберите объекты: Нажмите клавишу <Enter> Базовая точка: 5,5 Угол поворота или [НачалоОтсчета]: -2 Команда: ROTATE Выберите объекты: C Первый угол: 3,3 Второй угол: 7,7 Выберите объекты: Remove Удаление объектов: L Удаление объектов: Нажмите клавишу <Enter> Базовая точка: 5,5 Угол поворота или [НачалоОтсчета]: -5
Теперь можно написать сценарий, введя указанные параметры в соответствующие строки файла rotate.scr. Листинг сценария, обеспечивающего поворот стрелок на указанный угол, будет выглядеть следующим образом: Rotate L Пустая строка для нажатия клавиши <Enter> 5,5 -2 Rotate C 3,3 7,7 R L Пустая строка для нажатия клавиши <Enter> 5,5 -5 Rscript
78
Глава 2
Сохраните файл сценария под именем rotate.scr. Теперь загрузите файл clock.scr. Этот файл связан с файлом rotate.scr, поэтому после его выполнения произойдет автоматический запуск файла rotate.scr. Если связанный файл хранится не в том каталоге, который был определен в пути поиска вспомогательных файлов AutoCAD, последняя строка файла сценария clock.scr должна содержать полное путевое имя файла rotate.scr. В противном случае программа AutoCAD не сможет отыскать нужный файл.
Показ слайдов Программа AutoCAD предоставляет возможность использования файлов сценариев для объединения слайдов в текстовый файл и их дальнейшего отображения в строго определенной последовательности. Это позволяет создавать презентации, состоящие из различных слайдов. Кроме этого вы сможете вводить в файлы сценариев временные задержки, которые позволят зрителям рассмотреть каждый слайд презентации. Чтобы вывести на экран чертеж или фрагмент чертежа, используются команды отображения, существующие в программе AutoCAD. Например, с помощью команды ZOOM (ПОКАЗАТЬ) или PAN (ПАНОРАМИРОВАТЬ) можно отобразить на экране те элементы, которые вы хотите показать аудитории. Если чертеж очень сложный, то на отображение требуемых видов или проекций уходит немало времени. Более того, далеко не всегда удается показать фрагменты чертежа в нужной последовательности. В свою очередь, при создании презентации можно расположить слайды в произвольном порядке, но при этом воспроизвести их в требуемой последовательности. Это позволит не только сберечь свое время, но и уменьшить влияние отвлекающих факторов, одним из которых является постоянно меняющееся изображение на экране компьютера. Кроме того, некоторые чертежи могут содержать секретную информацию, поэтому иногда возникает необходимость скрыть от зрителей некоторые виды или проекции чертежа. Это позволит вам пересылать презентации зрителям, не утрачивая контроль над показанными чертежами и содержащейся в них информацией.
Что такое слайды Слайд представляет собой моментальную копию изображения, показанного на экране компьютера, и напоминает “картинку”, сделанную с помощью фотоаппарата. Слайды не содержат никакой векторной информации, чем и отличаются от чертежей, сделанных в программе AutoCAD. Это означает, что объекты, изображенные на слайдах, не содержат данных, связанных с исходными чертежами. Например, из слайдов нельзя получить информацию о слоях, цветах, типах линий, координатах отрезка или направлении взгляда. Поэтому слайды, в отличие от чертежей AutoCAD, не редактируются. Чтобы внести в слайды какие-либо изменения, вам придется отредактировать исходный чертеж, а затем сделать новый слайд, используя для этого откорректированную версию чертежа.
Создание слайдов В программе AutoCAD слайды создаются с помощью команды MSLIDE. Если переменной FILEDIA присвоено значение 1, при выполнении команды MSLIDE на экране появится диалоговое окно Create Slide File (рис. 2.6), которое позволит вам ввести имя соответствующего файла. Если переменная FILEDIA имеет значение 0, при выполнении команды MSLIDE в командной строке появится приглашение на ввод имени файла.
Файлы сценариев и организация показа слайдов
79
Рис. 2.6. Диалоговое окно Create Slide File
Command: MSLIDE Enter name of slide file to create : Имя файла ◊◊◊ Команда: MSLIDE Введите имя создаваемого файла слайдов <По умолчанию>: Имя файла
Пример Command: MSLIDE Slide File: SLIDE1
где • Drawing1 — имя файла слайдов, заданное по умолчанию; • SLIDE1 — имя файла слайдов. В этом примере AutoCAD сохранит файл слайда под именем slide1.sld. Примечание Команда MSLIDE, используемая в пространстве модели, позволяет создать слайд изображения, показанного в текущем видовом экране. Работая в пространстве листа, можно создавать слайды изображений, включающие в себя плавающие видовые экраны. При отсутствии активных видовых экранов выполнение команды MSLIDE приведет к созданию слайда текущего изображения.
Просмотр слайдов Чтобы просмотреть слайды, введите команду VSLIDE в командную строку. На экране появится диалоговое окно Select Slide File (Выбор файла слайда), показанное на рис. 2.7. Выберите файл, который вы хотите увидеть, и щелкните на кнопке Open (Открыть).
80
Глава 2
На экране отобразится выбранный вами слайд. Если значение системной переменной FILEDIA равно 0, вы сможете ввести имя нужного слайда непосредственно в командную строку. Command: VSLIDE Enter name of slide file to create : Имя файла
Рис. 2.7. Диалоговое окно Select File Slide
Пример Command: VSLIDE Slide File: SLIDE1
где • Drawing1 — имя файла слайда, заданное по умолчанию; • SLIDE1 — имя файла слайда. Примечание Если вы хотите после просмотра слайдов выйти из режима показа и вернуться к чертежу, отображенному на экране, введите команду REDRAW (ПЕРЕРИСОВАТЬ), поверните колесико мыши или щелкните на полосе прокрутки. Для этого подходит также любая другая команда, после которой выполняется команда REDRAW. Например, после выполнения команды GRID, ZOOM ALL или REGEN произойдет автоматический переход к чертежу, показанному на экране. Слайды можно просматривать на мониторах с различным разрешением экрана. При изменении разрешающей способности монитора AutoCAD автоматически корректирует изображение, показанное на экране. Тем не менее, если для показа презентации используется монитор с высоким разрешением экрана, то слайды лучше создавать на компьютере, монитор которого имеет примерно такие же характеристики.
Файлы сценариев и организация показа слайдов
81
Пример 7 Напишите сценарий, обеспечивающий показ следующих слайдов с 15-секундной паузой после каждого показанного слайда (рис. 2.8).
Рис. 2.8. Слайды презентации
Шаг 1: создание слайдов Первый этап формирования презентации состоит в создании слайдов с помощью команды MSLIDE. При вызове этой команды на экране появится диалоговое окно Create Slide File (Создать файл слайда). Введите имя слайда (например, SLADE1), а затем закройте диалоговое окно, щелкнув на кнопке Save (Сохранить). Точно так же могут быть созданы и все остальные слайды. На рис. 2.8 показан чертеж, сохраненный в виде слайдов SLIDE1, SLIDE2, SLIDE3 и SLIDE4. Слайды должны быть сохранены в каталоге, указанном в путях доступа программы AutoCAD. При несоблюдении этого условия сценарий презентации не сможет найти нужные слайды.
Шаг 2: написание сценария На втором этапе необходимо определить порядок воспроизведения слайдов и продолжительность временных задержек, создаваемых во время показа. Для написания сценария можно воспользоваться любым текстовым редактором или вызвать команду EDIT (если файл ACAD.PGP существует, а команда EDIT определена в этом файле). Сценарий будет сохранен в виде файла с расширением .SCR. Листинг сценария, обеспечивающего показ слайдов, изображенных на рис. 2.8, представлен ниже. Файлу сценария присвоено имя SLDSHOW1. VSLIDE SLIDE1 DELAY 15000 VSLIDE SLIDE2 DELAY 15000 VSLIDE SLIDE3 DELAY 15000 VSLIDE SLIDE4 DELAY 15000
82
Глава 2
Шаг 3: запуск файла сценария Чтобы начать показ слайдов, выберите команду Run Script (Выполнить сценарий) из меню Tools (Сервис) или введите выражение SCRIPT (СЦЕНАРИЙ) в командную строку. На экране появится диалоговое окно Select Sript File (Выбор файла сценария). Выберите файл SLDSHOW1, а затем щелкните на кнопке Open (Открыть). Слайды презентации отобразятся на экране.
Предварительная загрузка слайдов При выполнении команды VSLIDE SLIDE1, записанной в первой строке сценария (пример 7), произойдет загрузка файла SLIDE1 и его отображение на экране. После паузы продолжительностью 15000 миллисекунд начнется загрузка второго слайда — файла SLIDE2. Можно заметить, что для загрузки второго файла потребуется определенное время. Длительность загрузки определяется быстродействием вашего компьютера и временем доступа к жесткому диску. То же самое можно сказать и о загрузке остальных файлов. Система AutoCAD обеспечивает возможность предварительной загрузки слайдов, которая осуществляется во время показа предыдущего слайда. Это позволяет избавиться от неоправданных задержек, которые могут возникнуть во время просмотра презентации. Для выполнения предварительной загрузки слайда перед именем соответствующего файла в сценарии показа ставится звездочка (*). VSLIDE SLIDE1 VSLIDE *SLIDE2 DELAY 15000 VSLIDE VSLIDE *SLIDE3 DELAY 15000 VSLIDE VSLIDE *SLIDE4 DELAY 15000 VSLIDE DELAY 15000 RSCRIPT
Пример 8 Напишите сценарий, обеспечивающий непрерывный показ следующих слайдов с 2-секундной паузой между слайдами SLD1, SLD2 и SLD3. Файлы слайдов расположены в разных каталогах, как показано на рис. 2.9. Здесь: • C: — жесткий диск; • Program Files — корневой каталог; • AutoCAD 2004 — подкаталог, в котором хранятся системные файлы AutoCAD; • SUBDIR1 — подкаталог, в котором хранятся файлы чертежей; • SUBDIR2 — подкаталог, в котором хранятся файлы чертежей; • SUBDIR3 — подкаталог, в котором хранятся файлы чертежей; • SLD1 — файл слайда, находящийся в подкаталоге SUBDIR1;
Файлы сценариев и организация показа слайдов
83
• SLD2 — файл слайда, находящийся в подкаталоге SUBDIR2; • SLD3 — файл слайда, находящийся в подкаталоге SUBDIR3.
Рис. 2.9. Структура подкаталогов жесткого диска С
Представленный ниже листинг сценария обеспечивает показ слайдов, описанных в примере 8. VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR1/SLD1.SLD" DELAY 2000 VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR2/SLD2.SLD" DELAY 2000 VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR3/SLD3.SLD" DELAY 2000 RSCRIPT
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD1. Путевое имя этого файла указано в команде VSLIDE. Если составное имя каталога содержит пробелы, его необходимо заключить в кавычки.
Строка 2 DELAY 2000
Команда DELAY (ПАУЗА), содержащаяся в этой строке, используется для создания 2-секундной паузы перед загрузкой следующего слайда.
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD2, который находится в подкаталоге SUBDIR2. Если файл слайда расположен в другом подкаталоге, укажите путь к этому файлу.
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD3, который находится в подкаталоге SUBDIR3.
84
Глава 2
Строка 7 RSCRIPT
Команда RSCRIPT, содержащаяся в этой строке, обеспечивает повторное выполнение файла сценария и отображение слайдов презентации на экране. Этот процесс будет повторяться до тех пор, пока вы не прервете выполнение сценария, нажав клавишу <Esc> или .
Библиотеки слайдов Программа AutoCAD предоставляет утилиту SLIDELIB, с помощью которой можно создавать библиотеки слайдов. Команда SLIDELIB имеет следующий синтаксис: SLIDELIB (Файловое имя библиотеки) <(Список файловых имен слайдов)
Пример SLIDELIB SLDLIB <SLDLIST
где • SLIDELIB — утилита SLIDELIB, входящая в программу AutoCAD; • SLDLIB — файловое имя библиотеки слайдов; • SLDLIST — список файловых имен слайдов. Утилита SLIDILIB поставляется вместе с программным пакетом AutoCAD. Эту утилиту (SLIDILIB.EXE) можно найти в подкаталоге, в котором находятся вспомогательные файлы. Список слайдов представляет собой список файловых имен слайдов, которые вы хотите ввести в презентацию. Это текстовый файл, который создается с помощью какого-либо текстового редактора или команды EDIT (если файл ACAD.PGP существует, а команда EDIT определена в этом файле). Имена слайдов, вошедшие в этот список, не должны содержать расширение файла. Тем не менее, если вы хотите указать полное имя файла, следует использовать расширение .SLD.
Если вы работаете с операционной системой DOS версии 5.0 и выше, можете создать список слайдов, используя для этого следующую команду: C:\AutoCAD 2004\SLIDES>DIR *.SLD/B>SLDLIST
При создании или изменении каталогов в режиме DOS можно использовать команды md (make directory) и cd (change directory). В этом примере предполагается, что список файлов имеет имя SLDLIST, а файлы всех слайдов содержатся в подкаталоге SLIDES. Для создания списка файлов с помощью этой команды необходимо, чтобы все файлы слайдов находились в одном каталоге.
Файлы сценариев и организация показа слайдов
85
Утилита SLIDILIB считывает имена слайдов из файла, определенного в списке слайдов, а затем записывает их в файл библиотеки. В примере 9 утилита SLIDILIB считывает файловые имена слайдов из файла SLDLIST и записывает их в файл библиотеки SLDLIB: C:\>SLIDELIB SLDLIB <SLDLIST Примечание Вы не сможете отредактировать файл библиотеки слайдов. Чтобы внести какие-либо изменения, вам придется создать новый список слайдов, а затем создать новую библиотеку слайдов, используя для этого утилиту SLIDILIB. При редактировании слайда, отображенного на экране, сделанные изменения не сохраняются. Вместо этого выполняется редактирование текущего чертежа, расположенного “под” слайдом, поэтому не стоит использовать команды редактирования во время показа слайдов. При просмотре слайдов старайтесь использовать только команды VSLIDE и DELAY. Путевое имя файла в библиотеке слайдов не сохраняется. Это объясняется следующим образом. Если у вас есть несколько слайдов, которые имеют одинаковые имена, но находятся в разных каталогах, в библиотеке слайдов будет сохранен только один слайд.
Пример 9 Используя утилиту SLIDELIB, создайте непрерывный показ слайдов с 2,5-секундной паузой после каждого слайда. (Файлы имеют следующие имена: SLDLIST (список слайдов), SLDSHOW1 (библиотека слайдов), SHOW1 (файл сценария)). В презентации используются слайды front (вид спереди), top (вид сверху), rside (вид сбоку), 3dview (аксонометрия) и isoview (изометрия). Как показано на рис. 2.10, файлы слайдов находятся в разных подкаталогах.
Рис. 2.10. Подкаталоги чертежей на диске С
Здесь: • C — диск С; • Dwg-Files — подкаталог, в котором находятся файлы чертежей; • Proj-A — подкаталог с файлами чертежей; • Proj-B — подкаталог с файлами чертежей; • Slide-Files — каталог, в котором хранятся копии файлов Slidelib.exe и sldlist.
86
Глава 2
Шаг 1 На первом этапе необходимо создать список файлов, содержащий также сведения о каталогах и структуре жесткого диска. Представьте, например, что вы находитесь в каталоге Slide-Files. Создайте список слайдов, которые вы хотите включить в показ (для этого используется текстовый редактор или команда EDIT). Составляя список слайдов, указывать файловое расширение не следует. Тем не менее, если вы хотите ввести полное имя файла, используйте расширение .SLD. Посмотрите, как будет выглядеть листинг файла SLDLIST (для примера 9): C:\Dwg-Files\Proj-A\front C:\Dwg-Files\Proj-A\top C:\Dwg-Files\Proj-A\rside C:\Dwg-Files\Proj-B\3dview C:\Dwg-Files\Proj-B\isoview
Шаг 2 На втором этапе создайте библиотеку слайдов, используя для этого утилиту SLIDELIB. Присвойте созданной библиотеке имя sldshow1. Перед тем как создавать библиотеку слайдов, скопируйте список слайдов (SLDLIST) и утилиту SLIDELIB, которые содержатся в каталоге поддержки, в каталог Slide-Files. Это является гарантией того, что все необходимые файлы будут находиться в одном каталоге. Введите команду SHELL (ОБОЛОЧКА) в командную строку программы AutoCAD, а затем при появлении приглашения OS Command: нажмите клавишу <Enter>. На экране появится диалоговое окно AutoCAD Shell Active, показанное на рис. 2.11. Можно также открыть окно редактора Сеанс DOS, выбрав команду ProgramsMS-DOS Prompt (ПрограммыСеанс MS-DOS). Command: SHELL OS Command: Нажмите клавишу <Enter>
Для запуска утилиты SLIDELIB, с помощью которой вы сможете создать библиотеку слайдов, введите в диалоговое окно следующее выражение: C:\Dwg-Files\Slide-Files>SLIDELIB sldshow1 <sldlist
где • SLIDELIB — утилита AutoCAD; • sldshow1 — библиотека слайдов; • sldlist — список слайдов. Предполагается, что текущей директорией является каталог Slide-Files.
Рис. 2.11. Диалоговое окно AutoCAD Shell Active
Файлы сценариев и организация показа слайдов
87
Шаг 3 Теперь вы можете написать сценарий показа презентации, в которой будут использованы слайды, содержащиеся в библиотеке слайдов. В этом примере файл сценария сохранен под именем SHOW1. VSLIDE sldshow1(front) DELAY 2500 VSLIDE sldshow1(top) DELAY 2500 VSLIDE sldshow1(rside) DELAY 2500 VSLIDE sldshow1(3dview) DELAY 2500 VSLIDE sldshow1(isoview) DELAY 2500 RSCRIPT
Шаг 4 Откройте диалоговое окно Select Script File, показанное на рис. 2.12. Для этого выберите команду Run Script (Выполнить сценарий) из меню Tools (Сервис) или введите выражение SCRIPT (СЦЕНАРИЙ) в командную строку. Можно также ввести команду SCRIPT в командную строку, перед этим присвоив системной переменной FILEDIA значение 0. Command: SCRIPT Enter script file name <default>: SHOW1
Рис. 2.12. Выбор файла сценария из диалогового окна Select Script File
88
Глава 2
Слайды с растровыми изображениями В слайдах могут также использоваться растровые изображения, позволяющие создавать более красочные и интересные презентации (это предложение относится к числу рекомендуемых). AutoCAD содержит функцию AutoLISP, которая дает возможность использовать растровые изображения во время показа слайдов. Эта функция имеет следующий синтаксис: (C:REPLAY FILENAME TYPE [<XOFF> <XSIZE> ])
где • C:REPLAY — функция AutoLISP, вызывающая команду Replay; • FILENAME — файловое имя растрового изображения (без расширения), содержащее путевое имя каталога и левую косую черту (/), которая обеспечивает отображение структуры каталога. Файловое имя должно указываться в кавычках; • TYPE — тип графического файла (например, Bmp, Tif или Tga). Тип файла должен указываться в кавычках; • XOFF — смещение изображения по оси X относительно начала координат (т.е. точки 0,0); • YOFF — смещение изображения по оси Y относительно начала координат; • XSIZE — размер графического изображения по горизонтали (по оси X) от точки смещения (в пикселях). Как правило, эти данные можно получить при создании растрового изображения с помощью команды SAVEIMG; • YSIZE — размер графического изображения по вертикали (по оси Y) от точки смещения (в пикселях). Как правило, эти данные можно получить при создании растрового изображения с помощью команды SAVEIMG. В библиотеке программы AutoCAD содержится файл BIGLAKE.TGA, который является примером растрового изображения (рис. 2.13).
Рис. 2.13. Растровое изображение, показанное при выполнении файла сценария
Файлы сценариев и организация показа слайдов
89
Имейте в виду, что начиная с версии AutoCAD 2004 растровые изображения содержатся уже не в том каталоге, который задан по умолчанию. Если на вашем компьютере установлена операционная система Windows 2000 или Windows XP, графические файлы находятся в каталоге C:\Documents and Settings\Owner\Local Settings\ Application Data\Autodesk\AutoCAD 2004\R16.0\enu\textures. В операционной системе Windows 98 файлы изображений располагаются в каталоге C:\Windows\ Application Data\Autodesk\AutoCAD 2004\R16.0\enu\textures. Чтобы вывести на экран нужное изображение, введите в командную строку следующее выражение. При использовании операционной системы Windows 98 путевое имя файла придется немного изменить. (C:REPLAY "C:\Documents and Settings\Owner\Local Settings\Application Data\Autodesk\AutoCAD 2004\R16.0\enu\textures/BIGLAKE" "TGA" 150 50 944 564)
где • C:REPLAY — функция AutoLISP, используемая для вызова команды Replay; • C:\Documents.../BIGLAKE — имя файла растрового изображения, содержащее полное путевое имя; • "TGA" — тип файла тонированного изображения; • 150 — горизонтальное смещение (по оси X) изображения, выведенного на экран; • 50 — вертикальное смещение (по оси Y) изображения, выведенного на экран; • 944 — горизонтальный размер (по оси X) растрового изображения, измеренный в пикселях; • 564 — вертикальный размер (по оси Y) растрового изображения, измеренный в пикселях.
Сочетание векторных и растровых изображений Ниже приведен пример сценария (replay.scr), который позволяет объединить слайды AutoCAD и графические изображения (файлы *.bmp) в одну цельную презентацию. Файлы “F_” представляют собой изображения FRAME, а файлы “R_ — изображения RENDERED. Предполагается, что графические файлы BMP находятся на диске A. VSLIDE A:\SLIDES\F_ROLL DELAY 3000 (C:REPLAY "A:/RENDERS/R_ROLL" "BMP" 00 944 564) DELAY 3000 VSLIDE A:\SLIDES\F_BKCASE DELAY 3000 (C:REPLAY "A:/RENDERS/R_BKCASE" "BMP" 00 944 564) DELAY 3000 VSLIDE A:\SLIDES\F_MOUSE DELAY 3000 (C:REPLAY "A:/RENDERS/R_MOUSE" "BMP" 00 944 564) DELAY 3000 VSLIDE A:\SLIDES\F_TABLE2 DELAY 3000 (C:REPLAY "A:/RENDERS/R_TABLE2" "BMP" 00 944 564) DELAY 3000 RSCRIPT
90
Глава 2
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы.
Файлы сценариев 1. Программа AutoCAD предоставляет возможность ________, которая позволяет объединить различные команды AutoCAD и выполнить их в определенной последовательности. 2. Перед написанием сценария вам необходимо познакомиться с ________ AutoCAD и ________, которые требуется ввести в командную строку. 3. Для запуска сценария используется команда ________. 4. В файле сценария для завершения действия команды или параметра, введенного в командную строку, используется ________. 5. После команды DELAY указывается ________ в миллисекундах.
Показ слайдов 6. Слайды не содержат какой-либо ________ информации, т.е. объекты, изображенные на слайдах, не содержат никаких данных, относящихся к исходным чертежам. 7. В отличие от чертежей, слайды ________ редактируются. 8. Слайды могут быть созданы с помощью команды ________. 9. Для просмотра слайдов используется команда ________. 10. AutoCAD предоставляет утилиту, которая позволяет создавать библиотеки слайдов. Эта операция выполняется с помощью служебной программы AutoCAD, которая называется ________.
Повторение пройденного материала Ответьте на следующие вопросы.
Файлы сценариев 1. Файлы ________ могут быть использованы для создания показа слайдов, установки исходных параметров чертежа или вычерчивания чертежа с заранее заданными параметрами. 2. При написании сценария в одной строке могут ________ несколько различных операторов. 3. При запуске сценария файлу сценария по умолчанию присваивается имя, которое совпадает с файловым именем ________. 4. Для запуска файла сценария необходимо ввести имя сценария без файлового ________. 5. Одним из недостатков сценариев является то, что вся необходимая информация должна содержаться в файле ________.
Файлы сценариев и организация показа слайдов
91
6. Команда ________ обеспечивает повторное выполнение файла сценария, которое осуществляется до отмены этой команды. 7. При написании сценария нельзя использовать ________ операторы, которые бы обеспечили завершение сценария при выполнении определенных условий. 8. Использование команды ________ обеспечивает выполнение следующей команды после определенной задержки. 9. Чтобы продолжить выполнение сценария, прерванного по какой-либо причине, воспользуйтесь командой ________.
Показ слайдов 10. Программа AutoCAD предоставляет возможность ________, которая позволяет объединять слайды в текстовом файле и отображать их в ранее определенной последовательности. 11. ________, введенная в файл сценария, дает возможность пользователям хорошо рассмотреть слайды презентации. 12. Слайды представляют собой ________, отображенные на экране. 13. Команда MSLIDE, используемая в пространстве модели, позволяет создать слайд ________, существующего в текущем ________. 14. Работая в пространстве чертежного листа, вы сможете создавать слайды изображений, ________ плавающие видовые экраны. 15. Чтобы внести изменения в какой-либо слайд, вам необходимо ________ исходный чертеж, а затем создать слайд, используя для этого отредактированный чертеж. 16. Чтобы просмотреть слайд, имеющийся в библиотеке слайдов, имя библиотеки слайдов должно быть ________ с файловым именем слайда. 17. Вы не сможете ________ файл библиотеки слайдов. Чтобы внести какие-либо изменения, вам придется создать новый список слайдов, а затем создать новую библиотеку слайдов, используя для этого утилиту ________. 18. Путевое имя файла ________ сохранить в библиотеке слайдов. Это связано с тем, что при наличии нескольких слайдов, имеющих одинаковые имена, но находящихся в разных каталогах, в библиотеке слайдов можно будет сохранить только один слайд.
92
Глава 2
Упражнения Файлы сценариев Упражнение 2 (Общее) Напишите сценарий, при выполнении которого будут установлены следующие исходные параметры чертежа: Сетка Шаг Лимиты чертежа Масштабировать Высота текста LTSCALE Общий размерный масштабный коэффициент Выравнивать размерные числа по размерным линиям Размерные числа над размерными линиями Размер центральной точки
2.0 0.5 0,0 18.0,12.0 Все 0.25 2.0 2
0.75
Упражнение 3 (Общее) Напишите файл сценария, который обеспечит создание слоев, имеющих следующие цвета и типы линий. Сохраните файл под именем script3.scr. Contour Spipes Wpipes Power Manholes Trees
Упражнение 4 (Общее) Напишите сценарий, с помощью которого вы сможете установить следующие исходные параметры чертежа: Лимиты чертежа Сетка Шаг Ортогональный режим Привязка Масштабировать Ширина полилинии Координаты точек полилинии LTSCALE Единицы измерения
0,0 24,18 1.0 0.25 Вкл. (On) Вкл. (On) Все 0.02 0,0 24,0 24,18 0,18 0,0 1.5 Десятичные с точностью 0.00 Десятичные градусы с точностью 0 Отсчет угла от положительной оси X (восток) Угол положительный, если измеряется против часовой стрелки
Файлы сценариев и организация показа слайдов
93
Слои Obj Cen Hid Dim
Красный (Red) Желтый (Yellow) Синий (Blue) Зеленый (Green)
Continuous Center Hidden Continuous
Упражнение 5 (Общее) Напишите сценарий, с помощью которого вы сможете напечатать чертеж с заданными параметрами. (Для этого воспользуйтесь системным плоттером; измените приведенные значения в соответствии с параметрами печатающего устройства.) • Печатать с помощью опции Window (Рамка). • Размеры рамки (0,0 24,18). • Не записывать параметры печати в файл. • Размеры в дюймах. • Начало координат (0.0,0.0). • Максимальные размеры области печати (8.5,11 или наименьший формат, поддерживаемый вашим принтером/плоттером). • Повернуть чертеж на 90 градусов. • Не удалять пунктирные линии. • Масштаб печати (Подогнать).
Упражнение 6 (Общее) Напишите сценарий, обеспечивающий непрерывное вращение отрезка вокруг его средней точки. При каждом выполнении сценария этот отрезок должен поворачиваться на угол 10 градусов (рис. 2.14). Между поворотами — секундная пауза.
Рис. 2.14. Рисунок к упражнению 6
94
Глава 2
Упражнение 7 (Общее) Напишите сценарий, который бы обеспечил непрерывное вращение фигур, изображенных на рис. 2.15. Одна из фигур, состоящая из двух окружностей, соединенных прямой линией, должна поворачиваться по часовой стрелке, другая такая же фигура — против часовой стрелки. Поворот фигур выполняется вокруг точки, образованной пересечением прямых линий. Шаг поворота — 5 градусов.
Рис. 2.15. Рисунок к упражнению 7
Эти фигуры имеют следующие параметры: Начальная точка горизонтального отрезка
2,4
Конечная точка горизонтального отрезка
8,4
Центр окружности в начальной точке горизонтального отрезка
2,4
Диаметр окружности
1.0
Центр окружности в конечной точке горизонтального отрезка
8,4
Диаметр окружности
1.0
Начальная точка вертикального отрезка
5,1
Конечная точка вертикального отрезка
5,7
Центр окружности в начальной точке вертикального отрезка
5,1
Диаметр окружности
1.0
Центр окружности в конечной точке вертикального отрезка
5,7
Диаметр окружности
1.0
(Выделите две окружности и соединяющий их отрезок и создайте группу объектов. Точно так же создайте вторую группу, используя для этого оставшиеся объекты. Поворачивайте одну группу по часовой стрелке, а вторую группу — против часовой стрелки.)
Файлы сценариев и организация показа слайдов
95
Показ слайдов Упражнение 8 (Общее) Создайте слайды, изображенные на рис. 2.16, а затем напишите сценарий, обеспечивающий непрерывный показ этих слайдов. После каждого слайда введите 5-секундную задержку. (При выполнении этого упражнения вовсе не обязательно использовать слайды, показанные на данном рисунке. Можете выбрать любые слайды, которые вы захотите.)
Рис. 2.16. Слайды, используемые в презентации
Упражнение 9 (Общее) Составьте список слайдов, перечисленных в упражнении 8, и сохраните его в виде файла SLDLIST2, а затем создайте файл библиотеки слайдов SLDLIB2. Напишите сценарий показа SHOW2, используя библиотеку слайдов, и введите 5-секундную задержку после показа каждого слайда.
Ответы на вопросы для самопроверки 1 — SCRIPT, 2 — команды и опции, 3 — SCRIPT, 4 — пустая строка, 5 — время, 6 — векторная, 7 — не могут, 8 — MSLIDE, 9 — VSLIDE, 10 — SLIDELIB.
Глава 3
Создание типов линий и образцов штриховки Цель занятия Познакомившись с материалом этой главы, вы научитесь: • создавать различные типы линий; • записывать определения типов линий; • создавать файлы соответствующих типов линий; • определять величину LTSCALE для печати чертежа с заданными параметрами; • определять альтернативные и изменять уже существующие типы линий; • создавать сложные линии строкового и геометрического типов; • создавать образцы штриховки; • записывать определения образцов штриховки; • определять влияние угла и масштабного коэффициента на внешний вид штриховки; • сохранять образцы штриховки в отдельном файле; • создавать образцы нестандартных штриховок.
98
Глава 3
Стандартные типы линий В программу AutoCAD входит библиотека стандартных типов линий, содержащая 38 стандартных и семь сложных типов линий, к которым относятся линии стандарта ISO. Указанные типы линий хранятся в файле acad.lin. Кроме этого AutoCAD позволяет модифицировать уже существующие или создавать новые типы линий.
Определение типа линии Определения любых типов линий состоят из двух частей: заголовка и образца линии.
Заголовок типа линии Заголовок типа линии состоит из имени, перед которым стоит звездочка (*), и описания данного типа линии. Между именем и описанием линии должна стоять запятая. Если описание отсутствует, запятая, разделяющая имя и описание линии, опускается. Заголовок типа линии имеет следующий формат: *Имя типа линии, Описание
Пример *HIDDENS, __ __ __ __ __ __
где • * — знак звездочки; • HIDDENS — название типа линии; • , — запятая; • __ __ __ __ — описание линии. Определения типов линий должны обязательно содержать названия линий. Когда вы загружаете тип линии или назначаете его выделенному объекту, программа AutoCAD распознает этот тип по названию линии, указанному в определении. Названия, используемые при определении типов, должны выбираться таким образом, чтобы пользователь мог различать типы линий по их именам. Например, название линии LINEFCX не скажет пользователю ровным счетом ничего. В свою очередь, название DASHDOT позволяет предугадать внешний вид линии, который соответствует этому типу. Под описанием линии подразумевается ее представление в символьной форме. Описание линии создается с помощью тире, точек и пробелов, вводимых с клавиатуры. Созданный графический образ используется для отображения линии на экране при вызове команды LINETYPE (ТИПЛИН) с опцией ? или соответствующего диалогового окна. Описание линии не должно содержать более 47 символов.
Образец типа линии Образец типа линии содержит определение образца линии, состоящее из спецификации поля выравнивания и спецификации типа линии, разделенных запятой. Образец типа линии имеет следующий формат: Спецификация поля выравнивания, спецификация типа линии
Создание типов линий и образцов штриховки
99
Пример А,.75,-.25,.75
где • А — спецификация поля выравнивания; • , — запятая; • .75,-.25,.75 — спецификация типа линии. В спецификации поля выравнивания используется буква А. Это единственное поле выравнивания, которое поддерживается программой AutoCAD, поэтому все образцы линий будут начинаться с буквы А. Спецификация типа линии определяет конфигурацию штрихпунктирного образца, используемого при формировании линии. Максимальная длина штриха в спецификации типа линии составляет 12 единиц, что позволяет разместить определение образца линии в одной 80-символьной строке.
Элементы спецификации типа линии Различные типы линий создаются путем расположения базовых элементов в требуемом порядке. Существуют три базовых элемента, которые могут быть использованы при определении типа линии: • штрих (перо опущено); • точка (перо опущено, длина 0); • пробел (перо поднято). Пример ___ . ___ . ___ . ___ где • . — точка (перо опущено, длина 0); • пустое место — пробел (перо поднято); • ___ — штрих (перо опущено на указанную длину). Штрихи генерируются при вводе положительных значений в образец линии. Например, вводя значение 0.5, вы тем самым создаете штрих длиной 0,5 единицы. Пробелы, в свою очередь, создаются путем определения отрицательных значений. Таким образом, при считывании значения -0.2, содержащегося в образце линии, генерируется пробел длиной 0,2 единицы. Точки создаются при определении нулевой длины. Пример А,.5,-.2,0,-0.2,.5
где • 0 — точка (нулевая длина); • -.2 — длина пробела (перо поднято); • .5 — длина штриха (перо опущено).
100
Глава 3
Создание различных типов линий Перед созданием нового типа линии необходимо решить, какой тип линии вы хотите сформировать. Начертите линию на листе бумаги и измерьте длину всех элементов, образующих эту линию. При вычерчивании линии элементы периодически повторяются, поэтому вам придется определить только один сегмент этой линии. Существует несколько способов, с помощью которых вы сможете создавать новые или видоизменять уже существующие типы линий: • использование текстового редактора (например, Notepad); • добавление нового типа линии в файл acad.lin; • использование команды LINETYPE (ТИПЛИН). О том, как использовать эти методы для создания новых типов линий, вы узнаете в следующих примерах.
Пример 1 Создайте линию DASH3DOT (рис. 3.1), имеющую следующие параметры: • длина первого штриха — 0,5; • пробел — 0,125; • точка; • пробел — 0,125; • точка; • пробел — 0,125; • точка; • пробел — 0,125.
Рис. 3.1. Геометрические параметры линии DASH3DOT
Использование тестового редактора Шаг 1: запись определения нового типа линии Создайте файл нового типа линии и добавьте в него соответствующее определение. Для этого откройте какой-нибудь текстовый редактор (например, Notepad), создайте новый файл и введите описание линии DASH3DOT. Имя и описание линии должны быть
Создание типов линий и образцов штриховки
101
разделены запятой (,). Следует заметить, что описание линии не является обязательным. Поэтому если вы не хотите приводить описание, запятую, которая должна стоять после имени DASH3DOT, можно опустить. *DASH3DOT,___ . . . ___ . . . ___ А,.5,-.125,0,-.125,0,-.125,0,-.125
Присвойте этому файлу имя newlt.lin и сохраните его в каталоге Support.
Шаг 2: загрузка типа линии Чтобы загрузить созданную линию, откройте диалоговое окно Linetype Manager (Диспетчер типов линий), выбрав команду Linetype (Тип линии) из меню Format (Формат). Затем откройте диалоговое окно Load or Reload Linetypes (Загрузка или перезагрузка типов линий), щелкнув на кнопке Load (Загрузить), которая находится в верхнем правом углу диалогового окна Linetype Manager. Откройте диалоговое окно File Select Linetype (Выбор файла типа линии), показанное на рис. 3.2, щелкнув на кнопке File (Файл). Выделите файл newlt.lin и щелкните на кнопке Open (Открыть). На экране снова появится диалоговое окно Load or Reload Linetypes. Выберите тип линии DASH3DOT в разделе Available Linetypes (Доступные типы линий) и щелкните на кнопке OK. На экране отобразится диалоговое окно Linetype Manager. Выделите линию DASH3DOT и сделайте ее текущей, щелкнув на кнопке Current (Установить). Затем щелкните на кнопке OK.
Рис. 3.2. Диалоговое окно File Select Linetype
Добавление новых типов линий в файл acad.lin Шаг 1: добавление новых типов линий в файл acad.lin Как вы уже знаете, для создания новых типов линий можно использовать любой текстовый редактор (например, Notepad). Но с помощью текстового редактора можно также открыть файл acad.lin и ввести туда строки, определяющие новый тип линии.
Две последние строки этого файла определяют новый тип линии. Первая строка содержит имя DASH3DOT и описание новой линии ( ___ . . . ___ ). Во второй строке находятся параметры выравнивания и определение образца.
Шаг 2: загрузка типа линии Сохраните измененный файл, а затем загрузите новый тип линии, используя для этого команду LINETYPE. Загрузка нового типа линии выполняется так, как это описывалось в одном из предыдущих разделов. Линии и полилинии, созданные на основе этого типа, показаны на рис. 3.3. Примечание При изменении масштабного коэффициента LTSCALE изменятся геометрические параметры всех линий, показанных на этом рисунке.
Создание типов линий и образцов штриховки
103
Рис. 3.3. Линии, созданные по типу DASH3DOT
Использование команды LINETYPE Шаг 1: создание типа линии Чтобы создать новый тип линии с помощью команды LINETYPE, прежде всего необходимо перейти в режим графического редактирования. Затем следует ввести команду -LINETYPE (-ТИПЛИН) и при появлении запроса выбрать опцию Create (Создать). Command: -LINETYPE Enter an option [?/Create/Load/Set]: Create ◊◊◊ Команда: -LINETYPE Введите опцию [?/Создать/Загрузить/Установить]: Create
Введите имя нового типа линии и имя файла библиотеки, в котором вы хотите сохранить определение нового типа линий. Enter name of linetype to create: DASH3DOT
Если значение переменной FILEDIA равно 1, при выполнении этой команды на экране появится диалоговое окно Create or Append Linetype File, показанное на рис. 3.4. Если значение этой переменной равно 0, в командной строке появится приглашение на ввод имени файла. Enter linetype file name for new linetype definition <default>: Acad
Если этот тип линии уже существует, на экране появится следующее сообщение: Wait, checking if linetype already defined... "Linetype" already exists in this file. Current definition is: alignment, dash-1, dash-2, ____ . Overwrite?
104
Глава 3
◊◊◊ Подождите, проверяется определение данного типа линии... "Тип линии" уже существует в этом файле. Текущее определение: выравнивание, штрих-1, штрих-2, ____ . Перезаписать? <Нет>
Рис. 3.4. Диалоговое окно Create or Append Linetype File
Если вы хотите переопределить существующий тип линии, введите букву Y. В противном случае выберите значение, заданное по умолчанию, нажав клавишу <Enter>, или введите букву N. Этот процесс можно будет повторить еще раз, присвоив типу линии другое имя. После того, как вы введете имя типа линии и имя файла библиотеки, в командной строке появится приглашение на ввод текстового описания и образца новой линии. Descriptive text: *DASH3DOT,___ . . . ___ . . . ___ Enter linetype pattern (on next line): А,.5,-.125,0,-.125,0,-.125,0,-.125 ◊◊◊ Текстовое описание: *DASH3DOT,___ . . . ___ . . . ___ Образец типа линии (в следующей строке): А,.5,-.125,0,-.125,0,-.125,0,-.125
Создавая текстовое описание линии, необходимо ввести звездочку, а затем напечатать имя нового типа. Как вы помните, созданному типу линии было присвоено имя DASH3DOT. Кроме имени *DASH3DOT можно также ввести описание типа линии; при этом длина описания не должна превышать 47 символов. В нашем примере описание типа линии состоит только из точек и штрихов ( ___ . . . ___ ), но в общем случае в
Создание типов линий и образцов штриховки
105
описании могут использоваться любые буквенно-цифровые знаки. Введенное описание отображается на экране при составлении списка типов линий.
Образец линии А,.5,-.125,0,-.125,0,-.125,0,-.125
Образец линии должен начинаться со спецификации выравнивания. По умолчанию AutoCAD поддерживает только один тип выравнивания, который обозначается буквой А. Таким образом, именно эта буква появится в командной строке при вызове команды LINETYPE с опцией Create. Введя параметр А, определяющий выравнивание образца, укажите положение пера. Положительное число (.5 или 0.5) указывает на положение “перо опущено”, а отрицательное число (-.25 или -0.25) — на положение “перо поднято”. Значение этого числа определяет длину штриха или пробела. Например, число 0.5 даст штрих длиной 0.5 единицы. Введя число -0.25, вы получите пробел длиной 0.25 единицы. Штрих, имеющий нулевую длину, образует точку (.). Ниже приведено определение образца типа линии для примера 1. .5 -.125 0 -.125 0 -.125 0 -.125
штрих длиной 0.5 единицы пробел длиной 0.125 единицы точка пробел длиной 0.125 единицы точка пробел длиной 0.125 единицы точка пробел длиной 0.125 единицы
После того как вы введете определение образца, новый тип линии (DASH3DOT) будет автоматически сохранен в файле acad.lin.
Шаг 2: загрузка типа линии Чтобы загрузить тип линии (DASH3DOT), воспользуйтесь командой LINETYPE (ТИПЛИН) или откройте диалоговое окно Linetype Manager (Диспетчер типов линий), выбрав команду Linetype (Тип линии) из меню Format (Формат). Для этого также можно использовать команду -LINETYPE с опцией Load (Загрузить).
Спецификация выравнивания Как следует из названия этого раздела, выравнивание определяет порядок расположения элементов в начале и конце линии, окружности или дуги. Другими словами, линия всегда начинается и заканчивается штрихом ( __ ). В соответствии с определением выравнивания “А” первым элементом линии должен быть штрих или точка (перо опущено), за которым следует отрицательный сегмент линии (перо поднято). В определении А должно быть не менее двух штриховых сегментов. Если длина пробелов в образце линии недостаточна, вычерчивается сплошная линия. В качестве примера рассмотрим тип линии DASH3DOT. Длина каждого сегмента равна 1.0 (.5 + .125 + .125 + .125 + .125 = 1.0). Если длина создаваемой линии менее 1.0, она вычерчивается как сплошная линия (рис. 3.5). Если длина отрезка равна 1.0 и более, линия вычерчивается в соответствии с типом линии DASH3DOT. Программа AutoCAD автоматически корректирует длину штрихов и построение линии всегда начинается и заканчивается штрихами. Длина начального и конечного штрихов должна составлять не
106
Глава 3
менее половины длины штриха, определенного в файле. Если длина штриха равна 0.5, то длина начального и конечного штрихов должна быть как минимум 0.25. Как показано на рис. 3.5, длину штрихов можно увеличить, что позволяет начертить линию любой длины, которая будет начинаться и заканчиваться штрихами.
Рис. 3.5. Выравнивание линии DASH3DOT
Команда LTSCALE Как уже говорилось, длина каждого сегмента линии DASH3DOT равна 1.0 (.5 + .125 + + .125 + .125 + .125 = 1.0). Если вы рисуете линию, длина которой менее 1.0, будет начерчен только один штрих, выглядящий как сплошная линия (рис. 3.6). Чтобы выйти из этого положения, попробуйте изменить масштабный коэффициент данного типа линии, присвоив системной переменной LTSCALE меньшее значение. Для этого можно воспользоваться командой LTSCALE (ЛМАСШТАБ). Command: LTSCALE Enter new linetype scale factor <default>: Новое значение ◊◊◊ Команда: LTSCALE Новый масштаб типа линии <по умолчанию>: Новое значение
По умолчанию значение переменной LTSCALE равно 1.0. Если присвоить этой переменной значение 0.75, то длина каждого сегмента линии уменьшится до 0.75 единицы (1.0 × 0.75 = 0.75). Поэтому если вы нарисуете линию длиной 0.75 единицы или больше, она будет начерчена в соответствии с определением DASH3DOT ( ___ . . . ___ ) (рис. 3.7 и 3.8).
Создание типов линий и образцов штриховки
Рис. 3.6. Выравнивание линии при LTSCALE = 1
Рис. 3.7. Выравнивание линии при LTSCALE = 0.99
107
108
Глава 3
Рис. 3.8. Выравнивание линии при LTSCALE = 0.75
Внешний вид начерченной линии зависит также и от предельных размеров чертежа. Линии AutoCAD лучше всего подходят для чертежей с лимитами 12,9. На рис. 3.9 показана линия типа DASH3DOT, имеющая длину четыре единицы. Предельные размеры чертежа — 12,9. Если увеличить предельные размеры чертежа до 48,36, штрихпунктирные линии превратятся в сплошные. Чтобы эти линии выглядели на экране так, как раньше, необходимо изменить значение системной переменной LTSCALE. Лимиты чертежа были увеличены в четыре раза, поэтому масштабный коэффициент следует увеличить на ту же величину. При увеличении масштаба длина сегментов линии также увеличится в четыре раза. Как показано на рис. 3.9, длины начального и конечного штрихов увеличились до одной единицы. В общем случае приблизительное значение масштабного коэффициента LTSCALE можно получить, разделив горизонтальный размер чертежа на предельный размер чертежа по оси X, заданный по умолчанию (12.00). Но при этом не забывайте, что глобальный масштаб типа линии должен соответствовать масштабу вычерчивания, о котором пойдет речь в следующем разделе. Глобальный масштаб типов линий LTSCALE для отображения на экране = = максимальный размер чертежа по оси Х/12.00
Создание типов линий и образцов штриховки
109
Рис. 3.9. Тип линии DASH3DOT при разных значениях переменной LTSCALE
Пример • Лимиты чертежа — 48,36; • Глобальный масштаб типов линий LTSCALE = 48/12 = 4; • Размеры чертежного листа — 36,24; масштаб — 1/4"=1'; • Глобальный масштаб типов линий LTSCALE = 12 × 4 × (36 / 12) = 144.
Масштаб печати Масштаб печати зависит от размеров листа, используемого при вычерчивании чертежа. Например, вы хотите напечатать на листе 48"×36" чертеж с максимальными размерами 48 дюймов на 36 дюймов и масштабом 1:1. В этом случае глобальный масштаб типов линий LTSCALE будет равен 1. Если вы откроете файл acad.lin и посмотрите спецификацию пунктирной линии, то обнаружите, что длина каждого штриха равна 0.25. Следовательно, при вычерчивании чертежа в масштабе 1:1 длина каждого штриха пунктирной линии будет равна 0.25. Тем не менее, если масштаб печати равен 1/8"=1', а вы хотите напечатать чертеж на листе бумаге с размерами 48"×36", масштабный коэффициент LTSCALE должен быть равным 96 (8 × 12 = 96). При увеличении значения LTSCALE до 96 длина каждого штриха пунктирной линии также увеличится в 96 раз. Таким образом, длина каждого штриха составит 24 единицы (0.25 × 96 = 24). Для того чтобы вычертить чертеж размером 384' на 288' на листе с размерами 48"×36", масштаб печати должен быть равен 1:96. Штрихи пунктирной линии, имеющие на чертеже длину 24", в напечатанном виде уменьшатся до
110
Глава 3
0,25 дюймов (24/96 = 0,25). Точно так же, если требуемый размер текста в напечатанном виде равен 1/8", высота текста на чертеже должна быть 12" (1/8 × 96 = 12). Глобальный масштаб типов линий LTSCALE для вычерчивания = масштаб чертежа Представьте, например, что ваш плоттер не позволяет вычерчивать чертежи размером 48" на 36" или вам потребовалось уменьшить размеры области печати. В этом случае для того, чтобы получить пунктирные, центровые или осевые линии со штрихами требуемой длины, необходимо изменить значение масштабного коэффициента LTSCALE. Например, если вы хотите напечатать ранее упомянутый чертеж в области размером 45" на 34", необходимо ввести следующий поправочный коэффициент: • Поправочный коэффициент = 48/45= 1,0666; • Новое значение LTSCALE = LTSCALE × Поправочный коэффициент = 96 × 1,0666 = = 102,4. • Новое значение коэффициента LTSCALE для вычерчивания = Масштаб печати × × Поправочный коэффициент Примечание При изменении глобального масштаба типов линий LTSCALE изменяются геометрические параметры всех линий данного чертежа.
Текущее масштабирование линий (CELTSCALE) Системная переменная CELTSCALE, как и LTSCALE, обеспечивает возможность масштабирования различных типов линий. Основное отличие этих переменных в том, что CELTSCALE определяет текущий масштаб отображения линий. Например, если вы присвоите CELTSCALE значение 0.5, все линии, проведенные после изменения этой переменной, будут вычерчены в масштабе 0.5. Значение текущего собственного масштаба заносится в системную переменную CELTSCALE. Как показано на рис. 3.10, первая линия (a) начерчена в масштабе 1, а вторая (б) — в масштабе 0.5. Когда значение переменной CELTSCALE равно 0.5, длина штрихов уменьшается в два раза. Системная переменная LTSCALE определяет глобальный масштаб чертежа. Например, если переменной LTSCALE присвоить значение 2, геометрические параметры всех линий, имеющихся на чертеже, увеличатся в два раза. Глобальный масштабный коэффициент равен произведению переменных CELTSCALE и LTSCALE. На рис. 3.10 (в) показана линия, начерченная в масштабе LTSCALE = 1 и CELTSCALE = 0.25. Общий масштабный коэффициент равен LTSCALE × CELTSCALE = 2 × 0.25 = 0.5. Примечание Существуют другие способы изменения текущего масштаба линий. Например, откройте диалоговое окно Properties (Свойства), щелкнув на кнопке Properties (Свойства), которая находится на панели инструментов Standard (Стандартная). Можно также использовать команду CHANGE (ИЗМЕНИТЬ) с опцией ltScale.
Создание типов линий и образцов штриховки
111
Рис. 3.10. Примеры использования переменной CELTSCALE для определения текущего масштаба линий
Дополнительные типы линий Одним из недостатков глобального масштаба типов линий (LTSCALE) является то, что изменение масштабного коэффициента влияет на все линии чертежа. Как показано на рис. 3.11 (а), длины сегментов всех линий DASH3DOT независимо от общей длины этих линий примерно равны. Иногда появляется желание уменьшить длину сегментов короткой линии или удлинить сегменты линии, имеющей большую длину. Эта задача выполняется с помощью масштабного коэффициента CELTSCALE, с которым вы познакомились в предыдущем разделе. Кроме этого, можно использовать дополнительные типы линий с сегментами требуемой длины. Для этого, например, можно определить типы линий DASH3DOT и DASH3DOTX, имеющие различные спецификации образцов. *DASH3DOT,___ . . . ___ . . . ___ . . . ___ А,.5,-.125,0,-.125,0,-.125,0,-.125 *DASH3DOTX,______ . . . ______ А,1,-.25,0,-.25,0,-.25,0,-.25
Длина сегмента линии DASH3DOT равна одной единице, тогда как линия DASH3DOTX имеет сегменты, длина которых вдвое больше. Существует несколько дополнительных типов линий, которые позволяют генерировать линии с сегментами различной длины. На рис. 3.11 (б) показаны линии, созданные с помощью типов DASH3DOT и DASH3DOTX. Примечание В чертежах могут использоваться различные типы линий с сегментами разной длины. Но при этом линии будут выглядеть точно так же, как при изменении масштабного коэффициента LTSCALE. Например, если значение переменной LTSCALE равно 0.5, длина сегмента линии DASH3DOT составит 0.5, а длина сегмента DASH3DOTX — 1.0 единиц.
112
Глава 3
Рис. 3.11. Линии, созданные с помощью типов линий DASH3DOT и DASH3DOTX
Модификация типов линий Кроме этого, можно модифицировать типы линий, определенные в файле acad.lin. Но перед тем как внести какие-либо изменения, не забудьте сохранить копию исходного файла acad.lin. Для изменения имеющихся типов линий вам потребуется текстовый редактор, такой как Notepad. Можно также использовать редактор MS-DOS или команду EDIT (при условии, что файл acad.pgp существует, а команда EDIT определена в этом файле). Например, если вы хотите изменить длину штриха линии BORDER, увеличив ее с 0,5 до 0,75, откройте файл acad.lin, отредактируйте образец линии, а затем сохраните измененный файл. Ниже приведен листинг файла acad.lin, содержащего измененные типы линий border и centerx2. ;; AutoCAD Linetype Definition file, Version 2.0 ;; Copyright 1991, 1992, 1993, 1994, 1996 by Autodesk, Inc. ;; *BORDER,Border __ __ . __ __ . __ __ . __ __ . __ __ . A,.5,-.25,.5,-.25,0,-.25 *BORDER2,Border (.5x) __.__.__.__.__.__.__.__.__.__.__. A,.25,-.125,.25,-.125,0,-.125 *BORDERX2,Border (2x) ____ ____ . ____ ____ . ___ A,1.0,-.5,1.0,-.5,0,-.5 *CENTER,Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ A,1.25,-.25,.25,-.25 *CENTER2,Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ A,.75,-.125,.125,-.125
*ACAD_ISO02W100,ISO dash __ __ __ __ __ __ __ __ __ __ __ __ __ A,12,-3 *ACAD_ISO04W100,ISO long-dash dot ____ . ____ . ____ . ____ . _ A,24,-3,.5,-3 *ACAD_ISO14W100,ISO dash triple-dot __ . . . __ . . . __ . . . _ A,12,-3,.5,-3,.5,-3,.5,-3 *ACAD_ISO15W100,ISO double-dash triple-dot __ __ . . . __ __ . . A,12,-3,12,-3,.5,-3,.5,-3,.5,-3 ;; Сложные типы линий ;; В этот файл были добавлены сложные типы линий. ;; Типы линий были определены в файле ltypeshp.lin AutoCAD 13, ;; а затем включены в файл acad.lin версии AutoCAD 14. ;; В определениях типов линий используется файл ltypeshp.shx. ;; *FENCELINE1,Fenceline circle ----0-----0----0-----0----0-----0-A,.25,-.1,[CIRC1,ltypeshp.shx,x=-.1,s=.1],-.1,1 *FENCELINE2,Fenceline square ----[]-----[]----[]-----[]----[]--A,.25,-.1,[BOX,ltypeshp.shx,x=-.1,s=.1],-.1,1 *TRACKS,Tracks -|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|A,.15,[TRACK1,ltypeshp.shx,s=.25],.15 *BATTING,Batting SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS A,.0001,-.1,[BAT,ltypeshp.shx,x=-.1,s=.1],-.2,[BAT,ltypeshp.shx, r=180,x=.1,s=.1],-.1 *HOT_WATER_SUPPLY,Hot water supply ---- HW ---- HW ---- HW ---A,.5,-.2,["HW",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.2 *GAS_LINE,Gas line ----GAS----GAS----GAS----GAS----GAS----GAS-A,.5,-.2,["GAS",STANDARD,S=.1,R=0.0,X=-0.1,Y=-.05],-.25 *ZIGZAG,Zig zag /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ A,.0001,-.2,[ZIG,ltypeshp.shx,x=-.2,s=.2],-.4,[ZIG,ltypeshp.shx, r=180,x=.2,s=.2],-.2
Пример 2 Создайте новый файл, сохранив его под именем newlint.lin, и определите новый тип линии VARDASH, имеющий следующие параметры: • длина первого штриха — 1,0; • пробел — 0,25; • длина второго штриха — 0,75; • пробел — 0,25; • длина третьего штриха — 0,5; • пробел — 0,25; • точка; • пробел — 0,25; • длина четвертого штриха — 0,5; • пробел — 0,25; • длина пятого штриха — 0,75.
Создание типов линий и образцов штриховки
115
Шаг 1: запись определения типа линии Откройте текстовый редактор и введите следующие строки, определяющие тип линии VARDASH. *VARDASH,____ ___ __ . __ ___ ____ А,1,-.25,.75,-.25,.5,-.25,0,-.25,.5,-.25,.75,-.25
Шаг 2: загрузка нового типа линии Чтобы загрузить новый тип линии, выберите команду Linetype (Тип линии) из меню Format (Формат) или введите выражение LINETYPE в командную строку. Виды линий, которые могут быть созданы с помощью нового типа, показаны на рис. 3.12.
Рис. 3.12. Линии, созданные по типу линии VARDASH
Сложные типы линий Программа AutoCAD обеспечивает возможность создания сложных типов линий. Сложные типы линий могут быть разделены на две группы: строковые (или текстовые) и геометрические. Линии этих типов имеют определенные отличия. Например, в линии строкового типа вставлены текстовые фрагменты (строки), а в линии геометрического типа введены геометрические фигуры определенной формы. Использование сложных типов позволяет расширить функциональные возможности вычерчиваемых линий. Представьте, например, что вам необходимо показать на чертеже ограждение, построенное вокруг дома. Для этого можно определить линию сложного типа, при проведении которой вы автоматически получите линию требуемой формы с соответствующими текстовыми вставками (“Fence” — “ограждение”). Точно так же можно определить сложную линию геометрического типа, введя в нее символы или геометрические объекты, расположенные на определенном расстоянии друг от друга.
Создание строкового типа линий Записывая определение линий строкового типа, укажите содержание и атрибуты текстовой вставки, показанные на рис. 3.13. Строковый тип линий имеет следующий формат: ["Строка", начертание, высота текста, угол поворота, смещение по оси X, смещение по оси Y]
116
Глава 3
Рис. 3.13. Геометрические параметры строкового типа линий
Строка. Текст, который требуется ввести в создаваемую линию. Текстовую строку следует указывать в кавычках (“ ”). Стиль текста. Название стиля, который будет использован при формировании текстовой строки. Стиль текста (начертание и высота шрифта) должен быть предопределенным. Высота текста. Фактическая высота текста, если размер шрифта, указанный при определении стиля текста, равен 0. В противном случае этот параметр выполняет роль масштабного коэффициента, определяющего высоту текста. На рис. 3.13, например, высота текста равна 0,1 единицы. Угол поворота. Угол поворота может быть как абсолютным, так и относительным. Абсолютный угол всегда измеряется от положительной оси Х, независимо от параметров направления, установленных в программе AutoCAD. Абсолютный угол обозначается буквой “a”. Относительный угол всегда измеряется относительно направления штрихов, образующих линию данного типа. Относительный угол обозначается буквой “r”. Углы могут быть определены в радианах, градиентах или градусах. По умолчанию используются градусы. Смещение по оси X. Расстояние от конца линейного сегмента до левого нижнего угла текстовой вставки, измеренное вдоль линии. Если линия расположена по горизонтали, это расстояние измеряется по оси Х. В примере, показанном на рис. 3.13, смещение по оси Х равно 0,05. Смещение по оси Y. Расстояние от конца линейного сегмента до левого нижнего угла текстовой вставки, измеренное перпендикулярно этой линии. Если линия расположена по вертикали, это расстояние измеряется по оси Y. В примере, показанном на рис. 3.13, смещение по оси Y равно –0,05. Величина смещения отрицательна, так как начальная точка текстовой вставки на 0,05 единицы ниже конца первого линейного сегмента.
Пример 3 В следующем примере вы напишете определение линии строкового типа, состоящей из линейных сегментов и тестовых вставок “Fence”. Длина каждого линейного сегмента равна 0,75. Высота текстовой строки — 0,1, а расстояние от конца текстовой вставки до следующего сегмента равно 0,05 (рис. 3.14).
Создание типов линий и образцов штриховки
117
Рис. 3.14. Геометрические параметры линии строкового типа и спецификации чертежа для примера 3
Шаг 1: определение геометрических параметров Для того чтобы создать описание нового типа линии, в первую очередь необходимо определить геометрические параметры этой линии. Для этого можно воспользоваться следующим способом. Начертите линию и вставьте в нее соответствующие текстовые строки, а затем измерьте все расстояния, необходимые для определения линии строкового типа. Ниже приведены все полученные значения: • текстовая строка — Fence; • стиль текста — Обычный (Standard); • высота текста — 0,1; • угол поворота — 0; • смещение по оси X — 0,05; • смещение по оси Y — -0,05; • длина первого сегмента линии — 0,75; • расстояние между сегментами линии — 0,575.
Шаг 2: запись определения строкового типа линии Для записи определения строкового типа линий обычно используется какой-нибудь текстовый редактор. Можно добавить новое определение в файл acad.lin или создать отдельный текстовый файл с расширением .lin. Перед вами листинг файла fence.lin (пример 3). Новый тип линии имеет название NEWFence1. *NEWFence1,New fence boundary line A,0.75,["Fence",Standard,S=0.1,A=0,X=0.05,Y=-0.05],-0.575
или A,0.75,-0.05["Fence",Standard,S=0.1,A=0,X=0.05,Y=-0.05],-0.525
118
Глава 3
Шаг 3: загрузка нового типа линии Чтобы загрузить новый тип линии, выберите команду Linetype (Тип линии) из выпадающего меню Format (Формат) или введите выражение LINETYPE в командную строку. Начертите линию или какую-нибудь геометрическую фигуру и посмотрите, соответствует ли новый тип линии ранее приведенным параметрам (рис. 3.15). Следует заметить, что текстовая вставка всегда ориентируется по оси Х. Таким образом, когда вы чертите наклонную линию, полилинию, окружность или плавную кривую (сплайн), текстовая строка по контуру объекта не выравнивается (см. рис. 3.15).
Шаг 4: выравнивание текста по линии Угол поворота текста, указанный при определении нового типа линии, равен 0 (абсолютный угол А = 0). Таким образом, когда вы используете тип линии NEWFence1 при проведении наклонных линий, окружностей, полилиний или плавных кривых, текстовая строка (“Fence”) всегда будет находиться в горизонтальном положении (т.е. под углом 0 градусов). Для того чтобы выровнять текстовую надпись по линии, окружности или плавной кривой (рис. 3.16), определяя тип линии, укажите не абсолютный, а относительный угол поворота текста (R = 0). Ниже представлено определение типа линии NEWFence с относительным углом R = 0: *NEWFence2,New fence boundary line A,0.75,["Fence",Standard,S=0.1,R=0,X=0.05,Y=-0.05],-0.575
Рис. 3.15. Строковый тип линии с абсолютным углом А = 0
Шаг 5: выравнивание середины текста по линии Посмотрите на рис. 3.16 и вы заметите, что текстовые строки не выравниваются по всей длине дуги, окружности или плавной кривой. Это связано с тем, что AutoCAD вычерчивает текстовые строки по линии, касательной к окружности (или дуге) в точке вставки текста.
Создание типов линий и образцов штриховки
119
Рис. 3.16. Строковый тип линий с относительным углом R = 0
Чтобы выйти из этого положения, следует определить точку вставки в середине текстовой строки. Кроме этого, необходимо соответствующим образом переопределить геометрические параметры новой линии. На рис. 3.17 приведены размеры линии NEWFence, точка вставки которой находится в середине текстовой строки. Эскизы объектов, выполненных в соответствии с новым типом линий, показаны на рис. 3.18. Определение типа линии NEWFence следующее: *NEWFence3,New fence boundary line A,0.75,-0.287["Fence",Standard,S=0.1,X=-0.237,Y=-0.05],-0.287 Примечание Если при определении типа линии угол не указывается, по умолчанию принимается угол R = 0. При этом в отличие от обычного текста, выравниваемого по центру, точка вставки не устанавливается автоматически в середину текстовой строки.
Рис. 3.17. Геометрические параметры линии строкового типа с точкой вставки текста, расположенной в середине текстовой строки
120
Глава 3
Рис. 3.18. Строковый тип линии с точкой вставки текста, расположенной в середине текстовой строки
Создание геометрического типа линий Определения линий строкового и геометрического типов должны включать в себя множество различных параметров. Поэтому записывая определение геометрического типа линий, необходимо указывать название графического объекта, имя файла и другие геометрические параметры, к которым относятся угол поворота, масштабный коэффициент и величина смещения фигуры по осям X и Y. Геометрический тип линий имеет следующий формат: [Имя фигуры, файл графического объекта, масштаб, угол поворота, смещение по оси X, смещение по оси Y]
Перед вами описание атрибутов геометрического типа линий (рис. 3.19).
Рис. 3.19. Параметры линии геометрического типа
Создание типов линий и образцов штриховки
121
Имя фигуры. Название графического объекта, который вы хотите ввести в создаваемую линию. Имя фигуры является обязательным, так как оно обеспечивает генерирование фигуры во время вычерчивания линии. Файл геометрической фигуры. Имя компилированного файла (.shx), содержащего определение фигуры, введенной в линию сложного типа. Имя подкаталога, в котором находится файл геометрической фигуры, должно быть указано в пути поиска программы AutoCAD. Загрузка созданной фигуры выполняется с помощью команды SHAPE (ФОРМА), но перед этим вам необходимо скомпилировать файлы фигур (.shp). Масштаб. Масштабный коэффициент, который определяет геометрические параметры вводимой фигуры. Если масштаб равен 1, размеры фигуры будут соответствовать параметрам, указанным в ее определении (файл с расширением .shp). Угол поворота. Угол поворота может быть как абсолютным, так и относительным. Абсолютный угол всегда измеряется относительно положительной оси Х независимо от параметров направления, установленных в программе AutoCAD. Абсолютный угол обозначается буквой “a”. Относительный угол всегда измеряется относительно направления штрихов, образующих линию данного типа. Относительный угол обозначается буквой “r”. Углы могут быть определены в радианах, градиентах или градусах. По умолчанию используются градусы. Смещение по оси X. Расстояние от конца линейного сегмента до точки вставки графического объекта, измеренное вдоль линии. Если линия расположена горизонтально, это расстояние измеряется по оси Х. В примере, показанном на рис. 3.19, смещение по оси Х равно 0,2. Смещение по оси Y. Расстояние от конца линейного сегмента до вставки графического объекта, измеренное по перпендикуляру к этой линии. Если линия проведена вертикально, это расстояние измеряется по оси Y. В примере, показанном на рис. 3.19, смещение по оси Y равно 0.
Пример 4 Запишите определение сложной линии геометрического типа, состоящей из геометрических фигур (условное обозначение колодца (Manhole); имя этой фигуры — MH) и соединяющих их линейных отрезков. Масштаб фигуры — 0,1, длина линейных отрезков — 0,75, расстояние между сегментами — 0,2.
Шаг 1: определение геометрических параметров этой линии Прежде чем записывать определение нового типа, необходимо определить геометрические параметры данной линии. Для этого можно прибегнуть к следующему способу. Начертите линию в натуральную величину, вставьте в нее соответствующие условные обозначения, а затем измерьте все расстояния, необходимые для определения сложной линии геометрического типа. Линия, описанная в этом примере, имеет следующие параметры: • имя фигуры — MH; • имя файла — mhole.shx (используется имя компилированного файла этой фигуры); • масштаб — 0,1; • угол поворота — 0; • смещение по оси X — 0,2; • смещение по оси Y — 0; • длина первого сегмента линии — 0,75; • расстояние между сегментами линии — 0,2.
122
Глава 3
Рис. 3.20. Геометрические параметры сложной линии геометрического типа (пример 4)
Шаг 2: запись определения геометрической фигуры Для записи определения геометрической фигуры обычно используется какой-нибудь текстовый редактор. Файл, содержащий определение фигуры, должен иметь расширение .shp. Ниже приведен листинг файла mhole.shp, используемого в примере 4. Имя геометрической фигуры — MH. (Для получения более подробной информации обратитесь к главе 11.) *215,9,MH 001,10,(1,007), 001,10,(1,071),0
Шаг 3: компилирование геометрической фигуры Чтобы компилировать файл определения (файл с расширением .shp), воспользуйтесь командой COMPILE (КОМПИЛИРОВАТЬ). При выполнении этой команды на экране появится диалоговое окно Select Shape or Font File (Выбор файла шрифта или формы), показанное на рис. 3.21. Если значение переменной FILEDIA равно 0, компилирование файла можно выполнить с помощью командной строки. Ниже приведена последовательность команд, используемых при компилировании файла: Command: COMPILE Enter shape (.SHP) or PostScript font (.PFB) file name: MHOLE ◊◊◊ Команда: COMPILE Имя файла формы (.SHP) или шрифта PostScript (.PFB): MHOLE
Шаг 4: запись определения сложной линии геометрического типа Для записи определения линий геометрического типа обычно используется какойнибудь текстовый редактор. Можно добавить новое определение в файл acad.lin или создать отдельный текстовый файл с расширением .lin. Перед вами листинг файла mhole.lin, используемого в примере 4. Новому типу линии присвоено имя MHOLE. *MHOLE,Line with Manholes A,0.75,[MH,MHOLE.SHX,S=0.10,X=0.2,Y=0],-0.2
Создание типов линий и образцов штриховки
123
Рис. 3.21. Диалоговое окно Select Shape or Font File
Шаг 5: загрузка нового типа линии Чтобы проверить результаты своей работы, загрузите новый тип линии, выбрав команду Linetype (Тип линии) из выпадающего меню Format (Формат) или введя выражение LINETYPE в командную строку. Создайте новый слой и назначьте ему этот тип линии. Проведите линию или начертите какую-нибудь геометрическую фигуру и посмотрите, соответствует ли новый тип линии ранее приведенным параметрам. Обратите внимание: если вы проведете линию справа налево, условные обозначения будут нарисованы в перевернутом виде. На рис. 3.22 показы примеры использования типа линии MHOLE при вычерчивании наклонных линий, полилиний, окружностей и плавных кривых (сплайнов).
Рис. 3.22. Использование сложной линии геометрического типа
124
Глава 3
Рис. 3.23. Создание нестандартной штриховки с помощью сложных линий строкового и геометрического типов
Определение образцов штриховки Программа AutoCAD содержит библиотеку стандартных штриховок (файл acad.pat), в которой находится 67 образцов штриховки. Как правило, имеющиеся стандартные образцы обеспечивают выполнение штриховки на чертежах практически любого типа. Тем не менее, если вам потребуется какая-нибудь другая штриховка, можете воспользоваться программой AutoCAD, которая позволяет создавать собственные образцы штриховки. Определенные вами образцы можно ввести в файл библиотеки штриховок acad.pat или сохранить в виде отдельного файла, содержащего только один образец. Название образца штриховки, определенного в этом файле, будет совпадать с именем файла. Определение образца штриховки состоит из заголовка строки и описателей штриховки.
Заголовок строки Заголовок строки содержит имя образца штриховки, перед которым стоит символ звездочки (*). Под именем образца подразумевается имя, используемое командой штриховки при штриховании выделенной области. После имени образца находится описание штриховки. Имя образца и описание штриховки отделены друг от друга запятой. В общем случае, строка заголовка имеет следующий формат: *Имя образца, [Описание штриховки]
где • * — звездочка; • Имя образца — имя образца штриховки; • Описание штриховки — описание образца штриховки. Описание представляет собой текстовый фрагмент, содержащий описание образца штриховки. Иногда описание штриховки опускается; в этом случае разделительная запятая после имени образца не ставится. Пример *DASH45, Пунктирные линии под углом 45 градусов
где • DASH45 — имя образца штриховки; • Пунктирные линии под углом 45 градусов — описание штриховки.
Создание типов линий и образцов штриховки
125
Описатели штриховки Под описателями штриховки подразумевают одну или несколько строк, содержащих определение линий штриховки. В общем случае, описатель штриховки имеет следующий формат: Угол, Координата X, Координата Y, D1, D2, [Длина штриха]
где • Угол — угол наклона линий штриховки; • Координата X — X-координата начала первой линии штриховки; • Координата Y — Y-координата начала первой линии штриховки; • D1 — смещение второй линии штриховки (дельта X); • D2 — расстояние между линиями штриховки (дельта Y); • Длина штриха — длина штрихов и пробелов (определение образца линии). Пример 45,0,0,0,0.5,0.5,-0.125,0,-0.125
где • 45 — угол наклона линий штриховки; • 0 — координата X; • 0 — координата Y; • 0 — дельта X; • 0.5 — дельта Y; • 0.5 — длина штриха (перо опущено); • -0.125 — длина пробела (перо поднято); • 0 — точка (перо опущено); • -0.125 — длина пробела (перо поднято); • 0.5,-0.125,0,-0.125 — определение линии.
Угол наклона линий штриховки Координаты X и Y. Угол штриховки — это угол, образованный линией штриховки и положительной осью Х. Угол считается положительным, если он измеряется против часовой стрелки (рис. 3.24), и отрицательным, если он измеряется по часовой стрелке. При вычерчивании образца штриховки первая линия штриховки проводится из точки, положение которой определяется координатами X и Y. HATCH LINES
Линии штриховки
HATCH ANGLE
Угол штриховки
+X AXIS
Положительная ось Х
Остальные линии образуются при смещении первой линии штриховки на расстояние, определяемое параметрами дельта X и дельта Y. Как показано на рис. 3.25 а, первая линия штриховки проводится из точки с координатами X = 0 и Y = 0. На рис. 3.25 б первая линия штриховки проходит через точку с координатами X = 0 и Y = 0,25.
126
Глава 3
Рис. 3.24. Угол наклона линий штриховки
Рис. 3.25. Координаты линий штриховки
Дельта X и дельта Y. Дельта X (Delta-X) представляет собой величину продольного смещения линий в направлении формирования линий штриховки. Например, если линии начерчены под углом 0 градусов, а параметр дельта X равен 0,5, то следующая линия будет смещена на расстояние дельта X (0,5) в направлении нулевого угла. Точно так же, если линии штриховки начерчены под углом 45 градусов, то следующая линия будет смещена на расстояние дельта X (0,5) в направлении угла, равного 45 градусам (рис. 3.26). Дельта Y представляет собой величину поперечного смещения линий. Например, если величина дельта Y равна 1,0, то расстояние между соседними линиями штриховки будет равно 1,0 (рис. 3.26).
Создание типов линий и образцов штриховки
127
Рис. 3.26. Продольное и поперечное смещение линий штриховки
Как формируется штриховка При штриховке выделенной области генерируется огромное количество линий, имеющих бесконечную длину. Первая линия штриховки всегда проходит через точку с начальными координатами X и Y. Величина смещения линий определяется значениями дельта X и дельта Y (см. рис. 3.26). Линии штриховки пересекаются с объектами, формирующими границу выделенной области. Линии, оказавшиеся внутри выделенной области, остаются, а линии штриховки, вышедшие за ее пределы, удаляются, как показано на рис. 3.27. Штриховка создается параллельным переносом исходной линии, поэтому линии штриховки, проводимые в различных областях чертежа, автоматически выравниваются по исходной линии. На рис. 3.27 a показаны линии штриховки, вычерченные программой AutoCAD. Эти линии не занимают все свободное пространство листа; они приведены только в качестве иллюстрации. На рис. 3.27 б показаны линии штриховки, генерированные внутри окружности, которая является границей штрихуемой области.
Рис. 3.27. Линии штриховки, вышедшие за пределы выделенной области, удаляются
128
Глава 3
Создание простого образца штриховки Перед тем как записать определение образца штриховки, попробуйте разработать соответствующую спецификацию. При создании простых образцов без этого можно обойтись, но для разработки более сложных штриховок потребуется подробная спецификация. Процесс создания простого образца штриховки иллюстрируется следующим примером.
Пример 5 Запишите определение образца штриховки, показанного на рис. 3.28. Этот образец имеет следующие параметры: • имя образца штриховки — HATCH1; • координаты начальной точки: X = 0, Y = 0; • расстояние между линиями штриховки — 0,5; • величина смещения линий — 0; • тип линии — сплошная (Continuous).
Шаг 1: создание файла образца Определение образца штриховки можно ввести в уже существующий файл acad.pat или создать отдельный файл, используя для этого какой-нибудь текстовый редактор (такой как Notepad или редактор MS-DOS). Откройте файл acad.pat, который находится в каталоге AutoCAD2004\SUPPORT, и вставьте в него следующие строки: *HATCH1,Образец штриховки для примера 5 45,0,0,0,.5
где • 45 — угол наклона линий штриховки; • 0 — координата X; • 0 — координата Y; • 0 — продольное смещение второй линии штриховки; • .5 — расстояние между линиями штриховки. Первое поле описателя содержит значение угла наклона линий штриховки. Этот угол, отсчитываемый от положительной оси Х, равен 45 градусам. Значения второго и третьего полей описывают координаты X и Y, определяющие положение начальной точки, через которую проводится первая линия штриховки. Если значения начальных координат X и Y равны соответственно 0,5 и 1,0, то первая линия штриховки пройдет через точку с координатами 0,5 и 1,0. Остальные линии, как показано на рис. 3.28, создаются параллельным переносом первой линии штриховки.
Шаг 2: загрузка созданного образца штриховки Откройте диалоговое окно Boundary Hatch and Fill (Штриховка и заливка по контуру), щелкнув на кнопке Hatch (Штриховка), которая находится на панели инструментов Draw (Рисование), или выбрав команду Hatch (Штриховка) из меню Draw (Рисование). Выберите опцию Predefined (Стандартный) из раскрывающегося списка Type (Тип).
Создание типов линий и образцов штриховки
129
Рис. 3.28. Угол наклона и расстояние между линиями штриховки
После этого выберите название нужного образца из раскрывающегося списка Pattern (Образец) или откройте диалоговое окно Hatch Pattern Palette (Палитра образцов штриховки), щелкнув на кнопке [...], которая находится рядом с раскрывающимся списком Pattern. Выделите нужный образец и щелкните на кнопке ОК. На экране снова появится диалоговое окно Boundary Hatch and Fill. Если хотите, можете изменить угол и масштаб штриховки, выбрав нужные значения в раскрывающихся списках Scale (Масштаб) и Angle (Угол). Можно также открыть диалоговое окно Boundary Hatch and Fill, введя команду BHATCH (КШТРИХ) в командную строку. Для того, чтобы заштриховать выделенную область, введите в командную строку команду -HATCH (-ШТРИХ).
Влияние угла и масштаба на внешний вид штриховки Чтобы получить требуемое расстояние между линиями заштрихованной области, попробуйте изменить угол наклона и расстояние между линиями штриховки, указанные в определении образца штриховки. Для выполнения этой задачи введите в командную строку команду HATCH (ШТРИХ), а затем укажите угол и масштабный коэффициент. Чтобы понять, как изменить угол и расстояние между линиями штриховки, начертите какую-нибудь фигуру и заштрихуйте ее, используя образец штриховки HATCH1, созданный в примере 5. Вы заметите, что расположение и угол наклона линий соответствуют определению образца HATCH1. На рис. 3.29 а показана штриховка с углом наклона линий 0 градусов и масштабным коэффициентом 1,0. Если угол наклона равен 0, то линии штриховки будут проведены под тем углом, который был указан в определении образца. Точно так же, если масштабный коэффициент равен 1, то расстояние между линиями будет соответствовать величине смещения, указанной в определении образца штриховки. На рис. 3.29 б показана штриховка, вычерченная в масштабе 0,5. Если вы измерите расстояние между соседними линиями штриховки, то получите 0,25 (0,5 × 0,5 = 0,25). На рис. 3.29 в и г показана штриховка, проведенная под углом 45 градусов и вычерченная в масштабе 1,0 и 0,5 соответственно. Кроме этого, масштаб и угол наклона линий можно установить, введя в командную строку команду -HATCH (-ШТРИХ).
130
Глава 3
Рис. 3.29. Влияние масштаба и угла наклона линий на внешний вид штриховки
Образцы штриховки со штрихами и точками Следует заметить, что при определении образцов штриховки используются не только сплошные линии. Для создания образца можно определить образец линии практически любого типа. Линии, используемые в штриховках, обычно представляют собой сочетания штрихов, точек и пробелов, расположенных в том или ином порядке. Тем не менее, количество штрихов, используемых при определении образца линии, не должно быть больше шести. В примере 6 описывается создание образца штриховки, в котором используется штрихпунктирная линия.
Пример 6 Запишите определение образца штриховки, показанного на рис. 3.30. Создайте новый каталог, скажем, C:\Program Files\Hatch1, и сохраните созданный образец в этом каталоге. Образец штриховки имеет следующие параметры: • имя образца штриховки — HATCH2; • угол наклона линий штриховки — 0; • координаты начальной точки: X = 0, Y = 0; • величина смещения линий (D1) — 0,25; • расстояние между линиями штриховки (D2) — 0,25; • длина каждого штриха — 0,5; • расстояние между штрихами и точками — 0,125; • расстояние между точками — 0,125.
Создание типов линий и образцов штриховки
131
D1=0.25
D2=0.25
0.125
0.125
0.5
0.125
Рис. 3.30. Линии штриховки, образованные штрихами и точками
Запись определения образца штриховки Определение образца штриховки можно ввести в уже существующий файл acad.pat или создать отдельный файл, используя для этого какой-нибудь текстовый редактор (такой как Notepad или редактор MS-DOS). Для редактирования файла acad.pat можно также использовать команду EDIT (РЕДАКТИРОВАТЬ). Заголовок строки и определение образца штриховки имеют следующий формат: *Имя образца, Описание образца Угол, Координата X, Координата Y, D1, D2, [,Длина штриха......]
Введите значения, взятые из примера 6, в соответствующие поля заголовка и описателей образца штриховки: *HATCH2, Штриховка со штрихами и точками 0,0,0,0.25,0.25,0.5,-0.125,0,-0.125,0,-0.125
где • 0 — угол наклона линий штриховки; • 0 — координата X; • 0 — координата Y; • 0.25 — продольное смещение линий штриховки (дельта X); • 0.25 — расстояние между линиями штриховки (дельта Y); • 0.5 — длина штриха; • -0.125 — длина пробела (перо поднято); • 0 — точка (перо опущено); • -0.125 — длина пробела (перо поднято); • 0 — точка (перо опущено); • -0.125 — длина пробела (перо поднято).
132
Глава 3
Задание пути доступа к файлу образца штриховки Когда вы вводите имя образца для того, чтобы заштриховать выделенную область, программа AutoCAD ищет соответствующий файл в каталоге Support или в каталоге, имя которого указано в пути доступа к вспомогательным файлам. Можно создать новый каталог, используемый для хранения файлов штриховки, и определить его в пути поиска. На диске С в каталоге Program Files создайте новую папку и присвойте ей имя Hatch1. Сохраните в этой папке отредактированный файл acad.pat, содержащий определение образца штриховки HATCH2. Активизируйте меню быстрого вызова команд, щелкнув правой кнопкой мыши в области рисования. Откройте диалоговое окно Options (Настройка), выбрав команду Options (Настройка) из контекстного меню. Существуют также другие способы, позволяющие вызвать это диалоговое окно. Можно, например, выбрать команду Options (Настройка) из меню Tools (Сервис) или ввести команду OPTIONS (НАСТРОЙКА) в командную строку. Чтобы отобразить раздел Search paths, file names and file locations (Пути для поиска, имена и расположение файлов), перейдите на вкладку Files (Файлы). Откройте список подкаталогов, щелкнув на знаке “плюс” рядом с пунктом Support File Search Path (Путь доступа к вспомогательным файлам), как показано на рис. 3.31. Введите в список подкаталогов новую строку, щелкнув на кнопке Add (Добавить). Теперь укажите местоположение нового подкаталога C:\Program Files\Hatch1 или определите путь доступа, щелкнув на кнопке Browse (Обзор). Щелкните на кнопке Apply (Применить) и закройте диалоговое окно, щелкнув на кнопке OK. Вы создали новый подкаталог и определили путь доступа к файлам штриховки.
Рис. 3.31. Диалоговое окно Options
Создание типов линий и образцов штриховки
133
Активизируйте образец штриховки, повторив процедуру, описанную в примере 5. Штриховка, сформированная таким образом, показана на рис. 3.32. В частности, на рис. 3.32 a показана штриховка с углом наклона линий 0 градусов и масштабным коэффициентом 1,0, а на рис. 3.32 б — штриховка с углом наклона 45 градусов и масштабным коэффициентом 0,5.
Рис. 3.32. Образцы штриховки, вычерченной под разными углами и в разных масштабах
Штриховка, имеющая несколько определений Существуют образцы штриховки, в которых при формировании линий штриховки используется сразу несколько определений. Например, для того чтобы создать штриховку с рисунком кирпичной кладки, вам потребуется образец штриховки, имеющий четыре определения, которые обеспечивают генерирование фигуры прямоугольной формы. В общем случае, образцы штриховки могут содержать любое количество определений. Пользователь, в свою очередь, может использовать строки определений, располагая их в любом возможном порядке. Тем не менее, имеются некоторые геометрические фигуры, которые не могут быть сформированы при определении образца. К их числу относятся фигуры, содержащие нелинейные элементы, например, дуги, окружности и плавные кривые. Следует заметить, что криволинейные элементы можно имитировать, определяя ряд коротких последовательно расположенных отрезков. Это связано с тем, что при формировании образца штриховки могут использоваться только прямые линии. В примере 7 для определения образца треугольной штриховки используется три прямых линии.
Пример 7 Запишите определение образца штриховки, показанного на рис. 3.33. Этот образец имеет следующие параметры: • имя образца штриховки — HATCH3; • высота (вертикальный размер) треугольника — 0,5; • длина (горизонтальный размер) треугольника — 0,5;
134
Глава 3
• вертикальное расстояние между треугольниками — 0,5; • горизонтальное расстояние между треугольниками — 0,5. Треугольники, составляющие образец штриховки, включают в себя следующие элементы: два катета (вертикальная и горизонтальная линии) и гипотенуза (линия, проведенная под углом 45 градусов).
Рис. 3.33. Образец треугольной штриховки
Шаг 1: определение параметров вертикальной линии Вертикальная линия, изображенная на рис. 3.34, имеет следующие параметры: • угол наклона линий штриховки — 90 градусов; • координаты начальной точки: X = 0, Y = 0; • дельта X (D1) — 0; • дельта Y (D2) — 1,0; • длина штриха — 0,5; • длина пробела — 0,5.
Рис. 3.34. Вертикальная линия
Запишите определение вертикальной линии, подставив указанные значения в соответствующие поля описателя: 90,0,0,0,1,.5,-.5
Шаг 2: определение параметров вертикальной линии Горизонтальная линия (рис. 3.35) имеет следующие параметры: • угол наклона линий штриховки — 0 градусов; • координаты начальной точки: X = 0, Y = 0,5; • дельта X (D1) — 0; • дельта Y (D2) — 1,0; • длина штриха — 0,5; • длина пробела — 0,5.
Рис. 3.35. Горизонтальная линия
Величина угла является единственным отличием вертикальной и горизонтальной линий. Горизонтальная линия проведена под углом 0 градусов, а вертикальная — под углом 90 градусов. Запишите определение горизонтальной линии, подставив указанные значения в соответствующие поля описателя: 0,0,0.5,0,1,.5,-.5
Шаг 3: определение параметров наклонной линии Эта линия проведена под углом, поэтому вам необходимо определить величины продольного (дельта X) и поперечного смещения (дельта Y), длину сплошной линии (гипотенузы) и расстояние между треугольниками (пробел).
Рис. 3.36. Линия, проведенная под углом 45 градусов
• • • • • •
угол наклона линий штриховки — 45 градусов; координаты начальной точки: X = 0, Y = 0; дельта X (D1) — 0,7071; дельта Y (D2) — 0,7071; длина штриха — 0,7071; длина пробела — 0,7071;
Запишите определение наклонной линии, подставив эти значения в соответствующие поля описателя: 45,0,0,.7071,.7071,.7071,-.7071
Шаг 4: загрузка созданного образца штриховки Теперь вам остается только объединить три строки данных и вставить их в существующий файл acad.pat или сохранить в виде отдельного файла. Для редактирования файла acad.pat и вставки указанных строк можно также использовать команду EDIT.
Загрузите образец Hatch3.pat (о том, как это сделать, рассказывается в примере 5), а затем проверьте созданную штриховку. Штриховка, созданная по этому образцу (HATCH3), показана на рис. 3.37. В частности, на рис. 3.37 a изображена штриховка, вычерченная под углом 0 градусов и в масштабе 0,5, а на рис. 3.37 б показана штриховка с углом –45 градусов и масштабным коэффициентом 0,5.
138
Глава 3
Рис. 3.37. Штриховка, созданная по образцу HATCH3
Сохранение образца штриховки в отдельном файле При загрузке определенного образца штриховки программа AutoCAD ищет его определение в файле acad.pat. Поэтому определения образцов должны находиться в указанном файле. Тем не менее, можно ввести определения образцов в какой-нибудь другой файл, а затем скопировать его содержимое в файл acad.pat. Не забудьте сохранить копию исходного файла, что позволит вам в случае необходимости восстановить содержимое этого файла. Допустим, что файл, содержащий определение нестандартного образца штриховки, называется customh.pat. 1. Скопируйте файл acad.pat в файл acadorg.pat. 2. Скопируйте файл customh.pat в файл acad.pat. Если вам понадобится исходный файл, скопируйте содержимое файла acadorg.pat в файл acad.pat.
Файл нестандартного образца штриховки Как уже говорилось, можно сохранить определения новых образцов в виде отдельного файла или ввести их в файл acad.pat. Количество определений, которые вы можете ввести в исходный файл, не ограничено. Тем не менее, если у вас имеется только одно определение образца, постарайтесь сохранить его в виде отдельного файла. Этот файл должен отвечать следующим требованиям: 1. Имя файла должно совпадать с именем образца штриховки. 2. Этот файл может содержать только одно определение образца штриховки. 3. Файл и образец штриховки должны иметь уникальное имя. 4. Если при создании чертежей вы собираетесь часто использовать образец штриховки, сохраненный на диске А, добавьте диск А в путь доступа к файлам, определенный в программе AutoCAD. Для этого можно использовать диалоговое окно Options (Настройка). AutoCAD автоматически найдет нужный файл на диске А и отобразит его в диалоговом окне Boundary Hatch and Fill (Штриховка и заливка по контуру).
Создание типов линий и образцов штриховки
139
*HATCH3,Triangle Hatch 90,0,0,0,1,.5,-.5 0,0,0.5,1,.5,-.5 45,0,0,.7071,.7071,.-7071 Примечание Чтобы отредактировать линии штриховки, попробуйте ее “расчленить” с помощью команды EXPLODE (РАСЧЛЕНИТЬ). Когда вы это сделаете, линии штриховки превратятся в отдельные объекты. Не забывайте, что “расчленение” штриховки приводит к увеличению размера базы данных чертежа. Например, штриховка, состоящая из 100 линий, сохраняется в виде одного объекта. Когда вы ее “взорвете”, каждая линия штриховки станет отдельным объектом и на чертеже появится 99 дополнительных элементов. Чтобы упростить редактирование штриховки, расположите ее на отдельном слое. Назначьте линиям штриховки какой-нибудь уникальный цвет, что позволит вам контролировать ширину линий штриховки во время вычерчивания.
Совет Файл или подкаталог, содержащий образцы штриховки, должен быть определен в разделе Support File Search Path (Путь доступа к вспомогательным файлам), который находится на вкладке File (Файл) диалогового окна Options (Настройка). Создаваемые образцы штриховки будут автоматически введены в библиотеку слайдов в виде компоненты программы AutoCAD и отображены в области предварительного просмотра Preview Area (Образец) в диалоговом окне Hatch Pattern Palette (Палитра образцов штриховки). Чтобы познакомиться с образцами штриховки, щелкните на кнопке [...], которая находится в диалоговом окне Boundary Hatch and Fill (Штриховка и заливка по контуру). Как вы понимаете, в этом случае создавать библиотеку слайдов нет никакой необходимости.
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы.
Создание типов линий 1. Для изменения глобального масштаба типа линии можно использовать команду ________. 2. Количество символов, содержащихся в описании типа линии, не должно превышать ________. 3. Положительное число указывает на положение “перо ________”. 4. Сегмент, имеющий ________ длину, генерирует точку. 5. Отрицательное число указывает на положение “перо ________”. 6. Для создания нового типа линий используется команда LINETYPE с опцией _____. 7. Наличие описания в строке заголовка является ________. (обязательным/необязательным) 8. Стандартные типы линий хранятся в файле ________. 9. Значение переменной ________ определяет текущий масштаб типа линии.
140
Глава 3
Создание образцов штриховки 10. В строке заголовка содержится символ звездочки, имя образца и ________. 11. Файл acad.pat содержит ________ количество определений образцов штриховки. 12. Стандартные образцы штриховки хранятся в файле ________. 13. Первая линия штриховки проводится через точку, координаты которой определяются ________ и ________.
Повторение пройденного материала Ответьте на следующие вопросы.
Создание типов линий 1. Для создания нового типа линий обычно используется команда ________. 2. Команда ________ может быть использована для загрузки типов линий. 3. В программе AutoCAD типы линий хранятся в файле ________. 4. Программа AutoCAD поддерживает только один тип выравнивания, который обозначается буквой ________. 5. Определение образца линии всегда начинается с ________. 6. Определение заголовка строки всегда начинается с ________.
Создание образцов штриховки 7. Расстояние между линиями в шаблоне штриховки определяется значением параметра ________. 8. Величина продольного смещения линий в шаблоне штриховки определяется значением параметра ________. 9. Количество штрихов, длины которых указаны в определении образца штриховки, не должно превышать ________. 10. Линии штриховки, проводимые в различных областях чертежа, автоматически ________ по исходной линии, так как штриховка создается параллельным переносом исходной линии. 11. Угол наклона линий штриховки, указанный в определении образца штриховки, может быть изменен с помощью команды ________. 12. Когда вы загружаете тот или иной образец штриховки, AutoCAD находит его определение в файле ________. 13. Чтобы отредактировать линии штриховки, попробуйте ________ штриховку, используя для этого команду ________.
Создание типов линий и образцов штриховки
141
Упражнения Создание типов линий Упражнение 1 (Общее) Используя команду LINETYPE, создайте новый тип линии DASH3DASH, имеющей следующие параметры: • длина первого штриха — 0,75; • пробел — 0,125; • длина штриха — 0,25; • пробел — 0,125; • длина штриха — 0,25; • пробел — 0,125; • длина штриха — 0,25; • пробел — 0,125.
Упражнение 2 (Общее) Используя текстовый редактор, создайте файл newlt2.lin, содержащий определение нового типа линии DASH2DASH, которая имеет следующие параметры: • длина первого штриха — 0,5; • пробел — 0,1; • длина штриха — 0,2; • пробел — 0,1; • длина штриха — 0,2; • пробел — 0.
Упражнение 3 (Общее) а. Напишите определение сложной линии строкового типа (трубопровод горячей воды), показанной на рис. 3.38 a. Чтобы определить геометрические параметры текстовой строки HW (Hot Water), вычертите эту надпись с помощью какой-нибудь текстовой команды, а затем измерьте длину надписи. б. Напишите определение сложной линии строкового типа (газопровод), которая показана на рис. 3.38 б. Определите длину текстовой строки, используя описание, приведенное в п.а.
Рис. 3.38. Геометрические параметры линий строкового типа
142
Глава 3
Создание образцов штриховки Упражнение 4 (Общее) Определите геометрические параметры штриховки, показанной на рис. 3.39, и напишите определение образца штриховки.
Рис. 3.39. Эскиз штриховки для упражнения 4
Упражнение 5 (Общее) Определите геометрические параметры штриховки, показанной на рис. 3.40, и напишите определение образца штриховки.
Рис. 3.40. Образец штриховки для примера 5
Ответы на вопросы для самопроверки 1 — LTSCALE, 2 — 47, 3 — опущено, 4 — нулевая, 5 — поднято, 6 — Create, 7 — необязательно, 8 — acad.lin, 9 — CELTSCALE, 10 — Описание образца, 11 — 67, 12 — acad.pat, 13 — координаты X и Y.
Глава 4
Редактирование файла ACAD.PGP
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • настраивать файл ACAD.PGP; • редактировать различные разделы файла ACAD.PGP; • сокращать имена команд, присваивая им псевдонимы; • выполнять повторную инициализацию PGP-файла, используя команду REINIT.
144
Глава 4
Файл программных параметров AutoCAD Программа AutoCAD содержит файл программных параметров acad.pgp, определяющий псевдонимы (альтернативные имена) команд операционной системы и некоторых команд AutoCAD. Когда вы устанавливаете AutoCAD на компьютер, работающий в операционной системе Windows 2000 или Windows XP, этот файл автоматически копируется на жесткий диск в подкаталог C:/Documents and Settings/Owner/Application Data/Autodesk/AutoCAD 2004/R16.0/enu/support. В свою очередь, если на компьютере установлена операционная система Windows 98, этот файл будет скопирован в каталог C:/Windows/Local Settings/Application Data/Autodesk/AutoCAD 2004/ R16.0/enu/support. Файл acad.pgp обеспечивает доступ к командам операционной системы из графического редактора. Например, для того чтобы удалить файл, достаточно всего лишь ввести команду DEL в командную строку (Command:DEL), а затем указать имя соответствующего файла. В этом файле также содержатся псевдонимы некоторых наиболее часто используемых команд AutoCAD. Например, альтернативным именем команды LINE (ОТРЕЗОК) является L. Поэтому если вы введете букву “L” в командную строку (Command:L), AutoCAD отреагирует на нее так, как на команду LINE. Файл acad.pgp содержит также строки комментариев, которые позволяют получить некоторую информацию о различных разделах этого файла. Ниже приведен листинг стандартного файла acad.pgp. Чтобы уменьшить объем листинга, некоторые строки файла были удалены. ; Файл программных параметров AutoCAD для AutoCAD 2004 ; Определения внешних команд и псевдонимов команд ; Copyright (C) 1997-2002 by Autodesk, Inc. ; Каждый раз, когда вы открываете новый или уже существующий ; рисунок, AutoCAD ищет путь доступа и прочитывает первый ; найденный файл acad.pgp. ; -- Внешние команды -; Во время запуска AutoCAD можно загружать другие программы или ; утилиты, такие, как системные команды Windows, ; служебные программы и приложения. ; Внешние команды определяются заданием имени команды, ; вызываемой из строки приглашения AutoCAD, и исполняемой ; командной строки, которая передается в операционную систему. ; -- Псевдонимы команд -; Можно сократить часто используемые команды AutoCAD, определив ; их альтернативные имена в разделе псевдонимов команд ; файла acad.pgp. ; Псевдоним команды можно создать для любой команды AutoCAD, ; команды драйвера устройства или внешней команды. ; Перед редактированием файла acad.pgp рекомендуется создать ; резервную копию этого файла. ; Формат внешней команды: ; <Имя команды>,[<Имя системной команды>],<Битовый флаг>,[*] <Приглашение на ввод команды>, ; Битовый флаг может иметь следующие значения: ; Бит 1: работа приложения не будет закончена ; Бит 2: запуск приложения в минимизированном виде ; Бит 4: запуск приложения в "скрытом" виде (в фоновом режиме)
Бит 8: заключение строки аргумента в кавычки Введите в поле битового флага сумму требуемых битов. Биты 2 и 4 являются взаимно исключающими; если определены оба значения, используется только бит 2. Наиболее подходящими значениями являются 0(запуск приложения и ожидание завершения работы), 1 (запуск приложения без ожидания завершения), 3 (минимизация без ожидания завершения) и 5(запуск приложения в фоновом режиме без ожидания завершения). Значений 2 и 4 обычно следует избегать, так как они делают AutoCAD недоступным вплоть до завершения работы приложения. Бит 8 разрешает системным командам, таким как DEL, корректно обрабатывать файловые имена с пробелами ("имя файла.dwg"). Следует отметить, что это станет помехой при передаче тем же командам списков файловых имен с пробелами-разделителями. Если для использования длинных файловых имен вам потребуется многофайловая поддержка, отключите бит "8" в этих командах. Примеры внешних команд для командных окон
CATALOG, DIR /W, 8,File specification:, DEL, DEL, 8,File to delete:, DIR, DIR, 8,File specification:, EDIT, START EDIT, 9,File to edit:, SH, , 1,*OS Command:, SHELL, , 1,*OS Command:, START, START, 1,*Application to start:, TYPE, TYPE, 8,File to list:, ; Примеры внешних команд для Windows ; Существует также альтернативный метод, в котором используется ; функция AutoLISP (STARTAPP). EXPLORER, NOTEPAD, PBRUSH,
Принципы создания новых псевдонимов команд. 1.Псевдоним должен быть короче полного имени команды как минимум на два символа. Для команд с эквивалентом клавиши , кнопки строки состояния или функциональной клавиши псевдоним команды не требуется. Примеры: Control N, Control O, Control P и Control S для New, Open, Print и Save. 2.Проверьте первый символ, затем два первых символа, а затем три первых символа команды. 3.Когда вы определите псевдоним, добавьте к нему суффиксы, создавая родственные псевдонимы. Примеры: R для Redraw, RA для Redrawall, L для Line, LT для Linetype. 4.Чтобы создать различие между командами, работающими с диалоговым окном и без него, используется дефис. Пример: B для команды Block, -B для команды -Block.
145
146
Глава 4
; Исключения из правил: AA для Area, T для Mtext, X для Explode. ; -- Примеры псевдонимов команд AutoCAD -; Эти примеры включают наиболее часто используемые команды. 3A, 3DO, 3F, 3P, A, ADC, AA, AL, AP, AR, -AR, ATT, -ATT, ATE, -ATE, ATTE, B, -B, BH, BO, -BO, BR, C, CH, -CH, CHA, COL, COLOUR, CO, D, DAL, DAN, DBA, DBC, DCE, DCO, DDA, DDI, DED, DI, DIV, DLI, DO, DOR, DOV, DR,
Разделы файла ACAD.PGP Содержимое файла программных параметров AutoCAD (acad.pgp) можно разделить на три части, ориентируясь по характеру содержащейся в нем информации. Эта информация располагается в произвольном порядке и не снабжена заголовками, которые позволили бы отнести ее к тому или иному разделу. Например, строки комментариев могут быть введены в любую часть файла; это относится также к внешним командам и псевдонимам команд AutoCAD. Файл acad.pgp можно разделить на следующие разделы: комментарии, внешние команды и псевдонимы команд.
Комментарии Комментарии, содержащиеся в файле acad.pgp, могут состоять из произвольного количества строк и располагаться в любой части файла программных параметров. Строки комментариев должны начинаться точкой с запятой (;). Следует заметить, что AutoCAD игнорирует все строки, начинающиеся с этого символа. Строки комментариев обычно используются для размещения какой-либо существенной информации, которая поможет другим пользователям AutoCAD понять, отредактировать или обновить содержимое этого файла.
Внешние команды В разделе внешних команд вы сможете определить любую существующую внешнюю команду, которая поддерживается вашей системой. Информация должна быть введена в следующем формате: <Имя команды>,[Имя системной команды], <Битовый флаг>,[*],<Приглашение на ввод команды>
Имя команды. Имя, которое вы хотите использовать для активизации внешней команды из графического редактора AutoCAD. Например, выражение goword может быть использовано в качестве имени команды, выполняющей запуск программы Word (Command: goword). Следует заметить, что внешним командам не следует присваивать имена команд или системных переменных AutoCAD. Если присвоенное имя совпадает с именем команды AutoCAD, имя этой команды в PGP-файле опускается. Точно так же, если имя внешней команды совпадает с именем системной переменной, эта системная переменная будет проигнорирована. Следует использовать имена команд, которые отражают результаты, ожидаемые при выполнении внешней команды. (Например, выражение hello является не очень подходящим именем для команды, используемой для выбора нужного каталога.) В именах команд могут использоваться как прописные, так и строчные буквы. Имя системной команды. Имя существующей системной команды, которая поддерживается используемой операционной системой. Например, в системе DOS для удаления файлов используется команда DEL, поэтому системная команда, определенная в файле acad.pgp, также должна иметь имя DEL. Далее перечислены типы команд, которые могут использоваться в файле программных параметров: • системные команды (DEL, DIR, TYPE, COPY, RENAME, EDLIN и т.д.); • команды для запуска текстового процессора или текстовых редакторов (WORD, SHELL и т.д.); • имена определяемых пользователем программ и командных файлов.
152
Глава 4
Битовый флаг. В этом поле должно содержаться числовое значение, желательно 8 или 1. Ниже приведены значения этого параметра: Параметр
Значение
1
Работа приложения не будет закончена
2
Запуск приложения в минимизированном виде
4
Запуск приложения в “скрытом” виде (в фоновом режиме)
8
Заключить строку аргумента в кавычки
Приглашение на ввод команды. Поле командной строки, содержащее приглашение, которое вы хотите вывести на экран компьютера. Это поле не является обязательным, но при отсутствии приглашения оно должно быть отделено запятой. Если имя используемой системной команды содержит пробелы, перед приглашением на ввод команды необходимо ввести звездочку (*). Например, в имени команды EDIT NEW.PGP между словами EDIT и NEW имеется пробел, поэтому перед приглашением на ввод команды должна стоять звездочка. Чтобы завершить ввод команды, необходимо нажать клавишу <Enter>. Если название системной команды состоит из одного слова (например, DIR, DEL или TYPE), звездочку, стоящую перед приглашением, можно опустить. В этом случае для завершения ввода команды можно нажать клавишу <Enter> или <Spacebar> (“пробел”).
Псевдонимы команд Использование псевдонимов позволяет сократить время, требуемое для ввода команд AutoCAD. Прежде чем нажать клавишу <Enter>, необходимо ввести полное имя команды. AutoCAD предоставляет возможность определения псевдонимов, что позволяет сокращать названия команд. Эту возможность обеспечивает файл программных параметров AutoCAD (acad.pgp). Строки псевдонимов состоят из двух полей (например, L, *LINE). Первое поле (L) определяет псевдоним команды; во втором поле содержится имя соответствующей команды AutoCAD (*LINE). Для того чтобы программа AutoCAD смогла распознать псевдоним команды, перед именем команды необходимо поставить звездочку. Поля должны быть разделены запятой. Пустые строки и пробелы, расположенные между этими полями, игнорируются. Псевдонимы (альтернативные имена) можно присваивать не только командам AutoCAD, но и командам AutoLISP, что позволяет загружать программы, содержащие определения этих команд.
Пример 1 Введите следующие внешние команды и псевдонимы команд AutoCAD в файл программных параметров AutoCAD (acad.pgp). Внешние команды Сокращение
Описание команды
GOWORD
Эта команда загружает текстовый процессор (Winword), который находится в каталоге C:\Program Files\Winword
RN
Эта команда позволяет переименовывать команды DOS
COP
Эта команда позволяет копировать команды DOS
153
Редактирование файла ACAD.PGP Раздел псевдонимов команд Сокращение
Команда
Сокращение
Команда
EL
Ellipse
T
Trim
CO
Copy
CH
Chamfer
O
Offset
ST
Stretch
S
Scale
MI
Mirror
Файл программных параметров acad.pgp представляет собой текстовый файл в формате ASCII. Для редактирования этого файла можно использовать команду EDIT (РЕДАКТИРОВАТЬ) (при условии, что эта команда определена в файле acad.pgp) или какой-нибудь текстовый редактор, например, Notepad или Wordpad. Ниже показан фрагмент листинга файла acad.pgp, в который добавлены строки, определяющие псевдонимы команд (пример 1). Номера строк, показанные в правой части листинга, не являются частью файла, а используются только для ссылок. Строки, введенные в файл программных параметров, выделены жирным шрифтом. DEL,DEL, DIR,DIR, EDIT,START EDIT, SH,, SHELL,, START,START,
8,File to delete:, 8,File specification:, 8,File to edit:, 1,*OS Command:, 1,*OS Command:, 1,Application to start:,
GOWORD, RN,RENAME, COP,COPY, DIMLIN, DIMORD, DIMRAD, DIMSTY, DIMOVER, LEAD, TM, EL, CO, O, S, MI, ST,
При выполнении команды GOWORD происходит загрузка текстового процессора для среды Windows (WINWORD). Исполняемый файл (winword.exe) находится в директории этой программы в каталоге Program Files.
154
Глава 4
Строки 9 и 10 RN,RENAME, 8,File to rename: , COP,COPY, 8,File to copy: ,
Строка 9 определяет псевдоним команды RENAME (ПЕРЕИМЕНОВАТЬ), а следующая строка определяет альтернативное имя команды COPY (КОПИРОВАТЬ). Число 8 является битовым (двоичным) флагом, а приглашения на ввод команды File to rename и File to copy, которые автоматически отображаются в командной строке, дают возможность определить формат и тип ожидаемой информации.
Строки 18 и 19 EL, *ELLIPSE CO, *COPY
Строка 18 определяет псевдоним (EL) команды ELLIPSE (ЭЛЛИПС), а следующая строка определяет псевдоним (CO) команды COPY. Перед именем команды необходимо поставить звездочку. Псевдонимы и имена команд можно разделить пробелами, число которых не оговаривается. Примечание Если определение псевдонима команды совпадает с уже существующим, но располагается ниже него, то это определение получает предпочтение и разрешение на использование. Представьте, например, что к концу стандартного файла было добавлено определение S, *SCALE. В этом случае определение, приведенное в предыдущих строках файла, игнорируется.
Повторная инициализация файла ACAD.PGP Если в файл ACAD.PGP были внесены какие-либо изменения, его необходимо повторно инициализировать. Для этого можно воспользоваться одним из следующих способов. Выйдите из программы AutoCAD, а затем запустите ее еще раз. При запуске программы автоматически загружается файл acad.pgp. Кроме этого, повторная инициализация файла acad.pgp может быть выполнена с помощью команды REINIT. Эта команда позволяет инициализировать порты ввода-вывода, кодирующий преобразователь и файл программных параметров AutoCAD (файл acad.pgp). При выполнении команды REINIT на экране появится диалоговое окно Re-initialization, показанное на рис. 4.1. Для того чтобы выполнить повторную инициализацию файла программных параметров, установите флажок соответствующей опции и щелкните на кнопке ОК. Программа AutoCAD иниРис. 4.1. Диалоговое окно циализирует файл программных параметров, что позволит Re-initialization вам использовать псевдонимы команд, определенные в этом файле. Совет Прежде чем внести какие-либо изменения в файл acad.pgp, создайте копию исходного файла и сохраните ее. Благодаря этому другие пользователи смогут использовать оригинальный, неотредактированный файл программных параметров AutoCAD.
Редактирование файла ACAD.PGP
155
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Одним из способов повторной инициализации файла acad.pgp является _______ из программы AutoCAD и ее ________. 2. Для повторной инициализации файла программных параметров можно также использовать команду ________. 3. Перед командой AutoCAD, введенной в раздел псевдонимов команд, необходимо поставить ________. 4. Строки комментариев должны начинаться с ________. 5. Псевдоним команды и команда AutoCAD должны быть разделены ________.
Повторение пройденного материала Ответьте, справедливы ли следующие утверждения. 1. Количество строк, содержащихся в разделе комментариев, не ограничено. (Да/ Нет) 2. Программа AutoCAD игнорирует любые строки, которые начинаются точкой с запятой. (Да/Нет) 3. Псевдоним команды не должен совпадать с именем команды AutoCAD. (Да/Нет) 4. Поле битового флага должно содержать число 8. (Да/Нет) 5. Псевдонимы команд, находящиеся в разделе псевдонимов, должны начинаться точкой с запятой. (Да/Нет) 6. Для команд AutoLISP псевдонимы не используются. (Да/Нет) 7. Файл программных параметров acad.pgp не входит в программу AutoCAD. (Да/Нет) 8. Файл acad.pgp представляет собой текстовый файл в формате ASCII. (Да/Нет)
Упражнения Упражнение 1 (Общее) Добавьте следующие внешние команды и псевдонимы команд AutoCAD в файл программных параметров AutoCAD (acad.pgp). Раздел внешних команд Сокращение
Описание команды
MYWORDPAD
Эта команда загружает программу WORDPAD, которая находится в каталоге C:\Program Files\Accessories
MYEXCEL
Эта команда загружает программу EXCEL, которая находится в каталоге C:\Program Files\Microsoft Office
CD
Эта команда выполняет системную команду CHKDSK
FORMAT
Эта команда выполняет системную команду FORMAT
156
Глава 4
Раздел псевдонимов команд Сокращение
Команда
BL
BLOCK
INS
INSERT
DIS
DISTANCE
TE
TIME
LTS
LTSCALE
EXP
EXPLODE
GR
GRID
Ответы на вопросы для самопроверки 1 — QUIT, перезапуск, 2 — REINIT, 3 — звездочка, 4 — точка с запятой, 5 — запятая.
Глава 5
Раскрывающиеся и неполные меню, меню быстрого вызова команд и настройка панелей инструментов Цель занятия Познакомившись с материалом этой главы, вы научитесь • записывать раскрывающиеся меню; • загружать меню различного типа; • создавать каскадные подменю в раскрывающихся меню; • записывать курсорные меню; • менять местами раскрывающиеся меню; • записывать неполные меню; • определять ускоряющие клавиши; • записывать определения инструментальных панелей; • писать меню для получения оперативной справки; • настраивать панели инструментов.
158
Глава 5
Меню программы AutoCAD Меню является мощным средством настройки программы AutoCAD. Пакет программного обеспечения AutoCAD содержит стандартный файл меню, который называется acad.mnu. Файл меню автоматически загружается при каждом запуске AutoCAD. В файле acad.mnu содержатся команды AutoCAD, сгруппированные по определенным категориям, что упрощает их идентификацию. Например, все команды рисования собраны в меню Draw (Рисование), а команды редактирования — в меню Modify (Редактирование). Каждое меню имеет соответствующее название и определенную структуру, благодаря чему пользователи могут легко находить нужные команды (тем не менее, имеется ряд команд, которыми вы можете никогда не воспользоваться). Кроме этого может возникнуть необходимость перегруппировать команды или изменить их расположение, чтобы упростить доступ к наиболее часто используемым командам. Программа AutoCAD позволяет пользователю не только удалить редко используемые команды из файла меню, но и определить новые меню. Для этого можно отредактировать уже существующий файл acad.mnu или написать новый файл меню. Количество файлов, которые вы можете написать, не ограничено. Более того, можно создавать отдельные файлы меню для различных областей применения. Эти меню могут использоваться, например, в машиностроительном черчении, при создании архитектурных проектов или разработке электрических цепей. Файлы меню, представляющие собой текстовые файлы с расширением .mnu, загружаются с помощью команды MENU (МЕНЮ). Для записи файлов обычно используется какой-нибудь текстовый редактор, например Wordpad или Notepad. Файлы меню могут содержать до десяти разделов, каждый из которых имеет соответствующую метку раздела. В программе AutoCAD эти метки используются для идентификации различных разделов файла меню. ***SCREEN ***TABLET(n) ***IMAGE ***POP(n) ***BUTTONS(n) ***AUX(n) ***MENUGROUPE ***TOOLBARS ***HELPSTRING ***ACCELERATORS
n от 1 до 4 n от 1 до 499 (для меню быстрого вызова команд n = 0 и от 500 до 999) n от 1 до 4 n от 1 до 4
Планшетное меню может содержать до четырех различных разделов. Меню РОР (раскрывающееся меню и курсорное меню) может иметь до 499 разделов. Вспомогательные и кнопочные меню обычно содержат не более четырех разделов. Планшетные меню ***TABLET1 ***TABLET2 ***TABLET3 ***TABLET4
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
Стандартные меню Меню является частью стандартного файла меню acad.mnu. Этот файл автоматически загружается при запуске программы AutoCAD (при условии, что стандартная конфигурация этой программы не изменилась). Чтобы выбрать нужное меню, переместите перекрестье курсора в верхнюю часть окна, установив его на строку меню. Перемещая координатно-указательное устройство в горизонтальном направлении, можно заметить, как выделяются названия различных элементов, содержащихся в строке меню. Чтобы открыть нужное меню, щелкните левой кнопкой мыши на его названии, в результате под строкой меню отобразится ряд команд, содержащихся в выбранном меню (рис. 5.1). Меню может содержать до 499 разделов, которые носят название POP1, POP2, POP3, ..., POP499.
Запись меню Перед тем как записать меню, его необходимо спроектировать, расположив команды в том порядке, в каком они должны отображаться на экране. Для этого вы должны выбрать соответствующие команды и разместить их таким образом, чтобы обеспечить доступ к наиболее часто используемым командам. Хорошо продуманная структура меню позволяет сэкономить немало времени, поэтому создайте несколько возможных вариантов, имеющих различное сочетание команд, и выберите из них тот, который наиболее полно соответствует вашему проекту. В этом вам могут помочь предложения, поступившие от других операторов САПР.
160
Глава 5
Рис. 5.1. Раскрывающееся и каскадное меню
Существует еще один немаловажный фактор, который следует учитывать при проектировании меню, — знание точного порядка следования команд и приглашений, связанных с этими командами. Чтобы определить, какие данные требуются для выполнения той или иной команды, необходимо ввести все команды и указать соответствующие параметры. Ниже приведено описание некоторых команд и параметров, используемых в примере 1.
Команда LINE Command: LINE Specify first point: Определите первую точку. Specify next point or [Undo]: Определите вторую точку. LINE <Enter>
Команда CIRCLE (C,R) Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Укажите центр окружности. Specify radius of circle or [Diameter]: Введите радиус.
Обратите внимание на команду и очередность ввода определяемых параметров. CIRCLE <Enter> Координаты центра <Enter> Радиус <Enter>
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
Команда CIRCLE (C,D) Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Укажите центр окружности. Specify radius of circle or [Diameter]: D Specify diameter of circle: Введите диаметр.
Обратите внимание на команду и очередность ввода определяемых параметров: CIRCLE <Enter> Координаты центра <Enter> D <Enter> Диаметр <Enter>
Команда CIRCLE (2P) Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 2P Specify first end point of circle's diameter: Определите первую точку диаметра. Specify second end point of circle's diameter: Определите вторую точку диаметра.
Обратите внимание на команду и очередность ввода определяемых параметров: CIRCLE <Enter> 2P <Enter> Укажите первую точку диаметра <Enter> Укажите вторую точку диаметра <Enter>
Команда ERASE Command: ERASE
Обратите внимание на команду и очередность ввода определяемых параметров: ERASE <Enter>
Команда MOVE Command: MOVE
Обратите внимание на команду и очередность ввода определяемых параметров: MOVE <Enter>
161
162
Глава 5
Опции C,R (по центру и радиусу) и C,D (по центру и диаметру) команды CIRCLE (КРУГ) имеют определенные отличия. При использовании первой опции, которая задается по умолчанию, указывается величина радиуса. Чтобы выбрать опцию Diameter (Диаметр), необходимо ввести букву D. Разница между этими опциями незначительна, но для записи файла меню она имеет немаловажное значение. Иногда используется опция 2P (по двум точкам), которая также отличается от других опций команды CIRCLE. Поэтому вам необходимо знать не только очередность ввода команд AutoCAD, но и параметры, которые вводятся в ответ на приглашения, относящиеся к этим командам. Для записи файла меню можно использовать любой текстовый редактор (такой как Wordpad или Notepad). Для этого подходит также команда EDIT (РЕДАКТИРОВАТЬ). При использовании этой команды AutoCAD приглашает ввести имя файла, который вы собираетесь редактировать. В имени файла должно быть не более восьми символов. Файл меню имеет расширение .mnu. Если файловое имя уже существует, этот файл автоматически загружается. В противном случае создается новый файл. Чтобы понять, как создается раскрывающееся меню, рассмотрим следующий пример. Примечание Если команда EDIT не работает, откройте файл acad.pgp и проверьте, определена ли эта команда в файле программных параметров AutoCAD.
Пример 1 Напишите раскрывающееся меню для следующих команд AutoCAD и введите пункты меню, заданные по умолчанию. LINE PLINE CIRCLE CIRCLE CIRCLE CIRCLE
C,R C,D 2P 3P
ERASE MOVE COPY STRETCH EXTEND OFFSET
REDRAW REGEN ZOOM ALL ZOOM WIN ZOOM PRE
Рис. 5.2. Структура меню
SAVE QUIT PLOT
163
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
Шаг 1: проектирование меню Первый этап записи меню состоит в создании проекта, обеспечивающего расположение команд в определенной последовательности. На рис. 5.2 показан один из возможных вариантов раскрывающегося меню. Это меню содержит четыре группы команд; следовательно, определение меню будет состоять из четырех разделов: POP1, POP2, POP3 и POP4, каждый из которых должен иметь соответствующую метку раздела. Ниже приведен листинг раскрывающегося меню для примера 1. Номера строк не являются частью файла, а используются только в качестве ссылок.
Выражение POP1 является меткой раздела первого раскрывающегося меню. Метки разделов в меню AutoCAD начинаются тремя звездочками (***), после которых указывается название метки (в данном случае POP1).
164
Глава 5
Строка 2 [DRAW]
В данном случае выражение DRAW представляет собой название строки меню, отображаемое при перемещении курсора в соответствующую область меню. Названия должны выбираться таким образом, чтобы вы могли определить тип команд, содержащихся в данном разделе. В этом примере все команды рисования собраны в разделе DRAW (рис. 5.3), команды, используемые для редактирования объектов, — в разделе EDIT, и так далее. Длина названий, используемых в строке меню, не ограничена Рис. 5.3. Раскрывающееся и зависит только от разрешения экрана, параметров дисплея и меню Draw размера шрифта. Тем не менее, названия разделов рекомендуется делать более короткими для того, чтобы можно было разместить другие пункты меню. Представьте, например, устройство отображения, разрешающая способность которого позволяет разместить в строке меню не более 80 символов. В этом случае для создания 16 разделов в строке меню вам придется использовать названия, длина которых не превышает 5 символов. Если общая длина названий выходит за установленные пределы, программа AutoCAD заворачивает названия, которые не поместились на 80-символьной строке, и отображает их на следующей строке. В результате этого строка меню “растягивается” на две строки. В том случае, если первая строка раздела пустая, название раздела в строке меню не отображается. В результате вы лишаетесь возможности обратиться к опциям меню, так как название соответствующего раздела отсутствует в строке меню. Это позволяет убирать ненужные разделы меню. Например, если вы замените выражение [DRAW] пустой строкой, раздел меню DRAW (POP1) станет недоступным — на его месте появится второй раздел (POP2). Пример ***POP1 [LINE:]^CLINE [PLINE]^CPLINE [CIRCLE]^CCIRCLE
Метка раздела Пустая строка (выключение POP1) Пункты меню
Заголовки строки меню выравниваются по левому краю. При отсутствии названия первого раздела в строке меню названия остальных разделов сдвигаются в левую сторону. В примере 1 заголовок DRAW удален из строки меню, поэтому названия разделов EDIT, DISPLAY и UTILITY будут смещены влево.
Строка 3 *^C^CLINE
В этой строке перед определением команды стоит символ звездочки (*), он обеспечивает автоматическое повторение команды, которая может быть отменена только нажатием клавиш <Esc> или или выбором другой команды меню. Выражение ^C^C дважды отменяет текущую команду. LINE — команда AutoCAD, которая обеспечивает вычерчивание линий. *^C^CLINE
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
165
где • * — повторяет пункт меню (команду); • ^C^C — дважды отменяет существующую команду; • LINE — команда AutoCAD.
Строка 5 [--]
Если вы хотите отделить одну группу команд от другой, используйте пункт меню, состоящий из двух или нескольких дефисов (--). Строка, содержащая эти символы, автоматически растягивается на всю ширину меню. В меню нельзя использовать пустые строки, поэтому раздел меню (раздел ***POP), содержащий пустую строку, игнорируется.
Строка 24 [ZOOM-Window]'ZOOM W
Одинарная кавычка ('), поставленная в пункте меню перед командой ZOOM (ПОКАЗАТЬ), обеспечивает прозрачность команды ZOOM с опцией Window (Рамка). Если вызванная команда является прозрачной, текущая команда не отменяется. Например, после ввода команды ZOOM Window (рис. 5.4), AutoCAD автоматически продолжит выполнение текущей операции.
Рис. 5.4 Меню Display
[ZOOM-Window]'ZOOM W
где • W — опция Window (Рамка); • ZOOM — команда AutoCAD; • '— одинарная кавычка, обеспечивающая прозрачность команды.
Строка 26 [~Exit]^C
Этот пункт меню предназначен непосредственно для выхода из меню. Перед названием команды стоит символ тильды (~), поэтому данный пункт меню является недоступным (показан в затененном виде). При выборе этой опции меню не закрывается. Эту функцию можно использовать для “выключения” пунктов меню или обозначения неправильно выбранной опции. Если с затененным пунктом меню связана какая-нибудь команда, при выборе соответствующей опции эта команда не выполняется. Например, при вызове команды [~OSNAPS]^C^C$S = OSNAPS подменю OSNAPS не загружается.
Строка 29 [SAVE]^C^CSAVE;
Точка с запятой (;), стоящая после команды SAVE (СОХРАНИТЬ), обеспечивает ввод команды ENTER. Точку с запятой ставить необязательно; команда будет работать и без этого символа. [SAVE]^C^CSAVE;
166
Глава 5
где • SAVE — команда AutoCAD; • ; — точка с запятой, обеспечивающая ввод ENTER.
Строка 31 [----]
Этот пункт меню состоит из четырех дефисов. При загрузке меню строчка дефисов растягивается на всю ширину меню. Если будет использован только один дефис ([-]), программа AutoCAD выдаст сообщение о синтаксической ошибке.
Строка 33 [Exit]^C
В этой строке определение команды ^C используется для выхода из меню — таким образом, это еще один способ выхода из меню. Эта опция чрезвычайно полезна для неопытных пользователей AutoCAD, плохо знакомых с возможностями этой программы. Существуют также другие способы, позволяющие выйти из меню: 1. Выбор точки на чертеже. 2. Выделение элемента в области экранного меню. 3. Выбор или ввод другой команды. 4. Нажатие клавиши <Esc>. 5. Выбор другого названия в строке меню. Примечание Обычно пункты меню выстраиваются под названием меню и выравниваются по левому краю. Если какому-нибудь меню (например, крайнему правому меню POP16) не хватает места для того, чтобы отобразить полные названия опций, то это меню разворачивается в левую сторону на полную ширину самого длинного названия. Для ввода комментариев можно использовать две косых черты (//). AutoCAD игнорирует строки программного кода, которые начинаются с этого знака. Последняя строка файла меню должна завершаться символом абзаца (ENTER); в противном случае эта строка будет проигнорирована.
Из этого примера видно, что все операторы, содержащиеся в файле меню, созданы на основе команд AutoCAD и тех параметров, которые требуются для их завершения. Эти операторы являются основой для создания файлов меню, поэтому им необходимо уделить особое внимание. Ниже приведен перечень команд AutoCAD, использованных в примере 1, и строки файла меню, соответствующие этим командам. Команды AutoCAD
Строка меню
Command: LINE
[LINE]^C^CLINE
Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Specify radius of circle or [Diameter]:
[CIR-C,R]^C^CCIRCLE
Раскрывающиеся и неполные меню, меню быстрого вызова команд... Команды AutoCAD
Строка меню
Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Specify radius of circle or [Diameter]: D Specify diameter of circle: Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 2P Specify first end point of circle's diameter: Specify second end point of circle's diameter: Command: ERASE Command: MOVE
[CIR-C,D]^C^CCIRCLE;\D
167
[CIR- 2P]^C^CCIRCLE;\2P
[ERASE]^C^CERASE [MOVE]^C^CMOVE
Загрузка меню Когда вы начинаете работать в графическом редакторе, программа AutoCAD автоматически загружает файл acad.mnu (при условии, что файл acad.mnu не был изменен или вместо него не был загружен другой файл меню). Тем не менее, у вас есть возможность загрузить другой файл меню, используя для этого команду MENU. При вводе команды MENU (МЕНЮ) в командную строку на экране появляется диалоговое окно Select Menu File (Выбор файла меню), показанное на рис. 5.5. Выберите файл меню, который вы хотите загрузить, а затем щелкните на кнопке Open (Открыть).
Рис. 5.5. Диалоговое окно Select Menu File
168
Глава 5
Можно также загрузить файл меню из командной строки, присвоив переменной FILEDIA значение 0. Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: MENU Enter menu file name or [.(for none)] <текущее меню>: PDM1
Здесь: • PDM1 — имя файла меню; • <текущее меню> — текущий файл меню. После того как вы введете команду MENU, в командной строке появится приглашение на ввод имени файла. Вводите имя файла без файлового разрешения (.mnu), так как программа AutoCAD предусматривает именно это разрешение. Файл меню автоматически компилируется в файл MNC или MNR. При загрузке файла меню AutoCAD создает файлы следующих типов: Файлы .mnc и .mnr
Когда вы загружаете файл меню (.mnu), AutoCAD компилирует этот файл и создает файлы .mnc и .mnr. Файл .mnc является компилированным файлом меню. Файл .mnr содержит растровые изображения графических объектов, использованных в меню
Файл .mns
При загрузке файла меню программа AutoCAD создает также файл .mns. Это — текстовый файл в формате ASCII, который по своему содержанию ничем не отличается от файла .mnu, используемого при первоначальной загрузке файла меню. Когда вы изменяете содержимое файла .mnu, AutoCAD вносит соответствующие изменения в файл .mns
Примечание После того как будет загружено новое меню, вы уже не сможете использовать экранное меню, кнопочные меню и кодирующий преобразователь, так как исходное меню (файл acad.mnu) отсутствует, а в новом меню нет разделов, которые бы соответствовали этим меню. Чтобы активизировать исходное меню, откройте диалоговое окно Select Menu File (Выбор файла меню), введя выражение MENU в командную строку. Выберите файл acad.mnu в каталоге Support, а затем щелкните на кнопке Open (Открыть). Можно вводить значения в командную строку только в том случае, когда переменная FILEDIA равна 1. Если вам необходимо ввести данные, используя клавиатуру или координатно-указательное устройство, введите обратную косую черту (\). Система сделает паузу, которая позволит вам ввести необходимые параметры. После обратной косой черты (\) пробелы не ставятся. В определениях команд, пунктах меню и названиях разделов меню могут использоваться как строчные, так и прописные буквы. Пробелы, разделяющие пункты меню, улучшают удобочитаемость файла меню. Пустые строки игнорируются и не отображаются на экране. В том случае, если количество пунктов, содержащихся в раскрывающемся меню, превышает число полей, имеющихся на экране дисплея, “лишние” пункты меню на экран не выводятся. Представьте, например, что параметры устройства индикации и разрешающая способность экрана позволяют разместить не более 21 пункта меню. В данном случае пункты меню, не вошедшие в это число, не отображаются на экране и таким образом становятся недоступными. Использование графических плат с высоким разрешением дает возможность увеличить количество строк, отображаемых на экране. Некоторые устройства позволяют отобразить до 80 строк.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
169
Ограничения Меню не только просты в использовании, но и обеспечивают быстрый доступ к наиболее часто используемым командам AutoCAD. Тем не менее, существуют команды, во время выполнения которых опции меню не работают. Команда TEXT После того как вы введете команду TEXT и установите высоту и угол поворота текста, опции меню будут отображаться на экране, но не будут работать. Команда SKETCH Когда вы установите приращение записи в команде SKETCH, меню станут недоступными.
Упражнение 1 Напишите меню, содержащее следующие команды AutoCAD. Структура меню показана на рис. 5.6. DRAW LINE PLINE ELLIPSE POLYGON DONUT
EDIT FILLET0 FILLET CHAMFER STRETCH EXTEND OFFSET
DISP/TEXT TEXT,C TEXT,L DTEXT,R ZOOM WIN ZOOM PRE
UTILITY SAVE QUIT END DIR PLOT
Рис. 5.6. Структура меню для упражнения 1
Каскадное размещение подменю Раскрывающиеся и контекстные меню могут содержать множество различных пунктов. Иногда их бывает так много, что на экране помещаются только некоторые из них. Представьте, например, устройство индикации, которое позволяет отобразить не более 21 строки. В том случае, если раскрывающееся или контекстное меню содержит избыточное количество пунктов, “лишние” пункты меню не отображаются на экране и становятся
170
Глава 5
недоступными. Чтобы выйти из этого положения, используйте каскадные меню, позволяющие определять небольшие группы элементов, содержащихся в разделе меню. При выборе соответствующего пункта загружается каскадное меню и на экране отображаются пункты меню, определенные в этом меню. Благодаря этому раскрывающиеся и контекстные меню могут отображаться в иерархическом порядке, что упрощает выбор пунктов, входящих в подменю. Программа AutoCAD предоставляет ряд специальных символов, которые обеспечивают возможность использования каскадного расположения элементов. Например, символ -> определяет каскадное подменю, а символ <- используется для обозначения последнего пункта данного меню. Специальные символы, которые могут использоваться при записи раскрывающихся и контекстных меню, приведены в следующей таблице. Символ --
Описание
+
Используется для переноса пункта меню на следующую строку. Этот знак должен быть последним символом в названии пункта меню. Пример: [Triang:]^C^Cline;1,1;+3,1;2,2;
->
Символ, определяющий каскадное подменю; его необходимо ставить перед именем подменю. Пример: [-> Draw]
<-
Этим символом обозначается последний пункт каскадного раскрывающегося или контекстного меню. Символ ставится перед именем пункта субменю. Пример: [<-CIRCLE 3P]^C^CCIRCLE;3P
<-<...
Этим символом обозначается последний пункт раскрывающегося или контекстного меню, а также завершается родительское меню. Символ ставится перед именем пункта меню. Пример: [<-<-Center Mark]^C^C_dim;_center
$(
Этот символ может использоваться в раскрывающихся и контекстных меню для вычисления выражений на языке DIESEL. Символ ставится перед именем пункта меню. Пример: $(if,$(getvar,orthomode),Ortho)
~
Пункт меню, обозначенный этим символом, является недоступным; символ ставится перед именем пункта меню. Пример: [~Application not available]
!.
При использовании этого символа в качестве префикса, рядом с пунктом меню появляется “галочка”
&
Буква, перед которой стоит этот символ, отобразится в названии пункта меню в подчеркнутом виде. Например, выражение [W&Block] будет показано как Wblock. Этот символ позволяет также определить выделенную букву как ускоряющую клавишу, которая может быть использована в раскрывающихся или контекстных меню
/c
Буква, перед которой стоит этот символ, отобразится в названии пункта меню в подчеркнутом виде. Например, выражение [/BW&Block] будет показано как Wblock. Этот символ позволяет также определить выделенную букву как ускоряющую клавишу, которая может быть использована в раскрывающихся или контекстных меню
\t
Текстовая надпись, имеющая такую метку, будет смещена в правую часть меню
Метка пункта, состоящая из двух дефисов, автоматически разворачивается на всю ширину меню. Пример: [--]
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
171
Например, разрешающая способность экрана и размер используемого шрифта позволяют разместить в одной строке не более 80 символов. Таким образом, можно создать 10 меню, названия которых должны состоять в среднем из 8 символов. Если общая длина названий, показанных в строке меню, превысит указанное число, AutoCAD автоматически завернет непоместившиеся пункты меню и отобразит их на следующей строке. Кроме этого меню имеют следующие свойства: 1. Для обозначения разделов меню используются метки от ***POP1 до ***POP16. Названия пунктов меню отображаются в строке меню. 2. Чтобы получить доступ к командам меню, щелкните на его заголовке в строке меню, расположенной в верхней части окна. 3. В меню можно определить не более 999 пунктов. В это число входят также пункты, содержащиеся в различных подменю. Пункты меню, число которых превышает 999, игнорируются. 4. Количество пунктов меню, которые могут быть отображены на экране, зависит от разрешения экрана используемого монитора. Если контекстное или раскрывающееся меню содержит больше пунктов, чем может поместиться на экране, “лишние” пункты меню отсекаются. Например, если система позволяет отобразить только 35 пунктов меню, пункты, которые не помещаются на экране, автоматически отбрасываются.
Пример 2 Напишите раскрывающееся меню, содержащее команды, показанные на рис. 5.7. При записи этого меню необходимо использовать возможность каскадного расположения элементов.
Рис. 5.7. Структура меню для примера 2
Шаг 1: запись файла меню Далее приведен листинг файла меню для примера 2. Номера строк не являются частью файла, а используются только в качестве ссылок.
Эта строка содержит название пункта меню (ARC), перед которым стоит специальный символ ->. Этот символ указывает на то, что в пункте меню содержится подменю. Пункты меню, следующие за этим пунктом (строки 6–12), являются элементами подменю, показанного на рис. 5.8.
Строка 12 [<-ARC,CSL]^C^CARC;C;\\L
Эта строка содержит название пункта меню ARC,CSL, перед которым стоит специальный символ <-, обозначающий конец подменю. Элемент, в названии которого имеется такой символ, должен быть последним пунктом подменю.
Рис. 5.8. Меню Draw с каскадным подменю Arc
173
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
Строки 13 и 17 [->CIRCLE] [<-CIRCLE 3P]^C^CCIRCLE;3P
Специальный символ ->, стоящий перед именем элемента меню CIRCLE, указывает на то, что пункт меню содержит вложенное подменю. В свою очередь символ <-, стоящий перед выражением CIRCLE 3P, обозначает, что этот элемент является последним пунктом подменю. При выборе пункта меню CIRCLE автоматически открывается соответствующее подменю (рис. 5.9).
Рис. 5.9. Меню Draw с каскадным подменю Circle
Шаг 2: сохранение и загрузка файла меню Сохраните файл меню под именем exm2.mnu. Для загрузки файлов меню используется команда MENU (МЕНЮ). При выполнении этой команды предыдущее меню будет заменено выбранным и в строке меню появятся названия меню DRAW, BLOCKS и UTILITY.
Пример 3 Напишите файл меню, которое содержит ряд каскадных подменю, показанных на рис. 5.10.
Рис. 5.10. Структура меню для примера 3
Запись файла меню Ниже приведен листинг файла меню для примера 3. Номера строк не являются частью файла, а используются только в качестве ссылок. ***POP1 [CIR-DIM-DISP] [->CIRCLE] [CIRCLE C,R]^C^CCIRCLE
Специальный символ ->, стоящий перед названием пункта Dimensions, указывает на то, что в этом пункте имеется вложенное подменю. Символ ->, который стоит перед названием пункта Linear, указывает на наличие второго подменю. Как показано на рис. 5.11, подменю Linear вложено в подменю Dimensions. Пункты меню, названия которых приведены в строках 10–15, входят в подменю Linear. В свою очередь, подменю Linear и Radial являются пунктами подменю Dimensions.
Рис. 5.11. Меню CIR-DIM-DISP с каскадным подменю Dimensions
Строка 16 [->Radial]
Эта строка определяет еще одно вложенное подменю, в которое вошли элементы, описанные в строках 17, 18 и 19.
Строка 19 [<-<-Center Mark]^C^C_dimcenter
Специальные символы <-<-, используемые в этой строке, обозначают конец вложенного подменю Radial и родительского подменю Dimensions.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
175
Строки 27 и 28 [<-...Exit]^C^C_ZOOM;_E [<-PAN]^C^C_Pan
Специальный символ <-, стоящий перед названием элемента меню ...Exit, указывает на завершение подменю ZOOM (рис. 5.12). Специальный символ <-, стоящий перед названием элемента PAN, обозначает завершение подменю DISPLAY.
Рис. 5.12. Меню CIR-DIM-DISP с каскадным подменю Display
Контекстные меню и меню быстрого вызова команд Меню быстрого вызова команд похожи на раскрывающиеся меню и отличаются только тем, что могут содержать не более 499 пунктов меню (как вы помните, количество пунктов в раскрывающемся меню может достигать 999). При записи меню быстрого вызова команд используются метки разделов ***POP0 и ***POP500–***POP999. Меню этого типа вызываются щелчком правой кнопкой мыши и отображаются рядом с курсором. Поэтому меню быстрого вызова команд могут использоваться для обеспечения быстрого и удобного доступа к наиболее часто используемым командам. Меню быстрого вызова команд, находящиеся на более высоком уровне, иногда называют контекстными меню. Ниже приведены основные свойства этого меню. 1. При записи меню быстрого вызова команд используются метки разделов ***POP0 и ***POP500–***POP999. Заголовок строки меню, определенный в этом разделе, в строке меню не отображается. 2. В большинстве систем заголовок строки меню в верхней части меню не отображается. Тем не менее, для того, чтобы достичь определенного соответствия, можно ввести фиктивные заголовки строки меню. 3. Для получения доступа к меню РОР0 можно использовать команду $P0=*. При обращении к меню POP500–POP999 следует использовать их альтернативные имена. К числу псевдонимов, зарезервированных для использования в программе AutoCAD, относятся GRIPS, CMDEFAULT, CMEDIT и CMCOMMAND. Например, чтобы вызывать меню POP500 по щелчку правой кнопкой мыши на выделенном объекте, необходимо ввести команду ***GRIPS в раздел POP500. (Если значение системной переменной GRIPS равно 1, то при выделении какого-либо объекта на вершинах многоугольника или на концах линий возникают небольшие квадратики синего цвета (так называемые “ручки”).) Для вызова этой команды можно использовать пункты другого меню, например, контекстного, вспомогательного или экранного. Для вызова необходимых команд также могут использоваться программы AutoLISP или ADS. 4. Меню быстрого вызова команд позволяет определить не более 499 пунктов меню; сюда включены также пункты, содержащиеся в подменю. Пункты меню, не вошедшие в это число, игнорируются. 5. Количество пунктов меню, которые могут быть отображены на экране, зависит от технических характеристик используемой системы. Если раскрывающееся меню или меню быстрого вызова команд содержит больше пунктов, чем может поме-
176
Глава 5
ститься на экране, “лишние” строки меню автоматически отсекаются. Например, если система позволяет отобразить не более 21 пункта, пункты меню, не поместившиеся на экране, автоматически отбрасываются. 6. Меню быстрого вызова команд может работать в режимах Default, Edit или Command, доступность которых определяется значением системной переменной SHORTCUTMENU. Если это значение равно 0, программа восстанавливает традиционное поведение R14 и режимы Default, Edit и Command становятся недоступными. По умолчанию эта переменная имеет значение 11.
Пример 4 Напишите меню быстрого вызова для следующих команд AutoCAD, используя возможность каскадного расположения пунктов подменю. Созданное меню должно обеспечивать совместимость с версиями AutoCAD, написанными на иностранном языке. Для отображения курсорного меню используйте третью кнопку мыши (меню BUTTONS). Osnaps Center Endpoint Intersection Midpoint Nearest Perpendicular Quadrant Tangent
Draw Line PLINE CIR C,R CIR 2P ARC SCE ARC CSE
DISPLAY REDRAW ZOOM ...Win ...Cen ...Prev ...All ...Ext PAN
None
Запись файла меню Ниже приведен листинг файла меню для примера 4. Номера строк не являются частью файла, а используются только в качестве ссылок. ***AUX1 ; $P0=* ***POP0 [Osnaps] [Center]_Center [End point]_Endp [Intersection]_Int [Midpoint]_Mid [Nearest]_Nea [Perpendicular]_Per [Quadrant]_Qua [Tangent]_Tan [None]_Non [--] [->Draw] [Line]^C^C_Line [PLINE]^C^C_Pline
Здесь AUX1 — метка раздела первого вспомогательного меню; символ *** обозначает начало нового раздела меню. Пункты меню, начиная с этого символа и заканчивая меткой второго раздела, представляют собой часть кнопочного меню.
Строки 2 и 3 ; $P0=*
Точка с запятой (;) присвоена второй кнопке координатно-указательного устройства (первая кнопка этого устройства является кнопкой указания). Третьей кнопке координатно-указательного устройства назначена специальная команда $P0=*.
Строки 4 и 5 ***POP0 [Osnaps]
Метка POP0 является меткой раздела меню, предназначенной для меню быстрого вызова команд. Osnaps — заголовок строки меню. Заголовок не отображается в строке меню, тем не менее, он необходим. При его отсутствии первый пункт меню будет интерпретирован как заголовок и поэтому станет недоступным.
Строка 6 [Center]_Center
В этой строке выражение _Center обозначает режим привязки к центру объекта. Если перед командой или опцией команды AutoCAD стоит знак подчеркивания (_), то файл меню можно использовать с версиями AutoCAD на иностранном языке. Если после загрузки файла меню будет нажата третья кнопка координатно-указательного устройства, на экране рядом с указателем (или перекрестьем курсора) появится меню быстрого вызова команд, показанное на рис. 5.13. Если во время нажатия кнопки
178
Глава 5
курсор находится рядом с границей экрана, меню быстрого вызова команд отобразится в области, наиболее близкой к месту расположения курсора. При вызове подменю содержащиеся в нем элементы отобразятся даже в том случае, если меню быстрого вызова команд касается границ экрана.
Строки 33 и 34 ***POP1 [Draw]
Выражение ***POP1 определяет первое раскрывающееся меню. Если разделы POP1, POP2, POP3 и т.д. не определены или строка состояния выключена, меню быстрого вызова команд автоматически блокируется.
Упражнение 2
Рис. 5.13. Меню быстрого вызова команд для примера 4
Напишите меню, содержащее следующие команды AutoCAD. Создайте каскадное меню для опций команды LINE (ОТРЕЗОК), содержащейся в этом меню. (Структура меню показана на рис. 5.14.) LINE Continue Close Undo CIRCLE
ZOOM All ZOOM Win ZOOM Pre PAN DBLIST
ELLIPSE
STATUS
TIME LIST DISTANCE AREA
Рис. 5.14. Структура меню для упражнения 2
Подменю Раскрывающиеся меню или меню быстрого вызова команд часто содержат большое количество элементов, но количество строк, которые могут быть отображены на экране, ограничено. Представьте, например, устройство отображения, позволяющее отобразить только 21 пункт меню. Пункты меню, не вошедшие в это число, не могут отобразиться
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
179
на экране и таким образом становятся недоступными. Чтобы выйти из этого положения, создайте несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в разделе меню. При выборе созданного подменю AutoCAD загружает элементы соответствующего подменю и отображает их на экране. Наиболее простым и эффективным способом создания подменю является использование возможности каскадного расположения элементов, которая поддерживается программой AutoCAD. Логическая модель, применяемая при создании подменю, упрощает загрузку и использование элементов подменю и обеспечивает отсутствие какой-либо путаницы или неразберихи. Поэтому мы настойчиво рекомендуем использовать каскадные меню при написании раскрывающихся меню или меню быстрого вызова команд. Тем не менее, не забывайте, что AutoCAD поддерживает также возможность перестановки существующих подменю. Перемещающиеся меню отвлекают внимание пользователей, так как во время перестановки исходное меню полностью заменяется каким-нибудь подменю.
Определение подменю Определение подменю состоит из имени создаваемого подменю и двух звездочек (**), стоящих перед этим именем. Меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. К подменю принадлежат все элементы, начиная с метки подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет следующий формат: **Имя
где • ** — две звездочки (**), обозначающие подменю; • Имя — имя подменю. Примечание Длина имени подменю не должна превышать 31 символа. Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_). Использование пробелов в имени подменю не допускается. В файле меню необходимо использовать уникальные имена подменю.
Ссылка на подменю Ссылка на подменю используется для вызова или загрузки подменю. Она состоит из бук вы, определяющей раздел меню, и знака доллара ($), стоящего перед ней. В качестве буквы, определяющей соответствующий раздел меню, используется Pn, где n — номер раздела. После имени раздела ставится знак “равно” (=), а затем указывается имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат: $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю.
180
Глава 5
Пример $P1=P1A
где • $P1 — описатель первого раздела раскрывающегося меню; • P1A — имя подменю.
Отображение подменю Загрузка подменю не обеспечивает автоматический вывод элементов подменю на экран вашего компьютера. Например, при загрузке подменю P1A, в первой строке которого находится элемент DRAW-ARC, вместо текущего заголовка меню РОР1 появится название DRAW-ARC. Но при этом пункты подменю, определенные под заголовком DRAW-ARC, не будут отображаться на экране. Для вывода новых элементов меню на экран в программе AutoCAD используется специальная команда $Pn=*. $Pn=*
где • P — буква, определяющая раздел меню; • n — номер раздела меню (от 1 до 10); • * — знак звездочки.
Загрузка экранных и мозаичных меню Используя соответствующие команды загрузки, можно загрузить любое меню, определенное в соответствующих разделах экранного или мозаичного (пиктограммного) меню. Обычно такой необходимости не возникает, но если вы захотите, то сможете загрузить меню, определенные в других разделах меню.
Загрузка экранного меню Для загрузки меню, определенного в разделе экранного меню, обычно используется следующая команда: $S=X $S=LINE
где • S — буква, определяющая экранное меню; • X — имя подменю, определенного в разделе экранного меню; • LINE — имя подменю, определенного в разделе экранного меню. При выполнении первой команды ($S=X) происходит загрузка подменю X, определенного в одном из разделов файла меню, в частности, в разделе экранного меню. Количество пустых строк, содержащихся в подменю X, может достигать 21, поэтому при загрузке этого подменю выполняется очистка экранного меню. Выполнение второй команды ($S=LINE) приводит к загрузке подменю LINE, определенного в том же разделе файла меню.
Загрузка мозаичного меню Для загрузки мозаичного меню с помощью одного из пунктов меню используется команда $1=IMAGE1 $1=*
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
181
где • $1=IMAGE1 — загрузка подменю IMAGE1; • $1=* — отображение диалогового окна. В этом пункте меню содержится две команды загрузки. При выполнении первой команды ($1=IMAGE1) происходит загрузка графического подменю IMAGE1, определенного в файле меню, в разделе графического меню. При выполнении второй команды ($1=*) на экране появляется новое диалоговое окно.
Пример 5 Напишите раскрывающееся меню, содержащее следующие команды AutoCAD. Для выполнения команд ARC и CIRCLE используйте подменю. LINE PLINE ARC ARC 3P ARC SCE ARC SCA ARC CSE ARC CSA ARC CSL CIRCLE CIRCLE C,R CIRCLE C,D CIRCLE 2P
BLOCK INSERT WBLOCK
QUIT SAVE PLOT
Шаг 1: проектирование меню Макет, показанный на рис. 5.15, является одним из возможных вариантов создаваемого меню. Команды ARC и CIRCLE образуют группы, которые будут определены в файле меню как отдельные подменю.
Рис. 5.15. Проект меню для примера 5
182
Глава 5
Шаг 2: Запись файла меню Ниже приведен листинг файла меню для примера 5. Номера строк не являются частью файла, а используются только в качестве ссылок. ***POP1 **P1A [DRAW] [LINE]^C^CLINE [PLINE]^C^CPLINE [--] [ARC]^C^C$P1=P1B $P1=* [CIRCLE]^C^C$P1=P1C $P1=* [--] [Exit]^C **P1B [ARC] [ARC,3P]^C^CARC [ARC,SCE]^C^CARC \C [ARC,SCA]^C^CARC \C \A [ARC,CSE]^C^CARC C [ARC,CSA]^C^CARC C \\A [ARC,CSL]^C^CARC \\L [--] [PREVIOUS]$P1=P1A $P1=* **P1C [CIRCLE] [CIRCLE C,R]^C^CCIRCLE [CIRCLE C,D]^C^CCIRCLE \D [CIRCLE 2P]^C^CCIRCLE 2P [--] [PREVIOUS]$P1=P1A $P1=* ***POP2 [BLOCKS] [BLOCK]^C^CBLOCK [INSERT]^C^CINSERT [WBLOCK]^C^CWBLOCK [--] [EXIT]$P1=P1A $P1=* ***POP3 [UTILITY] [SAVE]^C^CSAVE [QUIT]^C^CQUIT [----] [PLOT]^C^CPLOT [----] [Exit]^C
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
183
Строка 2 **P1A
В этой строке выражение **P1A определяет подменю P1A. Две звездочки (**), стоящие в начале строки, указывают на то, что это выражение является именем подменю. Подменю может иметь любое действительное имя. В этом примере выбрано имя P1A, с помощью которого можно легко определить местоположение созда5.16. Раскрываваемого подменю. Буква “P” указывает на то, что это подменю. “1” Рис. ющееся меню Arc, заобозначает, что это первое меню (POP1), а буква “A” указывает на менившее меню Draw первое подменю в этом разделе.
Строка 6 [--]
Два дефиса, заключенных в квадратные скобки, будут автоматически развернуты на полную ширину меню. Пункт меню, содержащий эти символы, не может использоваться для определения команды. Если в строке находится определение команды, данная команда игнорируется. Например, если строка содержит выражение [--]^C^CLINE, команда ^C^CLINE будет проигнорирована.
Строка 7 [ARC]^C^C$P1=P1B $P1=*
Команда $P1=P1B, содержащаяся в этой строке, загружает подменю P1B и назначает его первому разделу меню (РОР1), но при этом элементы нового меню на экране не отображаются. Чтобы исправить это положение, в строку введена команда $P1=*, которая обеспечивает отображение нового меню. Например, при выборе пункта CIRCLE из первого меню (POP1) название DRAW, содержащееся в строке меню, заменяется заголовком CIRCLE, но элементы введенного меню не отображаются на экране. Теперь если вы выберете название CIRCLE из строки меню, в меню появится команда, определенная в подменю CIRCLE. Чтобы обеспечить отображение меню, назначенного POP1, используется специальная команда $P1=*, имеющаяся в программе AutoCAD. При выборе элемента CIRCLE из первого меню (POP1), загружается подменю CIRCLE и его элементы автоматически выводятся на экран.
Строка 21 [EXIT]^C
При выборе этого элемента текущее меню закрывается. Тем не менее, выполнение этой команды не дает вам возможности вернуться в предыдущее подменю (DRAW). Если вы обратите внимание на строку меню, то заметите, что вместо названия ARC появился заголовок DRAW. Таким образом, выход из подменю себя не оправдывает. В этом случае лучше вернуться к первому меню или определить команду, которая автоматически загружает предыдущее меню, после чего отменяет текущее. [EXIT]$P1=P1A $P1=* ^C^C
184
Глава 5
Строка 29 [PREVIOUS]$P1=P1A $P1=*
Команда $P1=P1A, находящаяся в этой строке, загружает подменю P1A, которое в данном случае является предыдущим. Для загрузки предыдущего меню также можно использовать команду $P1=. Команда $P=*, в свою очередь, обеспечивает отображение элементов, содержащихся в подменю P1A. Примечание При перестановке раскрывающихся меню количество имеющихся меню увеличивается. Например, файл меню загружает восемь меню (с POP1 по POP8). Затем с помощью неполного меню или стандартной программы LISP в раздел РОР5 вставляется новое меню. В результате этого количество существующих меню увеличивается на единицу. Таким образом, при выполнении команды $P7=P7A $P=* загружается новое меню P7A, которым заменяется меню POP6. При этом меню POP6 переносится в раздел POP7.
Шаг 3: загрузка файла меню Сохраните созданный вами файл меню, а затем загрузите его с помощью команды MENU (МЕНЮ). О том, как это сделать, рассказывается в предыдущем примере.
Неполные меню В AutoCAD используется концепция основных (базовых) и неполных меню. Под основным меню понимается последнее меню, загруженное с помощью команды MENU. Неполное или частичное меню — меню, загруженное с помощью команды MENULOAD (в AutoCAD 2006 она была заменена командой CUILOAD). В программе AutoCAD имеется возможность, позволяющая пользователям записывать собственные меню и вводить их в строку меню. Например, в операционной системе Windows можно записывать неполные меню и определения ускоряющих клавиш, а также создавать панели инструментов. Программа AutoCAD дает возможность загружать созданное меню и использовать его вместе со стандартными меню. Например, загрузив неполное меню, вы получаете возможность работать с ним так, как с обычным меню. Можно также выгрузить те меню, которые вам больше не нужны. Эти возможности значительно упрощают использование меню, которые создаются разработчиками и пользователями AutoCAD.
Метки разделов меню Ниже приводится описание дополнительных меток разделов меню. Метка раздела ***MENUGROUP
Имя группы файла меню
Описание
***TOOLBARS
Определение панели инструментов
***HELPSTRING
Оперативно-доступная помощь
***ACCELERATORS
Определения ускоряющих клавиш
Запись неполного меню Процедура записи неполного меню может быть проиллюстрирована следующим примером.
185
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
Пример 6 В этом примере вы напишете неполное меню для Windows. Как показано на рис. 5.17, файл меню содержит два раздела: POP1 (MyDraw) и POP2 (MyEdit).
Рис. 5.17. Раскрывающиеся меню для примера 6
Шаг 1: запись файла меню Для записи файла меню обычно используется какой-нибудь текстовый редактор. Введите в окно редактора следующий текст и сохраните файл под именем mymenu1.mnu. Ниже приведен листинг файла меню, описываемого в этом примере. ***MENUGROUP=Menu1 ***POP1 [/MMyDraw] [/LLine]^C^Cline [/Ccircle]^C^Ccircle [/AArc]^C^Carc [/EEllipse]^C^Cellipse ***POP2 [/EMyEdit] [/EErase]^C^Cerase [/CCopy]^C^Ccopy [/MMove]^C^Cmove [/OOffset]^C^Coffset
1 2 3 4 5 6 7 8 9 10 11 12 13
Строка 1 ***MENUGROUP=Menu1
В этой строке содержится метка раздела MENUGROUP и именная метка Menu1, присвоенная группе меню. Определения разделов меню всегда должны начинаться с метки MENUGROUP. Имя группы меню (в данном случае Menu1) представляет собой буквенноцифровое выражение, длина которого может достигать 32 символов, исключая пробелы и знаки пунктуации. В файле меню может быть только одна группа MENUGROUP. Метки разделов должны начинаться тремя звездочками *** (***MENUGROUP).
Строка 2 ***POP1
Здесь POP1 — метка раздела меню. К этому разделу принадлежат элементы, содержащиеся в строках 3–7. В свою очередь, пункты меню, занимающие строки с 9 по 13, принадлежат к разделу РОР2.
186
Глава 5
Строка 3 [/MMyDraw]
Выражение /M определяет ускоряющую клавишу, которую вы сможете использовать для активизации пункта меню. В данном случае ускоряющая клавиша соответствует подчеркнутой букве М, находящейся в текстовой строке, указанной после этого выражения. При вводе буквы М в командную строку AutoCAD выполнит команду, определенную в соответствующем пункте меню. Выражение MyDraw является меткой пункта меню. Текстовая строка, заключенная в квадратные скобки, не содержит никаких функций (за исключением выражения /M). Эта строка используется для отображения имени функции, с помощью которого пользователь сможет узнать, какая команда будет выполнена при выборе данного пункта меню.
Строка 4 [/LLine]^C^CLine
В этой строке выражение /L используется для определения ускоряющей клавиши. Текстовое выражение Line, находящееся в квадратных скобках, является меткой пункта меню. Выражение ^C^C дважды отменяет выполнение команды, а выражение Line является именем команды LINE (ОТРЕЗОК), принадлежащей программе AutoCAD. При выборе этого пункта выполняется часть оператора, находящаяся за пределами квадратных скобок. При выборе строки 4 выполняется команда LINE.
Шаг 2: загрузка файла меню Сохраните созданный файл под именем mymenu1.mnu. Выберите опцию Customize Menu (Настройка меню) из меню Tools (Сервис) или введите выражение MENULOAD в командную строку. При выполнении этой команды на экране появится диалоговое окно Menu Customization (Настройка меню), показанное на рис. 5.18.
Рис. 5.18. Диалоговое окно Menu Customization (вкладка Menu Group)
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
187
Для загрузки файла меню введите его имя (mymenu1.mnu) в текстовое окно File Name (Имя файла). Можно также открыть диалоговое окно Select Menu File (Выбор файла меню), щелкнув на кнопке Browse (Обзор). Выделите имя нужного файла, а затем щелкните на кнопке OK. При этом вы вернетесь в диалоговое окно Menu Customization. Чтобы загрузить выделенный файл меню, щелкните на кнопке Load (Загрузить). При появлении предупреждения щелкните на кнопке Yes (Да). Имя группы меню (Menu1) будет отображено в списковом окне Menu Group (Группа меню). Можно также загрузить файл меню из командной строки, выполнив следующие действия: Command: FILEDIA Enter new value for FILEDIA <1>: 0 (Блокировка вывода диалоговых окон.) Command: MENULOAD Enter name of menu file to load: MYMENU1.MNU
Чтобы присвоить системной переменной FILEDIA значение 0, а затем загрузить неполное меню, можно воспользоваться следующими функциями AutoLISP: Command: (SETVAR "FILEDIA" 0) Command: (Command "MENULOAD" "MYMENU1")
Шаг 3: вставка созданного меню в строку меню Откройте диалоговое окно Menu Customization (Настройка меню) и перейдите на вкладку Menu Bar (Строка меню), на которой находятся опции строки меню (рис. 5.19). В списковом окне Menu Groups (Группы меню) выберите Menu1; названия меню, содержащихся в этой группе (Menu1), будут отображены в списковом окне Menus (Меню). Выберите в списковом окне меню (MyDraw), которое вы хотите вставить в строку меню. Например, если вы хотите вставить новое меню перед элементом Format, выберите меню Format (Формат) в списковом окне Menu Bar (Строка меню). Чтобы вставить выделенное меню (MyDraw) в строку меню, щелкните на кнопке Insert (Вставить). Меню MyDraw появится в строке меню, расположенной в верхней части окна.
Рис. 5.19. Диалоговое окно Menu Customization (вкладка Menu Bar)
188
Глава 5
Можно также загрузить меню из командной строки. Когда меню будет загружено, воспользуйтесь командой MENUCMD (функция AutoLISP), которая позволит вам вывести неполные меню на экран. Command: (MENUCMD "P5=+Menu1.POP1") Command: (MENUCMD "P6=+Menu1.POP2")
Рис. 5.20. Заголовки меню, введенные в строку меню командой MENUCMD
После того как вы введете эти команды, AutoCAD отобразит названия соответствующих меню в строке меню (рис. 5.20). При выборе опции MyDraw на экране появятся пункты меню, определенные в соответствующем файле. В свою очередь, при выборе опции MyEdit на экране отобразится меню, содержащее команды редактирования. В рассматриваемом примере команда MENUCMD является одной из функций AutoLISP, а выражение P5 представляет собой параметр, определяющий местоположение меню POP1. В данном случае меню POP1 (MyDraw) будет отображено в пятом меню. В соответствии с определением файла меню, Menu1 — имя группы меню (MENUGROUP), а РОР1 — метка раздела меню. Имя MENUGROUP и метка раздела меню должны быть разделены точкой (.).
Шаг 4: выгрузка меню Для того чтобы выгрузить меню (например, MyDraw), откройте диалоговое окно Menu Customization (Настройка меню) и перейдите на вкладку Menu Bar (Строка меню). В списковом окне Menu Bar (Строка меню) выделите элемент, который вы хотите удалить, а затем щелкните на кнопке Remove (Удалить).
Шаг 5: выгрузка группы меню С помощью диалогового окна Menu Customization (Настройка меню) можно также удалять целые группы меню. Откройте это диалоговое окно, выбрав опцию Customize Menu (Настройка меню) из меню Tools (Сервис) или введя выражение MENULOAD или MENUUNLOAD в командную строку. Имена имеющихся файлов меню отображены в списковом окне Menu Group (Группы меню). Выделите меню Menu1, а затем щелкните на кнопке Unload (Выгрузить). Программа AutoCAD выгрузит указанную группу меню. Закройте диалоговое окно, щелкнув на кнопке Close (Закрыть). Можно также выгрузить группу меню из командной строки, выполнив следующие действия: Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: MENUUNLOAD Enter name of MENUGROUP to unload: MENU1.MNU
С помощью команды MENUUNLOAD можно выгрузить целую группу меню. Можно также выгрузить какое-нибудь отдельное меню, не удаляя при этом всю группу. Для этого используется следующая команда: Command: (MENUCMD "P5=")
При выполнении этой команды будет удалено меню, находящееся на пятой позиции (P5, меню MyDraw). В этом случае группа меню останется на прежнем месте, а меню P5 будет удалено. Для повторной инициализации меню может использоваться команда MENU, обеспечивающая загрузку исходного меню acad.mnu.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
189
Ускоряющие клавиши AutoCAD для Windows также поддерживает возможность самостоятельного определения ускоряющих клавиш. Например, когда вы введете С в командную строку, AutoCAD отобразит приглашение на ввод данных, требуемых для построения окружности. Это связано с тем, что буква “С” является псевдонимом команды CIRCLE (КРУГ), что определено в файле программных параметров acad.pgp. Поэтому вы не сможете, нажав клавишу , вызвать команду COPY (КОПИРОВАТЬ). Чтобы использовать данную клавишу для ввода команды COPY, необходимо определить соответствующую ускоряющую клавишу. Для этого можно объединить буквенную клавишу с клавишей <Shift>, введя соответствующее выражение в файл меню. В этом случае, когда вы нажмете клавишу <Shift>, а затем, удерживая ее нажатой, нажмете клавишу , программа AutoCAD выполнит команду COPY. Использование ускоряющих клавиш иллюстрируется следующим примером.
Пример 7 В этом примере вы введете ускоряющие клавиши в неполное меню, описанное в предыдущем примере. ([CONTROL+"E"])
построение эллипса (команда ELLIPSE)
<Shift+C> ([SHIFT+"C"])
копирование (команда COPY)
([CONTROL"Q"])
выход (команда QUIT)
Шаг 1: запись определения ускоряющих клавиш в файл меню Ниже показан листинг файла неполного меню, в котором используются ускоряющие клавиши, описанные в примере 7. ***MENUGROUP=Menu1 ***POP1 **Alias [/MMyDraw] [/LLine]^C^CLine [/CCircle]^C^CCircle [/AArc]^C^CArc ID_Ellipse [/EEllipse]^C^CEllipse ***POP2 [/EMyEdit] [/EErase]^C^CErase ID_Copy [/CCopy]^C^CCopy [/OOffset]^C^COffset [/MMove]^C^CMove ***ACCELERATORS ID_Ellipse [CONTROL+"E"] ID_Copy [SHIFT+"C"] [CONTROL"Q"]^C^CQuit
190
Глава 5
Пояснения В этом файле меню определены три ускоряющих клавиши. Определение ускоряющей клавиши ID_Copy [SHIFT+"C"] состоит из двух частей. Первая часть (ID_Copy) — именной признак, который должен совпадать с именным признаком, использованным в определении пункта меню. Второй частью определения (SHIFT+"C") является метка, содержащая модификатор (SHIFT) и имя клавиши (C). Имя буквенной клавиши или название функциональной клавиши (например, “ESCAPE”) должно быть заключено в квадратные скобки. Существуют два способа, которые могут быть использованы для определения ускоряющих клавиш. В первом случае вы указываете именной признак, а затем вводите метку, содержащую модификатор и имя или название клавиши, заключенные в квадратные скобки. В качестве примера можно привести [CONTROL+"E"] или ["ESCAPE"]. Для связывания модификаторов обычно используется знак “плюс”, например, [SHIFT+CONTROL+"L"]. Во втором случае для определения ускоряющей клавиши указывается модификатор и название клавиши, а затем цепочка соответствующих команд, например, [CONTROL"Q"]^C^CQuit.
Шаг 2: загрузка определения ускоряющих клавиш Сохраните отредактированный текст в виде файла с расширением .mnu. Загрузите файл меню, используя команду MENU. После того как вы это сделаете, при одновременном нажатии клавиш <Shift+C> будет введена команда COPY, а при нажатии клавиш отобразится приглашение на ввод параметров, требуемых для построения эллипса. Нажатие клавиш приведет к отмене предыдущей команды и вводу команды QUIT. Если эти клавиши не работают, попробуйте выгрузить неполное меню из примера 6, так как в нем используется точно такое же имя группы меню.
Виртуальные клавиши Виртуальными клавишами называются независимые от устройства значения, идентифицирующие клавиши клавиатуры. При использовании в файле меню значения виртуальных клавиш указываются в кавычках. Строка
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
191
Общезначимые модификаторы Ниже приведены некоторые общезначимые модификаторы: Строка
Описание
CONTROL
Клавиша на клавиатуре
SHIFT
Клавиша <Shift> на клавиатуре (левая или правая)
COMMAND
Клавиша Apple на клавиатурах Macintosh
META
Мета-клавиша на клавиатурах UNIX
Панели инструментов Содержимое и стандартная структура инструментальных панелей обычно определяются в разделе панелей инструментов файла меню (например, в разделе ***TOOLBARS). Каждая панель инструментов должна быть определена в отдельном подменю. Определение панели инструментов. Основной формат определения панели инструментов: ***TOOLBARS **MYTOOLS1 TAG1 [Toolbar ("tbarname", orient, visible, xval, yval, rows)] TAG2 [Button ("btname", id_small, id_large)]macro TAG3 [Flyout ("flyname", id_small, id_large, icon, alias)]macro TAG4 [control (element)] [--]
Здесь ***TOOLBARS — метка раздела панели инструментов, а MYTOOLS1 имя подменю, содержащего соответствующее определение. Панели инструментов могут иметь до пяти независимых параметров, определяющих свойства различных элементов панели: TAG1, TAG2, TAG3, TAG4 и разделитель [--]. Параметры, содержащиеся в первой строке (TAG1), определяют основные характеристики панели инструментов. Эта строка содержит выражение Toolbar, которое является зарезервированным словом, а также ряд опций, заключенных в квадратные скобки. Ниже приведено описание имеющихся опций. tbarname
Имя, присваиваемое данной панели инструментов. Это имя представляет собой текстовое выражение, состоящее только из буквенно-цифровых символов и некоторых знаков пунктуации, таких как дефис (-) и символ подчеркивания (_)
orient
Параметр, определяющий ориентацию панели инструментов. Этот параметр может иметь следующие значения: Floating, Top, Bottom, Left и Right. При вводе этих значений регистр клавиатуры не учитывается
visible
Параметр, определяющий видимость инструментальной панели. Допустимыми значениями этого параметра являются Show и Hide. Эти значения вводятся без учета регистра клавиатуры
xval
Числовое значение, определяющее ординату X в пикселях. Ордината X представляет собой расстояние от левой границы экрана до левого края панели инструментов
yval
Числовое значение, определяющее ординату Y в пикселях. Ордината Y представляет собой расстояние от верхней границы экрана до верхнего края панели инструментов
rows
Числовое значение, определяющее количество строк
192
Глава 5
Параметры, содержащиеся во второй строке (TAG2), определяют свойства кнопок панели инструментов. Эта строка содержит выражение Button, являющееся зарезервированным словом, и ряд опций, заключенных в квадратные скобки. Ниже приведено описание имеющихся опций. btname
Имя, присваиваемое кнопке, находящейся на панели инструментов. Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_)
id_small
Имя, присваиваемое строковому идентификатору (ID string) небольшого элемента графического интерфейса (растровое изображение размером 16×16 пикселей). Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_). Текстовая строка id_small может также описывать определяемое пользователем побитовое отображение графического объекта (например, RCDATA_16_CIRCLE). При отсутствии соответствующих графических изображений будет выведено сообщение со знаком вопроса
id_large
Имя, присваиваемое строковому идентификатору большого элемента графического интерфейса (растровое изображение размером 32×32 пикселей). Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_). Текстовая строка id_large может также описывать определяемое пользователем побитовое отображение графического объекта (например, RCDATA_32_CIRCLE)
Macro
Вторая строка (TAG2), определяющая параметры кнопки, заканчивается командным предложением (макросом). В качестве примера можно привести выражение ^C^CLine. Синтаксис макросов такой же, как и в определении пунктов стандартного меню
Параметры, содержащиеся в третьей строке (TAG2), определяют свойства кнопок, связанных с различными панелями инструментов. В этой строке содержится зарезервированное слово Flyout и ряд опций, заключенных в квадратные скобки. Ниже приведено описание доступных опций. flyname
Имя, которое присваивается кнопке, связанной с той или другой панелью инструментов. Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_). Когда вы располагаете курсор над кнопкой, на экране появляется всплывающая подсказка, содержащая ее название
id_small
Имя, присваиваемое строковому идентификатору (ID string) небольшого элемента графического интерфейса (растровое изображение размером 16×16 пикселей). Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_). Текстовая строка id_small может также описывать определяемое пользователем побитовое отображение графического объекта (например, RCDATA_16_CIRCLE)
id_large
Имя, присваиваемое строковому идентификатору большого элемента графического интерфейса (растровое изображение размером 32×32 пикселей). Это имя представляет собой текстовое выражение, содержащее только буквенно-цифровые символы и некоторые знаки пунктуации, такие как дефис (-) и символ подчеркивания (_). Текстовая строка id_large может также описывать определяемое пользователем побитовое отображение графического объекта (например, RCDATA_32_CIRCLE)
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
193
icon
Ключевое слово булевой функции, значение которого определяет, какая пиктограмма будет отображаться на панели инструментов — собственная пиктограмма кнопки или пиктограмма последней выбранной опции. Этот параметр может иметь значение ownicon или othericon. Значения вводятся без учета регистра клавиатуры
alias
Псевдоним, определяющий имя подменю панели инструментов. При определении псевдонима используется стандартный синтаксис **aliasname
macro
Третья строка (TAG3), определяющая параметры кнопки, связанной с инструментальной панелью, заканчивается командным предложением (макросом). В качестве примера можно привести выражение ^C^Cline. Синтаксис макросов такой же, как и в определении пунктов стандартного меню
Параметры четвертой строки (TAG4) определяют свойства специального элемента управления. В этой строке содержится зарезервированное слово Control, а также указывается тип элемента управления (в круглых скобках). Ниже приведено описание доступных типов элементов управления. element
Этот параметр может иметь одно из следующих значений: Layer (Слой) — определяет свойства элемента управления слоев; Linetype (Тип линии) — определяет свойства элемента управления линиями различного типа; Color (Цвет) — определяет свойства элемента управления цветом.
Пятая строка ([--]) содержит определение разделителя.
Пример 8 В этом примере вы напишете файл меню для инструментальной панели, содержащей команды LINE, PLINE, CIRCLE, ELLIPSE и ARC. Имя этой панели инструментов — MyDraw1 (рис. 5.21).
Рис. 5.21. Диалоговое окно Customize и панель инструментов MyDraw1 для примера 8
194
Глава 5
Шаг 1: запись определения панели инструментов Для этой цели обычно используется какой-нибудь текстовый редактор. Ниже приведен листинг файла меню, содержащего определение панели инструментов. В этом файле идентификатор ID определяет именной признак. MENUGROUP=M1 ***TOOLBARS **TB_MyDraw1 ID_MyDraw1 [_Toolabar("MyDraw1", _Floating, _Hide, 10, 200,1)] ID_Line [_Button("Line", RCDATA_16_LINE, RCDATA_32_LINE)]^C^C_Line ID_Pline [_Button("Pline", RCDATA_16_Pline, RCDATA_32_Pline)]^C^C_Pline ID_Circle [_Button("Circle", RCDATA_16_CirRAD, RCDATA_32_CirRAD)]^C^C_Circle ID_ELLIPSE [_Button("Ellipse", RCDATA_16_EllCEN, RCDATA_32_EllCEN)]^C^C_ELLIPSE ID_Arc [_Button("Arc 3Point", RCDATA_16_Arc3Pt, RCDATA_32_Arc3Pt)]^C^C_Arc
Шаг 2: загрузка файла меню, содержащего определение панели инструментов Сохраните этот текст в виде файла с расширением .mnu. Затем загрузите группу меню MyDraw1, используя для этого команду MENULOAD. О том, как это сделать, рассказывается в разделе, который посвящен загрузке неполного меню. Теперь выведите новую панель инструментов (MyDraw1) на экран. Откройте диалоговое окно Customize (Настройка), выбрав команду Toolbars (Панели инструментов) из меню View (Вид), и выделите элемент MyDraw1 в списковом окне Menu Group (Группа меню). Затем “включите” панель инструментов MyDraw1, установив флажок рядом с ее именем в списке Toolbars (Панели инструментов). Новую панель инструментов можно также загрузить из командной строки. Вначале с помощью команды MENULOAD загрузите группу меню MyDraw1, а затем выведите панель инструментов MyDraw1 на экран, используя команду -TOOLBAR. Command: -TOOLBAR Enter toolbar name or [ALL]: MYDRAW1 Enter an option [Show/Hide/Left/Right/Top/Bottom/Float] <Show>: S ◊◊◊ Команда: -TOOLBAR Имя панели инструментов или [Все]: MYDRAW1 Введите опцию [Показать/Скрыть/Слева/Справа/Вверху/Внизу/Плавающая] <Показать>: S Примечание В предыдущих версиях программы AutoCAD при определении параметров id_small и id_large использовалось ключевое слово ICON, но начиная с AutoCAD 2004 вместо него используется слово RCDATA.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
195
Пример 9 В этом примере будет написан файл меню для панели инструментов с несколькими групповыми кнопками. На панели MyDraw2 находится две кнопки: Circle и Arc. При щелчке на кнопке Circle отображается панель с кнопками Radius, Diameter, 2P и 3P (рис. 5.22). При выборе кнопки Arc открывается панель, содержащая кнопки 3 Point, SCE и SCA (рис. 5.23).
Рис. 5.22. Групповая кнопка Circle на панели инструментов MyDraw2
Рис. 5.23. Групповая кнопка Arc на панели инструментов MyDraw2
В этой строке M2 — имя группы меню (***MENUGROUP=M2), а TB_Circle — имя соответствующего подменю панели инструментов. Параметр M2.TB_Circle обеспечивает загрузку подменю TB_Circle, которое определено в группе меню M2. Если группа M2 отсутствует, при щелчке на кнопке Circle панель инструментов, содержащая соответствующие опции, не отображается. ID_CirDIA [_Button("Circle C,D", RCDATA_16_CirDIA, RCDATA_32_CirDIA)]^C^C_Circle;\D
Здесь CirDIA — определяемый пользователем битовый образ, используемый для отображения кнопки Circle-Diameter. Использование другого имени не обеспечивает отображение нужной кнопки.
Шаг 2: загрузка файла меню, содержащего определение панелей инструментов Для загрузки панели инструментов используется команда MENULOAD, которая позволяет вывести панель инструментов MyDraw2 на экран.
Система справочной информации Программа AutoCAD для Windows дает возможность пользователям обращаться к встроенной системе справочной информации. Например, строка подсказки, определенная для команд CIRCLE и ARC, будет иметь следующий синтаксис: ***HELPSTRINGS ID_Copy [Эта команда позволяет скопировать выделенный объект.] ID_Ellipse [С помощью этой команды можно построить эллипс.]
Здесь ***HELPSTRING — метка раздела меню, содержащего строку подсказки. Строки, определенные в этом разделе, включают в себя именной признак (ID_Copy) и метку, заключенную в квадратные скобки. Кодовое имя строки подсказки должно содержать не более 12 символов. Когда вы выделяете какой-нибудь пункт меню, AutoCAD начинает поиск именного признака данных, имеющихся в разделе ***HELPSTRINGS. При нахождении подходящей записи текстовая строка, имеющая соответствующую метку, отображается в строке состояния.
Настройка панелей инструментов Программа AutoCAD содержит несколько инструментальных панелей, которые подходят для самых различных ситуаций. Тем не менее, иногда возникает необходимость переделать панели инструментов таким образом, чтобы можно было собрать часто используемые команды на одной панели. Это позволяет значительно сократить время, затрачиваемое на поиск нужных команд. Кроме того, вы получаете возможность более рационально использовать рабочее пространство, поскольку количество инструментальных панелей, отображенных на экране, уменьшается. Процессы создания и редактирования панелей инструментов описаны в следующих примерах.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
197
Пример 10 В этом примере вы создадите новую панель инструментов (MyToolbar1), содержащую команды Line, Polyline, Circle (с опциями Center и Radius), Arc (с опциями Center, Start и End), Spline и Paragraph Text (MTEXT). Кроме этого вы измените пиктограмму и всплывающую подсказку кнопки Line, а также выполните ряд других операций, к которым относятся удаление кнопок и панелей инструментов, а также копирование кнопок, имеющихся на других панелях.
Шаг 1 Откройте диалоговое окно Customize (Настройка), выбрав команду Toolbars (Панели инструментов) из меню View (Вид). Чтобы открыть это диалоговое окно, можно также ввести выражение TBCONFIG в командную строку.
Шаг 2 Щелкните на кнопке New (Создать), которая находится на вкладке Toolbars (Панели инструментов). На экране появится диалоговое окно New Toolbar (Новая панель инструментов).
Шаг 3 Введите имя создаваемой панели инструментов (MyToolbar1) в текстовое окно Toolbar name (Имя панели инструментов), а затем закройте диалоговое окно, щелкнув на кнопке OK (рис. 5.24). Имя новой панели появится в списковом окне Toolbars (Панели инструментов) диалогового окна Customize (Настройка).
Шаг 4 Выделите созданную панель инструментов, щелкнув мышью на флаговой кнопке, которая находится слева от имени панели MyToolbar1. На экране появится новая панель инструментов.
Рис. 5.24. Диалоговые окна Customize и New Toolbar
198
Глава 5
Шаг 5 Перейдите на вкладку Commands (Команды) диалогового окна Customize (Настройка), как показано на рис. 5.25. На этой вкладке находятся списковые окна Categories (Категории) и Commands (Команды).
Шаг 6 Выберите элемент Draw (Рисование) в списковом окне Categories (Категории). В окне Commands (Команды) диалогового окна Customize (Настройка) отобразится список команд панели инструментов Draw.
Шаг 7 Перетащите кнопку команды Line (Линия) на панель инструментов MyToolbar1. Повторите эту операцию для кнопок команд Polyline (Полилиния), Circle (Окружность) (с опциями Center (Центр) и Radius (Радиус)), Arc (Дуга) (с опциями Center (Центр), Start (Начало), End (Конец)), Spline (Сплайн) и Text (Текст) (Multiline text (Многострочный текст)).
Шаг 8 Выберите в списковом окне Categories (Категории) элемент Dimension (Размеры) и перетащите на панель MyToolbar1 несколько команд, которые могут быть использованы для простановки размеров (рис. 5.25).
Шаг 9 Закончив определение команд для новой панели инструментов, закройте диалоговое окно Customize (Настройка), щелкнув на кнопке Close (Закрыть). Это позволит вам также вернуться в окно программы AutoCAD.
Шаг 10 Проверьте, работают ли кнопки, находящиеся на созданной вами панели инструментов.
Рис. 5.25. Панель инструментов MyToolbar1 и диалоговое окно Customize
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
199
Редактирование изображения на кнопке и изменение всплывающей подсказки Шаг 1 Проверьте, отображена ли на экране кнопка, изображение которой вы хотите изменить. В рассматриваемом примере требуется отредактировать пиктограмму кнопки Line (Линия), которая находится на панели инструментов MyToolbar1.
Шаг 2 Щелкните правой кнопкой мыши на какой-нибудь панели инструментов и выберите опцию Customize (Настройка) из контекстного меню. На экране появится диалоговое окно Customize (Настройка). Щелкните на кнопке Line, которая находится на панели инструментов MyToolbar1. В диалоговом окне отобразятся свойства выбранной вами кнопки, в том числе и пиктограмма существующего инструмента Line (Линия), показанная на рис. 5.26.
Шаг 3 Чтобы отредактировать изображение кнопки, откройте окно Button Editor (Редактор кнопок), щелкнув на кнопке Edit (Изменить). В процессе редактирования можно использовать различные инструменты, имеющиеся в редакторе кнопок. Например, выбрав инструмент Line и определив начальную и конечную точки, можно нарисовать линию. С помощью инструмента Circle можно нарисовать круг или эллипс. Для удаления фрагментов изображения используется инструмент Erase.
Шаг 4 Можно также изменить цвет нарисованной линии. Для этого необходимо стереть уже существующую линию, затем выбрать нужный цвет и нарисовать новую линию. Изменив цвет линии, в нижнем правом углу кнопки нарисуйте букву L.
Шаг 5 Щелкните на кнопке Save As (Сохранить как) и сохраните созданное изображение в каталоге Tutorial под именем MyLine. Затем закройте диалоговое окно Button Editor (Редактор кнопок), щелкнув на кнопке Close (Закрыть). Использование опции Save (Сохранить) вместо команды Save As (Сохранить как) переопределит изображение данной кнопки для всех существующих панелей инструментов.
Шаг 6 Введите выражение MyLine в текстовое окно Name (Имя), которое находится на вкладке Button Properties (Свойства кнопки) диалогового окна Customize (Настройка). Это приведет к изменению всплывающей подсказки, связанной с данной кнопкой. Чтобы сохранить внесенные изменения, щелкните на кнопке Apply (Применить). Чтобы вернуться в окно программы AutoCAD, закройте диалоговое окно. Как вы уже заметили, изображение кнопки и текст всплывающей подсказки изменились.
Удаление кнопок на панели инструментов Шаг 1 Откройте диалоговое окно Customize (Настройка), щелкнув правой кнопкой мыши на какой-нибудь панели инструментов и выбрав опцию Customize (Настройка) из контекстного меню.
Шаг 2 Щелкните мышью на кнопке Spline и вытащите ее из панели инструментов MyToolbar1. При появлении предупреждения щелкните на кнопке OK. Выбранная вами кнопка будет удалена. Если хотите, можете удалить другие кнопки, повторив ранее описанные действия. Чтобы вернуться в окно графического редактора AutoCAD, закройте диалоговое окно.
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
201
Удаление панели инструментов Откройте диалоговое окно Customize (Настройка), выбрав команду Toolbars (Панели инструментов) из меню View (Вид). В списковом окне Toolbars (Панели инструментов) выделите панель, которую вы хотите удалить, и щелкните на кнопке Delete (Удалить). Выбранная вами панель инструментов будет удалена.
Копирование кнопок инструментов Шаг 1 В этом примере вам предлагается скопировать кнопку Ordinate Dimension (Ординатный размер), которая находится на панели инструментов Dimension (Размеры), и перенести ее на панель MyToolbar1. Откройте диалоговое окно Customize (Настройка), щелкнув правой кнопкой мыши на какой-нибудь панели инструментов и выбрав опцию Customize (Настройка) из контекстного меню или выбрав команду Toolbars (Панели инструментов) из меню View (Вид). Перейдите на вкладку Commands (Команды) и выберите элемент Dimensions (Размеры) в списковом окне Categories (Категории). Команды, используемые для простановки размеров, отобразятся в списковом окне Commands (Команды).
Шаг 2 Выделите кнопку Ordinate Dimension (Ординатный размер), которая находится в списковом окне Commands (Команды), и перетащите ее на панель инструментов MyToolbar1. Кнопка выбранного инструмента будет скопирована на панель MyToolbar1. Любые изменения, внесенные в панели инструментов, сохраняются в файлах acad.mns и acad.mnr. Ниже приведен фрагмент листинга файла acad.mns. ***MYTOOLBAR1 ID_MyToolbar1_0 [_Toolbar("MyToolbar1", _Floating, _Show, 512, 177, 1)] ID_Line_0 [_Button("MyLine", "RCDATA.bmp", "RCDATA_24_LINE")]^C^C_line ID_CircleCenterRadius_0 [_Button("Circle Center Radius", "RCDATA_16_CIRRAD", "RCDATA_24_CIRRAD")]^C^C_circle ID_Polyline_0 [_Button("Polyline", "RCDATA_16_PLINE", "RCDATA_24_PLINE")]^C^C_pline ID_ArcCenterStartEnd_0 [_Button("Arc Center Start End", "RCDATA_16_ARCCSE", "RCDATA_24_ARCCSE")]^C^C_arc_c
Создание пользовательских панелей инструментов В этом примере вы создадите пользовательскую панель инструментов, кнопки которой связаны с другими инструментальными панелями.
Шаг 1 Откройте диалоговое окно Customize (Настройка), щелкнув правой кнопкой мыши на одной из инструментальных панелей и выбрав опцию Customize (Настройка) из контекстного меню. Перейдите на вкладку Toolbars (Панели инструментов) и щелкните на кнопке New (Создать). На экране появится диалоговое окно New Toolbar (Новая панель инструментов). Введите имя новой панели инструментов (например, MyToolbar2) и закройте диалоговое окно, щелкнув на кнопке OK.
202
Глава 5
Шаг 2 Перейдите на вкладку Commnads (Команды) и выберите опцию Flyouts (Групповые кнопки) в списковом окне Categories (Категории). Названия и изображения кнопок показаны в списковом окне Commands (Команды). Выделите кнопку Draw (Рисование) и перетащите ее на панель инструментов Рис. 5.28. Панель инструMyToolbar2. Кнопка, созданная таким способом, содержит в ментов MyToolbar1 себе все команды, используемые при рисовании.
Шаг 3 Выберите опцию User Defined (Специальный тип) из спискового окна Categories (Категории). Имена команд показаны в списковом окне Commnads (Команды). Выделите опцию User Defined Flyout и перетащите ее на панель инструментов MyToolbar2. Теперь щелкните на кнопке User Defined Flyout, которая находится на панели MyToolbar2; на экране появится окно сообщения программы AutoCAD. Чтобы вернуться в диалоговое окно Customize (Настройка), щелкните на кнопке ОК. Перейдите на вкладку Flyout Properties (Свойства групповых кнопок), выделите опцию Inquiry (Вопрос) и щелкните на кнопке Apply (Применить). Панель инструментов Inquiry будет ассоциирована с соответствующей кнопкой пользовательской панели. Подобным образом можно вывести на панель инструментов другие определяемые пользователем кнопки (рис. 5.29).
Создание клавишных комбинаций быстрого вызова команд Шаг 1 Откройте диалоговое окно Customize (Настройка), выбрав команду Toolbars (Панели инструментов) из меню View (Вид). Перейдите на вкладку Keyboards (Клавиатуры) и выберите элемент Draw Menu (Меню рисования) из раскрывающегося списка Categories (Категории). Команды рисования отображены в списковом окне Commands (Команды).
Рис. 5.29. Диалоговое окно Customize и пользовательские панели инструментов
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
203
Шаг 2 Используя текстовое окно Press new shortcut key, определите клавишную комбинацию, которую вы хотите назначить выделенному меню или кнопке инструментальной панели. Для этого нажмите клавишу , а затем, удерживая ее нажатой, нажмите соответствующую буквенную клавишу. Вместе с буквенными клавишами можно также использовать клавиши . Например, можете нажать клавиши и, не отпуская их, нажать клавишу . Чтобы вывести список всех ускоряющих клавиш, щелкните на кнопке Show All (Показать все).
Шаг 3 Чтобы назначить команде выбранную клавишную комбинацию, щелкните на кнопке Assign (Назначить) (рис. 5.30), а затем закройте диалоговое окно Customize (Настройка), щелкнув на кнопке Close (Закрыть). Теперь вы сможете вызвать команду LINE (ОТРЕЗОК), нажав клавиши . Примечание Нельзя переназначать клавиши быстрого вызова команд, которые используются операционной системой Windows, например, , , или . Если вы введете неправильную комбинацию клавиш, она не будет отображена в текстовом окне программы AutoCAD. Попробуйте использовать какие-нибудь другие клавиши. Если выбранная клавишная комбинация уже назначена какой-нибудь другой команде AutoCAD, на экране появится сообщение “Currently assigned to”.
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Файл стандартного меню носит имя ________. 2. Для загрузки файлов меню можно использовать команду ________. 3. Разделы файла меню идентифицируются с помощью ________. 4. Раскрывающееся меню может содержать до ________ разделов. 5. Планшетное меню может иметь до ________ различных разделов. 6. Если необходимо вводить данные с помощью клавиатуры или координатно-указательного устройства, введите символ ________. 7. Символ ________ определяет начало каскадного подменю, тогда как ________ указывает на последний элемент в данном меню. 8. Метки разделов в меню AutoCAD начинаются символом ________. 9. Символ ________ обозначает последний элемент раскрывающегося или контекстного меню. 10. Если символ ________ используется в качестве префикса, перед названием элемента появляется флаговая кнопка. 11. Системная переменная ________ определяет доступность режимов Default, Edit и Command для меню быстрого вызова команд. 12. Определение подменю включает в себя ________. 13. Диалоговое окно Customize можно открыть с помощью команд ________ или ________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Раскрывающееся меню может содержать до ________ разделов. 2. Длина заголовка раздела не должна превышать ________ символов. 3. Заголовки разделов в раскрывающемся меню выравниваются по _________ краю. 4. Строка раскрывающегося меню, содержащая два дефиса ([--]), автоматически ________ до ________ меню. 5. Если определение пункта меню начинается со знака тильды (~), этот пункт будет _______. 6. Каждое каскадное меню, определенное в файле меню, должно иметь ________ имя. 7. Длина имени каскадного меню не должна превышать ________ символов. 8. Имена каскадных меню не должны содержать ________. 9. Операционная система Windows позволяет записывать определения неполных меню, панелей инструментов и ускоряющих клавиш. (Да/Нет) 10. Файл меню может содержать только одну группу меню (MENUGROUP). (Да/ Нет)
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
205
11. Неполное меню можно загрузить с помощью команды ________. 12. Загрузив меню, можно отобразить неполное меню, используя для этого ________ (функция AutoLISP).
Упражнения Упражнение 3 (Общее) Напишите раскрывающееся меню, содержащее следующие команды AutoCAD. (Макет меню показан на рис. 5.31.) LINE CIRCLE C,R CIRCLE C,D ARC 3P ARC SCE ARC CSE
Упражнение 4 (Общее) Напишите раскрывающееся меню, содержащее следующие команды AutoCAD. LINE PLINE CIRCLE C,R CIRCLE C,D ELLIPSE AXIS ENDPOINT ELLIPSE CENTER
BLOCK WBLOCK INSERT BLOCK LIST ATTDEF ATTEDIT
Упражнение 5 (Общее) Напишите неполное меню для операционной системы Windows. В этом упражнении файл меню содержит два раздела: POP1 (MyArc) и POP2 (MyDraw). Меню MyArc содержит все опции команды ARC и располагается на шестой позиции. Меню MyDraw, в свою очередь, включает в себя команды LINE, CIRCLE, PLINE, TRACE, DTEXT и MTEXT и находится на девятой позиции.
206
Глава 5
Упражнение 6 (Общее) Напишите файл меню для панели инструментов с двумя групповыми кнопками. Панель инструментов носит название MyDrawX1 и содержит две групповые кнопки Draw и Modify. При щелчке на кнопке Draw разворачивается панель, содержащая команды рисования (команды Draw). В свою очередь, при выборе кнопки Modify отображается панель инструментов, содержащая средства модификации (команды Modify).
Упражнение 7 (Общее) Напишите меню, содержащее следующие команды AutoCAD. LAYER LAYER LAYER LAYER LAYER LAYER
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • записывать мозаичные меню; • создавать ссылки на подменю и отображать их в текущих чертежах; • создавать слайды для мозаичных меню.
208
Глава 6
Мозаичные меню Мозаичные меню (image tile menu), называемые также пиктограммными меню (icon menu), чрезвычайно удобны для вставки блоков, выбора текстовых шрифтов или создания трехмерных (объемных) объектов. Мозаичные меню можно также использовать при загрузке подпрограмм AutoLISP или ранее определенных макросов. Таким образом, мозаичные меню являются мощным средством настройки программы AutoCAD. К опциям мозаичного меню можно обращаться, используя команды выпадающих, кнопочных, планшетных или экранных меню. Тем не менее, это не позволит вам загрузить нужное мозаичное меню, введя соответствующую команду. При выборе мозаичного меню на экране появляется диалоговое окно, содержащее два десятка графических изображений (рис. 6.1). В левой части диалогового окна отображаются имена файлов, которые соответствуют представленным пиктограммам. Списковое окно, содержащее имена файлов, иногда снабжается полосой прокрутки. Название мозаичного меню отображено в верхней части диалогового окна (см. рис. 6.1). При активизации пиктограммного меню на экране появляется стрелка, с помощью которой вы сможете выбрать соответствующий пункт меню. Можно также выбрать требуемое изображение, выделив в диалоговом окне имя соответствующего слайда и щелкнув на кнопке ОК или дважды щелкнув мышью на имени слайда. Когда пользователь выбирает файл какого-нибудь слайда, AutoCAD выделяет соответствующую пиктограмму, очерчивая рисунок толстой прямоугольной рамкой (см. рис. 6.1). Чтобы выделить пиктограмму требуемой опции, можно также переместить стрелку курсора в нужное место, а затем нажать левую кнопку мыши (или говоря другими словами, щелкнуть на пиктограмме левой кнопкой мыши). При этом автоматически выделяется имя соответствующего файла. Когда вы щелкнете на кнопке ОК или дважды щелкнете на пиктограмме или имени файла, будет выполнена команда, которая соответствует выбранному пункту меню. Чтобы выйти из мозаичного меню, нажмите клавишу <Esc>, щелкните на кнопке Cancel (Отмена) или выделите какое-нибудь другое изображение.
Рис. 6.1. Пример мозаичного меню
Мозаичные меню
209
Подменю Количество элементов, которые могут быть определены в мозаичном меню, не ограничено, но в диалоговом окне будет показано не более 20 пиктограмм. Если количество элементов превышает указанное число, для перелистывания страниц, содержащих пиктограммы мозаичного меню, используются кнопки Next (Следующая) и Previous (Предыдущая), которые находятся в нижней части диалогового окна. Можно также создать несколько подменю, позволяющих определить небольшие группы элементов в разделе мозаичного меню. При выборе подменю выполняется загрузка элементов, которые затем выводятся на экран.
Определение подменю Метка подменю состоит из имени определяемого подменю и двух звездочек (**), которые ставятся перед этим именем. Мозаичное меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. Подменю принадлежат все элементы раздела, начиная с метки данного подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет следующий формат: **Имя
где • ** — две звездочки (**), обозначающие подменю; • Имя — имя подменю. Примечание
• Длина имени подменю не должна превышать 31 символа. • Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_).
• Использование пробелов в имени подменю не допускается. • В файле меню необходимо использовать уникальные имена подменю.
Ссылка на подменю Ссылка на подменю используется для вызова или загрузки соответствующего подменю. Она состоит из буквы, определяющей раздел меню, и знака доллара ($), который ставится перед этой буквой. При определении раздела мозаичного меню используется буква “I”. После имени раздела ставится знак “равно” (=), а затем приводится имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат: $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю.
210
Глава 6
Пример $I=IMAGE1
где • $I — описатель раздела мозаичного меню; • IMAGE1 — имя подменю.
Отображение подменю Загрузка подменю не обеспечивает автоматического отображения нового диалогового окна и вывод соответствующих графических изображений (пиктограмм) на экран вашего компьютера. Например, при загрузке подменю IMAGE1 элементы, содержащиеся в этом подменю, не будут выведены на экран. Для отображения новых элементов мозаичного меню в программе AutoCAD используется специальная команда $I=*
где • I — буква, определяющая раздел мозаичного меню; • * — звездочка.
Запись мозаичного меню Мозаичное меню начинается с метки раздела ***IMAGE, после которой вводятся названия пиктограмм или имена соответствующих подменю. Файл меню содержит только один раздел мозаичного меню (***IMAGE), поэтому все графические изображения должны быть определены в этом разделе. ***IMAGE
где • *** — три звездочки, обозначающие метку раздела; • IMAGE — метка раздела мозаичного меню. Количество подменю, которые могут быть определены в мозаичном меню, не ограничено. Имя подменю обозначается двумя звездочками (например, **PARTS или **IMAGE1). **IMAGE1
где • ** — две звездочки, определяющие подменю; • IMAGE1 — имя подменю. Первым элементом мозаичного меню является заголовок, который также отображается в верхней части диалогового окна. Заголовок мозаичного меню указывается в квадратных скобках (например, [PLC-SYMBOLS]) и не должен содержать определений каких-либо команд. Команда, определяемая в строке заголовка, игнорируется. Под строкой заголовка располагаются другие элементы мозаичного меню, к которым относятся имена слайдов (в квадратных скобках) и определения команд, вынесенные за скобки. ***IMAGE **BOLTS [HEX-HEAD BOLTS] [BOLT1]^C^CINSERT;B1
Раздел мозаичного меню Подменю мозаичного меню (BOLTS) Название пиктограммы BOLT1 — файловое имя слайда; B1 — имя блока
Мозаичные меню
211
Слайды, используемые в мозаичном меню Слайды, создаваемые для мозаичных меню, используются для отображения графических символов в соответствующей области диалоговых окон. Использование стилизованных изображений (пиктограмм) упрощает определение характера операции, которую выполняет тот или иной элемент мозаичного меню. В качестве пиктограмм могут использоваться любые графические изображения. Тем не менее, имеется ряд рекомендаций, которые следует учитывать при создании слайдов, предназначенных для мозаичных меню: 1. Создавая слайды для мозаичного меню, рисуйте объекты таким образом, чтобы заполнить все свободное пространство экрана. При выполнении команды MSLIDE создается слайд, содержащий объект, показанный на экране. Если этот объект имеет небольшие размеры, рисунок в мозаичном меню тоже будет небольшим. Поэтому перед созданием слайда необходимо увеличить изображение, используя для этого команду ZOOM (ПОКАЗАТЬ) с опцией Extents (Границы) или Window (Рамка). 2. Работая с мозаичным меню, можно заметить, что для загрузки слайдов, показанных в диалоговом окне, требуется определенное время. Время загрузки слайдов прямо пропорционально сложности изображенных объектов. Таким образом, слайды должны быть максимально простыми, но в то же время давать достаточное количество информации о показанном объекте. 3. Не закрашивайте объекты, так как это увеличивает время, необходимое для загрузки и отображения пиктограмм. Области, заполненные одинаково окрашенными пикселями, в окне мозаичного меню не отображаются. 4. Объекты, имеющие слишком большую ширину или высоту, следует располагать по центру экрана. Для перемещения объектов может быть использована команда PAN. 5. Пространство экрана, используемое для отображения пиктограмм мозаичного меню, ограничено. Поэтому старайтесь использовать его наиболее рационально, вводя в слайды только релевантную информацию. 6. Пиктограммы, отображаемые в диалоговом окне мозаичного меню, имеют форматное соотношение 1,5:1 (т.е. длина относится к ширине как 1,5:1). Например, если длина пиктограммы равна 1,5 единицы, то ее высота составит 1 единицу. Таким образом, если область рисования имеет форматное соотношение 1,5:1, а нарисованный объект находится в середине экрана, то слайд, показанный в окне мозаичного меню, тоже будет располагаться по центру.
Пример 1 Создайте мозаичное меню, с помощью которого вы сможете, щелкая мышью на пиктограммах диалогового окна, вставлять в чертежи геометрические фигуры (условные обозначения), показанные на рис. 6.2. Для загрузки мозаичного меню используйте команды меню.
212
Глава 6
Рис. 6.2. Условные обозначения, содержащиеся в мозаичном меню PLC SYMBOLS NO (NORMALLY OPEN) NC (NORMALLY CLOSED) COIL
Элементы электродвигателей НР (нормально разомкнутый) НЗ (нормально замкнутый) Обмотка
ELECTRIC SYMBOLS RESIS (RESISTANCE) DIODE GROUND
Элементы электрических цепей Резистор (сопротивление) Диод Заземление (“земля”)
Шаг 1: конвертирование геометрических фигур в блоки и слайды Начертите условные обозначения, приведенные в этом примере, после чего создайте блоки, используя для этого команду WBLOCK. Затем с помощью команды MSLIDE создайте слайды, которые будут использоваться в качестве пиктограмм в диалоговом окне мозаичного меню. Для вставки блоков в создаваемые чертежи используется команда INSERT.
Шаг 2: проектирование мозаичного меню Меню должно быть построено таким образом, чтобы все его команды располагались в нужном порядке. На рис. 6.3 показан один из возможных вариантов выпадающего и мозаичного меню, описываемых в примере 1.
Рис. 6.3. Структура выпадающего и мозаичного меню для примера 1
213
Мозаичные меню
Шаг 2: запись мозаичного меню Для записи файла меню обычно используется команда EDIT или какой-нибудь текстовый редактор, например, Notepad или Wordpad. Номера строк, приведенные в правой части листинга, не являются частью программного кода и используются только в качестве ссылок. ***POP1 [ELECTRIC] [PLC-SYMBOLS]$I=IMAGE1 $I=* [ELEC-SYMBOLS]$I=IMAGE2 $I=* ***IMAGE **IMAGE1 [PLC-SYMBOLS] [NO]^C^CINSERT;NO;\1.0;1.0;0 [NC]^C^CINSERT;NC;\1.0;1.0;0 [COIL]^C^CINSERT;COIL [ No-Image] [blank] **IMAGE2 [ELECTRICAL SYMBOLS] [RESIS]^C^CINSERT;RESIS;\\\\ [DIODE]^C^CINSERT;DIODE;\1.0;1.0;\ [GROUND]^C^CINSERT;GRD;\1.5;1.5;0;;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Строка 1 ***POP1
В этом файле выражение ***POP1 является меткой раздела и определяет первый раздел меню.
Строка 2 [ELECTRIC]
В этой строке выражение [ELECTRIC] является заголовком меню POP1. Этот заголовок отображается в строке меню.
Строка 3 [PLC-SYMBOLS]$I=IMAGE1 $I=*
В этом пункте меню команда $I=IMAGE1 загружает подменю IMAGE1, а команда $I=* отображает текущее мозаичное меню на экране.
Строка 5 ***IMAGE
Выражение ***IMAGE, содержащееся в этой строке, является меткой раздела мозаичного меню. В этом разделе должны быть определены все мозаичные меню; в противном случае программа AutoCAD не сможет их найти.
Строка 6 **IMAGE1
Выражение **IMAGE1, содержащееся в этой строке, является именем мозаичного подменю.
214
Глава 6
Строка 7 [PLC-SYMBOLS]
При выборе пункта меню, определенного в строке 3 ([PLC-SYMBOLS]$I=IMAGE1 $I=*), AutoCAD загружает подменю IMAGE1 и отображает заголовок мозаичного меню в верхней части диалогового окна (рис. 6.4). Заголовок меню определяется в строке 7. Если эта строка пропущена, в качестве заголовка используется следующая строка файла. Длина заголовка мозаичного меню ограничивается только шириной диалогового окна.
Выражение NO, с которого начинается эта строка, является именем слайда и поэтому находится в квадратных скобках. В имени слайда не должно быть замыкающих или предшествующих пробелов. При отсутствии слайдов графические символы не отображаются в окнах мозаичного меню. Тем не менее, элементы меню загружаются и при выборе одного из них будет выполнена команда, связанная с соответствующим элементом мозаичного меню. Второе выражение NO является именем блока, вставляемого в чертеж. Обратная косая черта (\) приостанавливает выполнение команды, что позволяет ввести необходимые данные (в нашем примере пользователь должен указать точку вставки созданного блока). Первое числовое значение 1.0 определяет масштабный коэффициент X. Второе числовое значение 1.0 определяет масштабный коэффициент Y, а значение 0 является величиной угла поворота. [NO]^C^CINSERT;NO;\1.0;1.0;0
где • NO — имя блока; • \ — обратная косая черта, позволяющая определить точку вставки блока; • 1.0 — масштабный коэффициент X; • 1.0 — масштабный коэффициент Y; • 0 — величина угла поворота. При выборе элемента меню автоматически вводятся все параметры, необходимые для выполнения команды INSERT (ВСТАВИТЬ), и блок NO вставляется в указанное место. Единственное, что вам необходимо сделать — указать точку вставки созданного блока.
Данная строка содержит имя блока, указанное в квадратных скобках. В этом случае вам придется самостоятельно определить некоторые параметры вставляемого блока.
Строка 11 [ No-Image]
Обратите внимание на пробел перед выражением No-Image. Если после открывающей скобки стоит пробел, программа AutoCAD не выполняет поиск подходящего слайда, а вводит в списковое окно мозаичного меню текст, содержащийся в квадратных скобках.
Строка 12 [blank]
Эта строка содержит выражение blank (пустая), при выполнении которого создается линия разделителя в списковом окне и пустое окно (без изображения) в мозаичном меню.
Строка 15 [RESIS]^C^CINSERT;RESIS;\\\\
Выражение, содержащееся в этой строке, обеспечивает вставку блока RESIS, показанного на рис. 6.5. Первая обратная косая черта (\) создает паузу, которая используется для определения точки вставки данного блока. Вторая и третья обратные косые черты используются для ввода масштабного коэффициента X и Y. Пауза, создаваемая с помощью четвертой обратной косой черты, используется для определения угла поворота вставляемого блока. Эта строка может быть также записана как [RESIS]^C^CINSERT;RESIS;\
или [RESIS]^C^CINSERT;RESIS
Если макрос выполняется до того, как будет завершен ввод команды, на экране появляется сообщение, требующее ввести все необходимые параметры.
Строка 16 [DIODE]^C^CINSERT;DIODE;\1.0;1.0;\
При выборе этой строки на экране появляется приглашение на определение точки вставки и угла поворота указанного блока. Первая обратная косая черта позволяет определить точку вставки, а вторая — ввести величину угла поворота.
Строка 17 [GROUND]^C^CINSERT;GRD;\1.5;1.5;0;;
В конце этой строки находятся две точки с запятой (;). Первая точка с запятой, которая стоит сразу после 0, используется для ввода команды ENTER и завершения вставки блока. Вторая точка с запятой позволяет ввести ENTER и повторить команду INSERT. Тем не менее, при повторном выполнении этой команды вам придется еще раз ввести все необходимые параметры. Эта команда не принимает значения, определенные в пункте меню.
216
Глава 6 Примечание Файлы слайдов должны находиться в каталоге, который указан в пути поиска вспомогательных файлов. Если они расположены в каком-нибудь другом каталоге, определите местоположение каталога поддержки, используя для этого вкладку Files (Файлы) диалогового окна Options (Настройка). При создании мозаичного меню функция повторения элементов меню не используется. Например, если определение команды начинается со “звездочки” ([GROUND]*^C^CINSERT;GRD;\1.5;1.5;0;;), автоматическое повторение команды не выполняется, как это происходит в раскрывающихся меню. Пустая строка в файле мозаичного меню завершает меню и удаляет пиктограммы, содержащиеся в диалоговом окне. Команда меню $I=*, которая обеспечивает отображение текущего меню, не может быть введена с помощью клавиатуры. Для того чтобы закрыть мозаичное меню, нажмите клавишу <Esc>. Другие команды, вводимые с клавиатуры, игнорируются программой AutoCAD. В разделе мозаичного меню можно определить любое количество мозаичных меню и подменю.
Шаг 4: сохранение файла мозаичного меню Сохраните файл меню под именем pdm1.mnu. При сохранении файла не забудьте указать соответствующее файловое расширение (.mnu). В противном случае файл будет сохранен в “родном” формате той программы, которая использовалась для записи файла.
Загрузка меню Когда вы начинаете работать в графическом редакторе, программа AutoCAD автоматически загружает файл acad.mnu (при условии, что файл acad.mnu не был изменен или вместо него не был загружен другой файл меню). Несмотря на это вы имеете возможность загрузить другой файл меню, используя команду MENU. Следует заметить, что меню, загруженное с помощью команды MENULOAD, может функционировать не совсем корректно. Поэтому рекомендуется использовать команду MENU. Command: MENU
При вводе команды MENU на экране появляется диалоговое окно Select Menu File (Выбор файла меню). Выберите файл меню, который вы хотите загрузить, и щелкните на кнопке Open (Открыть). Можно также загрузить файл меню из командной строки, присвоив переменной FILEDIA значение 0. Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: MENU Enter menu file name or [.(for none)] <текущее имя>: PDM1
Здесь • PDM1 — имя файла меню; • <текущее имя> — имя текущего файла меню. После того как вы введете команду MENU, в командной строке появится приглашение на ввод имени файла. Вводите имя файла без файлового разрешения (.mnu), так как программа AutoCAD предусматривает именно это разрешение. Файл меню автоматически компилируется в файл MNC или MNR.
Мозаичные меню
217
Шаг 5: загрузка файла мозаичного меню Загрузка файла может быть выполнена с помощью команды MENU. Когда вы введете эту команду, на экране появится диалоговое окно Select Menu File (Выбор файла меню). Выберите файл pdm1.mnu и щелкните на кнопке Open (Открыть), как показано на рис. 6.6. Примечание Когда вы загрузите новое меню, исходное меню, которое до этого отображалось на экране, станет недоступным. В этом случае в строке меню появятся только те выпадающие меню, которые были определены в новом меню. Тем не менее, вы сможете вызывать любые команды, вводя соответствующие выражения в командную строку.
Рис. 6.6. Диалоговое окно Select Menu File
Чтобы загрузить исходное меню (acad.mnu), откройте диалоговое окно Select Menu File (Выбор файла меню), введя выражение MENU в командную строку. Выберите файл acad.mnu, который находится в каталоге C:\Documents and Settings\Owner\ Application Data\Autodesk\AutoCAD 2004\R16.0\enu\support. Если вы работаете в операционной системе Windows 98, эти файлы расположены в каталоге C:\Windows\ Local Settings\Application Data\Autodesk\AutoCAD 2004\R16.0\enu\support.
Ограничения Выпадающие и мозаичные меню не только просты в работе, но и обеспечивают быстрый доступ к часто используемым командам программы AutoCAD. Тем не менее существуют команды, во время выполнения которых строка меню и опции выпадающих и мозаичных меню становятся недоступными. Команда TEXT После того как вы введете команду TEXT и установите высоту и угол поворота текста, опции меню будут отображаться на экране, но перестанут работать.
218
Глава 6
Команда SKETCH Когда вы установите приращение записи в команде SKETCH, меню станут недоступными.
Упражнение 1 Напишите файл мозаичного меню для вставки блоков, показанных на рис. 6.7. Разделите условные обозначения на две категории, создавая таким образом мозаичное меню с двумя подменю. PIPE FITTINGS GLOBE-P GLOBE REDUCER CHECK
ELECTRIC SYMBOLS BATTERY CAPACITOR COUPLER BREAKER
Элементы электрической цепи Гальванический элемент Конденсатор Ответвитель Прерыватель
Рис. 6.7. Пиктограммы условных обозначений для упражнения 1
Метки элементов мозаичного меню В мозаичных меню, так же как в экранных или выпадающих меню, могут использоваться метки элементов меню. Тем не менее, метки элементов мозаичного меню сохраняются в самых различных форматах, каждый из которых выполняет определенную функцию. В диалоговом окне мозаичного меню метки элементов отображаются в списковом окне, содержащем названия слайдов. Максимальная длина названия составляет 23 символа. Символы, вышедшие за указанные пределы, в списковом окне не отображаются. Следует заметить, что это правило не распространяется на длину команды, которая определена в разделе соответствующего элемента мозаичного меню.
Формат меток элементов меню [slidename]. Метки элементов, имеющие подобный формат, представляют собой имя слайда, показанного в диалоговом окне мозаичного меню. Это имя также отображается в списковом окне, расположенном в левой части мозаичного меню.
Мозаичные меню
219
[slidename, label]. В этом формате выражение slidename является именем слайда, отображенного в мозаичном меню. Однако в отличие от предыдущего формата, в списковом окне отображается не имя слайда, а его метка (label). Например, элемент меню имеет метку [BOLT1,1/2-24UNC-3LG]. В этом случае BOLT1 является именем слайда, а выражение 1/2-24UNC-3LG представляет собой метку элемента, которая будет отображена в списковом окне мозаичного меню. [slidelib(slidename)]. В этом формате выражение slidename является именем слайда, содержащегося в библиотеке слайдов slidelib. Слайд (в виде пиктограммы) показан в окне мозаичного меню, а файловое имя слайда (slidename) отображается в списковом окне соответствующего диалогового окна. [slidelib(slidename,label)]. В этом формате выражение slidename является именем слайда, содержащегося в библиотеке слайдов (slidelib). Слайд отображается в окне мозаичного меню, а файловое имя слайда (slidename) вводится в списковое окно соответствующего диалогового окна. [blank]. С помощью этого элемента создается линия, которая растягивается на всю ширину спискового окна. При этом в диалоговом окне отображается пустое мозаичное окно (т.е. окно без изображения). [ label]. Если перед меткой элемента стоит пробел, программа AutoCAD не выполняет поиск соответствующего слайда, а всего лишь отображает текст этой метки в списковом окне. Например, если элемент меню имеет метку [ EXIT]^C, то в списковом окне появится надпись EXIT. При выборе этого элемента будет выполнена команда отмены (^C), определенная в файле мозаичного меню. Текст метки не отображается в ячейках мозаичного меню.
Пример 2 Создайте раскрывающееся и мозаичное меню, с помощью которых вы сможете выполнять следующие команды и вставлять условные обозначения, выполненные в виде блоков В1–В15. BLOCK WBLOCK ATTDEF LIST INSERT BL1 BL2 BL3 BL4 BL5
BL6 BL7 BL8 BL9 BL10
BL11 BL12 BL13 BL14 BL15
Шаг 1: создание блоков и слайдов Начертите геометрические фигуры, соответствующие именам различных блоков, показанных в этом примере. Преобразуйте эти фигуры в блоки и создайте слайды с соответствующими именами.
220
Глава 6
Шаг 2: проектирование мозаичного меню Второй этап создания мозаичного меню состоит в разработке наиболее подходящего проекта. Один из возможных вариантов меню показан на рис. 6.8. При выборе команды Insert из выпадающего меню, в диалоговом окне отобразятся пиктограммы мозаичного меню и названия созданных блоков.
Рис. 6.8. Структура меню и диалогового окна для примера 2
Шаг 3: запись мозаичного меню Для записи меню можно использовать любой текстовый редактор. Ниже приведен листинг файла меню, описанного в примере 2. Этот файл содержит разделы выпадающего и мозаичного меню. Номера строк не являются частью программного кода, а используются только для ссылок. ***POP1 [INSERT] [BLOCK]^C^CBLOCK [WBLOCK]^C^CWBLOCK [ATTRIBUTE DEFINITION]^C^CATTDEF [LIST BLOCK NAMES]^C^CINSERT;? [INSERT]^C^C$I=IMAGE $I=* [--] [ATTDIA-ON]^C^CSETVAR ATTDIA 1 [ATTDIA-OFF]^C^CSETVAR ATTDIA ***IMAGE **IMAGE1 [BLOCK INSERTION FOR EXAMPLE-2] [BL1]^C^CINSERT;BL1;\1.0,1.0;\ [BL2]^C^CINSERT;BL2;\1.0,1.0;0 [BL3]^C^CINSERT;BL3;\;;\ [BL4]^C^CINSERT;BL4;\;;; [BL5]^C^CINSERT;*BL5;\1.75 [BL6]^C^CINSERT;BL6;\XYZ [BL7]^C^CINSERT;BL7;\XYZ;;;\0
В этой строке находится метка раздела первого меню. К этому разделу относятся все элементы меню, определенные в строках со 2 по 10.
Строка 12 ***IMAGE
Эта строка содержит метку раздела мозаичного меню.
Строка 13 **IMAGE1
Выражение IMAGE1 является именем подменю, в котором содержатся элементы, определенные в строках с 14 по 29.
Строка 15 [BL1]^C^CINSERT;BL1;\1.0,1.0;\
В этой строке содержится выражение BL1, которое является именем слайда, и команда INSERT, входящая в программу AutoCAD. • INSERT — команда AutoCAD; • BL1 — файловое имя слайда; • 1.0,1.0 — масштабные коэффициенты X и Y.
Шаг 4: сохранение файла меню Сохраните файл меню под именем imex2.mnu.
Шаг 5: загрузка файла меню Загрузите меню, используя для этого команду MENU.
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Мозаичное меню также называется ________. 2. Мозаичное меню ________ загрузить, введя соответствующую команду с клавиатуры. 3. Подменю мозаичного меню начинается символом ________.
222
Глава 6
4. Для загрузки мозаичного подменю в программе AutoCAD используется специальная команда ________. 5. Мозаичное меню содержит метку раздела ________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Максимальное количество символов, отображаемых в метке элемента меню, равно ________. 2. Пиктограммы мозаичного меню отображаются в ________ окне. 3. Мозаичное меню можно закрыть, введя с клавиатуры команду ________. 4. Диалоговое окно мозаичного меню может содержать до _________ пиктограмм. 5. Пустая строка, содержащаяся в файле мозаичного меню, ________ мозаичное меню. 6. Перед созданием слайда необходимо _______ начерченную фигуру на весь экран. 7. Слайды, предназначенные для мозаичного меню, ________ содержать областей, заполненных сплошным цветом. 8. Планшетное меню ________ обратиться к мозаичному меню.
Упражнения Упражнение 2 (Общее) Напишите мозаичное меню для вставки следующих блоков: B1
B4
B7
B2
B5
B8
B3
B6
B9
Упражнение 3 (Общее) Напишите мозаичное меню, содержащее следующие команды AutoCAD. Создайте слайды, которые будут графически иллюстрировать функции, выполняемые этими командами. LINE PLINE
CIRCLE C,R CIRCLE C,D CIRCLE 2P
Упражнение 4 (Общее) Напишите мозаичное меню для вставки следующих блоков. Блоки В и С должны находиться в отдельных диалоговых окнах мозаичного меню. B1
B4
B7
C1
C4
C7
B2
B5
B8
C2
C5
C8
B3
B6
B9
C3
C6
C9
Ответы на вопросы для самопроверки 1 — пиктограммное меню, 2 — нельзя, 3 — **, 4 — $I=*, 5 — ***IMAGE.
Глава 7
Кнопочные и вспомогательные меню
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • создавать кнопочные меню; • выполнять специальную обработку кнопочных меню; • определять и загружать подменю кнопочных меню.
224
Глава 7
Кнопочные меню В программе AutoCAD в качестве координатно-указательного устройства в большинстве случаев используется стандартная мышь. Тем не менее, для определения точек, выделения объектов и выполнения различных команд могут использоваться также специальные многокнопочные устройства. Координатно-указательные устройства могут иметь различное количество кнопок, но наибольшее распространение получили четырехи двенадцатикнопочные устройства. Помимо определения точек и выделения объектов многокнопочные координатно-указательные устройства также служат для вызова часто используемых команд и макросов AutoCAD. Выбор нужной команды осуществляется нажатием соответствующей кнопки. Программа AutoCAD автоматически выполняет команду или макрос, который был назначен этой кнопке. Координатно-указательное устройство с 12 кнопками показано на рис. 7.1.
Рис. 7.1. Координатно-указательное устройство с 12 кнопками
В программе AutoCAD имеется встроенное стандартное кнопочное меню, которое является частью файла acad.mnu. Стандартное меню автоматически загружается при запуске AutoCAD и при входе в режим графического редактирования. Несмотря на это вы сможете записать собственное кнопочное меню и назначить требуемые команды или макросы различным кнопкам вашего координатно-указательного устройства.
Запись кнопочного меню Файл меню может содержать четыре кнопочных (BUTTONS1, BUTTONS2, BUTTONS3 и BUTTONS4) и четыре вспомогательных (AUX1, AUX2, AUX3 и AUX4) меню. Кнопочные и вспомогательные меню функционируют практически одинаково, но при этом зависят от используемой операционной системы. Если в вашей системе имеется координатно-указательное устройство (например, цифровая координатная шайба), AutoCAD автоматически назначает кнопкам этого устройства команды, определенные в файле меню в разделе BUTTONS1. При загрузке файла меню команды, определенные в указанном разделе файла, назначаются кнопкам координатной шайбы, которая представляет собой координатно-указательное устройство со следящим перекрестьем. В этом случае системная мышь будет использовать только вспомогательные меню. Можно также обращаться к другим кнопочным меню (BUTTONS2, BUTTONS3 или BUTTONS4), используя следующие комбинации кнопок и клавиш (клавиш клавиатуры и кнопок координатной шайбы).
Кнопочные и вспомогательные меню Вспомогательное меню
Кнопочное меню
AUX1 AUX2
BUTTONS1 BUTTONS2
AUX3
BUTTONS3
AUX4
BUTTONS4
225
Комбинация “клавиша+кнопка” Нажмите кнопку координатно-указательного устройства Нажмите клавишу <Shift> и, удерживая ее нажатой, нажмите кнопку координатно-указательного устройства Нажмите клавишу и, удерживая ее нажатой, нажмите кнопку координатно-указательного устройства Нажмите клавиши <Shift> и и, удерживая их нажатыми, нажмите кнопку координатно-указательного устройства
Одна из кнопок (обычно первая) используется в качестве кнопки указания, с помощью которой можно определить координаты экранного перекрестья и отправить эту информацию в программу AutoCAD. Эта кнопка может также использоваться для выбора команд из различных меню — планшетных, экранных или мозаичных. Для ввода команд эта кнопка не подходит. Тем не менее, это не мешает вам назначать нужные команды другим кнопкам координатно-указательного устройства. Прежде чем записывать кнопочное меню, необходимо решить, какие команды и опции будут назначены тем или другим кнопкам, а также выяснить, какие параметры связаны с этими командами. Работа кнопочного меню и процедура назначения команд кнопкам координатно-указательного устройства иллюстрируется следующим примером. Примечание Первая строка, расположенная под меткой раздела меню ***AUX или ***BUTTONS1, используется только в том случае, когда значение системной переменной SHORTCUTMENU равно 0. Если этой переменной присвоено какое-нибудь другое значение, используется встроенное меню. Точно так же, вторая строка после метки раздела ***AUX или ***BUTTONS1 используется только тогда, когда значение системной переменной MBUTTONPAN равно 0.
Пример 1 Напишите файл кнопочного меню, содержащего следующие команды AutoCAD. Координатно-указательное устройство имеет 12 кнопок (рис. 7.2), причем кнопка под номером 1 используется как кнопка указания. (Сохраните файл меню под именем bm1.mnu.)
Рис. 7.2. Координатно-указательное устройство
226
Глава 7
Кнопка 2 4 6 8 10 12
Функция RETURN CURSOR MENU ORTHO INT,END CIRCLE ZOOM Prev
Кнопка 3 5 7 9 11
Функция CANCEL SNAP AUTO LINE ZOOM Win
Шаг 1: запись файла меню Для записи файла меню можно воспользоваться командой EDIT или каким-нибудь текстовым редактором. Ниже приведен листинг файла кнопочного меню, описанного в примере 1. Номера строк не являются частью программного кода и используются только для ссылок. ***BUTTONS1 ; ^C^C $P0=* ^B ^O AUTO INT,ENDP ^C^CLINE ^C^CCIRCLE 'ZOOM;Win 'ZOOM;Prev
1 2 3 4 5 6 7 8 9 10 11 12
Строка 1 ***BUTTONS1
Выражение ***BUTTONS1 является меткой раздела первого кнопочного меню. Во время загрузки меню выполняется компилирование файла меню и команды назначаются соответствующим кнопкам координатно-указательного устройства.
Строка 2 ;
В этой строке содержится точка с запятой (;), которая назначается кнопке под номером 2. Определив вторую кнопку координатно-указательного устройства, вы получаете возможность вводить команду RETURN, нажимая эту кнопку. Этот процесс ничем не отличается от ввода команды RETURN с помощью клавиатуры или кодирующего преобразователя.
Строка 3 ^C^C
Выражение, содержащееся в этой строке, дважды отменяет выполнение существующей команды (^C^C). Эта команда назначается кнопке под номером 3. При нажатии третьей кнопки координатно-указательного устройства существующая команда отменяется два раза.
Кнопочные и вспомогательные меню
227
Строка 4 $P0=*
Выражение, содержащееся в этой строке, обеспечивает загрузку и отображение контекстного меню POP0, опции которого определяют различные режимы объектной привязки. Предполагается, что меню POP0 определено в файле меню. Эта команда назначается кнопке под номером 4. При нажатии четвертой кнопки координатно-указательного устройства будет выполнена загрузка и отображение контекстного меню в том месте, где находится перекрестье курсора.
Строка 5 ^B
Выражение, содержащееся в этой строке, позволяет изменять режим объектной привязки. Эта команда назначена кнопке под номером 5. Нажимая пятую кнопку координатноуказательного устройства, вы тем самым включаете и выключаете режим объектной привязки. Это равносильно тому, что вы нажмете клавишу и, удерживая ее нажатой, нажмете буквенную клавишу .
Строка 6 ^O
Выражение, содержащееся в этой строке, позволяет изменять режим ортогональности (ORTHO) геометрических построений. Эта команда назначается кнопке под номером 6. При нажатии шестой кнопки координатно-указательного устройства происходит включение или выключение режима ортогональности.
Строка 7 AUTO
Эта строка содержит опцию AUTO, которая позволяет создавать номенклатуру выбора различных объектов. Данная опция назначается седьмой кнопке координатно-указательного устройства.
Строка 8 INT,ENDP
Команда, содержащаяся в этой строке, состоит из выражения INT, которое выполняет привязку объекта к точке пересечения (Intersection Osnap), и выражения ENDP, обеспечивающего привязку к конечной точке (Endpoint Osnap). Эта команда назначается восьмой кнопке координатно-указательного устройства. При нажатии этой кнопки программа AutoCAD выполняет поиск ближайшей точки пересечения. Если такой точки не существует, AutoCAD начинает поиск конечной точки объекта, находящейся в отборочной рамке.
Строка 9 ^C^CLINE
Эта строка определяет команду LINE (ОТРЕЗОК), которая назначается кнопке под номером 9. Нажатие этой кнопки приводит к отмене текущей команды и вызову команды LINE.
228
Глава 7
Строка 10 ^C^CCIRCLE
Этот элемент меню определяет команду CIRCLE (КРУГ), которая назначается кнопке под номером 10. Нажатие этой кнопки приводит к выбору команды CIRCLE и появлению приглашения на ввод необходимых данных.
Строка 11 'ZOOM;Win
Выражение, содержащееся в этой строке, определяет прозрачную команду ZOOM (ПОКАЗАТЬ) с опцией Window (Рамка). Эта команда назначается одиннадцатой кнопке координатно-указательного устройства. Здесь • ' — одинарная кавычка, которая делает команду ZOOM прозрачной; • ZOOM — команда AutoCAD; • ; — точка с запятой, обеспечивающая ввод команды RETURN; • Win — опция Window (Рамка) команды ZOOM (ПОКАЗАТЬ).
Строка 12 'ZOOM;Prev
Выражение, содержащееся в этой строке, определяет прозрачную команду ZOOM с предыдущей опцией (Prev). Эта команда назначается двенадцатой кнопке координатноуказательного устройства.
Шаг 2: загрузка файла меню Сохраните файл под именем bm1.mnu, а затем загрузите его, используя команду MENU (МЕНЮ). Примечание Если число элементов кнопочного меню превышает количество кнопок, имеющихся в координатно-указательном устройстве, то элементы меню, оставшиеся без кнопок, игнорируются. Кнопка указания в это число не входит. Например, если координатно-указательное устройство имеет помимо кнопки указания еще три кнопки, первые три элемента меню будут назначены кнопкам 2, 3 и 4. Остальные строки кнопочного меню будут игнорироваться. Команды присваиваются кнопкам в таком же порядке, в каком они расположены в файле меню. Например, элемент меню, определенный в строке 3, автоматически назначается кнопке под номером 4. Точно так же, команда, определенная в четвертой строке файла, будет назначена пятой кнопке координатно-указательного устройства. Это правило справедливо также и для других кнопок и элементов кнопочного меню. Для загрузки полного меню следует использовать команду MENU. Это связано с тем, что при загрузке меню с помощью команды MENULOAD разделы AUXn и BUTTONSn игнорируются.
Специальная обработка кнопочных меню При нажатии одной из кнопок многокнопочного координатно-указательного устройства программа AutoCAD получает следующую информацию: 1) номер кнопки; 2) координаты экранного перекрестия.
Кнопочные и вспомогательные меню
229
Это дает вам возможность написать кнопочное меню, полностью или частично использующее полученные данные. В следующем примере показано определение команды, в котором используется только номер кнопки, а координаты экранного перекрестия игнорируются: Пример ^C^CLINE
Допустим, что эта команда назначена второй кнопке координатно-указательного устройства. Когда вы нажмете эту кнопку, AutoCAD получит номер кнопки и координаты курсора, имеющего форму перекрестия. Программа выполнит команду, назначенную второй кнопке, но проигнорирует координаты перекрестия. В следующем примере приведено определение команды, в котором используется как номер кнопки, так и координаты экранного перекрестия: Пример ^C^CLINE;\
В этой строке после команды LINE стоит точка с запятой (;) и обратная косая черта (\). Точка с запятой дает тот же результат, что и нажатие клавиши <Enter>, а обратная косая черта создает паузу, которая дает возможность пользователю ввести необходимые параметры. Несмотря на это, программа AutoCAD не позволяет делать паузы при работе с кнопочным меню. Обратная косая черта, содержащаяся в этой строке, обеспечивает использование координат экранного перекрестия, переданных координатно-указательным устройством, в качестве координат начальной точки (точка From (От)) вычерчиваемой линии. После этого в командной строке появится приглашение на ввод координат второй точки (точки To (До)).
Пример 2 Напишите файл кнопочного меню, содержащего следующие команды AutoCAD. Используемое координатно-указательное устройство имеет семь кнопок, как показано на рис. 7.3. Там, где это возможно, элементы меню должны использовать информацию о расположении экранного перекрестия (координаты точек).
Рис. 7.3. Координатно-указательное устройство с семью кнопками
230
Глава 7
Кнопка 1 2 3 4 5 6 7
Функция PICK ENTER (RETURN) ERASE (с опциями SI и NEAR) INT,ENDP LINE PLINE CIRCLE
Шаг 1: запись файла меню Ниже приведен листинг файла кнопочного меню, описанного в примере 2. Номера строк не являются частью программного кода, а используются только для ссылок. ***BUTTONS1 ; ^C^CERASE;SI;NEAR;\ INT,ENDP;\ LINE;\ PLINE;\ CIRCLE;\
1 2 3 4 5 6 7
Строка 3 ^C^CERASE;SI;NEAR;\
Эта строка определяет команду ERASE с опцией выбора одного объекта (SI) и привязкой к ближайшему объекту (NEAR). Обратная косая черта (\) обеспечивает получение координат, определяющих положение экранного перекрестия. Эта команда назначена третьей кнопке координатно-указательного устройства. При выделении какого-либо объекта и нажатии третьей кнопки происходит удаление выбранного объекта, после чего программа AutoCAD автоматически возвращается в режим командной строки. Здесь • SI — режим выбора одного объекта; • NEAR — привязка к ближайшему объекту; • \ — получение координат экранного перекрестия.
Строка 4 INT,ENDP;\
Команда, содержащаяся в этой строке, состоит из выражения INT, которое выполняет привязку объекта к точке пересечения (Intersection Osnap), и выражения ENDP, обеспечивающего привязку к конечной точке (Endpoint Osnap). Эта команда назначается четвертой кнопке координатно-указательного устройства. При нажатии этой кнопки программа AutoCAD выполняет поиск ближайшей точки пересечения. Если такой точки не существует, AutoCAD начинает поиск конечной точки объекта, находящейся в отборочной рамке. Обратная косая черта обеспечивает получение координат, определяющих положение экранного перекрестия. Если перекрестие расположено рядом с объектом, находящимся в отборочной рамке, то при нажатии четвертой кнопки координатно-указательного устройства программа AutoCAD привязывается к точке пересечения или к конечной точке данного объекта.
Кнопочные и вспомогательные меню
231
Здесь • INT — привязка объекта к точке пересечения; • ENDP — привязка объекта к конечной точке; • \ — получение координат экранного перекрестия.
Строка 7 CIRCLE;\
Команда, определенная в этой строке, используется для построения окружности. Обратная косая черта (\) обеспечивает получение координат экранного перекрестия, определяющих положение центра генерируемой фигуры. Эта команда назначается кнопке под номером 7. При нажатии седьмой кнопки координатно-указательного устройства текущее положение экранного перекрестия автоматически становится центром окружности, что избавляет вас от необходимости вводить соответствующие координаты. Чтобы начертить окружность, достаточно всего лишь указать радиус этой фигуры.
Шаг 2: загрузка файла меню Сохраните файл меню, а затем загрузите его, используя для этого команду MENU. Примечание Данные о координатах, ассоциированные с определенной кнопкой, могут использоваться только с первой обратной косой чертой. В том случае, если элемент кнопочного меню содержит несколько таких символов (\), остальные обратные косые игнорируются. Например, в следующем пункте меню первая обратная косая обеспечивает использование координат экранного перекрестия для определения положения точки вставки, а остальные символы игнорируются и в отличие от других меню не создают пауз, позволяющих вводить необходимые параметры.
Пример INSERT;B1\\\0
где • \ — координаты точки вставки; • \ — масштабный коэффициент X; • \ — масштабный коэффициент Y; • 0 — величина угла поворота.
Подменю кнопочного меню Возможность определения подменю свойственна не только экранным, раскрывающимся или мозаичным меню. Для этого могут использоваться также кнопочные меню.
Определение подменю Определение подменю состоит из имени создаваемого подменю и двух звездочек (**), стоящих перед этим именем. Меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. К подменю принадлежат все элементы, начиная с метки подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет следующий формат: **Имя
232
Глава 7
где • ** — две звездочки (**), обозначающие подменю; • Имя — имя подменю. Примечание
• Длина имени подменю не должна превышать 31 символ. • Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_).
• Использование пробелов в имени подменю не допускается. • В файле меню необходимо использовать уникальные имена подменю.
Ссылка на подменю Ссылка на подменю используется для вызова или загрузки подменю. Она состоит из буквы, определяющей раздел меню, и знака доллара ($), стоящего перед ней. Для определения раздела кнопочного меню используется буква “B”. После имени раздела меню ставится знак “равно” (=), а затем вводится имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат: $Раздел=Подменю,
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $B=BUTTON1
где • $B — описатель раздела кнопочного меню; • BUTTON1 — имя подменю.
Загрузка меню Кнопочное меню позволяет загрузить любое меню, определенное в разделах экранного, раскрывающегося или мозаичного меню. Для этого используется соответствующая команда загрузки. В большинстве приложений такая необходимость не возникает, но если вы хотите, можете загрузить меню, определенные в других разделах.
Загрузка экранного меню Для загрузки меню, определенного в разделе экранного меню, обычно используется следующая команда загрузки: $S=X $S=INSERT
Кнопочные и вспомогательные меню
233
где • S — буква, определяющая экранное меню; • X — имя подменю, определенного в разделе экранного меню; • INSERT — имя подменю, определенного в разделе экранного меню. При выполнении первой команды ($S=X) происходит загрузка подменю X, определенного в разделе экранного меню. Количество пустых строк, содержащихся в подменю X, может достигать 21, поэтому при загрузке данного подменю экранное меню очищается. При выполнении второй команды ($S=INSERT) происходит загрузка подменю INSERT, определенного в том же разделе файла меню.
Загрузка меню из кнопочного меню Для загрузки меню из кнопочного меню обычно используется следующая команда: $P1=P1A $P1=*
где • $P1=P1A — загрузка подменю P1A; • $P1=* — отображение диалогового окна. При выполнении первой команды ($P1=P1A) происходит загрузка подменю P1A, определенного в файле меню в разделе РОР1. Вторая команда ($P1=*) обеспечивает отображение нового элемента меню.
Загрузка мозаичного меню Для загрузки мозаичного меню обычно используется следующая команда: $1=IMAGE1 $1=*
где • $1=IMAGE1 — загрузка подменю IMAGE1; • $1=* — отображение диалогового окна. В этом пункте меню содержится две команды загрузки. При выполнении первой команды ($1=IMAGE1) происходит загрузка графического подменю IMAGE1, определенного в файле меню в разделе графического меню. При выполнении второй команды ($1=*) на экране появляется новое диалоговое окно.
Пример 3 Напишите кнопочное меню для координатно-указательного устройства с шестью кнопками. Присвойте этому файлу имя bm3.mnu. Функции, назначенные кнопкам этого устройства, показаны в следующей таблице: Подменю 1
1. Кнопка указания 2. Команда ENTER 3. Загрузка подменю IMAGE1 4. Команда EXPLODE (РАСЧЛЕНИТЬ) 5. Загрузка кнопочного подменю B1 6. Загрузка кнопочного подменю B2
234
Глава 7 Примечание Подменю OSNAPS определено в разделе меню POP1, а подменю ZOOM1 — в разделе экранного меню. Подменю IMAGE1, определенное в разделе мозаичного меню IMAGE, содержит четыре пиктограммы, которые могут быть использованы для вставки блоков.
В этом примере кнопочное меню содержит два подменю. Подменю 1 загружается при нажатии кнопки 5, а подменю 2 — при нажатии кнопки 6. При загрузке подменю B1 программа AutoCAD назначает кнопкам координатно-указательного устройства команды, которые были определены в подменю B1. Точно так же, при загрузке подменю B2 программа AutoCAD назначает команды, определенные в этом подменю, соответствующим кнопкам координатно-указательного устройства. Команды, назначаемые кнопкам устройства при загрузке подменю B1 и B2, показаны на рис. 7.4.
Рис. 7.4. Команды, назначенные кнопкам координатно-указательного устройства
Шаг 1: запись файла меню Для записи файла можно воспользоваться командой EDIT. Ниже приведен листинг файла кнопочного меню, описанного в примере 3. Номера строк не являются частью файла, а используются только для ссылок. ***BUTTON **B1 ; $P1=* $'ZOOM;Win $B=B1 $B=B2 **B2 ; ^C^C$I=IMAGE1 $I=* EXPLODE;\ $B=B1 $B=B2
1 2 3 4 5 6 7 8 9 10 11 12 13
Кнопочные и вспомогательные меню
235
Строка 2 **B1
Выражение, содержащееся в этой строке, определяет подменю с именем B1.
Строка 4 $P1=*
Этот пункт меню обеспечивает загрузку и отображение раскрывающегося меню, определенного в разделе меню POP1.
Строка 5 'ZOOM;Win
Выражение, содержащееся в этой строке, определяет прозрачную команду ZOOM (ПОКАЗАТЬ) с опцией Window (Рамка).
Строка 8 **B2
Выражение, содержащееся в этой строке, определяет подменю B2.
Строка 10 ^C^C$I=IMAGE1 $I=*
Этот пункт меню дважды отменяет существующую команду, а затем загружает подменю IMAGE1, определенное в мозаичном меню IMAGE. Команда $I=* выводит на экран текущее диалоговое окно. Здесь • ^C^C$ — дважды отменяет существующую команду; • I=IMAGE1 — загружает подменю IMAGE1; • $I=* — отображение диалогового окна мозаичного меню.
Строка 11 EXPLODE;\
В этой строке определена команда, которая позволяет расчленить выделенный объект. Эта команда использует специальную функцию координатно-указательного устройства, которая обеспечивает получение координат экранного перекрестия. При нажатии кнопки, которой назначена эта команда, объект, находящийся в месте расположения перекрестия, разделяется на элементарные фигуры. Здесь • EXPLODE — команда AutoCAD; • ; — точка с запятой (;), выполняющая роль команды ENTER; • \ — обратная косая черта, обеспечивающая использование координат экранного перекрестия для определения точки вставки.
Строка 12 $B=B1
Этот элемент загружает подменю B1 и назначает функции, определенные в строках этого подменю, соответствующим кнопкам координатно-указательного устройства.
236
Глава 7
Строка 13 $B=B2
Данный элемент загружает подменю B2 и назначает функции, определенные в строках этого подменю, соответствующим кнопкам координатно-указательного устройства.
Шаг 2: загрузка файла меню Сохраните файл под именем bm3.mnu, а затем загрузите меню, используя команду MENU.
Вспомогательные меню Файл меню может содержать до четырех разделов вспомогательного меню (AUX1, AUX2, AUX3 и AUX4). Разделы вспомогательного меню (***AUXn) работают точно так же, как и разделы кнопочного меню. Разница только в аппаратном обеспечении. Если в вашей системе имеется стандартная мышь, автоматически используется вспомогательное меню. По своим функциям меню BUTTONS1 соответствует меню AUX1, меню BUTTONS2 — меню AUX2 и т.д. Стандартная мышь имеет две или три кнопки. Для обращения к одному из вспомогательных меню обычно используется сочетание “клавиатура+мышь” (т.е. клавиши клавиатуры и кнопки мыши). Использование комбинаций кнопок и клавиш зависит от количества кнопок, которые имеет системная мышь. Ниже приведены комбинации “клавиша+кнопка” для двухкнопочной мыши. Вспомогательное меню
Комбинация “клавиатура+мышь”
AUX1 AUX2 AUX3 AUX4
Правая кнопка мыши Клавиша <Shift> и правая кнопка мыши Клавиша и правая кнопка мыши Клавиши <Shift+Ctrl> и правая кнопка мыши
Ниже приведены комбинации “клавиша+кнопка” для трехкнопочной мыши. Вспомогательное меню
Комбинация “клавиатура+мышь”
AUX1
Правая кнопка мыши Средняя кнопка мыши Клавиша <Shift> и правая кнопка мыши Клавиша <Shift> и средняя кнопка мыши Клавиша и правая кнопка мыши Клавиша и средняя кнопка мыши Клавиши <Shift+Ctrl> и правая кнопка мыши Клавиши <Shift+Ctrl> и средняя кнопка мыши
AUX2 AUX3 AUX4
Следующий пример иллюстрирует использование вспомогательного меню, предназначенного для двухкнопочной мыши. Можно также создавать вспомогательные меню, рассчитанные на трехкнопочную мышь. Для удобства пользователя некоторые наиболее часто используемые команды могут быть назначены кнопкам стандартной мыши.
237
Кнопочные и вспомогательные меню
Пример 4 Напишите вспомогательное меню, содержащее следующие команды AutoCAD (сохраните файл меню под именем aux1.mnu). Вспомогательное меню
Функция
AUX1
MOVE (ПЕРЕНЕСТИ)
AUX2
COPY (КОПИРОВАТЬ)
AUX3
ERASE (СТЕРЕТЬ)
AUX4
SCALE (МАСШТАБ)
Шаг 1: запись файла меню Для записи файла обычно используется какой-нибудь текстовый редактор или команда EDIT. Ниже приведен листинг файла вспомогательного меню, описанного в примере 4. Номера строк не являются частью файла, а используются только для ссылок. ***AUX1 MOVE ***AUX2 COPY ***AUX3 ERASE ***AUX4 SCALE
1 2 3 4 5 6 7 8 9 10
Строка 1 ***AUX1
Здесь AUX1 — метка раздела, предназначенного для первой кнопки мыши. При загрузке меню AutoCAD компилирует файл и назначает команды меню соответствующим кнопкам мыши.
Строка 2 MOVE
Команда MOVE (ПЕРЕНЕСТИ) назначается первой кнопке мыши (AUX1). При нажатии правой кнопки мыши происходит активизация команды MOVE и ее ввод в командную строку.
Строка 3 Пустая строка используется для разделения вспомогательных меню. Как правило, все вспомогательные меню должны заканчиваться пустой строкой. Подобное описание подойдет и для остальных вспомогательных меню.
Шаг 2: загрузка файла меню Сохраните файл под именем aux1.mnu, а затем загрузите его, используя команду MENU.
238
Глава 7
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Наибольшее распространение получили координатно-указательные устройства, содержащие ________ или ________ кнопок. 2. Файл меню может иметь до ________ разделов вспомогательного меню. 3. Подменю могут также быть ________ и в кнопочном меню. 4. Имя подменю может содержать не более _________ символов. 5. Многокнопочные координатно-указательные устройства могут использоваться для выделения ________ или ввода ________ AutoCAD.
Повторение пройденного материала Ответьте на следующие вопросы. 1. При нажатии одной из кнопок координатно-указательного устройства программа AutoCAD получает ________ кнопки и ________ экранного перекрестия. 2. В том случае, если количество элементов кнопочного меню превышает число кнопок координатно-указательного устройства, элементы меню, не вошедшие в это число, ________. 3. Команды присваиваются кнопкам координатно-указательного устройства в _________ порядке, в каком они располагаются в файле меню. 4. Формат отображения загружаемого меню, определенного в мозаичном меню, зависит от ________. 5. Формат команды LOAD, используемой для загрузки подменю, определенного в мозаичном меню, зависит от ________.
Упражнения Упражнение 1 (Общее) Напишите кнопочное меню, содержащее следующие команды AutoCAD. Координатноуказательное устройство имеет 10 кнопок, как показано на рис. 7.5, причем кнопка под номером 1 используется для определения точек. Вставляемые блоки имеют масштабный коэффициент 1,00 и угол поворота 0 градусов. Сохраните файл под именем bme1.mnu. 1. Кнопка указания 4. OSNAPS 7. INSERT B3 10. ZOOM Previous
2. RETURN 5. INSERT B1 8. ZOOM Window
3. CANCEL 6. INSERT B2 9. ZOOM All
1. B1, B2 и B3 — имена ранее созданных блоков. 2. Предполагается, что подменю Osnap уже определено. 3. Для функций ZOOM Previous и ZOOM Window используйте прозрачную команду ZOOM.
Кнопочные и вспомогательные меню
239
Рис. 7.5. Координатно-указательное устройство с 10 кнопками
Упражнение 2 (Общее) Напишите кнопочное меню для координатно-указательного устройства с 10 кнопками. Функции, назначенные различным кнопкам этого устройства, показаны в следующей таблице и на рис. 7.6. Сохраните файл меню под именем bme2.mnu.
Рис. 7.6. Команды, назначенные кнопкам координатно-указательного устройства
240
Глава 7
Подменю 1
Подменю 2
1. Кнопка указания
1. Кнопка указания
2. Enter
2. Enter
3. LINE (ОТРЕЗОК)
3. Загрузка IMAGE1
4. CIRCLE (КРУГ)
4. Загрузка IMAGE2
5. Загрузка OSNAPS
5. Загрузка P2 (раскрывающееся меню)
6. ZOOM (ПОКАЗАТЬ) с опцией Window (Рамка)
6. Загрузка P3 (раскрывающееся меню)
7. ZOOM (ПОКАЗАТЬ) с опцией Previous (Предыдущая)
7. INSERT (ВСТАВИТЬ)
8. ERASE (СТЕРЕТЬ)
8. EXPLODE (РАСЧЛЕНИТЬ)
9. Загрузка кнопочного меню B1
9. Загрузка кнопочного меню B1
10. Загрузка кнопочного меню B2
10. Загрузка кнопочного меню B2
Предполагается, что: 1) подменю OSNAPS определено в разделе меню РОР1 или РОР0 (меню курсора); 2) меню Р2 и Р3 определены в разделах меню РОР2 и РОР3; 3) подменю IMAGE1 и IMAGE2 определены в файле меню, в разделе IMAGE. Каждое из этих подменю содержит четыре пиктограммы, которые используются для вставки блоков.
Ответы на вопросы для самопроверки 1 — четыре, двенадцать, 2 — четыре, 3 — определены, 4 — тридцати одного, 5 — точек, команд.
Глава 8
Планшетные меню
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • разбираться в функциях планшетного меню; • записывать и настраивать планшетные меню; • загружать и конфигурировать планшетные меню; • создавать планшетные меню с блоками разного размера; • назначать команды накладным шаблонам графического планшета.
242
Глава 8
Стандартное планшетное меню Планшетное меню является одним из альтернативных способов ввода команд. В планшетном меню необходимые команды выбираются из шаблона, закрепленного на поверхности цифрового планшета. В этом случае для работы с меню вам потребуется цифровой планшет и координатно-указательное устройство. Необходим также накладной шаблон (рис. 8.1), содержащий команды AutoCAD, сгруппированные по определенным признакам. Стандартное меню AutoCAD содержит четыре раздела планшетного меню: TABLET1, TABLET2, TABLET3 и TABLET4. Разделы планшетного меню автоматически загружаются при запуске программы AutoCAD и переходе в режим графического редактирования. Команды, определенные в этих разделах, назначаются различным блокам накладного шаблона. Первый раздел планшетного меню (TABLET1) содержит 225 пустых блоков, которые могут быть использованы для назначения 225 пунктов меню. Этот раздел может быть реконфигурирован до 32 766 блоков. Остальные разделы планшетного меню содержат команды AutoCAD, организованные в функциональные группы, которые позволяют упростить идентификацию и получение доступа к требуемым командам. К командам, содержащимся в разделе TABLET2, относятся RENDER, SOLID MODELING, USCICON, DISPLAY, INQUIRY, LAYER, DRAW, ZOOM и PAPER SPACE. В разделе TABLET3 содержатся целые числа, дроби и углы. В свою очередь в разделе TABLET4 содержатся команды TEXT, DIMENSIONING, OBJECT SNAPS, EDIT, UTILITY, XREF и SETTINGS. Накладной шаблон графического планшета имеет четыре области (рис. 8.2), которые соответствуют разделам планшетного меню TABLET1, TABLET2, TABLET3 и TABLET4.
Рис. 8.1. Накладной шаблон графического планшета
Планшетные меню
243
Рис. 8.2. Области накладного шаблона планшета AutoCAD
Функции планшетного меню Планшетное меню имеет следующие свойства. 1. Планшетное меню позволяет располагать команды таким образом, чтобы обеспечить непосредственный доступ к наиболее часто используемым командам. Это дает вам возможность сэкономить время, используемое для ввода команд. Экранное или выпадающее меню не всегда позволяет получить прямой доступ к нужной команде. Например, чтобы проставить горизонтальные размеры, вам придется выполнить несколько операций. Вначале необходимо открыть меню Dimension (Размеры), щелкнув мышью на соответствующем названии в строке меню, а затем выбрать из меню опцию Linear (Линейный). Планшетное меню дает вам возможность выбрать команду Linear прямо из кодирующего преобразователя. Это позволяет сэкономить время, требуемое для пролистывания нескольких экранов. 2. На накладных шаблонах часто рисуют графические символы, которые соответствуют тем или иным командам AutoCAD. Это значительно упрощает распознавание и выбор команд. Например, пользователь, который плохо знаком с системой простановки размеров в программе AutoCAD, может легко запутаться в функциях Baseline Dimension (Задание базовых размеров) и Continue Dimension (Создание размерной цепи). Но если каждая команда сопровождается определенным графическим символом, иллюстрирующим выполняемую функцию, возможность выбора неправильной команды существенно уменьшается. 3. Накладному шаблону графического планшета можно назначить любое количество команд. В свою очередь, количество команд, которые могут быть назначены цифровому планшету, ограничивается только размерами кодирующего преобразователя и соответствующих прямоугольных блоков.
244
Глава 8
Настройка планшетного меню Программа AutoCAD позволяет настраивать не только экранные, но и планшетные меню. Эта возможность является мощным настроечным инструментом, который значительно повышает эффективность программы AutoCAD. Планшетное меню может содержать до четырех разделов: TABLET1, TABLET2, TABLET3 и TABLET4. На цифровом планшете каждому разделу соответствует определенная прямоугольная область. Эти области в свою очередь разделены на несколько прямоугольных блоков. Размеры блоков зависят от количества команд, назначенных данной области цифрового планшета. Прямоугольные области планшета могут находиться в любом месте кодирующего преобразователя и располагаться в любом порядке. Конфигурирование планшета выполняется с помощью команды TABLET (ПЛАНШЕТ). Команда MENU (МЕНЮ) используется для загрузки меню и назначения команд соответствующим прямоугольным блокам, имеющимся на накладном шаблоне. Перед тем как записывать определение планшетного меню, необходимо спроектировать макет шаблона графического планшета. Хорошо продуманный шаблон позволяет сэкономить немало времени, что особенно заметно во время продолжительного периода работы. Существует несколько особенностей, на которые следует обращать внимание при проектировании накладного шаблона графического планшета. 1. Выясните, какие команды AutoCAD будут использоваться при создании чертежей. 2. Сгруппируйте команды по характеру выполняемых функций, форме использования или по их отношению к другим командам. 3. Начертите прямоугольник, изображающий контуры шаблона, который должен обеспечить свободное перемещение координатно-указательного устройства. Размеры очерченной области должны соответствовать вашему приложению, т.е. эта область не должна быть очень маленькой или слишком большой. Не забывайте, что размеры шаблона зависят от размеров активной области кодирующего преобразователя. 4. Разделите оставшуюся часть шаблона на четыре области прямоугольной формы, которые будут использованы для размещения планшетных меню TABLET1, TABLET2, TABLET3 и TABLET4. Необходимо использовать все четыре области. Планшет может иметь несколько областей, максимальное количество которых равно четырем. 5. Определите количество команд, которые вам необходимо назначить той или другой области планшета, а затем определите число строк и столбцов, которые будут созданы в каждой из этих областей. Размеры блоков, создаваемых в областях шаблонов, могут быть различными. 6. Используя команду TEXT (ТЕКСТ), напечатайте названия команд на накладном шаблоне графического планшета и, если это возможно, нарисуйте графические символы, соответствующие этим командам. 7. Напечатайте вычерченный шаблон на листе высококачественной бумаги или на лавсановой пленке (майларе). Если вы хотите изменить положение напечатанного шаблона, перевернув его лицевой стороной к поверхности кодирующего преобразователя, создайте зеркальное отображение накладного шаблона и напечатайте его на плоттере.
245
Планшетные меню
Запись планшетного меню Перед тем как записывать файл планшетного меню, познакомьтесь с командами AutoCAD и теми параметрами, которые придется определять для каждой из этих команд. Не менее важную роль играет также компоновка накладного шаблона и схема расположения различных команд. Особое внимание уделяйте макету и структуре шаблона и не стесняйтесь обращаться к более опытным пользователям AutoCAD, работающим в вашей организации. Чтобы познакомиться с операциями, входящими в процесс разработки и написания планшетного меню, обратитесь к примеру 1.
Пример 1 Напишите планшетное меню, содержащее следующие команды. Схема расположения команд показана на рис. 8.3. Создайте накладной шаблон, с помощью которого вы сможете конфигурировать планшет и выбирать необходимые команды. Сохраните файл меню под именем tm1.mnu. LINE CIRCLE C,D
CIRCLE ERASE
PLINE CIRCLE 2P
Шаг 1: запись планшетного меню На рис. 8.3 показан один из возможных вариантов накладного шаблона, в котором все команды находятся в верхней части шаблона, а экранно-координатная область расположена в центре шаблона. В этом шаблоне имеется только одна область, поэтому все команды можно разместить в разделе TABLET1. Для записи файла меню используется текстовый редактор, такой как Notepad или Wordpad. Файл меню, сохраненный под именем TM1, имеет файловое расширение .MNU. Номера строк не являются частью файла, а используются только для ссылок. ***TABLET1 ^C^CLINE ^C^CPLINE ^C^CCIRCLE ^C^CCIRCLE;\D ^C^CCIRCLE;2P ^C^CERASE
1 2 3 4 5 6 7
Рис. 8.3. Макет накладного шаблона
246
Глава 8
Шаг 2: пояснения к записи определения планшетного меню Строка 1 ***TABLET1
Выражение TABLET1 представляет собой метку раздела первой области планшета. Метки раздела обозначаются тремя звездочками (***). Здесь *** — три звездочки, обозначающие метку раздела; TABLET1 — метка раздела.
Строка 2 ^C^CLINE
Выражение ^ C ^ C дважды отменяет существующую команду; L I N E — команда AutoCAD. Между вторым выражением ^C и именем команды LINE пробел не ставится. Здесь • ^C^C — дважды отменяет существующую команду; • LINE — команда AutoCAD.
Строка 3 ^C^CPLINE
Выражение ^C^C дважды отменяет существующую команду; PLINE — команда AutoCAD.
Строка 4 ^C^CCIRCLE
Выражение ^C^C дважды отменяет существующую команду; CIRCLE команда AutoCAD. По умолчанию при использовании этой команды достаточно указать координаты центра и радиус окружности. Таким образом, вводить какие-либо дополнительные параметры нет никакой необходимости.
Строка 5 ^C^CCIRCLE;\D
Так же, как и в предыдущей строке, ^C^C дважды отменяет существующую команду, а выражение CIRCLE является именем команды AutoCAD. Тем не менее, для этого элемента требуется команда CIRCLE (КРУГ) с опцией, позволяющей ввести диаметр окружности. Для этого в определение команды вводится выражение \D. Между обратной косой чертой (\) и буквой “D” пробел не ставится, но перед обратной косой чертой в обязательном порядке необходимо поставить либо пробел, либо точку с запятой (;). Обратная косая черта позволяет пользователю определить положение точки, которой в данном случае является центр вычерчиваемой окружности. После определения координат центральной точки будет выбрана опция диаметра, для чего используется буква “D”, указываемая после обратной косой черты. Здесь • CIRCLE — команда AutoCAD; • ; — точка с запятой или пробел, выполняющий функцию команды RETURN; • \ — создание паузы для ввода необходимых параметров; • D — опция Diameter (Диаметр).
Планшетные меню
247
Строка 6 ^C^CCIRCLE;2P
Выражение ^C^C дважды отменяет существующую команду; CIRCLE — имя команды AutoCAD. Точка с запятой позволяет ввести команду ENTER или RETURN. Выражение 2P является опцией команды CIRCLE (КРУГ), которая обеспечивает построение окружности по двум точкам.
Строка 7 ^C^CERASE
Выражение ^C^C дважды отменяет существующую команду; ERASE — имя команды AutoCAD, которая обеспечивает стирание выделенных объектов. Примечание Фрагмент строки планшетного меню, заключенный в квадратные скобки, используется только для отображения на экране. Например, выражение T1-6, содержащееся в следующем элементе меню, игнорируется и не оказывает никакого влияния на определение команды. [T1-6]^C^CCIRCLE;2P, где [T1-6] — надпись, используемая только для ссылок и не оказывающая никакого влияния на определение команды; T1 — номер области планшета (1); 6 — номер элемента (6). Ссылочная информация может быть использована для обозначения области планшета и номера строки. Для того чтобы вы смогли использовать команды, содержащиеся в новом планшетном меню, необходимо сконфигурировать графический планшет и загрузить планшетное меню.
Конфигурирование графического планшета Для использования нового накладного шаблона, с помощью которого вы сможете выбирать нужные команды, необходимо инсталлировать драйвер Wintab, а затем сконфигурировать графический планшет. Благодаря этому программа AutoCAD сможет “узнать” местоположение накладного шаблона и схему размещения команд, назначенных каждому блоку этого шаблона. Конфигурирование шаблона выполняется с помощью команды TABLET (ПЛАНШЕТ). Закрепите накладной шаблон (см. рис. 8.3) на лицевой стороне кодирующего преобразователя, обеспечив параллельность границ шаблона и краев преобразователя. Введите команду TABLET, а затем выберите опцию CFG (Configure) и введите соответствующие параметры. Точки, которые вы должны выбрать для конфигурирования планшета, показаны на рис. 8.4. Command: TABLET Enter an option [ON/OFF/CAL/CFG]: CFG Enter number of tablet menus desired (0-4) <current>: 1 Do you want to realing tablet menus? [Yes/No]: : Y Digitize upper left corner of menu area 1; P1 Digitize lower left corner of menu area 1; P2 Digitize lower right corner of menu area 1; P3 Enter the number of columns for menu area 1: 6
248
Глава 8
Enter the number of rows for menu area 1: 1 Do you want to respecify the Fixed Screen Pointing Area? [Yes/No]: : Y Digitize lower left corner of Fixed Screen Pointing Area: P4 Digitize upper right corner of Fixed Screen Pointing Area: P5 Do you want to specify the Floating Screen Pointing Area? [Yes/No]: : N ◊◊◊ Команда: TABLET Введите опцию [ON/OFF/CAL/CFG]: CFG Требуемое количество планшетных меню (0-4) <текущее>: 1 Хотите перегруппировать планшетные меню? [Да/Нет]: <Нет>: Y Определите левый верхний угол области меню 1; P1 Определите левый нижний угол области меню 1; P2 Определите правый нижний угол области меню 1; P3 Количество столбцов в области меню 1: 6 Количество строк в области меню 1: 1 Хотите переопределить фиксированную экранно-координатную область? [Да/Нет]: <Нет>: Y Определите левый нижний угол экранно-координатной области: P4 Определите правый верхний угол экранно-координатной области: P5 Хотите определить плавающую экранно-координатную область? [Да/Нет]: <Нет>: N
Рис. 8.4. Точки, которые необходимо выбрать для конфигурирования планшета
Примечание Линии, соединяющие точки P1, P2 и P3, должны образовывать прямой угол (90 градусов). Если расположение выбранных точек не отвечает этому требованию, программа AutoCAD запросит ввести какие-нибудь другие точки.
Планшетные меню
249
Области планшета не должны перекрывать экранную координатно-указательную область. Экранная область может иметь произвольные размеры и находиться в любом месте планшета, расположенном в активной области кодирующего преобразователя. По своим размерам выбранная экранная область будет соответствовать области экрана вашего монитора. Таким образом, при использовании экранной области планшета для оцифровки изображения, соотношение длины и ширины этой области должно быть точно таким же, как и у вашего монитора.
Загрузка меню При запуске программы AutoCAD автоматически загружается файл acad.mnu (при условии, что файл acad.mnu не был изменен или вместо него не был загружен другой файл меню). Несмотря на это, вы имеете возможность загрузить другой файл меню, используя для этого команду MENU. Command: MENU
При вводе команды MENU в командную строку на экране появляется диалоговое окно Select Menu File (Выбор файла меню), показанное на рис. 8.5. Выберите файл меню, который вы хотите загрузить, и щелкните на кнопке Open (Открыть). Можно также загрузить файл меню из командной строки, присвоив переменной FILEDIA значение 0. Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: MENU Enter menu file name or [.(for none)] <текущий>: PDM1
В этом выражении: • PDM1 — имя файла меню • <текущий> — имя текущего файла меню Файл меню автоматически компилируется в файл MNC или MNR.
Рис. 8.5. Диалоговое окно Select Menu File
250
Глава 8
Упражнение 1 (Общее) Напишите планшетное меню, содержащее следующие команды AutoCAD. Создайте накладной шаблон, который позволит вам конфигурировать планшет и выбирать необходимые команды. Сохраните файл меню под именем tm1.mnu. LINE CIRCLE C,R ARC C,S,E ELLIPSE DONUT
TEXT-Center TEXT-Left TEXT-Right TEXT-Aligned
Для компоновки команд используйте шаблон, показанный на рис. 8.6. Команды рисования и команды обработки текста должны располагаться в разных областях планшета.
Рис. 8.6. Шаблон для упражнения 1
Графический планшет с блоками разного размера Как уже отмечалось, области планшета могут иметь самые разные размеры. Размеры блоков, содержащихся в этих областях, также могут отличаться. Тем не менее, блоки, расположенные в определенной области, должны быть совершенно одинаковы. Это обеспечивает определенную гибкость, которая играет немаловажную роль при проектировании шаблонов. Например, для цифр, дробей и букв подойдут блоки небольшого размера, а для команд рисования потребуются блоки большей величины. Планшетные области можно скомпоновать таким образом, чтобы получить накладной шаблон определенной формы (например, можно создавать области L- или T-образной формы).
Рис. 8.7. Области планшета с блоками разного размера
251
Планшетные меню
Следующий пример иллюстрирует использование нескольких планшетных областей, имеющих блоки разного размера.
Пример 2 Напишите планшетное меню для накладного шаблона, показанного на рис. 8.8. На рис. 8.9 показано число строк и столбцов, содержащихся в различных областях планшета. Сохраните файл меню, присвоив ему имя tm2.mnu.
Рис. 8.8. Накладной шаблон графического планшета для примера 2
Строки 1–6 Первые шесть строк этого файла идентичны первым шести строкам планшетного меню, описанного в примере 1.
Строка 9 ^C^CZOOM;W
Здесь • ZOOM — команда AutoCAD; • ; — точка с запятой, выполняющая функцию команды RETURN; • W — опция Window (Рамка) команды ZOOM (ПОКАЗАТЬ). Этот элемент меню может быть также записан в следующем виде: ^C^CZOOM W
Пробел между именем команды ZOOM и буквой W выполняет ту же функцию, что и ввод команды RETURN.
Строки 17 и 18 ;
Точка с запятой (;) используется вместо команды RETURN. Этот символ дает тот же результат, что и ввод команды RETURN с клавиатуры.
Строки 19–21 'REDRAW
Здесь REDRAW — команда AutoCAD, которая обеспечивает обновление изображения на экране. Обратите внимание, что перед командой REDRAW выражение ^C^C не ставится. Если бы эта строка содержала выражение ^C^C, то перед обновлением изображения существующая команда была бы отменена. В большинстве случаев это нежелательно, так как необходимо выполнить обновление экрана, не отменяя выполняемую команду. Одинарная кавычка ('), стоящая в начале строки, делает команду REDRAW прозрачной.
Строка 23 5\
Обратная косая черта (\) обеспечивает создание паузы, используемой для ввода необходимых параметров. Без этого символа вы не сможете ввести какое-нибудь другое число или букву, так как после выбора цифры 5 автоматически вводится команда RETURN.
Планшетные меню
253
Отсутствие обратной косой черты не позволит вам ввести, например, число 5,6. Таким образом, чтобы обеспечить возможность ввода буквенно-цифровых данных, необходимо ввести обратную косую черту. Для завершения ввода данных введите с клавиатуры команду RETURN или выберите ее из кодирующего преобразователя.
Назначение команд блокам планшетного меню После загрузки меню, выполненной с помощью команды MENU, необходимо сконфигурировать графический планшет. В процессе конфигурирования генерируется информация о свойствах прямоугольных блоков накладного шаблона, которая сохраняется в программе AutoCAD. Во время загрузки меню и конфигурирования цифрового планшета команды, определенные в планшетном меню, назначаются соответствующим блокам. Например, при выборе трех точек, определяющих положение области планшета номер 4 (см. рис. 8.8) и вводе количества строк и столбцов, генерируется сетка, состоящая из двух строк и семи столбцов, как показано на рис. 8.10.
Рис. 8.10. Конфигурирование области планшета 4
Когда вы загрузите новое меню, команды, выбранные из раздела TABLET4, заполнят соответствующие блоки шаблона. Заполнение блоков происходит слева направо. Это означает, что команды “5”, “6”, “7”, “8”, “9” и “Window” будут расположены в верхней строке шаблона. Следующие семь команд будут назначены блокам нижней строки. Заполненный шаблон показан на рис. 8.11.
Рис. 8.11. Назначение команд блокам области планшета 4
В свою очередь, область планшета номер 3 содержит пять строк и один столбец. Оказывается, что эта область первоначально имела только две строки и один столбец, как показано на рис. 8.8. После того как вы ее сконфигурируете, определив три крайних точки и указав количество строк и столбцов, эта область будет разделена таким образом, чтобы образовалось пять строк и один столбец (рис. 8.12). После загрузки меню команды выбираются из раздела TABLET3 и назначаются соответствующим блокам. Первая команда (;) находится в первом блоке. Так как в первой строке блоков больше нет, то следующая команда (;) располагается во второй строке.
254
Глава 8
По аналогии с этим, команда REDRAW занимает три следующих строки. Выбирая блок, расположенный в первых двух строках, вы тем самым выбираете команду ENTER. Точно так же, выбирая один из трех следующих блоков, вы выбираете команду REDRAW.
Рис. 8.12. Область планшета 3 после конфигурирования и загрузки планшетного меню
Подобный процесс происходит во всех областях планшета. Вся полученная информация хранится в конфигурационном файле программы AutoCAD (acad2004.cfg). Если конфигурирование планшета по каким-либо причинам было выполнено неправильно, может случиться так, что планшетное меню не будет выполнять требуемые функции.
Автоматическая выгрузка меню Системная переменная MENUCTL может быть использована для автоматической выгрузки экранных меню. Когда переменной MENUCTL присваивается значение 1, программа AutoCAD автоматически выдает команду $S=CMDNAME, где CMDNAME — имя команды, используемой для загрузки подменю. Например, если вы выберете команду LINE (ОТРЕЗОК) из меню кодирующего преобразователя или введете ее с клавиатуры, команда CMDNAME загрузит подменю LINE и отобразит его в области экранного меню. Для использования этой возможности необходимо, чтобы команда и соответствующее подменю имели одинаковые имена. Например, подменю, содержащее команды, используемые при построении дуги, носит название ARC. В этом случае при выборе команды ARC (ДУГА) произойдет автоматическая загрузка соответствующего подменю. Тем не менее, если подменю имеет какое-нибудь другое имя (например, MYARC), то AutoCAD не сможет его загрузить. Значение системной переменной MENUCTL по умолчанию равно 1. Присвоив системной переменной значение 0, вы теряете возможность использовать команду $S=CMDNAME для загрузки подменю.
Планшетные меню
255
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Для использования планшетного меню вам потребуется ________ и ________. 2. Первый раздел планшетного меню позволяет назначить до ________ элементов меню. 3. Метки разделов планшетного меню должны начинаться ________. 4. Планшетные области не должны _________ экранную область графического планшета. 5. Размеры блоков, содержащихся в определенной области планшета, должны быть ________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Планшетное меню может содержать не более ________ разделов. 2. Области планшетного меню должны иметь ________ форму. 3. Блоки, содержащиеся в различных областях планшетного меню, имеют _________ форму. 4. Области планшетного меню могут содержать ________ количество блоков. 5. _________ назначить одну и ту же команду нескольким блокам, находящимся на накладном шаблоне графического планшета. 6. Для конфигурирования шаблона графического планшета используется команда _________. 7. Для загрузки нового меню используется команда ________.
Упражнения Упражнение 2 (Общее) Создайте шаблон и напишите планшетное меню, позволяющее вставлять следующие определяемые пользователем блоки: BX1 BX2 BX3 BX4
BX5 BX6 BX7 BX8
BX9 BX10 BX11 BX12
Упражнение 3 (Общее) Создайте шаблон планшетного меню, содержащего следующие команды AutoCAD: LINE PLINE ARC CIRCLE ELLIPSE POLYGON
Упражнение 4 (Общее) Напишите планшетное меню, содержащее команды, показанные на шаблоне графического планшета (рис. 8.13). Создайте шаблон планшетного меню, который потребуется для конфигурирования планшета и выбора нужных команд.
Рис. 8.13. Шаблон планшетного меню для упражнения 4
Упражнение 5 (Общее) Напишите планшетное меню для команд, показанных на рис. 8.14. Выполните конфигурирование планшета, а затем загрузите новое меню. Создайте шаблон планшетного меню, необходимый для конфигурирования планшета и выбора нужных команд.
Рис. 8.9. Накладной шаблон для упражнения 5
Планшетные меню
257
Упражнение 6 (Общее) Напишите файл планшетного меню для команд, показанных на рис. 8.15. Создайте шаблон планшетного меню, необходимый для конфигурирования планшета и выбора нужных команд.
Рис. 8.15. Шаблон планшетного меню для упражнения 6
Упражнение 7 (Общее) Напишите файл комбинированного меню (выпадающее и планшетное меню) для команд, показанных на рис. 8.16. Создайте шаблон планшетного меню, необходимый для конфигурирования планшета и выбора нужных команд.
Рис. 8.16. Шаблон планшетного меню для упражнения 7
258
Глава 8
Шаблон для примера 1
Рис. 8.17. Шаблон для примера 1
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
Планшетные меню
259
Шаблон для упражнения 1
Рис. 8.18. Шаблон для упражнения 1
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
260
Глава 8
Шаблон для примера 2
Рис. 8.19. Шаблон для примера 2
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
Планшетные меню
261
Шаблон для упражнения 4
Рис. 8.20. Шаблон для упражнения 4
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
262
Глава 8
Шаблон для упражнения 5
ШАБЛОН
Экранно координатная область
Рис. 8.21. Шаблон для упражнения 5
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
Планшетные меню
263
Шаблон для упражнения 6
ШАБЛОН
Рис. 8.22. Шаблон для упражнения 6
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
264
Глава 8
Шаблон для упражнения 7
ШАБЛОН
Экраннокоординатная область
Рис. 8.23. Шаблон для упражнения 7
Примечание Этот шаблон используется для конфигурирования планшета. Можете скопировать эту страницу, а затем прикрепить созданную копию к поверхности кодирующего преобразователя.
Ответы на вопросы для самопроверки 1 — цифровой планшет, координатно-указательное устройство, 2 — стандартный планшет — 225, но может быть реконфигурирован до 32766, 3 — ***, 4 — перекрывать, 5 — одинаковые.
Глава 9
Экранные меню
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • писать определения экранных меню; • загружать экранные меню; • записывать определения подменю и вложенных подменю; • использовать функцию повторения команд при составлении меню; • писать меню для пользователей, говорящих на других языках; • использовать в элементах меню средства управления и специальные символы; • применять определения команд без пробелов или точки с запятой; • использовать элементы меню в режиме выделения одного объекта; • использовать в меню выражения AutoLISP и DIESEL.
266
Глава 9
Экранное меню По умолчанию во время работы в графическом редакторе AutoCAD экранное меню не отображается. Чтобы отобразить экранное меню, откройте диалоговое окно Options (Настройка), выбрав команду ToolsOptions (СервисПараметры). Перейдите на вкладку Display (Экран) и установите флажок опции Display screen menu (Показать экранное меню). После этого закройте диалоговое окно, щелкнув на кнопке ОК. Экранное меню появится в правой части окна программы AutoCAD. В верхней части экранного меню находится надпись “AutoCAD”, под которой расположена строка звездочек (****) и список команд (рис. 9.1). В зависимости от области использования меню, размер файла может варьироваться от трех-четырех до нескольких сотен строк. В файле меню содержатся метки разделов, подменю и элементы меню. Элемент меню, в свою очередь, состоит из метки элемента и определения команды. Метка элемента заключена в квадратные скобки, а определение команды (макрос меню) выносится за скобки. Метка элемента меню, указанная в квадратных скобках, отображается в области экранного меню и не входит в определение команды. В свою очередь, определение команды, т.е. фрагмент элемента, вынесенный за квадратные скобки, является исполняемой частью элемента меню.
Рис. 9.1. Экранное меню, показанное в окне программы AutoCAD
267
Экранные меню
Чтобы познакомиться с процессом разработки и записи экранного меню, рассмотрим следующий пример. [LINE
] $S=X $S=LINE ^C^CLINE
Здесь • [LINE ] $S=X $S=LINE ^C^CLINE — элемент меню; • [LINE ] — метка элемента меню или имя команды; • $S=X $S=LINE ^C^CLINE — определение команды.
Пример 1 Напишите экранное меню, содержащее следующие команды AutoCAD (сохраните файл меню под именем sm1.mnu). LINE CIRCLE C,R CIRCLE C,D CIRCLE 2P ERASE MOVE
Схема расположения команд показана на рис. 9.2. Создаваемое меню называется MENU-1, причем это имя должно быть отображено в верхней части экранного меню. Это позволит вам узнать, какое меню используется в настоящее время. Для записи файла обычно используется какой-нибудь текстовый редактор, но при этом не забывайте о том, что файл меню должен иметь расширение .mnu. В этом примере имя файла экранного меню — sm1.mnu, где sm1 — имя файла, а .mnu — файловое расширение.
Рис. 9.2. Макет экранного меню
Рис. 9.3. Экранное меню после загрузки файла меню
Ниже приведен листинг файла экранного меню, описанного в примере 1. Номера строк в правой части листинга не являются частью файла, а используются только для ссылки. ***SCREEN [ MENU-1 ] [ ] [ ] [LINE ]^C^CLINE [ ]
Здесь ***SCREEN — метка раздела экранного меню. Строки, расположенные под меткой раздела, считаются частью этого меню. Определение экранного меню завершается меткой какого-нибудь другого раздела, например, ***TABLET1 или ***POP1.
Строка 2 [ MENU-1 ]
Эта строка обеспечивает вывод имени меню (MENU-1). Любое выражение, заключенное в квадратные скобки, используется только для отображения на экране и не оказывает никакого влияния на определяемую команду. Длина имени элемента может быть произвольной. Тем не менее, рекомендуется присваивать короткие и значимые имена, что позволяет более рационально использовать пространство экрана.
Строки 3 и 4 [
]
Этот элемент создает пустую строку в экранном меню. В квадратных скобках содержится восемь пробелов. Тем не менее, можно использовать квадратные скобки без пробелов ([]). Эта строка не содержит никакой информации; следовательно, какие-либо команды не выполняются. Чтобы отделить название меню от списка команд или разделить группы команд, можно также ввести в файл меню пустую строку или строку, содержащую две квадратные скобки ([]). Следующая, четвертая строка также создает пустую строку.
Строка 5 [LINE
]^C^CLINE
Эта строка отображает название “LINE” на экране. Первое выражение ^C (знак вставки С) отменяет существующую команду, а второе выражение ^C отменяет ее еще раз. Две команды CANCEL (^C^C) требуются для того, чтобы обеспечить отмену текущей команды перед выполнением новой. С помощью команды CANCEL можно отменить большую часть команд AutoCAD. Тем не менее, для отмены некоторых команд, используемых для редактирования размеров и полилиний, вам придется воспользоваться именно этим способом. Чтобы начертить линию с помощью команды LINE (ОТРЕЗОК), пользователю необходимо ввести соответствующие точки (т.е. определить начало и конец линии). Эта строка заканчивается выражением LINE, поэтому автоматически выполняется команда RETURN. Здесь • [LINE ] — только для отображения на экране; • ^C — ввод первой команды CANCEL; • ^C — ввод второй команды CANCEL; • LINE — команда AutoCAD.
Экранные меню
269
Строка 7 [CIR-C,R ]^C^CCIRCLE
Фрагмент элемента меню, содержащийся в квадратных скобках, используется только для отображения на экране. При выборе этого элемента выполняется часть строки, вынесенная за скобки. В частности, выражение ^C^C (знак вставки С) дважды отменяет существующую команду. CIRCLE — имя команды AutoCAD, используемой для построения окружностей. Пробел, стоящий после выражения CIRCLE, обеспечивает автоматический ввод команды RETURN (пробел выполняет ту же функцию, что и нажатие клавиши <Пробел>). Здесь • [CIR-C,R ] — только для отображения на экране; • ^C — ввод первой команды CANCEL; • ^C — ввод второй команды CANCEL; • CIRCLE — команда AutoCAD.
Строка 8 [CIR-C,D ]^C^CCIRCLE;\D
Фрагмент элемента меню, заключенный в квадратные скобки, используется только для отображения на экране. При выборе этого элемента выполняется часть строки, вынесенная за скобки. В частности, выражение ^C^C (знак вставки С) дважды отменяет существующую команду. Здесь • ^C — ввод первой команды CANCEL; • ^C — ввод второй команды CANCEL; • CIRCLE — команда AutoCAD; • ; — точка с запятой (;), обеспечивающая ввод команды RETURN; • \ — обратная косая черта, создающая паузу для ввода требуемых параметров; • D — опция Diameter (Диаметр). После команды CIRCLE стоит точка с запятой (;), обратная косая черта (\) и буква D, используемая для ввода опции Diameter. Точка с запятой (;), поставленная после имени команды, обеспечивает выполнение команды RETURN и дает тот же результат, что и ввод этой команды с клавиатуры. Обратная косая черта создает паузу, используемую для ввода данных. Буква D представляет собой опцию Diameter (Диаметр), которая автоматически вводится после выполнения команды RETURN. Как показано в следующей строке, точку с запятой можно заменить пробелом. Понятно, что точку с запятой идентифицировать значительно легче. [CIR-C,D ]^C^CCIRCLE \D
В этом выражении пробел между CIRCLE и обратной косой чертой (\) выполняет ту же роль, что и ввод команды RETURN.
Строка 9 [CIR-2P
]^C^CCIRCLE;2P
В этой строке выражение ^C^C дважды отменяет текущую команду. Точка с запятой, стоящая после команды CIRCLE, обеспечивает ввод команды RETURN. Выражение 2Р
270
Глава 9
используется для ввода опции, которая обеспечивает построение окружности по двум точкам. Пробел, стоящий в конце этого выражения, дает тот же результат, что и ввод команды RETURN с клавиатуры. Если вы заметили, последовательность команд и вводимых параметров точно такая же, как и в предыдущей строке. Таким образом, порядок ввода команд и связанных с ними параметров имеет очень важное значение. Ошибки, допущенные при записи файла, могут привести к некорректной работе экранного меню. Здесь • ^C — ввод первой команды CANCEL; • ^C — ввод второй команды CANCEL; • CIRCLE — команда AutoCAD; • ; — точка с запятой (;), обеспечивающая ввод команды RETURN; • 2Р — опция, обеспечивающая построение окружности по двум точкам. Как показано в следующей строке, точку с запятой, стоящую после команды CIRCLE, можно заменить пробелом. Пробел или точка с запятой дает тот же результат, что и ввод команды RETURN. [CIR-2P ]^C^CCIRCLE 2P
В этом выражении пробел между именем команды CIRCLE и опцией 2P используется для ввода команды RETURN.
Строка 11 [ERASE
]^C^CERASE
Выражение ^C^C, содержащееся в этой строке, дважды отменяет существующую команду. ERASE — команда AutoCAD, используемая для стирания выделенных объектов. Здесь • ERASE — команда AutoCAD.
Строка 12 [MOVE
]^C^CMOVE
Выражение ^C^C, содержащееся в этой строке, дважды отменяет существующую команду. MOVE — команда AutoCAD, используемая для перемещения выделенных объектов. Здесь • MOVE — команда AutoCAD.
Загрузка меню Когда вы начинаете работать в графическом редакторе, программа AutoCAD автоматически загружает файл acad.mnu (при условии, что файл acad.mnu не был изменен или вместо него не был загружен другой файл меню). Несмотря на это, вы имеете возможность загрузить другой файл меню, используя для этого команду MENU. Command: MENU
При вводе команды MENU в командную строку на экране появляется диалоговое окно Select Menu File (Выбор файла меню), показанное на рис. 9.4. Выберите файл меню, который вы хотите загрузить, а затем щелкните на кнопке Open (Открыть).
Экранные меню
271
Рис. 9.4. Диалоговое окно Select Menu File
Можно также загрузить файл меню из командной строки, присвоив переменной FILEDIA значение 0. Command: FILEDIA Enter new value for FILEDIA <1>: 0 Command: MENU Enter menu file name or [.(for none)] <текущий>: PDM1
В этом выражении • PDM1 — имя файла меню; • <текущий> — имя текущего файла меню. После того как вы введете команду MENU, в командной строке появится приглашение на ввод имени файла. Введите имя файла без файлового разрешения (.mnu), так как программа AutoCAD предусматривает именно это разрешение. Примечание 1. После загрузки нового меню вы лишаетесь возможности пользоваться экранным меню, кнопочными меню или цифровым преобразователем. Это связано с тем, что исходное меню (т.е. файл acad.mnu) отсутствует, а новое меню не содержит соответствующих областей. 2. Чтобы активизировать исходное меню, загрузите файл acad.mnu, введя соответствующее выражение в командную строку: Command: MENU Enter menu file name or [. (for none)] <текущий>: ACAD.MNU 3. Если вам необходимо с помощью клавиатуры или координатно-указательного устройства ввести в макрос меню какие-либо дополнительные параметры, используйте для этого обратную косую черту (\). Система приостановит свою работу, что даст вам возможность ввести необходимые данные. 4. После обратной косой черты пробел не ставится.
272
Глава 9 5. В определениях команд, названиях элементов меню и метках разделов меню могут использоваться как прописные, так и строчные буквы. 6. Чтобы сделать файл меню более читабельным, можете вставить пустые строки между элементами меню. 7. Количество строк, отображаемых на экране, зависит от параметров вашей системы и определяется значением системной переменной SCREENBOXES. Если количество элементов, содержащихся в меню, превысит число имеющихся строк, то “лишние” элементы меню просто не отобразятся на экране. Например, если максимальное количество строк, которые могут быть отображены на экране, равно 28, то элементы меню, не вошедшие в это число, не выводятся на экран и таким образом становятся недоступными.
Упражнение 1 Спроектируйте и напишите экранное меню, содержащее следующие команды AutoCAD. Сохраните файл меню под именем sm1.mnu. PLINE ELLIPSE (Center) ELLIPSE (Axis endpoint) ROTATE OFFSET SCALE
Подменю экранного меню Экранное меню часто содержит большое количество элементов, но количество строк, которые могут быть отображены на экране, ограничено. Количество строк, отображаемых на экране, зависит от параметров вашей системы и определяется значением системной переменной SCREENBOXES. Представьте, например, устройство отображения, параметры которого позволяют отобразить не более 28 пунктов меню. Остальные пункты меню, не вошедшие в это число, не могут быть выведены на экран и поэтому становятся недоступными. Чтобы выйти из этого положения, создайте несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в разделе меню. При выборе созданного подменю AutoCAD загрузит элементы соответствующего подменю и выведет их на экран. Тем не менее, не забывайте о том, что при достаточно высоком разрешении монитора вы сможете отобразить на экране все элементы меню, что избавит вас от необходимости создания подменю.
Определение подменю Определение подменю состоит из имени создаваемого подменю и двух звездочек (**), стоящих перед этим именем. Меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. К подменю принадлежат все элементы, начиная с метки подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет такой формат: **Имя
где • ** — две звездочки (**), обозначающие подменю; • Имя — имя подменю.
Экранные меню
273
Пример **DRAW
где • DRAW — имя подменю; • ** — две звездочки (**), обозначающие подменю. Примечание 1. Длина имени подменю не должна превышать 31 символа. 2. Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_). 3. Использование пробелов в имени подменю не допускается. 4. В файле меню необходимо использовать уникальные имена подменю.
Ссылка на подменю Ссылка на подменю используется для вызова или загрузки подменю. Она состоит из буквы, определяющей раздел меню, и знака доллара ($), стоящего перед ней. В качестве буквы, определяющей соответствующий раздел меню, используется Pn, где n — номер раздела. После имени раздела меню ставится знак “равно” (=), а затем указывается имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат: $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $S=EDIT
где • S — описатель первого раздела раскрывающегося меню; • EDIT — имя подменю. Примечание $ — код специального символа, используемый в файле меню для загрузки подменю. $M= — код, используемый для загрузки макросов DIESEL из элементов меню. Ниже приведены спецификаторы (описатели) разделов: S — символ, определяющий меню SCREEN (экранное меню). P0–P16 — символ, определяющий меню POP (от POP1 до POP16). I — символ, определяющий меню Image Tile (мозаичное меню). B1–B4 — символ, определяющий меню BUTTONS (кнопочное меню) от B1 до B4. TI–T4 — символ, определяющий меню TABLET (планшетное меню) от T1 до T4. A1–A4 — символ, определяющий меню AUX (вспомогательное меню) от A1 до A4.
274
Глава 9
Вложенные подменю При активизации подменю происходит копирование текущего меню в стековую память. Если вы выберете какое-нибудь другое подменю, текущее подменю будет скопировано и размещено в верхнем слое стековой памяти. Максимальное количество меню, которые могут быть размещены в стеке, равно восьми. При увеличении размера стековой памяти меню, находящееся в нижнем слое, удаляется. Для вызова предыдущего меню можно использовать запрос вложенного подменю, который имеет следующий формат: $S=
где • $ — знак доллара ($); • S — описатель экранного меню; • = — знак “равно”. Максимальное количество вложенных подменю равно восьми. При каждом обращении к подменю (т.е. при выдаче команды $S=) происходит выталкивание последнего элемента из стека и его последующая активизация.
Пример 2 Спроектируйте и напишите экранное меню, содержащее следующие команды. LINE PLINE ELLIPSE-C ELLIPSE-E CIR-C,R CIR-C,D CIR-2P
ERASE MOVE ROTATE OFFSET COPY SCALE
Как уже говорилось, первой и наиболее важной частью процесса написания меню является его проектирование и знакомство с командами и параметрами, которые связаны с этими командами. Вам необходимо решить, как будет выглядеть создаваемое меню, а также продумать организацию команд, которая обеспечит его максимальную эффективность. Напишите меню на листе бумаги и посмотрите, насколько оно соответствует вашим требованиям. Попробуйте также создать подменю, с помощью которого вы сможете сгруппировать команды по способу использования, выполняемым функциям и отношениям с другими подменю. Продумайте способ доступа к другим часто используемым командам, который позволил бы избежать обращения к главному меню. На рис. 9.5 показан один из возможных вариантов организации команд и проекта экранного меню. Как вы видите, это меню состоит из главного меню и двух подменю. В первом подменю содержатся команды рисования, во втором собраны команды редактирования. Ставить двоеточие (:) после имени команды не обязательно. Этот символ служит в качестве отличительного признака и используется только для выделения команд среди других элементов меню. Например, выражение DRAW, находящееся в корневом меню, не является командой, поэтому после него двоеточие не ставится. В свою очередь, при выборе элемента ERASE из меню EDIT будет выполнена команда ERASE. Следовательно, этот элемент является командой и поэтому его необходимо выделить двоеточием (:).
275
Экранные меню
Рис. 9.5. Проект экранного меню
Перед вами листинг файла экранного меню, описанного в примере 1. Номера строк, находящиеся в правой части листинга, не являются частью файла и используются только для ссылок. ***SCREEN [ MENU-2 ] [******** ] [ ] [ ] [ ] [ ] [DRAW ]^C^C$=DRAW [EDIT ]^C^C$S=EDIT **DRAW [ MENU-2 ]^C^CS=SCREEN [******** ] [ ] [*-DRAW-* ] [ ] [LINE: ]^C^CLINE [PLINE: ]^C^CPLINE;\W;0.1;0.1 [ELLIP-C: ]^C^CELLIPSE;C [ELLIP-E: ]^C^CELLIPSE [CIR-C,R: ]^C^CCIRCLE [CIR-C,D: ]^C^CCIRCLE;\D [CIR-2P ]^C^CCIRCLE;\2P [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]^C^C$S= [*-EDIT-* ]^C^C$S=EDIT
Эта строка обеспечивает отображение надписи “MENU-2” в верхней части экранного меню.
Строка 3 [******** ]
Этот элемент вводит в экранное меню строку, состоящую из восьми звездочек (********).
Строки 4-7 [
]
Этот элемент вводит в экранное меню пустую строку. Использовать квадратные скобки для этого не обязательно. Достаточно ввести в файл меню четыре пустые строки.
Строка 8 [DRAW
]^C^C$=DRAW
Выражение [DRAW ] вводит в экранное меню надпись “DRAW”, которая позволяет понять, что, выбрав этот элемент, вы сможете получить доступ к командам рисования. Выражение ^C^C дважды отменяет текущую команду, а команда $=DRAW обеспечивает загрузку подменю DRAW и его отображение на экране.
Экранные меню
277
Строка 9 [EDIT
]^C^C$S=EDIT
Здесь [EDIT ] отображает надпись “EDIT” в экранном меню. Выражение ^C^C дважды отменяет существующую команду, а команда $S=EDIT загружает подменю EDIT.
Строка 10 Пустые строки, используемые для разделения подменю или элементов меню, не обязательны. Они всего лишь облегчают чтение файла.
Строка 11 **DRAW
Здесь **DRAW — имя подменю, в котором содержатся элементы, определенные в строках 12–31.
Строка 15 [*-DRAW-* ]
Эта строка выводит на экран выражение “*-DRAW-*”, используемое в качестве заголовка экранного меню. Благодаря этому пользователь может понять, что в данном меню содержатся команды рисования.
Строка 18 [PLINE:
]^C^CPLINE;\W;0.1;0.1
Выражение [PLINE: ] отображает надпись “PLINE:” в экранном меню. Выражение ^C^C дважды отменяет существующую команду. PLINE — команда AutoCAD. Точки с запятыми обеспечивают ввод команды RETURN. Вместо этих символов могут использоваться пробелы. Обратная косая черта (\) создает паузу, которая требуется пользователю для ввода необходимых параметров. В данном случае пользователь должен определить начальную точку полилинии. Буква W указывает на использование команды PLINE (ПЛИНИЯ) c опцией Width (Ширина). Первое числовое значение (0.1) определяет начальную ширину вычерчиваемой полилинии, второе значение (0.1) — ее конечную ширину. При выполнении этой команды будет начерчена полилиния шириной 0,1. Здесь • PLINE — команда AutoCAD; • ; — ввод команды RETURN; • \ — создание паузы для ввода данных; • W — опция Width; • ; — ввод команды RETURN; • 0.1 — определение начальной ширины; • ; — ввод команды RETURN; • 0.1 — определение конечной ширины.
Строка 19 [ELLIP-C: ]^C^CELLIPSE;C
Здесь [ELLIP-C: ] отображает выражение “ELLIP-C:” на экране. Выражение ^C^C дважды отменяет существующую команду. ELLIPSE — команда AutoCAD. Точки с запятыми обеспечивают ввод команды RETURN. Буква С указывает на использование команды ELLIPSE (ЭЛЛИПС) c опцией Center (Центр).
278
Глава 9
Здесь • ELLIPSE — команда AutoCAD; • ; — ввод команды RETURN; • C — опция Center.
Строка 20 [ELLIP-E: ]^C^CELLIPSE
Здесь [ELLIP-C: ] выводит на экран выражение “ELLIP-C:”. Выражение ^C^C дважды отменяет существующую команду. ELLIPSE — команда AutoCAD. Точки с запятыми обеспечивают ввод команды RETURN. В данном случае команда ELLIPSE (ЭЛЛИПС) используется со стандартной опцией, которая обеспечивает построение эллипса по конечным точкам вертикальной и горизонтальной оси.
Строка 30 [*-PREV-* ]^C^C$S=
Выражение [*-PREV-* ] вводит надпись “*-PREV-*” в экранное меню. Выражение ^C^C дважды отменяет существующую команду, а $S= восстанавливает предыдущее меню, которое отображалось на экране до загрузки текущего меню. Здесь • $S= — восстанавливает предыдущее экранное меню.
Строка 31 [*-EDIT-* ]^C^C$S=EDIT
Выражение [*-EDIT-* ] вводит надпись “*-EDIT-*” в экранное меню. Выражение ^C^C дважды отменяет существующую команду, а $S=EDIT загружает подменю EDIT и отображает его на экране. Это дает вам возможность обращаться к командам редактирования, не возвращаясь в корневое меню и не вызывая команду EDIT. Здесь • $S — загружает подменю EDIT; • EDIT — имя подменю.
Строка 33 **EDIT
Здесь **EDIT — имя подменю, в котором содержатся элементы, определенные в строках 34–53.
Строка 34 [ MENU-2
]^C^C$S=SCREEN
Выражение [ MENU-2 ] вводит в экранное меню надпись “MENU-2”. Выражение ^C^C дважды отменяет существующую команду, а $S=SCREEN загружает корневое меню SCREEN в экранное меню.
Строка 39 [ERASE:
]^C^CERASE
Выражение [ERASE: ] вводит в экранное меню надпись “ERASE:”. ^C^C дважды отменяет существующую команду. ERASE — команда AutoCAD, используемая для удаления выделенных объектов.
Экранные меню
279
Строка 53 [*-DRAW-* ]^C^C$S=DRAW
Команда $S=DRAW загружает подменю DRAW и отображает его на экране. Это дает вам возможность загружать меню DRAW, не обращаясь к опциям корневого меню. Под корневым или главным меню подразумевается первое меню, которое отображается на экране при загрузке меню или запуске программы AutoCAD. Выбор элемента DRAW из корневого меню приводит к загрузке подменю DRAW и его отображению на экране. При этом элементы, содержащиеся в меню рисования, полностью заменяют элементы корневого меню. Теперь при выборе элемента MENU-2 из экранного меню на экране снова появится корневое меню, в котором останутся некоторые пункты предыдущего меню (рис. 9.6). Это связано с тем, что элементов корневого меню недостаточно для того, чтобы заменить все пункты подменю DRAW.
Рис. 9.6. Внешний вид экранного меню после загрузки корневого меню
Одним из способов очистки экрана является определение подменю, содержащего 21 пустую строку. Загрузка этого подменю позволит полностью очистить экран. Последующая загрузка другого меню не приведет к перекрытию имеющегося меню, так как к тому времени экранное меню будет уже очищено и на экране не останется ни одного элемента (рис. 9.7). Пример 3 иллюстрирует использование подобного меню.
Рис. 9.7. Так будет выглядеть экранное меню после загрузки корневого меню
280
Глава 9
Другим способом, который позволяет избежать перекрытия имеющихся меню, является определение подменю, содержащих одинаковое количество элементов. Основной недостаток этого метода состоит в значительном увеличении размера файла меню, так как каждое подменю будет содержать 21 строку.
Упражнение 2 (Общее) Напишите файл экранного меню, содержащего следующие команды AutoCAD. Сохраните этот файл под именем sme2.mnu. ARC -3P -SCE -SCA -SCL -SEA POLYGON-C POLYGON-E
Использование нескольких подменю В файле меню может содержаться любое количество подменю. Перед именем подменю ставятся две звездочки (**), что выполняется даже в том случае, если подменю вложено в другое подменю. С помощью одного оператора можно загрузить несколько подменю. Если элемент меню содержит несколько подменю, они должны быть разделены пустой строкой. Пример 3 иллюстрирует использование нескольких подменю.
Пример 3 Создайте макет меню, а затем напишите определение экранного меню, содержащего следующие команды AutoCAD. Draw LINE Continue Close Undo .X .Y .Z .XY .XZ .YZ
ARC 3Point SCE SCA CSE CSA CSL
Edit EXTEND STRETCH FILLET
Dispaly ZOOM REGEN SCALE PAN
Существует несколько способов организации команд, которые отвечают различным требованиям. На рис. 9.8 показан один из возможных вариантов экранного меню, содержащего ранее перечисленные команды AutoCAD.
281
Экранные меню
Рис. 9.8. Макет экранного меню с несколькими подменю
Запишите файл, используя для этого какой-нибудь текстовый редактор, а затем сохраните его под именем sm3.mnu. Ниже приведен листинг файла меню sm3.mnu. Номера строк в правой части листинга не являются частью файла, а используются только в качестве ссылки. ***SCREEN **S [ MENU-3 ]^C^C$S=X $S=S [******** ]$S=OSNAP [ ] [DRAW ]^C^C$S=X $S=DRAW [EDIT ]^C^C$S=X $S=EDIT [DISPLAY ]^C^C$S=X $S=DISP **DRAW 3 [ ] [*-DRAW-* ] [LINE ]^C^CLINE [ Continue ]^C^CLINE;; [ Close ]CLOSE [ Undo ]UNDO [ .X ].X [ .Y ].Y [ .Z ].Z [ .XY ].XY [ .XZ ].XZ [ .YZ ].YZ [ ] [ARC: ]^C^CARC
Пояснения Строка 3 Выражение [ MENU-3 ], содержащееся в этой строке, обеспечивает отображение надписи “MENU-3” в верхней части экранного меню. Выражение ^C^C дважды отменяет существующую команду, а $S=X загружает подменю Х. В свою очередь, выражение $S=S загружает подменю S. Подменю Х, определенное в строке 171, содержит 18 пустых строк. Таким образом, при загрузке этого меню на экране отображаются пустые строки, которые очищают область экранного меню. После загрузки подменю X система загружает подменю S и в экранном меню отображаются элементы, определенные в этом подменю. [ MENU-3
]^C^C$S=X $S=S
Здесь • ^C^C — дважды отменяет существующую команду; • $S=X — загружает подменю Х (выполняет очистку экрана); • $S=S — загружает подменю S.
284
Глава 9
Строка 4 [********]$S=OSNAP
Этот элемент вводит в экранное меню строку, содержащую восемь звездочек (********); команда $S=OSNAP загружает меню OSNAP. Меню OSNAP, определенное в строке 191, содержит команды, используемые для переключения режимов объектной привязки.
Строка 6 [DRAW
]^C^C$S=X $S=DRAW
Этот элемент меню отображает выражение “DRAW” в области экранного меню, дважды отменяет существующую команду, загружает подменю X, а затем подменю DRAW. Подменю Х очищает область экранного меню, а подменю DRAW, определенное в строке 11, загружает элементы меню, содержащиеся в соответствующем разделе файла.
Строка 9 **DRAW 3
Эта строка является меткой подменю DRAW; число 3 указывает на то, что первая строка подменю DRAW будет выведена в строке 3. Таким образом, строки 1 и 2 останутся пустыми. В строке 3 отобразится первая строка подменю DRAW, а затем будут показаны остальные строки меню. Метки всех подменю, за исключением подменю S и OSNAP, заканчиваются числом 3. Таким образом, две первых строки меню (MENU-3) и (********) никогда не очищаются и постоянно отображаются на экране. При выборе элемента MENU-3 загрузится подменю S. Выбрав строку ********, вы тем самым загрузите подменю OSNAP. Здесь • DRAW — имя подменю; • 3 — номер строки, с которой начинается отображение подменю.
Строка 12 [LINE:
]^C^CLINE
Выражение ^C^C дважды отменяет существующую команду; LINE — команда AutoCAD.
Строка 13 [ Continue ]^C^CLINE;;
В этой строке после команды LINE стоят две точки с запятой, которые продолжают выполнение этой команды. Если вы не понимаете, что это означает, посмотрите, как используется опция Continue в команде LINE: Command: LINE Specify first point: RETURN (Continue) Specify next point or [Undo]:
Далее приведена последовательность команд и параметров, которые потребуются для того, чтобы провести линию из последней точки: LINE RETURN RETURN SELECT A POINT
Экранные меню
285
Таким образом, для того чтобы провести линию из предыдущей точки, после команды LINE необходимо дважды выполнить команду RETURN.
Строка 16 [.X
].X
Выражение .X, содержащееся в этой строке, обеспечивает получение координаты X указанной точки. При выполнении этой операции можно обойтись без квадратных скобок, выражения .X и пробелов, заключенных в квадратные скобки. Достаточно ввести в строку выражение .X. Это относится также к элементам, определенным в строках 39–43. Пример [.X [.Y [.Z
].X может быть записано как .X (без квадратных скобок); ].Y — как .Y (без квадратных скобок); ].Z — как .Z (без квадратных скобок).
Строка 31 [*-PREV-* ]$S= $S=
Этот элемент дважды восстанавливает предыдущее меню. Программа AutoCAD отслеживает подменю, отображаемые на экране. При выполнении первой команды $S= произойдет загрузка ранее загруженного меню, а при выполнении второй команды $S= загрузится меню, которое было загружено перед этим. Например, при выборе элемента меню, определенного в строке 16 ([ARC: ]$S=X $S=ARC), будут загружены два подменю: вначале X, а затем ARC. Перед загрузкой текущего подменю ARC подменю X копируется в стековую память. Первая команда $S= восстановит предыдущее меню, которым в данном случае является подменю Х. Вторая команда $S= загрузит меню, отображенное на экране перед выбором элемента, содержащегося в строке 16. Здесь • $S= — загружает последнее меню; • $S= — загружает предпоследнее меню.
Строка 33 [*-DISP-* ]$S=X $S=DISP
В этой строке команда $S=X загружает подменю Х, а команда $S=DISP — подменю DISP. Обратите внимание, что команды CANCEL (^C^C) в этой строке нет. Это связано с наличием меню, которые могут быть загружены без отмены текущей команды. Например, при вычерчивании линии иногда приходится увеличивать масштаб изображения, не отменяя выполнение предыдущей команды. В этом случае вы выбираете элемент [*-DISP-* ], затем выбираете соответствующую опцию масштабирования, после чего продолжаете выполнение команды LINE (ОТРЕЗОК). Тем не менее, если в строке содержится команда CANCEL ([*-DISP-*]^C^C$S=X $S=DISP), выполнение команды LINE будет прекращено, так как при выборе пункта “*-DISP-*” произойдет отмена существующей команды. В строке 32 ([*-EDIT-* ]^C^C$S=X $S=EDIT) содержится команда ^C^C, которая отменяет существующую команду. Это связано с тем, что команды редактирования не могут использоваться до тех пор, пока вы не отмените текущую команду.
286
Глава 9
Строка 38 [STRETCH: ]^C^CSTRETCH;C
Выражение ^C^C отменяет существующую команду; STRETCH — команда AutoCAD. C — опция пересечения, которая позволит выделить нужный объект, определив угловые точки области выделения. Здесь • STRETCH — команда AutoCAD; • ; — точка с запятой, выполняющая функцию команды RETURN; • C — опция пересечения.
Строка 40 [ RAD
]R;\FILLET
Выражение, содержащееся в этой строке, обеспечивает выбор команды FILLET (СОПРЯЖЕНИЕ) с опцией Radius (Радиус), а затем создает паузу, которая позволяет ввести значение радиуса. После того как вы введете это значение, создайте сопряжение между двумя выделенными объектами, выполнив команду FILLET еще раз. Здесь • R — опция Radius (Радиус) команды FILLET (СОПРЯЖЕНИЕ); • ; — точка с запятой, обеспечивающая ввод команды RETURN; • \ — обратная косая черта, создающая паузу для ввода данных; • FILLET — команда AutoCAD.
Строка 41 [ RAD 0 ]R;0;\FILLET
Выражение, содержащееся в этой строке, обеспечивает выбор команды FILLET (СОПРЯЖЕНИЕ) с опцией Radius (Радиус), а затем присваивает радиусу значение 0. После этого выполняется команда FILLET, которая генерирует сопряжение с нулевым радиусом между двумя выделенными объектами. Здесь • R — опция Radius (Радиус) команды FILLET (СОПРЯЖЕНИЕ); • ; — точка с запятой (или пробел), обеспечивающая ввод команды RETURN; • 0 — значение радиуса; • ; — точка с запятой, обеспечивающая ввод команды RETURN; • FILLET — команда AutoCAD.
Строка 42 [FILLET0:]^C^CFILLET;R;0;;
Этот элемент определяет команду FILLET с радиусом 0, а затем формирует сопряжение с нулевым радиусом между двумя выделенными объектами. Здесь • FILLET — команда AutoCAD; • R — опция Radius (Радиус) команды FILLET (СОПРЯЖЕНИЕ); • ; — точка с запятой (или пробел), обеспечивающая ввод команды RETURN; • 0 — значение радиуса; • ; — точка с запятой, обеспечивающая ввод команды RETURN; • ; — точка с запятой, обеспечивающая повторное выполнение команды FILLET.
Экранные меню
287
Строка 54 [ZOOM:
]'ZOOM
В этой строке содержится определение прозрачной команды ZOOM. Здесь • ZOOM — команда AutoCAD; • ' — одинарная кавычка, обеспечивающая прозрачность команды ZOOM.
Строка 90 [Center ]CEN $S=
Выражение CEN, содержащееся в этой строке, выполняет привязку к центру объекта, а команда $S= автоматически восстанавливает предыдущее экранное меню после выделения объекта. Здесь • CEN — обеспечивает привязку к центру объекта; • $S= — загружает предыдущее меню. Примечание Команды загрузки, содержащиеся в строке элемента экранного меню, должны быть разделены пробелом. Пример: [LINE:
]$S=X $S=LINE
Обратите внимание на пробел между X и $S. Точно так же, если элемент меню содержит команду загрузки и какую-нибудь команду AutoCAD, эти команды должны быть разделены пробелом. Пример: [LINE:
]$S=LINE ^C^CLINE
Упражнение 3 (Общее) Напишите файл экранного меню для команд AutoCAD, показанных на рис. 9.9, и сохраните его под именем sme3.mnu. Строка с восемью звездочками (********) используется для получения доступа к подменю объектной привязки.
Рис. 9.9. Макет экранного меню с несколькими подменю
288
Глава 9
Пример 4 Напишите файл комбинированного меню (экранное плюс планшетное) для команд, показанных в шаблоне планшетного меню (рис. 9.10) и на схеме экранного меню (рис. 9.11). Когда пользователь выбирает команду из шаблона кодирующего преобразователя, на экран должно автоматически выводиться соответствующее экранное меню. Сохраните файл под именем tm3.mnu.
Рис. 9.10. Шаблон планшетного меню для примера 4
Рис. 9.11. Схема экранного меню
Ниже приведен листинг комбинированного меню, описанного в примере 4. Номера строк не являются частью файла, а используются только для ссылок. ***SCREEN **S [ MENU-3 ]^C^C$S=X $S=S [******** ]$S=OSNAP [ ] [ ]
Здесь ***SCREEN — метка раздела экранного меню. В этом разделе содержатся элементы, определенные в строках с 1 по 213.
Строка 3 [ MENU 3 ]^C^C$S=X $S=S
В этой строке команда $S=X загружает подменю Х, а команда $S=S — подменю S.
Строка 7 [DRAW
]^C^C$S=X $S=DRAW
Команда $S=DRAW загружает подменю DRAW, определенное в одном из разделов файла экранного меню.
Строка 12 **DRAW 3
Выражение DRAW является именем подменю, а число 3 указывает на то, что первая строка этого подменю будет выведена в третьей строке. Таким образом, две первых строки меню (MENU-3) и (********) будут постоянно отображаться на экране. При выборе элемента “MENU-3” из какого-либо меню будет загружено подменю S, а затем выведено на экран. Точно так же, выбрав из какого-либо меню элемент ********, вы тем самым загрузите подменю OSNAP и отобразите его на экране.
Строка 28 [*-PREV-*]$S= $S=
Команды $S= $S=, содержащиеся в этой строке, обеспечивают загрузку двух предыдущих меню. Одним из них является подменю Х, а вторым — то подменю, которое было отображено на экране перед этим.
Строка 214 ***TABLET1
Здесь TABLET1 — метка раздела области планшета номер 1. В этом разделе содержатся элементы, определенные в строках с 215 по 220.
Строка 215 $S=X $S=LINE ^C^CLINE
Команда $S=X, определенная в разделе экранного меню, загружает подменю X и отображает его в области экранного меню. При загрузке подменю X происходит очистка
294
Глава 9
экрана, так как пустые строки, содержащиеся в этом подменю, накладываются на элементы экранного меню. Команда $S=LINE, также определенная в разделе экранного меню, загружает подменю LINE и отображает его в соответствующей области экранного меню. Выражение ^C^CLINE дважды отменяет существующую команду, а затем выполняет команду LINE (ОТРЕЗОК). При выборе блока LINE из кодирующего преобразователя программа AutoCAD автоматически очищает экранное меню, загружает подменю LINE и вводит команду LINE. Это дает возможность выбирать командные опции из экранного меню, так как на шаблоне кодирующего преобразователя их нет. Здесь • $S=X — загружает подменю X; • $S=LINE — загружает подменю LINE; • ^C^C — дважды отменяет существующую команду; • LINE — команда AutoCAD. Для загрузки соответствующих экранных меню можно также использовать функцию автоматического свопинга меню. Для того чтобы использовать эту возможность, раздел TABLET1 необходимо записать следующим образом: ***TABLET1 $S=X ^C^CLINE $S=X ^C^CCIRCLE $S=X ^C^CARC $S=X ^C^CZOOM $S=X ^C^CERASE $S=X ^C^CLAYER
214 215 216 217 218 219 220
Длинные определения меню В одной строке экранного меню может содержаться несколько различных команд. Количество команд, которые могут быть введены в каждую строку, не ограничено. Порядок расположения команд может быть произвольным, но должен соответствовать всем вашим требованиям и последовательности вводимых параметров. Кроме того, вам необходимо знать команды AutoCAD и все используемые опции, приглашения на ввод команд, а также параметры, вводимые в командную строку. Если оператор не помещается на одной строке, его можно перенести на другую, поставив в конце первой строки знак “плюс”. Определение команды, состоящее из нескольких команд, объединенных в одну строку, называется также макросом. Использование длинного определения команды или макроса иллюстрируется следующим примером.
Пример 5 Напишите определение команды экранного меню, которая выполняет следующие функции (сохраните файл определения под именем sm4.mnu). Постройте рамку, начертив полилинию со следующими параметрами: Ширина Точка 1 Точка 2 Точка 3 Точка 4 Точка 5
Прежде чем записывать меню, следует познакомиться с командами, опциями и параметрами, которые вы будете вводить. Таким образом, в первую очередь вы должны изучить команды, используемые для установки исходных параметров чертежа.
Полилиния Command: PLINE Specify start point: 0,0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify starting width <0.0000>: 0.01 Specify ending width <0.01>: Нажмите клавишу <Enter> Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
W
12,0 12,9 0,9 C
Определение команды PLINE (ПЛИНИЯ), входящей в экранное меню: PLINE;0,0;W;0.01;;12,0;12,9;0,9;C
Определение команды SNAP (ШАГ), входящей в экранное меню: SNAP;0.25
Сетка Command: GRID Specify grid spacing(X) or [ON/OFF/Snap/Aspect] <по умолчанию>: 0.5
Определение команды GRID (СЕТКА), входящей в экранное меню: GRID;0.5
Лимиты чертежа Command: LIMITS Specify lower left corner or [ON/OFF] <текущие координаты>: 0,0 Specify upper right corner <текущие координаты>: 12,9
Определение команды LIMITS (ЛИМИТЫ), входящей в экранное меню: LIMITS;0,0;12,9
296
Глава 9
Масштаб Commnad: ZOOM Specify corner of window, enter a scale factor (nX or nXP), or [All/Center/ Dynamic/Previous/Scale/Window] <реальный масштаб времени>: A
Определение команды ZOOM (ПОКАЗАТЬ), входящей в экранное меню: ZOOM;A
Теперь можно сформировать общее определение команды экранного меню, объединив в одно целое определения отдельных команд. При выборе элемента NSETUP из нового экранного меню, это определение выполнит все ранее описанные функции.
Упражнение 4 (Общее) Напишите определение элемента экранного меню, при выборе которого будут установлены следующие параметры команды UNITS (сохраните файл под именем sme4.mnu). Единицы измерения:
Научные
Количество разрядов после десятичной точки:
2
Единицы измерения угловых величин:
Десятичные
Количество разрядов после десятичной точки:
2
Направление угла:
0
Измерение угла:
Против часовой стрелки
Повторение команд меню Программа AutoCAD обеспечивает повторное выполнение команд, определенных в файле меню. Эти команды выполняются до тех пор, пока пользователь не нажмет на клавиатуре клавишу <Esc> или не выберет другой элемент меню. Это особенно удобно при редактировании чертежей или многократном использовании одних и тех же команд. Повторение команды возможно только в том случае, когда определение команды меню начинается со знака “звездочка” (*). [ERASE,W:]*^C^CERASE W
где • * — звездочка, обеспечивающая повторение команды; • ^C^C — команда, отменяющая текущую команду; • ERASE — команда AutoCAD; • W — опция Window (Рамка). При выборе этого элемента меню программа AutoCAD пригласит ввести две точки, с помощью которых вы сможете выделить нужный объект. Это связано с тем, что для выполнения команды ERASE (СТЕРЕТЬ) с опцией Window (Рамка) требуется указать две точки, определяющие область выбора. При нажатии клавиши <Enter> выбранный объект будет удален, а предыдущая команда будет выполнена повторно.
Экранные меню
297
Пример 6 Напишите файл экранного меню, содержащего следующие команды AutoCAD, и сохраните его под именем sm6.mnu. Обеспечьте автоматическое повторение команд. LINE ERASE TRIM
LIST INSERT DIST
Ниже приведен листинг файла экранного меню, описанного в примере 6. Выполнение выбранных команд будет продолжаться до тех пор, пока вы не нажмете клавишу или буквенную клавишу . [-ERASE- ] [ ] [ ] [LINE: ]*^C^CLINE [ERASE: ]*^C^CERASE [TRIM: ]*^C^CTRIM [LIST: ]*^C^CLIST [INSERT: ]*^C^CINSERT [DIST ]*^C*CDIST Примечание Если вы случайно выберете некорректно записанное определение команды, то приглашение на ввод соответствующей команды будет снова и снова выводиться на экран. Чтобы выйти из этого бесконечно повторяющегося цикла, нажмите клавишу <Esc>. В некоторых системах нажатие клавиши <Esc> или выбор другой команды не прерывает вывод приглашения на экран. В этом случае вам придется перезагрузить систему или закрыть используемую программу. Чтобы закрыть программу, в операционной системе Windows нажмите клавиши . Одним из наибольших недостатков повторения команд меню является то, что вы не можете выбрать другую опцию команды. В следующем примере для выделения объекта используется команда ERASE (СТЕРЕТЬ) с опцией C (Crossing). Во время повторения команды выбрать для выделения объекта какую-нибудь другую опцию вы не сможете. [ERASE,C:]*^C^CERASE C
Автоматическая выгрузка меню Используя системную переменную MENUCTL, можно обеспечить автоматическую выгрузку экранных меню. Когда этой переменной присваивается значение 1, программа AutoCAD автоматически выдает команду $S=CMDNAME, где CMDNAME — имя команды, используемой для загрузки подменю. Например, если вы выберете команду LINE (ОТРЕЗОК) из меню кодирующего преобразователя или введете ее с клавиатуры, команда CMDNAME загрузит подменю LINE и отобразит его в области экранного меню. Для использования этой возможности необходимо, чтобы команда и подменю имели одинаковые имена. Например, подменю, содержащее команды, используемые при вычерчивании дуги, называется ARC. В этом случае при выборе команды ARC (ДУГА) произойдет автоматическая загрузка соответствующего подменю. Тем не менее, если подменю имеет какое-нибудь другое имя (например, MYARC), то AutoCAD не сможет его загрузить. По умолчанию значение системной переменной MENUCTL равно 1. Присвоив переменной MENUCTL значение 0, вы теряете возможность использовать команду $S=CMDNAME для загрузки подменю.
298
Глава 9
Системная переменная MENUECHO Если системной переменной MENUECHO присвоить значение 0, то все команды, выбираемые из кодирующего преобразователя, экранного, раскрывающегося или кнопочного меню, будут отображаться в области командной строки. Например, при выборе из меню команды CIRCLE (КРУГ) в командной строке появится запрос _circle Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: (_круг Центр круга или [3T/2T/KKP (кас кас радиус)]:). Если вы присвоите системной переменной MENUECHO значение 1, программа AutoCAD подавит эхо элемента меню и отобразит только Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:. Обратите внимание, когда значение переменной MENUECHO равно 1, выражение _circle не отображается. Для включения или выключения эха можно ввести выражение ^P в элемент меню. Системная переменная MENUECHO может принимать значения 2, 4 и 8, которые обеспечивают подавление системной подсказки, отключая переключатель ^P и средства отладки макросов DIESEL.
Меню на иностранном языке Помимо английской, программа AutoCAD имеет еще несколько версий. Если вы хотите написать меню, сделав его совместимым с другими версиями AutoCAD, вам придется перед каждой командой или зарезервированным словом поставить символ подчеркивания (_). Примеры [New ]^C^C_New [Open ]^C^C_Open [Line ]^C^C_Line [Arc-SCA ]^C^C_Arc;\_C;|_A
Команда или зарезервированное слово, которое начинается символом подчеркивания, будут автоматически преобразованы. Если вы откроете файл acad.mnu, то увидите, что в программе AutoCAD эта возможность используется довольно широко.
Пример 7 Перепишите файл экранного меню (см. пример 1) так, чтобы обеспечить его совместимость с другими версиями программы AutoCAD. Перед вами листинг файла меню для примера 7: ***SCREEN [ MENU-1 ] [ ] [ ] [LINE ]^C^C_LINE [ ] [CIR-C,R ]^C^C_CIRCLE [CIR-C,D ]^C^C_CIRCLE;\D [CIR-2P ]^C^C_CIRCLE;2P [ ] [ERASE ]^C^C_ERASE [MOVE ]^C^C_MOVE
Экранные меню
299
Использование управляющих символов в элементах меню В определениях команд можно также использовать управляющие символы ASCII, поставив перед нужным символом знак вставки (^). Например, если вы хотите написать элемент меню, который будет включать и выключать режим привязки (SNAP), введите в определение знак вставки, а затем управляющий символ В, как показано в следующем примере. [SNAP-TOG]^B
где • SNAP-TOG — метка команды переключателя режимов SNAP; • ^ — знак вставки (^); • B — управляющий символ, выполняющий функцию переключателя. Примеры • ^C — отмена; • ^G — включение и выключение сетки; • ^H — возврат; • ^O — включение и выключение режима ортогональности; • ^T — включение и выключение планшета; • ^E — изометрическая плоскость сверху/слева/справа. Выражение ^B выполняет ту же функцию, что и нажатие клавиш на клавиатуре, т.е. позволяет переключать режимы объектной привязки. SNAP-TOG — метка элемента, которая будет отображена в экранном меню. В определениях команд можно использовать любые управляющие символы ACSII. Некоторые из этих символов приведены в следующем списке: • ^@ — код ASCII 0; • ^[ — код ASCII 27; • ^\ — код ASCII 28; • ^] — код ASCII 29; • ^^ — код ASCII 30; • ^- — код ACSII 31.
Специальные символы Ниже представлен список специальных символов, которые могут использоваться в меню AutoCAD: Символ *** ** [ ; "пробел"
Описание
]
Три звездочки, обозначающие заголовок раздела Две звездочки, обозначающие подменю Квадратные скобки, в которых содержится метка элемента меню Точка с запятой, обеспечивающая ввод команды ENTER Пробел выполняет ту же функцию, что и нажатие клавиши “пробел”
Описание Обратная косая черта, создающая паузу для ввода данных пользователем Символ подчеркивания, который переводит команды и зарезервированные слова AutoCAD на английский язык Знак “плюс”, позволяющий перенести определение элемента меню на следующую строку Обеспечивает отображение на экране раскрывающихся, контекстных и мозаичных меню Повторение элемента меню Специальный символ, используемый для загрузки макросов DIESEL Специальная команда, используемая для загрузки экранных подменю Включение и выключение режима привязки Отмена существующей команды Включение и выключение шкалы координат Изменение плоскости изометрии (слева/справа/сверху) Включение и выключение сетки Ввод пробела Включение и выключение режима ортогональности Включение и выключение эхо-вывода (MENUECHO) Вывод всех приглашений на печать Включение и выключение планшетного режима Изменение текущего вида Подавление функции автоматического прибавления пробела к концу элемента меню
Пример 8 Напишите файл экранного меню, содержащего следующие функции (сохраните этот файл под именем sm8.mnu). ORTHO
SNAP
GRID
COORDINATE DIAL
TABLET
ISOPLANE
PRINTER
Прежде чем писать экранное меню для функций переключения, следует определить, какие управляющие символы могут быть использованы для включения и выключения этих функций. Перед вами список управляющих символов, которые потребуются для решения этой задачи: • ORTHO — ; • SNAP — ; • GRID — ; • COORDINATE DIAL — ; • TABLET — ; • ISOPLANE — ; • CURRENT VIEWPORT — .
Экранные меню
301
Для записи файлов меню обычно используется какой-нибудь текстовый редактор или команда EDIT. Перед вами листинг файла экранного меню, обеспечивающего переключение описанных функций. [-TOGGLE- ] [ ] [ ] [ ] [ORTHO ]^O [SNAP ]^B [GRID ]^G [CO-ORDS ]^D [TABLET ]^T [ ] [ISOPLANE ]^E [CURRENT VIEWPORT]^V
включает/выключает режим ORTHO включает/выключает режим SNAP включает/выключает режим GRID включает/выключает режим COORDINATE DIAL включает/выключает режим TABLET включает/выключает режим ISOPLANE изменяет текущее окно просмотра
Определение команды без пробелов и точки с запятой Все определения команд, о которых мы уже говорили, содержали точку с запятой (;) или пробел, выполняющие функцию команды ENTER. Тем не менее, иногда может возникнуть необходимость определить элемент меню, не используя для этого пробелы или команду ENTER. Эту задачу можно выполнить с помощью одного из управляющих символов ASCII, который будет использоваться в качестве пробела (^H). Это особенно удобно в том случае, когда необходимо написать экранное меню для цифровой клавишной панели. Управляющий символ ^H может использоваться с любым другим символом или группой символов. Определение элемента меню, записанное без пробела или команды ENTER, имеет следующий формат: [9]9X^H
где • 9 — метка элемента меню; • 9 — символ, возвращаемый при выборе этого элемента; • X — буква Х стирается пробелом ^H (вместо буквы Х можно использовать любой другой символ); • ^H — управляющий символ, выполняющий функцию пробела. Здесь ^H — управляющий символ ASCII, выполняющий функцию пробела. При выборе этого элемента меню, символ ^H стирает предыдущий символ (в данном случае Х) и возвращает только 9. Перед управляющим символом ^H должен всегда стоять символ Х (в этом качестве может использоваться любой символ). В строку элемента меню можно ввести несколько символов. После того как вы это сделаете, нажмите клавишу <Enter>, используя для этого клавиатуру или кодирующий преобразователь.
302
Глава 9
Пример 9 Напишите файл экранного меню, содержащего следующие символы (сохраните файл под именем sm9.mnu). 0 1 2 3 4
5 6 7 8 9
. , X Y Z
Ниже приведен листинг файла экранного меню, описанного в примере 9. С помощью этого меню вы сможете вводить различные символы, не используя команду ENTER. [-KEYPAD[ [ [ [0]0Y^H [1]1Y^H [2]2Y^H [3]3Y^H [4]4Y^H [5]5Y^H [6]6Y^H [7]7Y^H [8]8Y^H [9]9Y^H [.].Y^H [,],Y^H [] [X]XX^H [Y]YY^H [Z]ZZ^H
] ] ] ] возвращает 0 возвращает 1 возвращает 2 возвращает 3 возвращает 4 возвращает 5 возвращает 6 возвращает 7 возвращает 8 возвращает 9 возвращает точку (.) возвращает запятую (,) используется для отображения пробела в экранном меню возвращает X возвращает Y возвращает Z
Примечание Чтобы обеспечить ввод дополнительных данных, можете после возвращаемого символа поставить обратную косую черту. Например, строка [2]2\ вначале возвратит 2, а затем создаст паузу, которая позволит пользователю ввести какие-либо данные. Ниже приведен листинг файла, в котором используется обратная косая черта, позволяющая вводить другие символы. [-KEYPAD[ [ [ [0]0\ [1]1\ [2]2\ [3]3\ [4]4\ [5]5\
Элементы меню, работающие в режиме выбора одного объекта Функция выбора объекта, выполняемая с помощью опции Single команды ERASE, в сочетании с функцией повторения элементов меню является мощным инструментом редактирования. [ERASE]*^C^CERASE Single
Здесь • * — повторение элемента меню; • Single — опция команды ERASE (СТЕРЕТЬ), используемая для выбора одного объекта. В этой строке содержится метка элемента меню, заключенная в квадратные скобки, и знак “звездочка”, который обеспечивает повторное выполнение элемента меню. ^C^C дважды отменяет существующую команду. ERASE —команда AutoCAD, используемая для удаления выбранного объекта. Опция Single позволяет пользователю выбрать один объект, после чего AutoCAD автоматически завершает процесс выделения объектов. Затем выполняется команда ERASE, которая “стирает” выделенный объект. При выборе точки, находящейся в пустой области (при отсутствии какого-либо объекта), AutoCAD автоматически переходит к одной из стандартных опций выбора — Crossing (Секущая рамка) или Window (Рамка). При растягивании окна в левую сторону создается так называемая секущая рамка (в этом случае выбирается объект, пересекшийся с контуром рамки). Если окно растягивается в правую сторону, выбирается опция Window (Рамка). В этом случае выделяется объект, который полностью попал в созданную область. Звездочка, введенная в строку определения, обеспечивает повторное выполнение элемента меню.
Использование функций AutoLISP в определении меню При записи определений команд можно успешно сочетать элементы меню с переменными и выражениями языка AutoLISP. В этом случае при выборе элемента меню вначале вычисляются все содержащиеся в нем выражения, а затем генерируются результаты вычислений. Использование переменных и выражений AutoLISP иллюстрируется следующим примером. (Для получения дополнительной информации по языку AutoLISP обратитесь к главам 12 и 13.)
Пример 10 Напишите программу AutoLISP, с помощью которой вы сможете начертить квадрат. Затем напишите определение экранного меню, использующее для построения этой фигуры различные выражения и переменные AutoLISP. Перед вами листинг программы AutoLISP, которая генерирует квадрат с определенными размерами. При выполнении этой программы пользователю необходимо определить начальную точку и ввести длину стороны.
304
Глава 9
(DEFUN C:SQR() (SETVAR "CMDECHO" 0) (SETQ P1 (GETPOINT "\n ENTER STARTING POINT: ")) (SETQ S (GETDIST "\n ENTER LENGTH OF SIDE: ")) (SETQ P2 (LIST (+ (CAR P1) (CADR P1))) (SETQ P3 (POLAR P2 (/ PI 2) S)) (SETQ P4 (POLAR P1 (/ PI 2) S)) (COMMAND "PLINE" P1 P2 P3 P4 "C") (SETVAR "CMDECHO" 1) (PRINC) )
Ниже представлен листинг файла экранного меню, использующего переменные и выражения AutoLISP для построения квадрата с заданными размерами: [-SQUARE-] [ ] [ ] [SQUARE:](SETQ P1(GETPOINT "ENTER STARTING POINT:+"));\+ (SETQ S (GETDIST "ENTER LENGTH OF SIDE: "));+ (SETQ P2 (LIST (+ (CAR P1) (CADR P1)))+ (SETQ P3 (POLAR P2 (/ pi 2) S))+ (SETQ P4 (POLAR P1 (/ pi 2) S));+ PLINE !P1 !P2 !P3 !P4 C
Если вы сравните программу AutoLISP с файлом определения экранного меню, то заметите, что операторы, обеспечивающие ввод требуемых данных, и операторы, выполняющие необходимые вычисления, совершенно одинаковы. Таким образом, переменные и выражения AutoLISP могут использоваться в файле меню для настройки программы AutoCAD.
Использование выражений DIESEL В определениях элементов экранного, планшетного, раскрывающегося и кнопочного меню могут также использоваться выражения, написанные на языке DIESEL. В этом случае при выборе элемента меню системной переменной MODEMACRO автоматически присваивается определенное значение, отображаемое затем в строке состояния. Использование выражений DIESEL в экранном меню иллюстрируется следующим примером.
Пример 11 Напишите файл экранного меню, с помощью которого вы сможете загрузить макрос DIESEL, обеспечивающий отображение следующей информации в строке состояния: Макрос 1
Макрос 2
Макрос 3
Название проекта
Ширина полилинии
Dimtad
Имя чертежа
Радиус сопряжения
Dimtix
Текущий слой
Величина смещения
Dimscale
Перед вами листинг файла экранного меню, содержащего определения трех макросов DIESEL. Для загрузки меню можно использовать команду MENU, указав имя нужного файла. При выборе первого элемента меню (DIESEL1) на экране автоматически отобразится новая строка состояния, содержащая соответствующие данные (рис. 9.12).
Рис. 9.12. Экранное меню и строка состояния для примера 11
Для загрузки макросов DIESEL можно также использовать команду $M=. AutoCAD вычислит строковое выражение DIESEL, стоящее после знака “равно” (=); при этом значение, возвращенное выражением DIESEL, станет частью элемента меню. Пример [SCR-MODE]SCREENMODE $M=$(-,1,$(GETVAR,SCRENMODE))
В этом примере программа AutoCAD вычисляет строковое выражение $(-,1,$(GETVAR, SCRENMODE)). Команда GETVAR извлекает значение системной переменной SCREENMODE, а затем вычитает его из 1. Если значение системной переменной SCREENMODE равно 1, выражение DIESEL возвращает 0, а если значение этой переменной равно 0, строковое выражение возвращает значение 1. Значение, возвращенное выражением DIESEL, присваивается системной переменной SCREENMODE.
306
Глава 9
Таким образом, этот элемент меню может быть использован для изменения режима работы, т.е. для перехода из текстового режима в графический или из графического режима в текстовый.
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Определение команды, содержащее несколько команд, записанных в одной строке, называется также ________. 2. Команда может быть повторена, если определение элемента меню начинается символом ________. 3. Автоматический свопинг экранного меню обеспечивается системной переменной ________. 4. Для загрузки подменю используется команда _________. 5. Для отображения новой строки состояния используется системная переменная ________. 6. Выражение ________, введенное в элемент меню, позволяет включать и выключать эхо команды. 7. Если оператор не помещается на одной строке, его можно перенести на вторую строку, поставив знак ________ в конце первой строки. 8. Для загрузки или создания ссылки на подменю в элемент меню вводится ______. 9. Определение команды, не содержащее пробелов или точки с запятой, может быть записано с помощью ________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. В программе AutoCAD файлы меню могут содержать не более ________ основных разделов. 2. Подменю обозначается символом ________. 3. Часть элемента меню, заключенная в квадратные скобки, используется только для _________. 4. В экранном меню могут быть отображены только первые ________ символов. 5. Если в квадратных скобках содержится более восьми символов, экранное меню _________ работает. 6. Чтобы отменить существующую команду, введите в файл меню выражение ____. 7. Чтобы создать паузу, которая может быть использована для ввода пользовательских данных, введите в определение экранного меню символ ________. 8. В метке элемента меню ________ использоваться как прописные, так и строчные символы. 9. В имени подменю может содержаться не более _________ символов. 10. Максимальное количество доступных элементов экранного меню определяется _________.
Экранные меню
307
Упражнения Упражнение 5 (Общее) Напишите экранное меню, содержащее следующие команды AutoCAD (сохраните файл меню под именем sme5.mnu). POLYGON POLYGON ELLIPSE ELLIPSE CHAMFER EXPLODE COPY
(Center) (Edge) (Center) (Axis End point)
Упражнение 6 (Общее) Напишите экранное меню, содержащее следующие команды AutoCAD. Если необходимо, можете создать несколько подменю. Сохраните файл экранного меню под именем sme6.mnu. ARC -3P -SCE -CSE BLOCK INSERT WBLOCK MINSERT
ROTATE ARRAY DIVIDE MESURE LAYER SET LIST
Упражнение 7 (Общее) Напишите определение элемента экранного меню, при выборе которого будет создан чертеж, содержащий определенные слои и типы линий. Сохраните файл экранного меню под именем sme6.mnu. Имя слоя 0 OBJECT HIDDEN CENTER DIM
Цвет WHITE RED YELLOW BLUE GREEN
Тип линий CONTINUOS CONTINUOS HIDDEN CENTER CONTINUOS
Упражнение 8 (Общее) Напишите экранное меню для команд, показанных на рис. 9.13. Для загрузки меню OSNAP используйте элемент “********”, а для возвращения в корневое меню используйте элемент “MENU-8”. Сохраните созданный файл под именем sme6.mnu.
308
Глава 9
Рис. 9.13. Схема экранного меню
Упражнение 9 (Общее) Напишите комбинированное раскрывающееся и экранное меню, содержащее следующие команды AutoCAD. Для выбора различных опций команды LINE может быть использовано каскадное меню. Выбор того или другого элемента должен обеспечивать автоматическую загрузку соответствующего экранного меню и его последующее отображение. LINE Continue Close Undo .X .Y .Z CIRCLE ELLIPSE
ZOOM All ZOOM Win ZOOM Pre PAN DBLIST STATUS
TIME LIST DISTANCE AREA
Макеты экранного и раскрывающегося меню показаны на рис. 9.14 и 9.15.
Упражнение 10 (Общее) Напишите раскрывающееся, экранное и планшетное меню, содержащее следующие команды AutoCAD. Выбор какой-либо команды из накладного шаблона или меню должен обеспечивать загрузку соответствующего экранного меню и его отображение на экране. Макет экранного меню показан на рис. 9.16. LINE PLINE CIRCLE C,R CIRCLE C,D ELLIPSE AXIS ENDPOINT ELLIPSE CENTER
BLOCK WBLOCK INSERT BLOCK LIST ATTDEF ATTEDIT
Экранные меню
Рис. 9.14. Макет экранного меню для упражнения 9
Рис. 9.15. Макет раскрывающегося меню для упражнения 9
Рис. 9.16. Макет экранного меню для упражнения 10
309
310
Глава 9
Упражнение 11 (Общее) Напишите раскрывающееся, экранное и мозаичное меню, содержащее команды, показанные на рис. 9.17. Выбор какой-либо команды из меню должен обеспечивать загрузку соответствующего экранного меню и его отображение на экране.
Рис. 9.17. Макет экранного, раскрывающегося и мозаичного меню для упражнения 11
Упражнение 12 (Общее) Напишите экранное, планшетное, раскрывающееся и мозаичное меню для вставки следующих команд. B1–B15 имена блоков. BLOCK WBLOCK ATTDEF LIST INSERT BL1 BL2 BL3 BL4 BL5
BL6 BL7 BL8 BL9 BL10
BL11 BL12 BL13 BL14 BL15
Упражнение 13 (Общее) Напишите раскрывающееся и экранное меню, содержащее следующие команды AutoCAD. Для команд ARC и CIRCLE можете использовать подменю. При выборе какойлибо команды из меню должно загружаться соответствующее экранное меню. Макет, показанный на рис. 9.18, является одним из возможных вариантов раскрывающегося меню. Команды ARC и CIRCLE располагаются в отдельных группах, которые будут определены в файле в виде подменю. Макет экранного меню показан на рис. 9.19.
Экранные меню LINE PLINE ARC ARC 3P ARC SCE ARC SCA ARC CSE ARC CSA ARC CSL CIRCLE CIRCLE C,R CIRCLE C,D CIRCLE 2P
BLOCK INSERT WBLOCK
311
QUIT SAVE _____ PLOT
Рис. 9.18. Макет раскрывающегося меню для упражнения 13
Рис. 9.19. Макет экранного меню
Ответы на вопросы для самопроверки 1 — MACRO (макрос), 2 — звездочка (*), 3 — MENUCTL, 4 — CMDNAME, 5 — MODEMACRO, 6 — ^P, 7 — плюс (+), 8 — ссылка на подменю, 9 — ^H.
Глава 10
Настройка стандартного меню AutoCAD
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • редактировать файл стандартного меню ACAD.MNU; • загружать меню и подменю; • настраивать планшет; • настраивать кнопочные меню; • настраивать раскрывающиеся и контекстные меню; • настраивать мозаичные и экранные меню.
314
Глава 10
Стандартное меню программы AutoCAD Пакет программного обеспечения AutoCAD содержит файл стандартного меню, который называется acad.mnu. Имя последнего использованного файла меню сохраняется в системном реестре. Этот файл автоматически загружается при запуске программы AutoCAD (рис. 10.1). Для идентификации различных разделов файла меню используются метки разделов. В общем случае, метка раздела имеет формат ***имя_раздела (***section_name). Например, для определения раздела экранного меню используется метка ***SCREEN. Метки различных разделов приведены в следующей таблице. ***SCREEN ***TABLET(n) ***IMAGE ***POP(n)
n от 1 до 4 n от 1 до 499 n = 0, n от 500 до 999 n от 1 до 4 n от 1 до 4
Экранное меню Планшетное меню Мозаичное меню Раскрывающееся меню Меню быстрого вызова команд Меню координатно-указательного устройства Меню системного координатно-указательного устройства Имя группы файлов меню Определение панелей инструментов Текст, отображаемый в строке состояния Определения ускоряющих клавиш
Подменю стандартного меню Количество элементов, содержащихся в подменю, может быть довольно большим, но количество строк, которые могут быть отображены на экране, ограничено. Число строк, отображаемых на экране, зависит от параметров системы и определяется значением системной переменной SCREENBOXES. Например, максимальное число элементов, которые могут быть выведены на экран, равно 21. Если раскрывающееся или экранное меню содержит более 21 элемента, то элементы, не вошедшие в это число, не будут показаны на экране и таким образом станут недоступными. Подобно этому, максимальное число определяемых блоков в области планшета номер 1 равно 255. Если количество элементов, содержащихся в разделе TABLET1, больше 255, элементы меню, не вошедшие в это число, не назначаются ни одному из блоков шаблона и поэтому становятся недоступными. Чтобы выйти из этого положения, попробуйте создать несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в разделе меню. При выборе созданного подменю AutoCAD загружает элементы соответствующего подменю и отображает их на экране. В планшетном меню команды назначаются различным блокам накладного шаблона.
Определение подменю Определение подменю состоит из имени создаваемого подменю и двух звездочек (**), стоящих перед этим именем. Меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. К подменю принадлежат все элементы, начиная с метки подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет такой формат: **Имя
где • ** — две звездочки (**), обозначающие подменю; • Имя — имя подменю. Примечание Длина имени подменю не должна превышать 31 символа. Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_). Использование пробелов в имени подменю не допускается. В файле меню необходимо использовать уникальные имена подменю.
Настройка стандартного меню AutoCAD
331
Ссылка на подменю Ссылка на подменю используется для вызова или загрузки подменю. Она состоит из буквы, определяющей раздел меню, и знака доллара ($), стоящего перед ней. Например, буква “S” определяет экранное меню, буква “B” определяет кнопочное, а буква “I” — мозаичное меню. Для определения различных разделов меню используется выражение Pn, где n — номер соответствующего раздела. По аналогии с этим, для определения разделов планшетного меню используется выражение Tn, где n обозначает номер того или другого раздела. После имени раздела меню ставится знак “равно” (=), а затем указывается имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат: $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $S=BLOCK
где • S — описатель первого раздела раскрывающегося меню; • BLOCK — имя подменю.
Загрузка экранного меню Для загрузки меню, определенного в разделе экранного меню, может быть использована следующая команда: $S=(имя1) $S=(имя2)
где имя1 и имя2 — имена подменю. Пример $S=X $S=INSERT
Здесь • S — буква, определяющая экранное меню; • X — имя подменю, определенного в разделе экранного меню; • INSERT — имя подменю, определенного в разделе экранного меню. При выполнении первой команды ($S=X) происходит загрузка подменю X, определенного в одном из разделов файла меню, в частности, в разделе экранного меню. Это подменю содержит 21 пустую строку, поэтому при его загрузке происходит очистка экранного меню. При выполнении второй команды ($S=INSERT) выполняется загрузка подменю INSERT, которое определено в том же разделе файла меню.
332
Глава 10
Загрузка раскрывающегося меню Раскрывающееся меню можно загрузить из любого другого меню, используя для этого следующую команду: $P(n)=(имя) $P(n)=*
где • n — изменяется от 1 до 10 (POP1–POP10); • имя — имя подменю, определенного в соответствующем разделе раскрывающегося меню. Пример $P1=P1A $P1=*
Здесь • $P1=P1A — команда, выполняющая загрузку подменю P1A; • $P1=* — команда, обеспечивающая отображение нового элемента меню. При выполнении первой команды ($P1=P1A) происходит загрузка подменю P1A, определенного в файле меню в разделе РОР1. Вторая команда ($P1=*), которая является специальной командой AutoCAD, обеспечивает отображение нового элемента меню.
Загрузка мозаичного меню Для загрузки мозаичного меню обычно используется следующая команда: $I=(имя) $I=*
где • имя — имя подменю, определенного в разделе мозаичного меню. Пример $I=IMAGE1 $I=*
Здесь • $I=IMAGE1 — команда, загружающая подменю IMAGE1; • $I=* — команда, обеспечивающая отображение диалогового окна. В этом пункте меню содержится две команды загрузки. При выполнении первой команды ($I=IMAGE1) происходит загрузка мозаичного подменю IMAGE1, определенного в соответствующем разделе файла меню. При выполнении второй команды ($I=*) на экране появляется новое диалоговое окно.
Настройка области планшета 1 Планшетное меню состоит из четырех разделов: TABLET1, TABLET2, TABLET3 и TABLET4 (рис. 10.2). На накладном шаблоне область планшета 1 содержит 25 столбцов, которые обозначены соответствующими числами (от 1 до 25), и 9 строк, которым присвоены буквы от A до I. Общее число блоков, содержащихся в области планшета 1, составляет 255 (25×9=255). Эта область может быть использована для настройки планшетного меню AutoCAD, для чего различным блокам назначаются определенные команды или макросы.
Настройка стандартного меню AutoCAD
333
Рис. 10.2. Области планшета стандартного шаблона AutoCAD
На рис. 10.3 показана область планшета 1 стандартного шаблона AutoCAD. Обратите внимание, прежде чем вносить какие-либо изменения или дополнения, следует познакомиться с командами, которые вы хотите добавить в планшетное меню, и определить их местоположение на шаблоне меню. Хорошо продуманный шаблон планшетного меню поможет сберечь немало рабочего времени. На рис. 10.3 показано схематическое изображение шаблона, содержащего 25 столбцов и 9 строк. Чтобы организовать используемые команды и спроектировать шаблон планшетного меню, начертите подобную схему, а затем сделайте несколько копий. Примечание Прежде чем вносить в меню какие-либо изменения, не забудьте сохранить исходный файл меню. Можно также вначале скопировать файл acad.mnu, а затем отредактировать созданную копию.
Пример 1 Добавьте команды, показанные на рис. 10.4, в раздел TABLET1 файла custom.mnu. В этом примере B10–B25 — имена соответствующих блоков. Вставка блоков должна выполняться с масштабным коэффициентом 1.0 и углом поворота, равным 0. Прежде чем вносить в файл меню какие-либо изменения, определите местоположение всех блоков, имеющихся на шаблоне. Например, WBlock B10 назначен блоку, который находится на пересечении строки В10 и столбца 22. По аналогии с этим, WBlock B17 расположен на пересечении строки С и столбца 25. Расположение блоков WBlock в области планшета 1 показано в следующей таблице:
Рис. 10.3. Область планшета 1, содержащая 25 столбцов и 9 строк
Настройка стандартного меню AutoCAD
335
Рис. 10.4. Команды, назначенные блокам области планшета 1
Для загрузки и редактирования файлов меню можно использовать любой текстовый процессор или редактор текстов. Загрузив файл custom.mnu, найдите раздел, имеющий метку “***TABLET”. Буквы и числа, находящиеся в квадратных скобках, указывают строку и столбец накладного шаблона. Например, в выражении “[A-1]” А является номером строки, а 1 — номером столбца, на пересечении которых находится указанный блок. [A-1]
Здесь • A — номер строки; • 1 — номер столбца. Местоположение первого блока WBlock В10 в файле меню определяется выражением B-22. Найдите в файле меню элемент B-22 и введите команду INSERT (ВСТАВИТЬ) в определение этого элемента. Ниже представлен фрагмент листинга раздела TABLET1 после редактирования файла меню: ***TABLET1 **TABLET1STD [A-1] [A-2] [A-3] [A-4] [A-5] [A-6] [A-7] [A-8] [A-9] [A-10]
Примечание Чтобы загрузить файл custom.mnu, введите команду MENU в командную строку: Command: MENU Enter menu file name or [.(for none)] <текущее имя>: CUSTOM Когда вы выбираете команду вставки из шаблона, в окне командной строки появляется приглашение на ввод точки вставки. Масштабные коэффициенты X и Y, а также угол поворота вставляемого блока уже указаны в определении команды.
^C^CINSERT;B22;\1.0;1.0;0
Здесь • B22 — имя блока Wblock; • \ — обратная косая черта, создающая паузу для ввода данных; • 1.0 — масштабный коэффициент X; • ; — точка с запятой, выполняющая функцию команды ENTER; • 1.0 — масштабный коэффициент Y; • ; — точка с запятой, выполняющая функцию команды ENTER; • 0 — величина угла поворота.
Подменю планшетного меню В файле меню, в разделе TABLET1STD может содержаться настолько много элементов, что для их размещения одного планшета просто не хватит. Например, максимальное количество назначаемых блоков, имеющихся в первой области стандартного планшета AutoCAD, составляет 225. При реконфигурации это число может быть увеличено до 32 766 блоков. Если количество элементов, содержащихся в стандартном разделе TABLET1STD, превышает 225, то элементы меню, не вошедшие в это число, не назначаются ни одному из блоков шаблона и таким образом становятся недоступными. Чтобы выйти из этого положения, создайте несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в разделе меню. Когда пользователь обращается к тому или другому подменю, AutoCAD автоматически загружает новое подменю и назначает соответствующие команды различным блокам, имеющимся в первой области шаблона. Ссылка на подменю имеет следующий формат: $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $T1=TAB1
Здесь • $T1 — описатель первого раздела планшетного меню TABLET1; • TAB1 — имя подменю.
338
Глава 10
Пример 2 Отредактируйте файл custom.mnu, добавив в меню команды, показанные на рис. 10.5. Создайте несколько подменю, а также обеспечьте возможность свопинга созданных подменю. Когда пользователь выберет из планшетного меню команду вставки, AutoCAD должен автоматически загрузить соответствующее экранное меню. Предполагается, что на планшете отсутствует свободное место, которое позволило бы ввести дополнительные команды в область планшета номер 1. Таким образом, вам придется создать несколько подменю, с помощью которых вы сможете разместить те команды, которым не хватило места на планшете. В файле меню custom.mnu, в разделе TABLET1, определены два подменю: TABA и TABB. При загрузке файла custom.mnu автоматически загружается подменю TABA, обеспечивающее возможность выбора команд вставки из шаблона. При выборе блока Load TABB выполняется загрузка подменю TABB, что позволяет получить доступ к командам, содержащимся в этом подменю. Если вы хотите вернуться к подменю TABA, выберите из шаблона блок Load TABA.
Рис. 10.5. Команды, назначенные блокам области планшета 1
Перед вами фрагмент листинга файла меню после вставки определений новых команд в раздел TABLET1. ***TABLET1 **TABLET1STD **TABA [A-1] [A-2] [A-3] [A-4]
Примечание При загрузке подменю TABB трафарет шаблона области планшета номер 1 должен измениться соответствующим образом. Элементы меню, определенные в ячейках H-22, H-23, H-24 и H-25, обеспечивают загрузку подменю TABA и TABB соответственно.
^C^C$T1=TABA
Здесь • ^C^C — команда, дважды отменяющая текущую команду; • $T1=TABA — команда, используемая для загрузки подменю TABA.
Настройка области планшета 2 Область планшета 2 содержит 11 столбцов и 9 строк. Как показано на рис. 10.6, столбцы пронумерованы от 1 до 11, а строки обозначены буквами от J до R. Общее количество блоков, имеющихся в области планшета 2, равно 99 (11×9=99). В этой области, также как и в первой области планшета, нет пустых блоков. Команды, назначенные блокам этой области, определены в разделе TABLET2 файла стандартного меню. Несмотря на это, вы можете изменить или удалить определения команд, назначенные этим блокам. Более того, можно удалить даже весь раздел TABLET2 и написать собственное меню, которое бы полностью отвечало вашим потребностям. Тем не менее, при разработке нового меню следует соблюдать определенную осторожность. Затратив некоторое время, вы сможете создать надежное и вполне работоспособное меню.
Упражнение 1 (Общее) Назначьте следующие команды блокам десятого столбца области планшета 2, как показано на рис. 10.6. LINE PLINE ARC,CSE ARC, SCE ARC,CSA CIRCLE-C,R CIRCLE-C,D CIRCLE-2P
Настройка области планшета 3 Область планшета 3 содержит 9 столбцов и 13 строк. На рис. 10.7 столбцы этой области пронумерованы от 1 до 9, а строки — от 1 до 13. Общее число блоков достигает 117 (13×9=117). По своему размеру эти блоки меньше, чем блоки, содержащиеся в других областях планшета. Кроме этого, блоки имеют прямоугольную форму, чем и отличаются от квадратных блоков других областей. Вы можете изменить или удалить определения команд, назначенные блокам этой области. Более того, можно удалить даже весь раздел TABLET3 и написать собственное меню, которое бы полностью отвечало вашим потребностям. Тем не менее, при разработке нового меню следует соблюдать определенную осторожность. Процесс редактирования файла custom.mnu, который происходит при вводе дополнительных команд в раздел TABLET3, иллюстрируется следующим примером.
342
Глава 10
Рис. 10.6. Команды, назначенные блокам области планшета 2
Пример 3 Введите следующие угловые значения в раздел TABLET3 файла меню custom.mnu. Макет области планшета 3 показан на рис. 10.7. Углы 30 120 210 330
Для того чтобы открыть файл custom.mnu и внести необходимые изменения в раздел TABLET3, можно воспользоваться каким-нибудь текстовым процессором или редактором текстов. Найдите строки, которые вы хотите отредактировать, а затем введите в эти строки определения соответствующих команд. Ниже показан фрагмент листинга файла меню custom.mnu после редактирования раздела TABLET3. ***TABLET3 ; <<30 <<30 <<135 <<135 <<90
Рис. 10.7. Углы, назначенные блокам области планшета 3
Настройка области планшета 4 Область планшета 4 содержит 25 столбцов и 7 строк. Как показано на рис. 10.8, столбцы этой области имеют номера от 1 до 25, а строки обозначены буквами от S до Y. Общее число блоков достигает 175 (7×25=175). Подобно другим областям планшета, в области 4 можно удалять или изменять определения команд, назначенные этим блокам. Более того, можно даже удалить весь раздел TABLET4 и написать собственное меню, которое будет полностью отвечать вашим потребностям. При разработке нового меню следует соблюдать определенную осторожность.
Упражнение 2 (Общее) Введите следующие команды в раздел TABLET4 файла меню custom.mnu. Фрагмент области планшета 4 показан на рис. 10.8. 1. Загрузите файлы trana.lsp и tranb.lsp, которые являются стандартными программами AutoLISP. (Предполагается, что файлы trana.lsp и tranb.lsp представляют собой заранее определенные программы.) 2. Запустите файлы сценариев SCR1 и SCR2.
Рис. 10.8. Команды, назначенные блокам области планшета 4
Примечание ^C^C(LOAD "TRANA");TRANA При выборе элемента меню “LOAD “TRANA”” выполняется загрузка соответствующего файла AutoLISP. Выражение TRANA, вынесенное за скобки, обеспечивает выполнение функции TRANA. Обратите внимание, что перед этим выражением стоит точка с запятой. Для получения более подробной информации обратитесь к главе 12. Здесь • LOAD "TRANA" — команда загрузки программы TRANA; • TRANA — имя одной из функций AutoLISP. ^C^CSCRIPT;SCR1 В этой строке SCR1 — имя файла сценария, а SCRIPT — имя команды AutoCAD, которая обеспечивает выполнение указанного файла. Здесь • SCRIPT — имя команды AutoCAD; • SCR1 — имя файла сценария.
Настройка стандартного меню AutoCAD
345
Настройка кнопочных и вспомогательных меню В стандартном файле меню acad.mnu имеются также разделы кнопочных и вспомогательных меню, которые ничем не отличаются друг от друга. В первом разделе меню того или другого типа содержится девять элементов меню. Далее представлен листинг первых двух разделов кнопочного и вспомогательного меню, содержащихся в файле стандартного меню AutoCAD. ***BUTTONS1 $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,5),GRIP_),$P0=ACAD.GRIPS $P0=*); $P0=SNAP $P0=* ^C^C ^B ^O ^G ^D ^E ^T ***BUTTONS2 $P0=SNAP $P0=* ***AUX1 $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,5),GRIP_),$P0=ACAD.GRIPS $P0=*); $P0=SNAP $P0=* ^C^C ^B ^O ^G ^D ^E ^T ***AUX2 $P0=SNAP $P0=* Примечание В следующей таблице описаны функции элементов меню, определенных в разделе BUTTONS файла custom.mnu.
Функция Метка раздела Команда, обеспечивающая отображение курсорного меню Команда, дважды отменяющая текущую команду Включение/выключение объектной привязки () Включение/выключение режима ортогонального построения () Включение/выключение сетки () Включение/выключение шкалы координат () Изменение плоскости изометрии () Включение/выключение планшета ()
346
Глава 10
Кнопочное меню, как и меню любого другого типа, позволяет вносить различные изменения, в частности, назначать те или другие команды определенным кнопкам координатно-указательного устройства. Наибольшее распространение получили 4- и 10-кнопочные устройства. Первая кнопка такого устройства обычно используется для выделения тех или иных объектов и не может выполнять какие-нибудь другие функции. Остальным кнопкам координатно-указательного устройства обычно назначаются различные команды AutoCAD. В следующем примере описывается процедура редактирования раздела BUTTONS, содержащегося в файле меню custom.mnu (файл custom.mnu является копией файла acad.mnu).
Пример 4 Внесите изменения в раздел BUTTONS файла custom.mnu, назначив следующие команды соответствующим кнопкам координатно-указательного устройства (рис. 10.9).
Рис. 10.9. Команды, назначенные четырем кнопкам координатно-указательного устройства 1. PICK 2. ENTER
3. ZOOM Win 4. ZOOM Prev
Команда ZOOM Window, назначенная кнопке под номером 3, обеспечивает автоматическое увеличение области, вошедшей в квадратное окно (область выделения) со стороной, равной двум единицам. Выделенная точка является одной из вершин этой области. Прежде чем вносить какие-либо изменения, познакомьтесь с описанными командами и теми параметрами, которые связаны с этими командами. Для загрузки файла custom.mnu можно использовать любой текстовый редактор. Чтобы назначить новые команды тем или иным кнопкам координатно-указательного устройства, необходимо отредактировать соответствующие строки раздела ***BUTTONS. Ниже приведен листинг файла custom.mnu, в который были внесены требуемые изменения: ***BUTTONS1 ; 'ZOOM;WIN;\@2,2 'ZOOM;PRE ^B
Выражение, содержащееся в этой строке, является меткой раздела BUTTONS1.
Строка 2 ;
Точка с запятой (;) выполняет функцию команды ENTER и дает тот же результат, что и нажатие клавиши <Enter> на клавиатуре или шаблоне.
Строка 3 'ZOOM;WIN;\@2,2
При выборе этого элемента произойдет автоматическое увеличение области чертежа, показанной на рис. 10.10. При этом первая выбранная точка становится одной из вершин контура выделения. Вторая (противоположная) вершина окна будет расположена на расстоянии 2.0 единицы (по оси X) и 2.0 единицы (по оси Y) от выделенной точки. Здесь • ' — одинарная кавычка, которая делает команду ZOOM прозрачной; • \ — обратная косая черта, позволяющая определить первую вершину окна; • 2,2 — относительные координаты второй вершины окна. Прежде чем выполнить эту команду, переместите перекрестье курсора в область, которую вам необходимо увеличить, а затем нажмите третью кнопку координатно-указательного устройства. Программа AutoCAD увеличит указанную область, так как вершины контура выделения уже определены в соответствующей строке элемента меню. Одинарная кавычка ('), стоящая перед именем команды, делает команду ZOOM Window прозрачной.
Рис. 10.10. Область изменения масштаба изображения
348
Глава 10
Строка 4 'ZOOM;PRE
Выражение, содержащееся в этой строке, определяет команду ZOOM (ПОКАЗАТЬ) с опцией Previous (Предыдущая). Одинарная кавычка ('), стоящая перед именем команды ZOOM, делает эту команду прозрачной. Примечание Команды, определенные в первых трех строках файла (не считая строки ***BUTTONS1), будут назначены второй, третьей и четвертой кнопкам четырехкнопочного координатно-указательного устройства. Остальные элементы меню будут проигнорированы и не окажут никакого влияния на команды, назначенные другим кнопкам. Таким образом, эту часть файла можно оставить без изменения.
Пример 5 Отредактируйте разделы кнопочного и вспомогательного меню, добавив в файл custom.mnu следующие команды AutoCAD. Координатно-указательное устройство содержит десять кнопок (рис. 10.11), при этом кнопка под номером 1 используется как кнопка выделения. Вставляемые блоки должны иметь масштаб 1,00 и угол поворота, равный 0. (Файл custom.mnu является копией файла acad.mnu.) 1. Кнопка указания 4. OSNAPS 7. INSERT B3 10. ZOOM Previous
2. ENTER 5. INSERT B1 8. ZOOM Window
3. CANCEL 6. INSERT B2 9. ZOOM All
Примечание B1, B2 и B3 — имена ранее созданных блоков. Предполагается, что контекстное меню POP0 уже определено в файле меню. Для ZOOM Previous и ZOOM Window используйте прозрачную команду ZOOM.
Далее приведен листинг раздела кнопочного меню после внесения требуемых изменений в файл меню custom.mnu: ***BUTTONS ; ^C^C $P0=* ^C^CINSERT;B1;\1.0;1.0;0 ^C^CINSERT;B2;\1.0;1.0;0 ^C^CINSERT;B3;\1.0;1.0;0 'ZOOM;Win ^C^CZOOM;All 'ZOOM;Prev ***AUX1 ; ^C^C $P0=* ^C^CINSERT;B1;\1.0;1.0;0 ^C^CINSERT;B2;\1.0;1.0;0 ^C^CINSERT;B3;\1.0;1.0;0 'ZOOM;Win ^C^CZOOM;All 'ZOOM;Prev
Рис. 10.11. Команды, назначенные различным кнопкам 10-кнопочного координатно-указательного устройства
Пояснения Строка 3 ^C^C
В этой строке содержится определение команды, назначенной кнопке под номером 3. Эта команда дважды отменяет выполнение текущей команды.
Строка 4 $P0=*
Выражение $P0=*, содержащееся в этой строке, представляет собой специальную команду, которая позволяет обратиться к контекстному меню. При выборе этого элемента AutoCAD отобразит контекстное меню на экране рядом с местом расположения курсора. Курсорное меню, содержащее команды объектной привязки, определено в файле acad.mnu в разделе POP0. Команда, определенная в этой строке, назначена четвертой кнопке координатно-указательного устройства. $S=X $S=OSNAPS
где • $S=X — команда, загружающая подменю X, которое определено в разделе экранного меню; • $S=OSNAPS1 — команда, загружающая подменю OSNAPS1, которое определено в разделе экранного меню.
Строка 5 ^C^CINSERT;B1;\1.0;1.0;0
Выражение ^C^C, содержащееся в этой строке, дважды отменяет выполнение текущей команды. INSERT — команда AutoCAD, используемая для вставки объектов Block или Wblock. В1 — имя блока, а обратная косая черта (\) обеспечивает создание паузы, которая используется пользователем для определения необходимых параметров. В данном случае пользователь указывает точку вставки блока. Первое число 1.0 — значение
350
Глава 10
масштабного коэффициента X, а второе число 1.0 — значение масштабного коэффициента Y. 0, стоящий в конце строки, представляет собой величину угла поворота. Здесь • INSERT — команда AutoCAD; • B1 — имя вставляемого блока; • \ — обратная косая черта, создающая паузу для ввода данных; • 1.0 — значение масштабного коэффициента X; • 1.0 — значение масштабного коэффициента Y; • ; — точка с запятой, выполняющая функцию команды ENTER; • 0 — угол поворота.
Строка 9 ^C^CZOOM;All
В этой строке содержится определение команды, которая назначена девятой кнопке координатно-указательного устройства. При выборе этого элемента будет выполнена команда ZOOM (ПОКАЗАТЬ) с опцией All (Все). Здесь • ZOOM — команда AutoCAD; • ; — точка с запятой, выполняющая функцию команды ENTER; • All опция All команды ZOOM.
Строка 10 'ZOOM;Prev
Выражение, содержащееся в этой строке, определяет прозрачную команду ZOOM (ПОКАЗАТЬ) с опцией Previous (Предыдущая). Эта команда назначена десятой кнопке координатно-указательного устройства. Здесь • ' — одинарная кавычка, которая делает команду ZOOM прозрачной; • ZOOM — команда AutoCAD; • ; — точка с запятой, выполняющая функцию команды ENTER; • Prev — опция Previous команды ZOOM.
Строка 11 ***AUX1
В этой строке выражение AUX1 — метка раздела вспомогательного меню. В данном разделе содержатся элементы, определенные в строках 12–20.
Настройка раскрывающихся меню и меню быстрого вызова команд Раскрывающиеся меню и меню быстрого вызова команд являются частью файла стандартного меню AutoCAD (acad.mnu) и входят в комплект программного обеспечения AutoCAD. Файл acad.mnu автоматически загружается при запуске графического
Настройка стандартного меню AutoCAD
351
редактора, тем самым обеспечивая неизменность стандартной конфигурации программы AutoCAD. Раскрывающиеся меню могут содержать до 499 разделов, определенных как РОР1, РОР2, РОР3 и т.д. Для определения меню быстрого вызова команд в стандартном меню AutoCAD используется раздел РОР0, а также разделы РОР500–РОР999. Для загрузки и отображения меню используется команда $P0=*.
Каскадное размещение подменю Функция каскадного размещения в программе AutoCAD позволяет отображать раскрывающиеся и контекстные меню в иерархическом порядке, что упрощает выбор элементов, содержащихся в подменю. AutoCAD предоставляет ряд специальных символов, которые обеспечивают возможность использования каскадного размещения элементов. Например, символ -> определяет каскадное подменю, а символ <- используется для обозначения последнего элемента меню. Специальные символы, которые могут использоваться при записи раскрывающихся и контекстных меню, приведены в следующей таблице. Символ
Описание
--
Метка элемента, состоящая из двух дефисов, автоматически разворачивается на всю ширину раскрывающегося меню. Пример: [--]
+
Используется для переноса определения элемента меню на следующую строку. Знак “плюс” должен стоять в конце строки. Пример: [Triang:]^C^Cline;1,1;+ 3,1;2,2;
->
Этот символ определяет первый элемент каскадного подменю и должен стоять перед именем подменю. Пример: [->Draw]
<-
Этот символ обозначает последний элемент каскадного раскрывающегося или контекстного меню. Символ <- ставится перед меткой элемента. Пример: [<-CIRCLE 3P]^C^CCIRCLE;3P
<-<-...
Этим символом обозначается последний элемент раскрывающегося или контекстного меню, а также завершается родительское меню. Символ ставится перед меткой элемента. Пример: [<-<-Center Mark]^C^C_dim;_center
$(
Этот символ может использоваться в раскрывающихся и контекстных меню для вычисления выражений DIESEL. Символ ставится перед меткой элемента меню. Пример: $(if,$(getvar,orthomode),Ortho)
~
Пункт меню, обозначенный этим символом, является недоступным; символ ставится перед меткой элемента меню. Пример: [~Application not available]
Длина каждой строки меню зависит от разрешающей способности экрана, установленной в операционной системе Windows. Предположим, например, что параметры монитора позволяют разместить в одной строке не более 80 символов. Таким образом, можно создать 16 меню, названия которых должны состоять не более чем из 5 символов. Если общая длина названий, отображаемых в строке меню, больше 80 символов, программа AutoCAD автоматически сокращает наиболее длинные заголовки таким образом, чтобы в строке меню поместились названия всех меню. Меню имеют также некоторые дополнительные свойства, которые приведены в следующем списке.
352
Глава 10
1. Для обозначения разделов меню используются метки ***POP1–***POP16. Названия меню отображаются в строке меню. 2. Чтобы обратиться к командам меню, щелкните на соответствующем названии в строке меню, которая находится в верхней части окна. 3. В каждом меню можно определить не более 999 элементов. В это число входят также элементы, содержащиеся в различных подменю. Элементы меню, превышающие 999, игнорируются. 4. Число элементов меню, которые могут быть отображены на экране, зависит от разрешающей способности используемого монитора. Если контекстное или раскрывающееся меню содержит больше пунктов, чем может поместиться на экране, “лишние” элементы меню отсекаются. Например, если система позволяет отобразить только 35 элементов меню, пункты, которые не помещаются на экране, автоматически отбрасываются. 5. В том случае, если конфигурация программы AutoCAD не поддерживает отображение строки состояния, меню, контекстные меню и строка меню становятся недоступными.
Пример 6 Отредактируйте раздел меню РОР4, введя в него новую команду вставки с меткой NEW-INSERT (рис. 10.12). Когда пользователь выберет элемент “NEW-INSERT” из меню РОР4, на экране должно появиться каскадное подменю, содержащее команды для вставки следующих блоков. INSERT-BLOCKS
Название каскадного подменю
DOOR1 DOOR2 -------WINDOW1 WINDOW2
Примечание Условные обозначения дверей и окон сохранены в виде файла WBLOCKS или в виде отдельных чертежей в подкаталоге SYMBOLS на диске D. Пользователь должен иметь возможность определить точку вставки, а затем вставить блоки с масштабными коэффициентами X и Y, равными 1,25, и углом поворота 0 градусов. Не следует редактировать файл acad.mnu. Скопируйте его, сохраните копию файла под каким-нибудь другим именем (например, custom.mnu), а затем внесите необходимые изменения в новый файл.
Используя текстовый редактор, откройте файл custom.mnu и найдите команду INSERT, которая находится в разделе ***POP4. Затем вставьте строку, которая содержит определение каскадного подменю INSERT-BLOCK, показанного на рис. 10.12.
ID_MnZoom [->&Zoom] ID_ZoomRealt [&Realtime]'_zoom ID_ZoomPrevi [&Previous]'_zoom_p ID_ZoomWindo [&Window]'_zoom_w ID_ZoomDynam [&Dynamic]'_zoom_d ID_ZoomScale [&Scale]'_zoom_s ID_ZoomCente [&Center]'_zoom_c | | ***POP4 **INSERT ID_MnInsert [&Insert] ID_Ddinsert [&Block...]^C^C_insert ID_Xattach [E&xternal Reference...]^C^C_xattach ID_Imageatta [Raster &Image...]^C^C_imageattach | [->Insert-Blocks] [Door1]^C^C_insert;d:/symbols/door1;\1.25;1.25;0 [Door2]^C^C_insert;d:/symbols/door2;\1.25;1.25;0 [--] [Window1]^C^C_insert;d:/symbols/window1;\1.25;1.25;0 [<-Window2]^C^C_insert;d:/symbols/window2;\1.25;1.25;0 Примечание [DOOR1]^C^CINSERT;D:/SYMBOLS/DOOR1;\1.25;1.25;0 Определяя путь поиска в файле меню, замените обратную косую (\) левой косой чертой (/). Чтобы обеспечить загрузку файла DOOR1, который находится на диске D в подкаталоге SYMBOLS, при определении пути поиска следует использовать выражение D:\SYMBOLS\DOOR1. Но точно такой же оператор в файле меню будет определен как “D:/SYMBOLS/DOOR1” (в файле меню обратная косая черта используется для ввода данных пользователем). [->Insert-Blocks] Символ ->, содержащийся в этой строке, определяет каскадное подменю. При выборе этого элемента из меню РОР3, программа AutoCAD отобразит соответствующее подменю рядом с основным меню. [<-Window1]^C^C_insert;d:/symbols/window1;\1.25;1.25;0 Символ <-, содержащийся в этой строке, используется для обозначения последнего элемента каскадного подменю.
Меню быстрого вызова команд Меню быстрого вызова команд похожи на раскрывающиеся меню и отличаются только тем, что могут содержать не более 499 пунктов меню (количество элементов в раскрывающемся меню может достигать 999). В меню быстрого вызова команд используются метки разделов ***POP0 и ***POP500–***POP999. Меню данного типа отображаются в месте расположения курсора. Поэтому меню быстрого вызова команд могут использоваться для обеспечения быстрого и удобного доступа к часто используемым командам. Меню быстрого вызова, находящиеся на более высоком уровне, называют также контекстными меню. Ниже приведены основные свойства этого меню.
Настройка стандартного меню AutoCAD
355
1. При записи меню быстрого вызова команд используются метки разделов ***POP0 и ***POP500–***POP999. Заголовок строки меню, определенный в этом разделе, в строке меню не отображается. 2. В большинстве систем заголовок строки меню в верхней части меню не отображается. Тем не менее, для достижения определенного соответствия можно ввести фиктивные заголовки строки меню. 3. Для получения доступа к меню РОР0 можно использовать команду $P0=*. При обращении к меню POP500–POP999 следует использовать их альтернативные имена. К числу псевдонимов, зарезервированных для использования в программе AutoCAD, относятся GRIPS, CMDEFAULT, CMEDIT и CMCOMMAND. Например, чтобы вызвать меню POP500, щелкнув правой кнопкой мыши на выделенном объекте, необходимо ввести команду ***GRIPS в раздел POP500. (Если значение системной переменной GRIPS равно 1, то при выделении какого-либо объекта на вершинах многоугольника или концах линий возникают небольшие квадратики синего цвета (так называемые “ручки”). Для выдачи этой команды можно использовать пункты другого меню, например, контекстного, вспомогательного или экранного. Для выдачи команды также можно использовать программы AutoLISP или ADS. 4. В меню быстрого вызова команд можно определить не более 499 элементов меню; сюда включены также элементы, содержащиеся в подменю. Пункты меню, не вошедшие в это число, игнорируются. 5. Количество пунктов меню, которые могут быть отображены на экране, зависит от технических характеристик используемой системы. Если раскрывающееся меню или меню быстрого вызова команд содержит больше пунктов, чем может поместиться на экране, “лишние” строки меню автоматически отсекаются. Например, если система позволяет отобразить не более 21 пункта, пункты меню, не поместившиеся на экране, автоматически отбрасываются.
Подменю меню быстрого вызова команд В файле меню может быть определено любое количество элементов, но далеко не все из них могут поместиться на одном экране. Например, максимальное число элементов, которые могут быть отображены на экране, равно 21. Элементы меню, не вошедшие в это число, не отображаются на экране и поэтому становятся недоступными. Чтобы выйти из этого положения, попробуйте создать несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в данном разделе меню. При выборе подменю AutoCAD загружает элементы соответствующего подменю и отображает их на экране.
Выгружаемые меню Меню AutoCAD, в которых используется функция каскадного размещения элементов, являются наиболее простыми и эффективными. При их создании используется логическая модель, которая упрощает загрузку подменю и обеспечивает их надежную и стабильную работу. В тех случаях, когда приходится создавать раскрывающиеся или контекстные меню, рекомендуется использовать каскадные меню. Но не забывайте, что программа AutoCAD поддерживает возможность выгрузки подменю, использование которой может привести к повреждению меню. Это связано с тем, что в процессе выгрузки исходное меню полностью заменяется соответствующим подменю.
356
Глава 10
$Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $P1=P1A
где • $P1 — описатель первого раздела раскрывающегося меню; • P1A — имя подменю.
Настройка мозаичных меню Мозаичные меню чрезвычайно удобны для вставки блоков и выбора шаблонов штриховки или текстовых шрифтов. Мозаичные меню можно также использовать при загрузке подпрограмм AutoLISP или ранее определенных макросов. Таким образом, мозаичное меню является мощным средством настройки программы AutoCAD. К опциям мозаичного меню можно обращаться, используя раскрывающиеся, кнопочные, планшетные или экранные меню. Тем не Рис. 10.13. Фрагмент мозаичного меню менее, это не дает вам возможности загрузить нужное мозаичное меню, введя соответствующую команду. При выборе мозаичного меню на экране появляется диалоговое окно, содержащее два десятка графических изображений. В левой части диалогового окна отображаются имена файлов, которые связаны с изображенными пиктограммами. Списковое окно, содержащее имена файлов, иногда снабжено полосой прокрутки. Название мозаичного меню отображено в верхней части диалогового окна. При активизации меню на экране появляется стрелка, перемещая которую вы можете выбрать тот или другой пункт меню. Можно также выбрать требуемое изображение, выделив в диалоговом окне имя соответствующего слайда и щелкнув на кнопке ОК, или дважды щелкнув мышью на имени слайда. Когда вы выбираете файл того или другого слайда, AutoCAD выделяет соответствующую пиктограмму, очерчивая рисунок толстой прямоугольной рамкой. Чтобы выделить пиктограмму той или иной опции, можно также переместить стрелку курсора в нужное место, а затем нажать левую кнопку мыши или кнопку выбора координатно-указательного устройства. При этом автоматически выделяется имя соответствующего файла. Когда вы щелкнете на кнопке ОК или дважды щелкнете мышью на пиктограмме или имени файла, будет выполнена команда, связанная с данным пунктом меню. Чтобы выйти из мозаичного меню, нажмите клавишу <Esc>, щелкните на кнопке Cancel (Отмена) или выделите какое-нибудь другое изображение, содержащееся в диалоговом окне.
Настройка стандартного меню AutoCAD
357
Мозаичное меню будет работать только тогда, когда конфигурация системы обеспечивает отображение строки состояния. В противном случае вы просто не сможете им воспользоваться. Мозаичное меню начинается с метки раздела ***IMAGE, после которой указываются названия пиктограмм или имена соответствующих подменю. Файл меню содержит только один раздел мозаичного меню (***IMAGE), поэтому все графические изображения должны быть определены в этом разделе. ***IMAGE
где • *** — три звездочки, обозначающие метку раздела; • IMAGE — метка раздела мозаичного меню.
Подменю мозаичного меню Количество элементов, которые можно определить в мозаичном меню, не ограничено, но на экране будет отображено не более 20 пиктограмм. Если количество элементов превышает указанное число, то для перелистывания страниц, содержащих пиктограммы мозаичного меню, используются кнопки Next и Previous, которые находятся в нижней части диалогового окна. Можно также создать несколько подменю, которые позволят определить небольшие группы элементов в пределах раздела мозаичного меню. При выборе подменю содержащиеся в нем элементы загружаются и отображаются на экране. $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $I=IMAGE1
где • $I — описатель раздела мозаичного меню; • IMAGE1 — имя подменю.
Метки элементов мозаичного меню В мозаичных меню, так же как в экранных или раскрывающихся меню, могут использоваться метки элементов меню. Тем не менее, метки элементов мозаичного меню сохраняются в самых различных форматах, каждый из которых выполняет определенную функцию. В диалоговом окне мозаичного меню метки элементов отображаются в списковом окне, содержащем названия слайдов. Максимальная длина названия составляет 17 символов. Символы, не вошедшие в это число, в списковом окне не отображаются. Следует заметить, что это правило не влияет на длину команды, которая определена в разделе соответствующего элемента мозаичного меню. Ниже приведены различные форматы, используемые при записи меток элементов меню.
358
Глава 10
[slidename]. Метки элементов, имеющие подобный формат, представляют собой имя слайда, показанного в диалоговом окне мозаичного меню. Это имя также отображается в списковом окне, расположенном в левой части мозаичного меню. [slidename, label]. В этом формате выражение slidename является именем слайда, отображенного в мозаичном меню. Но в отличие от предыдущего формата, в списковом окне отображается не имя слайда, а его метка (label). Например, элемент меню имеет метку [BOLT1,1/2-24UNC-3LG]. В этом случае BOLT1 является именем слайда, а выражение Ѕ-24UNC-3LG представляет собой метку элемента, которая будет отображена в списковом окне мозаичного меню. [slidelib(slidename)]. В этом формате выражение slidename является именем слайда, находящегося в библиотеке слайдов slidelib. Слайд (в виде пиктограммы) показан в окне мозаичного меню, а файловое имя слайда (slidename) отображается в списковом окне соответствующего диалогового окна. [slidelib(slidename,label)]. В этом формате выражение slidename является именем слайда, находящегося в библиотеке слайдов (slidelib). Слайд показан в окне мозаичного меню, а файловое имя слайда (slidename) отображается в списковом окне соответствующего диалогового окна. [blank]. С помощью этого элемента меню создается линия, которая растягивается на всю ширину спискового окна. При этом в диалоговом окне отображается пустое мозаичное окно (т.е. окно без изображения). [ label]. Если перед меткой элемента стоит пробел, программа AutoCAD не выполняет поиск соответствующего слайда, а всего лишь отображает текст этой метки в списковом окне. Например, если элемент меню имеет метку [ EXIT]^C, то в списковом окне появится надпись “EXIT”. При выборе этого элемента будет выполнена команда отмены (^C), определенная в файле мозаичного меню. Текст метки не отображается в ячейках мозаичного меню.
Пример 7 Напишите мозаичное меню, с помощью которого вы сможете вставить следующие блоки (рис. 10.14). Доступ к этому меню может осуществляться из раздела POP12.
Рис. 10.14. Команды, определенные в мозаичном меню
Настройка стандартного меню AutoCAD
359
Примечание Предполагается, что в мозаичном меню используются ранее созданные слайды, которые имеют те же имена, что и вставляемые блоки. Не редактируйте исходный файл acad.mnu. Скопируйте файл acad.mnu, сохраните копию этого файла под другим именем (например, под именем custom.mnu), а затем внесите в нее требуемые изменения.
Используя текстовый редактор, откройте файл custom.mnu и найдите метку раздела ***IMAGE. Следует заметить, что в раскрывающемся меню, которое имеется в стандартном файле acad.mnu, раздел POP12 отсутствует. Поэтому вам необходимо определить раздел POP12, вставив строку определения перед меткой ***IMAGE. В свою очередь, после метки ***IMAGE следует вставить строку определения мозаичного меню INSTBLK. Далее представлен фрагмент листинга файла custom.mnu, в который были внесены все необходимые изменения. ***POP12 [BLOCKS] [INSERT]^C^C$I=INSTBLK $I=* ***IMAGE **INSTBLK [INSERT CUSTOMIZED BLOCKS] [BL1]^C^CINSERT;BL1;\1.0;1.0;0 [BL2]^C^CINSERT;BL2;\1.0;1.0;0 [BL3]^C^CINSERT;BL3;\1.0;1.0;0 [BL4]^C^CINSERT;BL4;\1.0;1.0;0 [BL5]^C^CINSERT;BL5;\1.0;1.0;0 [BL6]^C^CINSERT;BL6;\1.0;1.0;0 [ EXIT]^C^C Примечание [INSERT]^C^C$I=INSTBLK $I=* Выражение $I=INSTBLK, содержащееся в этой строке, загружает мозаичное подменю INSTBLK, которое определено в разделе мозаичного меню. Команда $I=* обеспечивает отображение диалогового окна, содержащего пиктограммы соответствующих блоков. Здесь • $I=INSTBLK — команда, загружающая подменю INSTBLK, определенное в разделе мозаичного меню; • $I=* — команда, обеспечивающая отображение диалогового окна. ***IMAGE В этой строке содержится метка раздела мозаичного меню. В этом разделе файла (***IMAGE) должны быть определены все мозаичные меню. **INSTBLK В этой строке содержится метка подменю, которому присвоено имя INSTBLK. [INSERT CUSTOMIZED BLOCKS] Эта строка, содержащая описание команд мозаичного меню, отображается в верхней части (в строке заголовка) диалогового окна. [BL1]^C^CINSERT;BL1;\1.0;1.0;0 Выражение BL1, содержащееся в квадратных скобках, является именем слайда, используемого в качестве одной из пиктограмм диалогового окна. ^C^C дважды отменяет вы-
360
Глава 10 полнение текущей команды, а команда INSERT обеспечивает вставку блока BL1, отображенного в масштабе 1,0 и повернутого на угол, равный 0 градусов. Здесь • [BL1] — имя слайда; • BL1 — имя блока; • \ — обратная косая черта, создающая паузу для определения точки вставки; • 1.0 — масштабный коэффициент X; • 1.0 — масштабный коэффициент Y; • 0 — угол поворота.
Настройка экранного меню Программа AutoCAD дает вам возможность редактировать разделы экранного и других меню, изменяя или удаляя существующие команды или вводя новые команды и подменю. Прежде чем записать меню, его необходимо спроектировать, расположив элементы меню в том порядке, в каком они будут отображаться на экране. Для этого вы должны выбрать соответствующие команды, а затем разместить их таким образом, чтобы обеспечить доступ к наиболее часто используемым командам. Хорошо продуманная структура меню позволяет сэкономить немало времени. Поэтому создайте несколько возможных вариантов, имеющих различное сочетание команд, и выберите из них тот, который наиболее полно соответствует вашему проекту.
Подменю экранного меню В файле меню может быть определено любое количество элементов, но далеко не все из них могут поместиться на одном экране. Например, максимальное число элементов, которые могут быть отображены на экране, равно 21. Элементы меню, не вошедшие в это число, не отображаются на экране и поэтому становятся недоступными. Чтобы выйти из этого положения, попробуйте создать несколько подменю, с помощью которых вы сможете определить небольшие группы элементов, содержащихся в данном разделе меню. При выборе того или другого подменю программа AutoCAD загружает элементы соответствующего подменю и отображает их на экране. $Раздел=Подменю
где • $ — знак доллара; • Раздел — описатель (спецификатор) раздела меню; • = — знак “равно”; • Подменю — имя подменю. Пример $S=EDIT
где • $S — описатель первого раздела раскрывающегося меню; • EDIT — имя подменю.
Настройка стандартного меню AutoCAD
361
Вложенные подменю При активизации подменю происходит копирование текущего меню в стековую память. Если вы выберете какое-нибудь другое подменю, текущее подменю будет скопировано и размещено в верхнем слое стековой памяти. Максимальное количество меню, которые могут быть размещены в стеке, равно восьми. При увеличении размера стековой памяти меню, находящееся в нижнем слое, удаляется. Для вызова предыдущего меню можно использовать запрос вложенного подменю, имеющий следующий формат: $S=
где • $ — знак доллара; • S — описатель экранного меню; • = — знак “равно”. Максимальное количество вложенных подменю равно восьми. Каждый раз, когда вы обращаетесь к подменю (т.е. при выдаче команды $S=), происходит выталкивание последнего элемента из стека и его последующая активизация. Примечание Для того чтобы загрузить исходное меню (acad.mnu), загрузите файл меню, используя команду MENU. Command: MENU Enter menu file name or [. (for none)] <SM1>: ACAD.MNU Если необходимо ввести какие-либо данные с помощью клавиатуры или координатно-указательного устройства, введите в строку определения обратную косую черту (\). Работа программы будет приостановлена, что позволит пользователю определить требуемые параметры. После обратной косой черты (\) пробел не ставится. В определениях команд, названиях элементов меню и метках разделов меню могут использоваться как прописные, так и строчные буквы. Чтобы сделать файл меню более читабельным, можете вставить пустые строки между элементами меню. Если количество элементов, содержащихся в меню, превысит число имеющихся строк, то “лишние” элементы меню не будут отображены на экране. Например, если максимальное количество строк, которые могут быть отображены на экране, равно 21, то элементы меню, не вошедшие в это число, не выводятся на экран и таким образом становятся недоступными.
Пример 8 Отредактируйте стандартное меню AutoCAD, введя в него команды, показанные на рис. 10.15. Примечание Предполагается, что мозаичное подменю INSTBLK уже определено в соответствующем разделе файла меню. Не редактируйте файл acad.mnu. Скопируйте его, сохраните копию файла под именем custom.mnu, а затем внесите в новый файл все необходимые изменения.
362
Глава 10
Рис. 10.15. Отредактированное экранное меню
Используя текстовый редактор, откройте файл custom.mnu и найдите метку раздела ***SCREEN. Введите новый элемент меню в подменю **S, а затем определите подменю **CUSTOM и элементы меню, показанные на рис. 10.14. Ниже приведен фрагмент листинга файла custom.mnu, в который были внесены все необходимые изменения: ***IMAGE **INSTBLK [INSERT CUSTOMIZED BLOCKS] [BL1]^C^CINSERT;BL1;\1.0;1.0;0 [BL2]^C^CINSERT;BL2;\1.0;1.0;0 [BL3]^C^CINSERT;BL3;\1.0;1.0;0 [BL4]^C^CINSERT;BL4;\1.0;1.0;0 [BL5]^C^CINSERT;BL5;\1.0;1.0;0 [BL6]^C^CINSERT;BL6;\1.0;1.0;0 [ EXIT]^C^C | | **SCREEN **S [AutoCAD ]^C^C^P(ai_rootmenus)^P [* * * * ]$S=ACAD.OSNAP [FILE ]$S=ACAD.01_FILE [EDIT ]$S=ACAD.02_EDIT [VIEW 1 ]$S=ACAD.03_VIEW1 [VIEW 2 ]$S=ACAD.04_VIEW2 [INSERT ]$S=ACAD.05_INSERT | | **ASSIST 3 [Last ]_l [Previous]_p [All ]_all
Настройка стандартного меню AutoCAD
363
[Cpolygon]_cp [Wpolygon]_wp | | [CUSTOM]^C^C$S=X $S=CUSTOM **CUSTOM 3 [LISP-] [ TRANA:]^C^C(LOAD "TRANA");TRANA [ TRANB:]^C^C(LOAD "TRANB");TRANB [ ] [SCRIPT-] [ SCR1:]^C^CSCRIPT;SCR1 [ SCR2:]^C^CSCRIPT;SCR2 [ ] [IMAGE-BLK]^C^C$I=INSTBLK $S=* Примечание [CUSTOM]^C^C$S=X $S=CUSTOM В этой строке содержится команда $S=X, которая загружает подменю Х, определенное в разделе экранного меню. Команда $S=CUSTOM загружает подменю CUSTOM, которое также определено в разделе экранного меню файла custom.mnu. Здесь • $S=X — команда, загружающая подменю X; • $S=CUSTOM — команда, загружающая подменю CUSTOM. **CUSTOM 3 В этой строке CUSTOM — имя подменю. Число 3, стоящее после имени подменю, указывает на то, что элементы, определенные в подменю CUSTOM, будут выводиться на экран начиная с третьей строки. Первые две строки не будут заполняться ничем. Таким образом, строки “AutoCAD” и “* * * *” будут постоянно отображаться на экране. Здесь • CUSTOM — имя подменю; • 3 — номер строки, с которой начинается отображение подменю. [IMAGE-BLK]^C^C$I=INSTBLK $S=* В этой строке команда $I=INSTBLK загружает мозаичное подменю INSTBLK, определенное в файле меню в разделе мозаичного меню. Команда $S=* обеспечивает отображение нового мозаичного меню на экране. Здесь • $I=INSTBLK — команда, загружающая подменю INSTBLK; • $S=* — команда, обеспечивающая отображение нового мозаичного меню на экране.
364
Глава 10
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. При запуске программы AutoCAD ________ загружается последнее использованное меню. 2. Область планшета номер 1 стандартного меню acad.mnu содержит ________ столбцов и ________ строк. 3. Блоки, содержащиеся в различных областях планшета, имеют ________ форму. 4. Для загрузки и отображения меню быстрого вызова команд может быть использована команда _________. 5. Область планшета номер 2 стандартного меню acad.mnu содержит ________ столбцов и ________ строк. 6. Мозаичное меню будет работать только в том случае, если строка состояния не ________. 7. Свопинг подменю иногда приводит к ________. 8. В программе AutoCAD может быть не более ________ запросов вложенных подменю. 9. Область планшета номер 3 стандартного меню acad.mnu содержит ________ столбцов и ________ строк. 10. По своему размеру блоки области планшета номер 3 _________, чем блоки, содержащиеся в других областях накладного шаблона. 11. Область планшета номер 4 стандартного меню acad.mnu содержит ________ столбцов и ________ строк.
Повторение пройденного материала Ответьте на следующие вопросы. 1. В программе AutoCAD файлы меню могут содержать не более ________ основных разделов. 2. Планшетное меню может содержать до ________ разделов. 3. Метка раздела обозначается _________. 4. Метка подменю обозначается ________. 5. Чтобы отменить выполнение текущей команды, введите в файл меню выражение _________. 6. Имена подменю должны содержать не более ________ символов. 7. Одну и ту же команду _________ назначить нескольким блокам накладного шаблона. 8. Для конфигурирования планшетного меню используется команда AutoCAD _________. 9. Чтобы загрузить новое меню, можно воспользоваться командой AutoCAD _________. 10. Для конфигурирования различных областей планшета необходимо определить точки, образующие ________ угол.
Настройка стандартного меню AutoCAD
365
11. Команды назначаются кнопкам координатно-указательного устройства в _______ порядке, в каком они расположены в кнопочном меню. 12. Команда, используемая для загрузки подменю, определенного в разделе экранного меню, имеет формат ________. 13. Команда, используемая для загрузки подменю, определенного в разделе раскрывающегося меню, имеет формат ________. 14. Команда, используемая для загрузки подменю, определенного в разделе мозаичного меню, имеет формат ________. 15. Для отображения текущего раскрывающегося меню используется команда _____.
Упражнения Упражнение 3 (Общее) Введите следующие команды в раздел TABLET1 стандартного файла меню acad. mnu. На рис. 10.16 показан макет области планшета номер 1. VIEW POINTS 0,0,1 1,-1,1
1,0,0 1,1,1
0,1,0 -1,1,1
Рис. 10.16. Команды, назначенные области планшета 1
Упражнение 4 (Общее) Введите следующие команды в раздел TABLET1 стандартного файла меню acad. mnu. На рис. 10.17 показан макет области планшета 1. INSERT NO INSERT NC INSERT COIL INSERT RESIS
PLOT 12×18 PLOT 18×24 PLOT 24×36 PRPLOT
SETLAYER OBJ SETLAYER HID SETLAYER CEN SETLAYER DIM
366
Глава 10
Рис. 10.17. Команды, назначенные области планшета 1
Упражнение 5 (Общее) Напишите кнопочное меню, содержащее следующие команды AutoCAD (рис. 10.18). Введите дополнительные команды в раздел BUTTONS2 файла меню acad.mnu. Координатно-указательное устройство содержит 10 кнопок; кнопка под номером 1 используется для выбора точек. Блоки вставляются в масштабе 1,0 и с углом поворота, равным 0 градусов. Сохраните файл кнопочного меню под именем bme1.mnu. 1. Кнопка указания 4. OSNAPS 7. NEAR 10. PAN
2. ENTER 5. END PT 8. ZOOM Window
3. CANCEL 6. CENTER 9. ZOOM Prev
Рис. 10.18. Команды, назначенные различным кнопкам координатноуказательного устройства
Настройка стандартного меню AutoCAD
367
Упражнение 6 (Общее) Введите команды, показанные на рис. 10.19, в раздел РОР12 стандартного файла меню acad.mnu.
Рис. 10.19. Раздел меню РОР12
Упражнение 7 (Общее) Напишите файл мозаичного меню для вставки следующих блоков. Для обращения к командам созданного меню может использоваться раздел РОР13. Предполагается, что все необходимые блоки уже созданы. SYMBOL-X LOGO-1 TBLOCK-1
Геометрические фигуры и текстовые шрифты Цель занятия Познакомившись с материалом этой главы, вы научитесь: • записывать определения геометрических фигур; • записывать файлы геометрических фигур, используя длины и коды направления векторов; • компилировать и загружать файлы фигур и шрифтов; • определять формы с помощью специальных кодов; • записывать файлы текстовых шрифтов.
370
Глава 11
Файлы геометрических фигур AutoCAD обеспечивает возможность определения геометрических фигур и текстовых шрифтов. Определения форм представляют собой тестовые файлы в формате ASCII с расширением .shp. Для записи этих файлов обычно используется какой-нибудь текстовый редактор, например Notepad. Файлы геометрических фигур содержат информацию об отдельных элементах, формирующих контур того или иного объекта. Основными элементами, используемыми при определении объектов, являются линии и дуги. С помощью этих элементов можно определить любую геометрическую фигуру, а затем вставить ее в создаваемый чертеж. Геометрические фигуры упрощают процесс вставки объектов и требуют меньше дискового пространства, чем блоки. Тем не менее, использование фигур имеет определенные недостатки. В частности, пользователь не может их редактировать или вносить какиелибо изменения. В свою очередь, блоки можно разделить на элементарные фигуры, “расчленив” их с помощью команды EXPLODE (РАСЧЛЕНИТЬ), а затем изменить их тем или другим образом.
Описание фигуры Описание геометрической фигуры состоит из двух частей: заголовка и спецификации формы.
Заголовок Заголовок фигуры имеет следующий формат: *Номер фигуры, количество байтов, имя фигуры
Например: *201, 21, HEXBOLT
где • *201 — номер фигуры; • 21— количество байтов данных, содержащихся в спецификации фигуры; • HEXBOLT — имя фигуры. Строка заголовка начинается с номера фигуры, перед которым ставится звездочка (*). В качестве номера фигуры используется любое число от 1 до 255, которое является уникальным для каждого файла. Несмотря на это, назначенные номера могут повторяться в файлах форм, имеющих другие имена. Количество байт — число, заканчивающееся нулем, которое определяет количество байт данных, используемых в спецификации фигуры. Имя фигуры — название геометрической фигуры, состоящее из прописных букв. Имя фигуры, написанное строчными буквами, игнорируется. Не забывайте также о том, что в файле не должно быть разных фигур, имеющих одинаковые имена.
Спецификация фигуры Спецификация геометрической фигуры содержит полное определение формы данного объекта. Форма объекта описывается с помощью специальных кодовых обозначений, а также шестнадцатеричных и десятичных чисел. Перед шестнадцатеричным числом ста-
Геометрические фигуры и текстовые шрифты
371
вится ведущий нуль (например, 012), а десятичное число отображается в обычном виде (т.е. без ведущего нуля). Байты данных разделены запятой (,). Количество байт данных, используемых при описании одной фигуры, может достигать 2 000, при этом файлы форм могут содержать описания нескольких фигур. Спецификация геометрической фигуры может состоять из нескольких строк. Поэтому необходимо разбить фигуру на несколько блоков и разместить определения этих блоков в отдельных строках. Это упрощает редактирование файла и исправление допущенных ошибок. В каждой строке должно быть не более 80 символов. Спецификация фигуры заканчивается нулем.
Кодирование направления и длины вектора Коды, определяющие направление вектора, показаны на рис. 11.1. Все векторы, изображенные на этом рисунке, имеют одну и ту же спецификацию длины. Длины векторов, проведенных по диагонали, увеличены в соответствии с длиной ближайшего ортогонального вектора. Допустим, что конечная точка вектора 0 отнесена на два единичных отрезка от точки пересечения векторов (т.е. от начала координат). Конечная точка вектора 1 находится на один единичный отрезок выше конца отрезка 0. Известно, что тангенс угла треугольника равен отношению противолежащего катета к прилежащему. Таким образом, угол между векторами 0 и 1 равен 26,565 градуса (arctg 1/2 = arctg 0,5 = 26,565 градусов). По аналогии с этим, угол между векторами 0 и 2 равен 45 градусам (arctg 2/2 = arctg 1 = = 45 градусов).
Рис. 11.1. Кодирование длины и направления вектора
Векторы, показанные на этом рисунке, имеют одинаковые спецификации размера или длины. Другими словами, несмотря на то, что фактические длины векторов отличаются, в их определении используются одни и те же величины. Чтобы определить вектор, необходимо указать его длину и направление. Это означает, что каждый байт спецификации формы содержит кодовое обозначение, определяющее длину и направление вектора. Максимальная длина вектора составляет 15 единичных отрезков. Применение векторов иллюстрируется следующим примером.
372
Глава 11
Пример 1 Напишите файл, определяющий форму условного обозначения резистора, показанного на рис. 11.2. Присвойте этой фигуре имя “RESIS”. Сохраните файл формы под именем sh1.shp.
Рис. 11.2. Резистор
Шаг 1: запись файла формы Для записи файла обычно используется какой-нибудь текстовый редактор. Файл формы условного обозначения резистора содержит следующие строки: *201,8,RESIS 020,023,04D,043,04D,023,020,0
Первая строка файла является заголовком, а вторая — спецификацией формы.
Пояснения Строка заголовка *201,8,RESIS
Здесь • *201 — номер формы; • 8 — число байтов данных, содержащихся в строке спецификации этой фигуры; • RESIS — имя геометрической фигуры.
Спецификация формы 020,023,04D,043,04D,023,020,0
Здесь • 0 — нуль, указывающий на представление чисел в шестнадцатеричной системе счисления; • 2 — длина вектора; • 0 — код направления. Каждый байт данных этой строки, за исключением завершающего нуля, содержит три элемента. Первый элемент (0) указывает на использование шестнадцатеричной системы счисления, второй обозначает длину вектора, третий элемент является кодом направ-
Геометрические фигуры и текстовые шрифты
373
ления. Как следует, например, из первого байта данных (020), длина вектора равна 2, а его направление совпадает с направлением вектора 0. Точно так же, во втором байте данных (023) первый элемент указывает на шестнадцатеричное представление чисел, второй элемент (2) определяет длину вектора, а третий (3) представляет собой кодовое обозначение направления.
Шаг 2: компилирование файла формы Сохраните набранный текст в виде файла с расширением .shp. Это позволит вам, используя команду COMPILE, компилировать файл формы или файл шрифта. Откройте диалоговое окно Select Shape or Font File (Выбор файла формы или шрифта), показанное на рис. 11.3, введя выражение COMPILE в командную строку. В открывшемся диалоговом окне выберите файл формы, который вы хотите компилировать. После того как компилирование файла будет завершено, в командной строке появится следующее сообщение: Compilation successful Output file name.shx contains nn bytes ◊◊◊ Компилирование успешно завершено Выходной файл name.shx содержит nn байтов
В процессе компилирования файл .shp будет преобразован в файл с расширением .shx. В этом примере выходной файл получает имя sh1.shp. Количество байтов данных, содержащихся в этом файле, равно 49. Если программа AutoCAD обнаружит какую-либо ошибку, допущенную при записи файла, на экране появится соответствующее сообщение, в котором будет указан тип ошибки и номер строки, в которой она находится. Можно также определить параметры компилирования, присвоив системной переменной FILEDIA значение 0.
Рис. 11.3. Диалоговое окно Select Shape or Font File
374
Глава 11
Шаг 3: загрузка файла формы Откройте диалоговое окно Select Shape File, введя выражение LOAD в командную строку. Выделите файл, который вы хотите загрузить, а затем щелкните на кнопке Open (рис. 11.4). Можно также присвоить системной переменной FILEDIA значение 0, а затем ввести выражение LOAD в командную строку: Command: LOAD Enter name of shape file to load or [?]: SH1
Здесь SH1 — имя файла геометрической фигуры для примера 1. Имя файла следует указывать без файлового расширения .SHX, так как в программе AutoCAD предусматривается именно это расширение. Если указанный файл существует, AutoCAD отобразит имя загружаемой фигуры. Для вставки загруженной фигуры можно использовать команду SHAPE: Command: SHAPE Enter shape name (or ?) <default>: Имя фигуры Specify insertion point: Координаты точки вставки Specify height <1.0>: Число или точка Specify rotation angle <0.0>: Число или точка
Рис. 11.4. Диалоговое окно Select Shape File
В нашем примере имя фигуры — “RESIS”. После того как вы укажете координаты точки вставки, определите высоту и угол поворота, заданная фигура отобразится на экране (рис. 11.5).
Специальные коды Процесс формообразования, выполняемый с использованием векторов направления, имеет определенные ограничения. Например, этот метод не позволяет вычерчивать дуги или линии, направление которых не совпадает с направлением стандартных векторов. Для решения этой проблемы могут использоваться специальные коды, которые позволяют повысить гибкость и улучшить контроль над созданием геометрических фигур.
Геометрические фигуры и текстовые шрифты
375
Рис. 11.5. Фигура RESIS, вставленная в чертеж
Стандартные коды Определенные стандартные коды используются для обозначения различных операций, выполняемых при построении фигуры. Ниже приведен список используемых кодовых обозначений. 000 001 002 003 004 005 006 007 008 009 00A или 10
Завершение определения фигуры Активизация режима рисования (перо опущено) Отмена режима рисования (перо поднято) Деление длины вектора на значение следующего байта Умножение длины вектора на значение следующего байта Проталкивание координат текущего местоположения в стековую память (сохранение координат) Выталкивание координат текущего местоположения из стека (восстановление координат) Вычерчивание подформы, номер которой указан в следующем байте (вызов подформы) Смещение по осям X-Y на величину, указанную в двух следующих байтах (использование линий разной длины) Многократное смещение по осям X-Y, завершенное (0,0) (постоянное использование линий разной длины) Восьмая часть круга, определенная двумя следующими байтами
376
Глава 11
00B или 11 00C или 12 00D или 13 00E или 14
Фрагмент дуги, определенный пятью следующими байтами Дуга, определенная величиной смещения X-Y и радиусом Несколько дуг, определенных радиусом кривизны (постоянное использование выпуклой дуги) Обработка следующей команды только при использовании вертикального текста
Код 000: завершение определения фигуры Этим кодовым обозначением отмечается окончание определения фигуры.
Код 001: активизация режима рисования Этот код обеспечивает включение режима рисования. Когда вы начинаете вычерчивать контур фигуры, автоматически включается режим рисования, поэтому нет никакой необходимости пользоваться этим кодом. Тем не менее, если режим рисования выключен, вы сможете его включить с помощью этого кода.
Код 002: отмена режима рисования Этот код выключает режим рисования. Этот код используется, когда необходимо переместить перо, не создавая линию на экране. 1
2
3
4
Представьте, например, что расстояние между точками 1 и 2, 2 и 3, а также 3 и 4 равно двум единицам. Тогда определение формы этой линии будет иметь следующий вид: 020,002,020,001,020,0
Первый байт данных (020) генерирует линию длиной 2 единицы, проведенную вдоль вектора направления 0. Второй байт данных (002) отменяет режим рисования, а третий байт данных (020) формирует пробел (незаполненную линию) длиной 2 единицы. Четвертый байт данных (001) активизирует режим рисования, а следующий байт (020) генерирует линию длиной 2 единицы, которая вычерчивается вдоль вектора направления 0. Последний байт данных завершает определение формы.
Пример 2 Напишите файл формы, обеспечивающий вычерчивание прописной буквы “G”, показанной на рис. 11.6.
Рис. 11.6. Форма символа “G”
377
Геометрические фигуры и текстовые шрифты
Шаг 1: запись файла формы Для записи файла формы обычно используется какой-нибудь текстовый редактор (например, Notepad). Файл формы сохранен под именем CHRGEE; созданная фигура получила название “GEE”. Номера строк, показанные в правой части листинга, не являются частью файла, а используются только для ссылок. *215,20,GEE 002,042, 001,014,016,028,01A, 04C,01E,020,012,014, 002,018, 001,020,01C, 002,01E,0
1 2 3 4 5 6 7
Пояснения Строка 1 *215,20,GEE
Первый байт данных включает в себя звездочку (*) и номер фигуры 215. Во втором байте данных содержится число, указывающее количество байтов данных, имеющихся в спецификации фигуры, и 0, завершающий определение формы. GEE — имя фигуры.
Строка 2 002,042,
Первый байт данных (002) отменяет режим рисования (перо поднято), а второй байт определяет линию длиной 4 единицы, проведенную параллельно вектору направления 2.
Строка 3 001,014,016,028,01А,
Байт данных 001 активизирует режим рисования (перо опущено), а 014 определяет линию длиной 1 единицу, проведенную под углом 90 градусов (вектор направления 4). Байт данных 016 определяет линию длиной 1 единицу, проходящую вдоль вектора направления 6. Байт данных 028 определяет линию длиной 2 единицы, которая проходит под углом 180 градусов (вдоль вектора направления 8). Байт данных 01А определяет единичный вектор, проходящий вдоль вектора направления А.
Строка 4 04С,01Е,020,012,014,
Байт данных 04С определяет линию длиной 4 единицы, проходящую вдоль вектора направления С. Байт данных 01Е определяет единичный вектор, направленный вдоль вектора Е. Байт данных 020 определяет линию длиной 2 единицы, проходящую под углом 0 градусов (вдоль вектора направления 0). Байт данных 012 определяет единичный вектор, направленный вдоль вектора 2. Аналогично, байт данных 014 определяет единичный вектор, проведенный вдоль вектора направления 4.
Строка 5 002,018,
Байт данных 002 отменяет режим рисования (перо поднято), а байт данных 018 определяет единичный вектор, направленный вдоль вектора 8.
378
Глава 11
Строка 6 001,020,01С,
Байт данных 001 активизирует режим рисования (перо опущено), а байт данных 020 определяет линию длиной 2 единицы, проведенную под углом 0 градусов (вдоль вектора направления 0). В свою очередь байт данных 01С определяет единичный вектор, направленный вдоль вектора С.
Строка 7 002,01Е,0
Байт данных 002 отменяет режим рисования (перо поднято), а байт данных 01Е определяет единичный вектор, направленный вдоль вектора Е. Байт данных 0 завершает определение формы. Совет Файл определения геометрической фигуры не требует повторного компилирования. Компиляция файла выполняется только один раз. Повторная загрузка файла определения происходит при каждом открытии чертежа. Если в файл формы были внесены какиелибо изменения, но после загрузки и компилирования файла эти изменения никак не отразились, то вам придется открыть новый чертеж, а затем скомпилировать и загрузить файл формы еще раз. Это связано с тем, что изменения, внесенные в файл формы, не были включены в существующий файл чертежа.
Код 003: деление длины вектора на значение следующего байта Этот код используется в том случае, если нужно разделить длину вектора на определенное число. Например, для того чтобы разделить вектор на две равные части, вы должны записать определение формы следующим образом: 003,2,020,002,002,020,001,020,0
Первый байт данных (003) представляет собой код деления. В свою очередь, следующий байт (2) является числом, на который будут разделены длины всех векторов, определенных в этой строке. Таким образом, рисунок, показанный в примере 2, претерпит определенные изменения. Длины линий и величина промежутка между ними станут равными единице: Масштабные коэффициенты, используемые в определении формы, суммируются. Например, если ввести в предыдущее определение формы еще один код 003, то длина последнего вектора (020) будет разделена на 4 (2×2): 003,2,020,002,002,020,001,003,2,020,0
Здесь • 003,2 — длины всех векторов делятся на 2; • 003,2 — длины всех последующих векторов делятся на 2. Фигура, определенная этим выражением, будет иметь следующий вид:
Геометрические фигуры и текстовые шрифты
379
Код 004: умножение длины вектора на значение следующего байта Этот код используется, когда необходимо умножить длину вектора на определенное число, а также в том случае, когда требуется отменить действие кода 003. Длины, полученные при делении или умножении векторов, должны быть целыми числами (от 1 до 255). 003,2,020,002,002,020,001,004,2,020,0
Здесь • 003,2 — деление всех векторов, расположенных справа от этого выражения, на 2; • 004,2 — умножение всех векторов, расположенных справа от этого выражения, на 2. В этом примере длины всех векторов, расположенных справа от кода 003, делятся на 2. Таким образом, длина единичного вектора становится равной 0,5. Второй код (004) умножает длины всех векторов, расположенных в правой части выражения, на 2. Мы знаем, что масштабные коэффициенты суммируются; следовательно, векторы, ранее деленные на 2, теперь должны быть умножены на 2. Благодаря эффекту суммирования, длина последнего вектора осталась неизменной. Фигура, определенная этим выражением, будет иметь следующий вид:
Коды 005 и 006: сохранение и восстановление координат начальной точки Код 005 дает возможность сохранить координаты текущего положения пера, а код 006 позволяет восстановить ранее сохраненные координаты.
Пример 3 Следующий пример иллюстрирует использование кодов 005 и 006.
Шаг 1: запись файла формы На рис. 11.7, a показаны три единичных вектора, выходящих из одной точки. После того как будет начерчена первая линия, перо должно вернуться в начальную точку для того, чтобы вычертить вторую линию. Эта операция выполняется с помощью кода 005, который обеспечивает сохранение координат начальной точки первого вектора, и кода 006, который позволяет восстановить координаты этой исходной точки. Теперь вычерчивание второй линии будет также начинаться с исходной точки. Фигура, показанная на рисунке, состоит из трех линий, поэтому для ее определения вам придется ввести три кода 005 и три кода 006. Следующий файл содержит строку заголовка и спецификацию формы, которая генерирует соответствующие линии: *210,10,POP1 005,005,005,012,006,014,006,016,006,0
Здесь • 005 — сохранение координат начальной точки (три раза); • 012 — генерирование первого вектора; • 006 — восстановление ранее сохраненных координат; • 014 — генерирование второго вектора; • 006 — восстановление координат начальной точки.
380
Глава 11
Рис. 11.7: a) три единичных вектора, выходящих из одной точки; б) повторение ранее определенных элементарных фигур
Количество сохраненных данных (код 005) должно соответствовать числу восстановленных координат (код 006). Если операций сохранения (код 005) окажется больше, чем операций восстановления, программа AutoCAD отобразит следующее сообщение, которое появится на экране после вычерчивания фигуры: Position stack overflow in shape (shape number) ◊◊◊ Переполнение стека, используемого для позиционирования точек в фигуре (номер фигуры)
В свою очередь, если операций восстановления (код 006) окажется больше, чем операций сохранения (код 005), на экране появится следующее сообщение: Position stack underflow in shape (shape number) ◊◊◊ Незагруженность стека, используемого для позиционирования точек в фигуре (номер фигуры)
Максимальное количество операций сохранения и восстановления данных, которые могут быть использованы при определении той или другой фигуры, равно четырем.
Шаг 2: компиляция и загрузка файла формы Для компилирования и загрузки файла формы используются команды COMPILE и LOAD. Вставка фигуры в чертеж выполняется с помощью команды SHAPE, как описано в примере 2. Примечание Имя фигуры должно состоять из прописных букв. Имена, состоящие из строчных букв, игнорируются и используются для обозначения определений формы шрифтов. Файл формы может содержать до 255 определений различных фигур. Всем фигурам, определенным в этом файле, должны быть присвоены уникальные имена.
Код 007: подформа Подформа определяется точно так же, как и стандартная подпрограмма. Для создания ссылки на подформу используется код 007, который ставится перед номером фигуры соответствующей подформы. Подформа должна быть определена в том же файле формы. В качестве номера фигуры можно использовать любое целое число от 1 до 255.
Здесь • *210 — номер фигуры; • 007 — ссылка на подформу; • 210 — номер формы. Фигура, генерируемая в этом примере, показана на рис. 11.7, б.
Код 008: смещение по осям X и Y В предыдущем примере вы могли заметить, что использование векторов имеет определенные ограничения. Как уже упоминалось, векторы можно провести только в одном из 16 ранее определенных направлений, при этом длина векторов не должна превышать 15 единиц. Подобные ограничения упрощают определение фигур и повышают его эффективность, но при этом делают его менее гибким. Таким образом, использование кодов 008 и 009 дает возможность генерировать нестандартные векторы при вводе величин смещений по осям X и Y. Код 008 имеет следующий формат: 008, XDISPLACEMENT, YDISPLACEMENT
или 008, (XDISPLACEMENT, YDISPLACEMENT)
Величина смещения по осям X и Y может изменяться в пределах от +127 до –128. Положительное смещение обозначается знаком “плюс” (+), а отрицательное — знаком “минус” (–). Следует заметить, что знак “плюс”, который ставится перед положительными числами, является обязательным. Круглые скобки улучшают читабельность файла, но на определение формы они совершенно не влияют.
Код 009: многократные смещения по осям X и Y Код 008 позволяет генерировать нестандартные векторы при вводе величин смещений по осям X и Y. В свою очередь, код 009 дает вам возможность определить величины сразу нескольких смещений. Строка кода завершается вводом нулевых смещений (0,0). Код 009 имеет следующий формат: 009, (XDISP, YDISPL), (XDISPL, YDISPL), ... ,(0,0)
Код 00А или 10: определение октанта дуги Если вы разделите весь круг (360 градусов) на восемь равных частей, то получите восемь секторов, стороны которых образуют угол, равный 45 градусам. Полученные 45градусные сегменты называются октантами, а линии, которые их образуют, называются границами октанта. Границы октанта пронумерованы от 0 до 7, как показано на рис. 11.8. Определение октанта имеет следующий формат: 10,(R,+/-0SN)
382
Глава 11
где • R — радиус дуги; • +/- — определение направления (“плюс” (+) — против часовой стрелки, “минус” (–) — по часовой стрелке); • 0 — шестнадцатеричная система счисления; • S — номер начальной границы октанта; • N — число октантов. Пример 10,(3,-043)
Первое число (10) является обозначением кода 00А, используемого для определения октантов дуги. Второе число (3) определяет величину радиуса вычерчиваемой дуги. Знак “минус” указывает на то, что данная дуга будет генерироваться по часовой стрелке. Если число имеет положительный знак (+) или не имеет никакого знака, дуга будет генерироваться против часовой стрелки. Нуль (0) указывает на использование шестнадцатеричной системы счисления, а следующее число (4) является номером границы октанта, с которой начинается построение дуги. В этом примере будет создана дуга, показанная на рис. 11.9. Ниже приведен листинг файла, используемого для генерирования этой фигуры: *214,5,FOCT1 001,10,(3,-043),0
Рис. 11.8. Границы октантов
Рис. 11.9. Созданная дуга
Геометрические фигуры и текстовые шрифты
383
Код 00В или 11: дробная дуга Код 00В или 11 дает возможность генерировать нестандартные дробные дуги. С помощью этого кода вы сможете вычертить дугу, начиная и заканчивая ее в любой точке окружности. Определение дуги, в котором используется пять байтов данных, имеет следующий формат: 11,(начальное смещение, конечное смещение, верхнее значение радиуса, нижнее значение радиуса, +/-0S/N)
Байт начального смещения определяет расстояние от начальной точки дуги до границы октанта, а байт конечного смещения определяет расстояние от границы октанта до конечной точки дуги. Байт нижнего значения радиуса является величиной радиуса создаваемой дуги. Если радиус дуги меньше или равен 255 единицам, байт верхнего значения радиуса имеет значение 0. Знак “плюс” (+) или “минус” (–) указывает на то, что дуга вычерчивается против или, соответственно, по часовой стрелке. Следующий элемент (S) определяет номер октанта, с которого начинается вычерчивание дуги, а элемент N указывает на число октантов, через которые проходит данная дуга. Следующий пример иллюстрирует основные принципы построения дробной дуги. Смещение начальной точки = (начальный угол дуги – близлежащий угол октантов, сумма которых меньше величины начального угла) × 256 / 45 Смещение конечной точки = (конечный угол дуги – близлежащий угол октантов, сумма которых меньше величины конечного угла) × 256 / 45
Пример 4 Начертите дробную дугу радиусом 3 единицы, которая ограничена линиями, поведенными под углом 20° (начальная точка) и 140° (конечная точка). Дуга проводится против часовой стрелки. Решение этой задачи состоит из следующих этапов.
Шаг 1: вычисление необходимых параметров Найдите границу ближайшего октанта, угол которой меньше 140 градусов. Как вы видите, ближайшей является граница октанта номер 4, угол которой равен 135 градусам (3×45°=135°). Определите величину смещения конечной точки и округлите ее до целого числа: Смещение конечной точки = (140° – 135°) × 256 / 45 = 28,44 = 28 Найдите границу ближайшего октанта, угол которой меньше 20 градусов. Как следует из рисунка, ближайшей является граница октанта под номером 0, угол которой равен 0 градусов. Определите величину смещения начальной точки и округлите ее до целого числа: Смещение начальной точки = (20° – 0°) × 256 / 45 = 113,7 = 114 Теперь необходимо определить количество октантов, через которые проходит данная дуга. В представленном примере дуга начинается в первом октанте и заканчивается в четвертом; следовательно, она проходит через четыре октанта (против часовой стрелки). Определите октант, с которого начинается формирование дуги. В нашем примере дуга начинается в октанте под номером 0.
384
Глава 11
Радиус дуги равен 3. Величина радиуса меньше 255, поэтому количество байт “верхнего значения радиуса” будет равно 0. Теперь введите полученные значения в определение дробной дуги: 11,(114,28,0,3,004)
Шаг 2: запись файла формы Для записи файла формы обычно используется какой-нибудь текстовый редактор. Следующий файл генерирует дробную дугу, показанную на рис. 11.10: *221,8,FOCT2 001,11,(114,28,0,3,004),0
Рис. 11.10. Дробная дуга
Шаг 3: сохранение и загрузка файла формы Сохраните текстовый файл в виде файла с расширением .shp. Затем скомпилируйте и загрузите файл формы, используя для этого команды COMPILE и LOAD. Для вставки созданной фигуры в открытый чертеж используется команда SHAPE.
Код 00С или 12: определение дуги, заданной радиусом и величиной смещения Код 00С может быть использован для построения дуги, определенной коэффициентом криволинейности и величиной смещения конечной точки. Величины смещений по осям X и Y находятся в пределах от –127 до +127. Коэффициент криволинейности может изменяться от –127 до +127. Дуга, коэффициент криволинейности которой равен 127, представляет собой правильный полукруг, а дуга с нулевым коэффициентом криволинейности является прямой линией. Если коэффициент криволинейности имеет отрицательное значение, дуга вычерчивается по часовой стрелке. Коэффициент криволинейности = ((2 ×H)/D) × 127, где • H — высота дуги; • D — величина смещения. Для полукруга 2H = D. Таким образом, коэффициент криволинейности = (D/D)×127 = 127. Для прямой линии H = 0. Следовательно, коэффициент криволинейности = (0/D)×127 = 0.
Геометрические фигуры и текстовые шрифты
385
Как показано на рис. 11.11, расстояние между начальной и конечной точками дуги равно 4, а высота дуги равна 1. Теперь можно определить коэффициент криволинейности, подставив соответствующие значения в ранее приведенную формулу: Коэффициент криволинейности (целое число) = (2×1/4)×127 = 63,5 = 63 Следующее определение формы позволит вычертить дугу, показанную на рис. 11.11. *213,5,BULGE1 12,(4,0,-63),0
Здесь • 4 — величина смещения по оси X; • 0 — величина смещения по оси Y; • - — знак “минус”, обеспечивающий вычерчивание дуги по часовой стрелке; • 63 — коэффициент криволинейности.
Код 00D или 13: фигура, образованная несколькими кривыми линиями Код 00D (или 13) позволяет создавать фигуры, образованные несколькими дугами, имеющими различные коэффициенты криволинейности. В этом случае определение фигуры должно заканчиваться выражением (0,0). Следующий файл определяет геометрические параметры дуг, образующих фигуру, показанную на рис. 11.12: *214,16,BULGE2 13,(4,0,-111), (0,4,63), (-4,0,-111), (0,-4,63),(0,0),0
Глава 11 Примечание Данные, описывающие геометрические параметры различных дуг, могут быть указаны в одной строке. Для удобства пользователей определение фигуры в ранее приведенном примере разделено на несколько отдельных строк.
Код 00Е или 14: обозначение вертикального текста Код 00Е или 14 используется в том случае, когда одно и то же определение текстового шрифта применяется для формирования как вертикально, так и горизонтально ориентированного текста. Если строки текста вычерчиваются в горизонтальном направлении, вектор, определенный после кода 14, игнорируется. Этот вектор учитывается при вертикальном расположении текста, что дает возможность генерировать текст в вертикальном и горизонтальном направлении, используя для этого один и тот же файл формы. Начальной и конечной точками горизонтально расположенного текста являются соответственно нижние левая и правая точки. В вертикально ориентированном тексте начальная точка находится в Рис. 11.13. Перемещение пера при геневерхней средней точке, а конечная точка — в нижрировании символа “G” ней средней точке текстового фрагмента, как показано на рис. 11.13. На первый взгляд может показаться, что для определения горизонтального и вертикального текста требуется два отдельных файла, но это не совсем так. Используя код 14, вы сможете избавиться от необходимости дважды определять одну и ту же фигуру. На рис. 11.13 показана траектория, по которой перемещается перо при вычерчивании буквенного символа “G”. При горизонтальном расположении текста строка, следующая после кода 14, автоматически игнорируется. Но эта строка учитывается при использовании вертикального текста, что приводит к переустановке начальной и конечной точек текстового фрагмента в соответствии с требованиями для вертикально выровненного текста. *215,28,FLAG 002,14, (При горизонтальном расположении текста строка 008,(-2,-6), указанная после кода 14, автоматически пропускается.) 008,(-2,-6), 042,001, 014,016,028,01A, 04C,01E,020,012,014, 002,018, 001,020,01C, 002,01E, 14, (При горизонтальном расположении текста строка 008,(-4,-1), указанная после кода 14, автоматически пропускается.) 008,(-4,-1), 0
387
Геометрические фигуры и текстовые шрифты
Пример 5 Напишите файл формы, который позволит вам вычертить контур молотка, показанный на рис. 11.14. Имя этой формы — “HAMMER”; файл формы сохранен под именем hmr.shp. Ниже приведен листинг определения этой формы. Номера строк не являются частью файла, а используются только в качестве ссылки.
Шаг 1: запись файла формы Запишите следующее определение формы, используя для этого текстовый процессор или редактор текстов. *204,34,HAMMER 003,22, 002,8,(2,-1), 001,024, 8,(-1,4), 00A,(1,004), 8,(-1,-4),06C, 00C,(4,0,63), 044,8,(17,-1), 00C,(0,4,63), 8,(-17,-1),0
1 2 3 4 5 6 7 8 9 10 11
Рис. 11.14. Размеры молотка (в дюймах)
Пояснения Строка 1 *204,34,HAMMER
Это строка заголовка, содержащая номер формы (204), число байтов данных, имеющихся в определении формы (34), и имя фигуры (HAMMER).
Строка 2 003,22,
Байт данных 003 используется для деления длин векторов на значение следующего байта данных (22). В результате этого контур молотка уменьшается до единичного раз-
388
Глава 11
мера, что обеспечивает выполнение операций масштабирования при вставке фигуры в открытый чертеж.
Строка 3 002,8,(2,-1),
Байт данных 002 отменяет режим рисования (перо поднято), а следующий байт данных (код 008) определяет вектор, смещенный на 2 единицы по оси Х и на –1 единицу по оси Y. Линия не будет вычерчена, так как перо плоттера поднято.
Строка 4 001,024,
Байт данных 001 активизирует режим рисования (перо опущено), а следующий байт данных (024) определяет линию, имеющую длину 2 единицы и проходящую вдоль вектора под номером 4.
Рис. 11.15. Движения пера, формирующие контур молотка
Строка 5 8,(-1,4),
Первый байт данных (код 008) определяет вектор со смещениями по осям X и Y, величина которых указана в двух следующих байтах. В нашем примере смещение по оси X равно –1, а смещение по оси Y равно 4.
Строка 6 00А,(1,004),
Байт данных 00А определяет октант дуги, радиус которой задан в следующем байте данных (1). Первый элемент байта данных 004 указывает на использование шестнадцатеричной системы счисления. Второй элемент этого байта (0) определяет начальный октант дуги, а третий элемент байта (4) определяет последний октант этой дуги.
Строка 7 8,(-1,-4),06С
Байт данных 8 (код 008) определяет вектор, имеющий смещение по оси X, равное –1, и смещение по оси Y, равное –4. Следующий байт данных (06С) определяет вектор длиной 6 единиц, направленный вдоль вектора С.
Геометрические фигуры и текстовые шрифты
389
Строка 8 00С,(4,0,63),
Первый байт данных (00С) определяет дугу, имеющую смещение по оси X, равное 4, смещение по оси Y, равное 0, и коэффициент криволинейности 63. Коэффициент криволинейности = (2×H)/D×127 = (2×1)/4×127 = 63,5 = = 63 (целое число)
Строка 9 044,8,(17,-1),
Первый байт данных (044) определяет вектор длиной 4 единицы, направленный вдоль вектора 4. Второй байт данных (8) определяет вектор, имеющий смещение по оси X, равное 17, и смещение по оси Y, равное –1.
Строка 10 00С,(0,4,63),
Первый байт данных (00С) определяет дугу, имеющую смещение по оси X, равное 4, смещение по оси Y, равное 0, и коэффициент криволинейности 63. Коэффициент криволинейности = (2×H)/D×127 = (2×1)/4×127 = 63,5 = = 63 (целое число)
Строка 11 8,(-17,-1),0
Первый байт данных (8) определяет вектор, имеющий смещение по оси X, равное – 17, и смещение по оси Y, равное –1. Байт данных 0 завершает определение формы.
Шаг 3: сохранение и загрузка файла формы Сохраните текстовый файл в виде файла с расширением .shp. Затем скомпилируйте и загрузите файл формы, используя для этого команды COMPILE и LOAD. Чтобы вставить созданную фигуру в открытый чертеж, воспользуйтесь командой SHAPE.
Файлы текстовых шрифтов В дополнение к определению геометрических фигур, программа AutoCAD обеспечивает возможность создания новых текстовых шрифтов. После того как вы создадите и скомпилируете файл текстового шрифта, вы сможете вставлять в чертежи текстовые фрагменты, содержащие новые шрифты. В этом случае текстовые файлы представляют собой обычные файлы форм, содержащие дополнительную информацию, которая описывает текстовые шрифты и определяет параметры перевода строки. Стандартный файл текстового шрифта имеет следующую структуру: • описание текстового шрифта; • перевод строки; • определение формы.
Описание текстового шрифта Описание текстового шрифта состоит из двух строк: *0,4,имя_шрифта верхний_интервал, нижний_интервал, режимы, 0
390
Глава 11
Здесь • *0 — номер формы текстового шрифта; • 4 — количество байтов данных; • имя_шрифта — имя шрифта, набранное строчными буквами; • верхний_интервал — величина верхнего интервала; • нижний_интервал — величина нижнего интервала; • режимы: 0 — горизонтальный текст; 2 — текст с двойной ориентацией; • 0 — нуль, используемый для завершения определения. Например, если необходимо написать определение формы прописной буквы “М”, то описание текстового шрифта должно иметь следующий вид: *0,4,ucm 10,4,2,0
Первый байт данных (0), содержащийся в верхней строке определения, является номером специальной формы, используемой во всех текстовых шрифтах. Этот номер должен использоваться во всех файлах текстовых шрифтов. Следующий байт данных (4) определяет количество байтов данных в следующей строке, а выражение ucm является именем формы (или в данном случае, именем шрифта). В файлах текстовых шрифтов в именах форм должны использоваться только строчные буквы. Это сделано для того, чтобы компьютеру не приходилось сохранять в системной памяти имена используемых шрифтов. Тем не менее, при редактировании вы можете создавать ссылки на имена форм. Первый байт данных (10) во второй строке определяет высоту прописной буквы относительно базовой линии. Например, как показано на рис. 11.16, высота прописной буквы “М” относительно базовой линии равна 10 единицам. Следующий байт данных (4) определяет высоту подстрочных элементов строчных букв (т.е. элементов, расположенных ниже базовой линии). В программе AutoCAD эта информация используется для автоматического масштабирования шрифтов. Например, если вы укажете, что высота текста равна 1 единице, то получите текст именно такой высоты, несмотря на то, что в определении текстового шрифта задана высота 10 единиц. Третий байт данных (2) определяет режим ввода текста. Этот байт может иметь два значения: 0 или 2. Если текстовые строки расположены по горизонтали, используется режим 0; если текст имеет двойную ориентацию (горизонтальный и вертикальный), используется режим 2. Четвертый байт данных (0) завершает определение формы.
Перевод строки Использование перевода строки позволяет избежать наложения символов, содержащихся в соседних строках, и обеспечивает размещение текстовых строк на определенном расстоянии друг от друга. Для определения перевода строки в программе AutoCAD зарезервировано число 10, которое является одним из кодовых обозначений ASCII. *10,5,lf 2,8,(0,-14),0
Здесь • *10 — число ASCII, зарезервированное для перевода строки; • 5 — количество байтов данных, содержащихся в определении; • lf — имя формы;
391
Геометрические фигуры и текстовые шрифты
• 2 — код выключения режима рисования (перо поднято); • (0,-14) — параметры перевода строки; • 0 — нуль, завершающий определение формы. Первый байт данных (10), содержащийся в верхней строке определения, является номером формы, зарезервированным для определения перевода строки. Второй байт данных (5) указывает количество байтов данных, содержащихся в определении формы. Следующий байт данных (lf) является именем формы. Во второй строке первый байт данных (2) является кодом, используемым для выключения режима рисования. Следующий байт данных (8) представляет собой специальный код (008), определяющий вектор со смещениями по осям X и Y. Третий и четвертый байты данных (0,-14) определяют величины соответствующих смещений. С их помощью выполняется перевод строки (т.е. перенос текста) на строку, расположенную на 14 единиц ниже базовой линии. Пятый байт данных (0) — нуль, который завершает определение формы.
Определение формы Номер формы, содержащийся в определении текстового шрифта, должен совпадать с кодом ASCII, который соответствует данному символу. Например, для того чтобы написать определение формы для прописной буквы “М”, введите номер формы 77. *77,50,ucm
Здесь • *77 — номер формы (код ASCII для прописной буквы “M”); • 50 — количество байтов данных; • ucm — имя формы. Нужные кодовые обозначения могут быть взяты из таблицы символов ASCII, в которой содержатся коды ASCII для всех символов, цифр и знаков пунктуации. 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
Пример 6 Напишите файл формы текстового шрифта для прописной буквы “М”, показанной на рис. 11.16. Файл шрифта должен обеспечивать возможность генерирования горизонтального и вертикального текста. Расстояние между линиями сетки — 1 единица; направление векторов обозначено стрелочками.
Рис. 11.16. Форма прописной буквы “М” и схема перемещения пера
Шаг 1: запись файла формы В представленном примере номера строк, показанные в правой части листинга, не являются частью файла, а используются только для ссылок. Для записи файла формы обычно используется какой-нибудь текстовый редактор. *0,4,uppercase m 10,0,2,0 *10,13,lf 002,8,(0,-14),14,9,(0,14),(14,0),(0,0),0 *77,51,ucm 2,14,8,(-5,-10), 001,009,(0,10),(1,0),(4,-6),(4,6),(1,0), (0,-10),(-1,0),(0,0), 003,2, 009,(0,17),(-7,-11),(-2,0),(-7,11), (0,-17),(-2,0),(0,0), 002,8,(28,0), 004,2, 14,8,(-9,-4),0
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Пояснения Строка 1 *0,4,uppercase m
Первый байт данных (0) является номером специальной формы, который используется в файлах текстовых шрифтов. Следующий байт данных (4) указывает количество байтов данных, содержащихся в определении. Третий байт данных является именем формы.
Геометрические фигуры и текстовые шрифты
393
Строка 2 10,0,2,0
Первый байт данных задает общую высоту прописной буквы “М”, а второй байт данных (0) определяет длину элементов строчных букв, расположенных ниже базовой линии. Третий байт данных (2) указывает на текстовый режим с двойной ориентацией текста (горизонтальный и вертикальный). Если текстовые строки должны располагаться только в горизонтальном направлении, этот байт будет иметь значение 0. Четвертый байт данных (0) — нуль, завершающий определение формы.
Строка 3 *10,13,lf
Первый байт данных (10) — кодовое обозначение, зарезервированное для определения параметров перевода строки. Второй байт данных (13) указывает на количество байтов данных, содержащихся в определении формы. Третий байт данных (lf) — имя описываемой формы.
Строка 4 002,8,(0,-14),14,9,(0,14),(14,0),(0,0),0
Первый байт данных (002 или 2) представляет собой код, используемый для выключения режима рисования (перо поднято). Три следующих байта данных (8,(0,-14)) определяют вектор со смещениями по осям X и Y, величины которых равны соответственно 1 и –14. Этот вектор обеспечивает возврат каретки в точку, которая находится на 14 единиц ниже точки ввода первой текстовой строки. Это подходит только для тех случаев, когда текст вычерчивается в горизонтальном направлении. Если текст располагается вертикально, то при возврате каретки точка ввода должна смещаться вправо от существующей строки. Выполнение этой операции обеспечивается с помощью семи следующих байтов. Обратите внимание на байт данных 14. Если текст располагается горизонтально, код, находящийся справа от указанного байта данных, игнорируется. Этот код выполняется только в том случае, когда текст располагается вертикально. Следующий набор байтов данных (0,14) определяет вектор, конечная точка которого расположена на 14 единиц ниже предыдущей точки. На рис. 11.17 величина смещения вектора обозначается размером D1.
Рис. 11.17. Возврат каретки для вертикального и горизонтального текста
394
Глава 11
Байты данных (14,0) определяют вектор, конечная точка которого смещена на 14 единиц вправо (размер D2 на рис. 11.17). Эти четыре байта данных ((0,14),(14,0)) обеспечивают возврат каретки в точку, которая находится в 14 единицах справа от существующей строки. Следующая пара байтов данных (0,0) завершает выполнение кода 009, а последний байт (0) завершает определение формы.
Строка 5 *77,51,ucm
Первый байт данных (77) является кодовым обозначением ASCII, которое соответствует прописной букве “M”. Во втором байте данных (51) указано количество байтов данных, содержащихся в определении формы. Следующий байт данных (ucm) является именем файла формы, написанным строчными буквами.
Строка 6 2,14,8,(-5,-10),
Код 002, содержащийся в первом байте данных (2), выключает режим рисования (перо поднято), а код 14 (второй байт данных) обеспечивает игнорирование следующего кода при горизонтальном расположении текста. Как показано на рис. 11.16, точка ввода горизонтального текста является начальной точкой текстовой строки. Тем не менее, если текст располагается вертикально, начальной точкой текстовой строки становится верхняя средняя точка прописной буквы “М”. Выполнение этого условия обеспечивается тремя следующими байтами данных [8,(-5,-10)], которые перемещают начальную точку на 5 единиц влево (ширина прописной буквы “М” равна 10) и на 10 единиц вниз (высота этой буквы равна 10).
Строки 7 и 8 001,009,(0,10),(1,0),(4,-6),(4,6),(1,0), (0,-10),(-1,0),(0,0),
Первый байт данных (001) активизирует режим рисования (перо опущено), а остальные байты определяют геометрические параметры следующих семи векторов.
Высота внутренней вертикальной линии, которая образует правую “ножку” прописной буквы “М”, равна 8,5 единицы. Однако нельзя определить вектор, длина которого не является целым числом. Вместо этого можно определить вектор, имеющий длину 2 × 8,5 = 17 единиц, а затем разделить его на 2. В результате этого вы получите вектор длиной 8,5 единицы. Эта операция выполняется с помощью специального кода 003 и числа 2, содержащегося в следующем байте данных. Длины всех векторов, которые определены в двух следующих строках, будут разделены на 2.
Строка 12 002,8,(28,0),
Первый байт данных (002) отменяет режим рисования, а три следующих байта данных определяют вектор, конечная точка которого смещена на 14 единиц (28/2 = 14)
Геометрические фигуры и текстовые шрифты
395
вправо. Это означает, что точка, с которой начнется вычерчивание следующего символа, будет расположена в 4 единицах (14 – 10 = 4) справа от уже существующего символа. Это относится к горизонтально расположенному тексту.
Строка 13 004,2,
Код 004 умножает все ранее определенные векторы на 2, тем самым аннулируя результат, полученный при использовании кода 003,2 (т.е. при делении на 2).
Строка 14 14,8,(-9,-4),0
Если текстовые строки располагаются вертикально, следующая буква должна начинаться ниже предыдущей. Это условие выполняется с помощью байтов данных 8,(-9,-4), которые определяют вектор, смещенный по осям X и Y на –9 единиц и на –4 единицы, соответственно. Байт данных 0 завершает определение формы.
Шаг 2: загрузка файла формы Сохраните файл под именем ucm.shp. Для того чтобы скомпилировать файл формы, используйте команду COMPILE. Теперь с помощью этой формы вы сможете создавать текстовые фрагменты. Чтобы определить стиль текста, откройте диалоговое окно Text Style, выбрав команду Text Style из раскрывающегося меню Format, а затем создайте новый стиль. Чтобы создать стиль, который бы соответствовал скомпилированному файлу .SHX, введите выражение -STYLE в командную строку. Обратите внимание на параметры, которые вам придется определить, используя команду -STYLE. Допустим, что MYUCM1 — имя нового текстового стиля. Command: -STYLE Enter name of text style or [?] <Standard>: MYUCM1
Определение нового стиля: Specify full font name or font filename (TTF or SHX) : ucm.shx Specify height of text <0.0000>: 1 Specify width factor <1.0000>: <Enter> Specify obliquing angle <0>: <Enter> Display text backwards? [Yes/No] : <Enter> Display text upside-down? [Yes/No] : <Enter> Vertical? : <Enter> ◊◊◊ Полное имя шрифта или файловое имя шрифта (TTF или SHX) : ucm.shx Высота текста <0.0000>: 1 Коэффициент ширины <1.0000>: Нажмите клавишу <Enter> Угол наклона <0>: Нажмите клавишу <Enter> Обратное отображение текста? [Да/Нет] <Нет>: Нажмите клавишу <Enter> Отображение текста в перевернутом виде? [Да/Нет] <Нет>: Нажмите клавишу <Enter> Вертикально? <Нет>: Нажмите клавишу <Enter>
Теперь текущим текстовым стилем является MYUCM1. Чтобы написать букву “М” (рис. 11.18), используя текстовый стиль MYUCM1, введите выражение TEXT (ТЕКСТ) в командную строку.
396
Глава 11
Рис. 11.18. Использование определенного текстового шрифта
Пример 7 Напишите файл формы текстового шрифта для строчной буквы “m”, показанной на рис. 11.19. Файл шрифта должен обеспечивать генерирование текста как в вертикальном, так и горизонтальном направлении. Расстояние между линиями сетки равно 1 единице; направление векторов обозначено стрелочками.
Рис. 11.19. Форма строчной буквы “m”
Шаг 1: запись файла формы Перед вами листинг файла текстового шрифта, описанного в примере 7. Номера строк, показанные в правой части листинга, не являются частью файла, а используются только для ссылок. Для записи файла формы обычно используется какой-нибудь текстовый редактор. *0,4,lowercase m 14,3,2,0 *10,13,lf 002,8,(0,-18),14,9,(0,18),(27,0),(0,0),0
1 2 3 4
397
Геометрические фигуры и текстовые шрифты *109,57,lcm 2,14,8,(-11,-14), 005,005,001,020,084, 00A,(4,-044), 08C,020,084, 00A,(4,-0440), 08C,020,084, 00B,(0,62,0,6,004), 00B,(193,239,0,6,003), 006,9,(0,14),(2,0),(0,0), 003,5,07C,004,5, 006,2,8,(27,0), 14,8,(-16,-5),0
5 6 7 8 9 10 11 12 13 14 15 16 17
Пояснения Формат большей части строк примерно такой же, как и в предыдущем примере, поэтому объясняются только строки, которые используются для сохранения и восстановления исходных координат и определения октантов и дуг.
Строка 7 005,005,001,020,084,
Первый и второй байты данных (005) обеспечивают сохранение координат исходной точки. Остальные байты данных используются для активизации режима рисования и определения векторов.
Строка 8 00A,(4,-044),
Первый байт данных (00А) представляет собой код, используемый для определения дуги, состоящей из целого числа октантов. Второй байт данных (4) определяет радиус дуги. Отрицательное значение третьего байта данных обеспечивает вычерчивание дуги по часовой стрелке. Первый элемент (0) указывает на использование шестнадцатеричной системы счисления. Второй элемент (4) определяет номер начального октанта, а третий элемент (4) определяет количество октантов, через которые проходит данная дуга.
Строка 12 00B,(0,62,0,6,004),
Первый байт данных (00В) является кодовым обозначением дробной дуги, параметры которой определены пятью следующими байтами данных. Второй байт данных (0) представляет собой смещение начальной точки первой дуги, как показано в следующих вычислениях. • Первая дуга Начальный угол = 0; Начальный октант = 0; Начальное смещение = (0 – 0)×256/45 = 0; Конечный угол = 146; Конечный октант = 4; Конечное смещение = (146 – 135)×256/45 = 62,57 = 62 (целое число).
398
Глава 11
Третий байт данных (62) определяет положение конечной точки дуги, а четвертый байт данных (0) является предельным радиусом дуги. Пятый байт данных (6) определяет радиус дуги. Второй элемент (0) следующего байта данных представляет собой номер начального октанта, а третий элемент (4) определяет число октантов, через которые проходит данная дуга.
Строка 13 00B,(193,239,0,6,003),
Первый байт данных (00В) является кодовым обозначением дробной дуги, геометрические параметры которой определены следующими байтами данных. Величины угловых смещений вычисляются следующим образом. • Вторая дуга Начальный угол = 34; Начальный октант = 0; Начальное смещение = (34 – 0)×256/45 = 193,4 = 193 (целое число); Конечный угол = 132; Конечный октант = 3; Конечное смещение = (132 – 90)×256/45 = 238,9 = 139 (целое число). Примечание Значения угловых смещений округляются до ближайшего целого числа, поэтому описать дугу с достаточно высокой точностью довольно сложно. Таким образом, после вычерчивания каждой дуги вам придется восстанавливать координаты исходной точки, которые используются для создания остальных линий данной фигуры.
Строка 14 006,9,(0,14),(2,0),(0,0),
Первый байт данных (006) восстанавливает ранее сохраненные координаты исходной точки, а остальные байты данных определяют векторы, использующие код 009.
Шаг 2: загрузка файла формы Чтобы загрузить файл формы, выполните процедуру, описанную в примере 6. Это даст вам возможность использовать данную форму при создании текстовых фрагментов. Примечание Как и файлы форм, компилированные файлы шрифтов (.shx) должны быть доступны для каждого открытого чертежа. Это необходимое условие, поэтому, отправляя чертежи другому пользователю, не забывайте также о файлах форм и текстовых шрифтов.
Геометрические фигуры и текстовые шрифты
399
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Основными объектами, которые используются в файлах форм, являются ________ и ________. 2. Геометрические фигуры упрощают процесс вставки объектов и занимают меньше дискового пространства, чем ________. Тем не менее, использование фигур имеет определенные недостатки. В частности, пользователь не может их ________ или вносить какие-либо изменения. 3. В качестве номера формы может использоваться любое число от 1 до ________, которое должно быть уникальным для каждого файла. 4. В файле формы не должно быть нескольких различных ________, имеющих одинаковые имена. 5. Ведущий ________, стоящий перед числовым значением, указывает на использование шестнадцатеричной системы счисления. 6. Максимальное количество байтов данных, используемых в определении формы, составляет ________. 7. Чтобы определить какой-нибудь вектор, необходимо указать его длину и ______. 8. Для загрузки файла формы используется команда ________. 9. Процесс формообразования, выполняемый с использованием векторов направления, имеет определенные ограничения. Например, этот метод не позволяет вычерчивать дуги или линии, направление которых не совпадает с направлением ________ векторов. Для решения этой проблемы могут использоваться ________, которые позволяют повысить гибкость и улучшить контроль над созданием геометрических фигур. 10. Код 001 активизирует режим ________, а код ________ выключает режим рисования. 11. Байт данных, который вводится после кода деления (003), представляет собой число, на которое будут разделены длины всех ________ векторов. 12. Код 004 используется в том случае, когда вы хотите умножить длины векторов на определенное число. Это позволяет также ________ результат, полученный после использования кода 003.
400
Глава 11
Повторение пройденного материала Ответьте на следующие вопросы. 1. Масштабные коэффициенты, примененные к одному объекту, ________. 2. Количество сохраненных данных (код 005) должно соответствовать числу ______ (код ________). 3. Максимальное количество операций сохранения и восстановления координат, которые могут быть использованы в определении той или другой фигуры, равно ________. 4. Подформа определяется точно так же, как и стандартная подпрограмма. Для создания ссылки на подформу используется код _________. 5. Векторы можно провести только в одном из 16 ранее определенных направлений; при этом длина векторов не должна превышать ________ единиц. 6. Для создания нестандартной дробной дуги может быть использован код 00В или ________. 7. Код ________ может быть использован для построения дуги, определенной коэффициентом криволинейности и величиной смещения конечной точки. 8. Коэффициент криволинейности может изменяться в пределах от –127 до ______. 9. Код 00Е или _________ используется тогда, когда одно и то же определение текстового шрифта применяется для формирования как вертикально, так и горизонтально ориентированного текста. 10. Текстовые файлы представляют собой обычные файлы _________, содержащие дополнительную информацию, которая описывает текстовые шрифты и определяет параметры перевода строки. 11. В файлах текстовых шрифтов в именах форм должны использоваться только строчные буквы. Это сделано для того, чтобы компьютеру не приходилось сохранять имена используемых шрифтов в ________. 12. Перевод строки обеспечивает размещение текстовых строк на определенном расстоянии друг от друга, что позволяет избежать _________ символов, содержащихся в соседних строках. 13. Номер формы, содержащийся в определении текстового шрифта, должен совпадать с кодом ________, который соответствует данному символу. 14. Чтобы обеспечить возможность вызова подформы, она должна быть ________ в том же файле формы. 15. 45-градусные сегменты, полученные при делении круга, называются ________. 16. Число 10, являющееся кодом ASCII, зарезервировано программой AutoCAD для определения ________. 17. Формы, вставленные в чертеж, не могут быть ________. 18. SHAPE NAME является именем формы, состоящим из ________ букв. 19. В определении формы первая строка является строкой ________, а вторая строкой ________.
Геометрические фигуры и текстовые шрифты
401
Упражнения Упражнение 1 (Общее) Напишите файл формы для вычерчивания прописной буквы “М”, показанной на рис. 11.20.
Рис. 11.20. Прописная буква “М”
Упражнение 2 (Общее) Напишите файл формы для вычерчивания контура клиновой шпонки с головкой, показанной на рис. 11.21.
Рис. 11.21. Клиновая шпонка с головкой
402
Глава 11
Упражнение 3 (Общее) Напишите файл формы для вычерчивания прописной буквы “G”, показанной на рис. 11.22.
Рис. 11.22. Прописная буква “G”
Упражнение 4 (Общее) Напишите файл формы для вычерчивания прописной буквы “W”, показанной на рис. 11.23. Файл шрифта должен обеспечивать генерирование текста как в горизонтальном, так и в вертикальном направлении.
Рис. 11.23. Прописная буква “W”
Ответы на вопросы для самопроверки 1 — линия и дуга, 2 — блоки, редактировать, 3 — 255, 4 — форм, 5 — 0 (нуль), 6 — 2000, 7 — направление, 8 — LOAD, 9 — направление, специальные коды, 10 — режим рисования, 002, 11 — следующих, 12 — аннулировать.
Глава 12
Использование AutoLISP
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • выполнять математические операции, используя функции AutoLISP; • использовать тригонометрические функции AutoLISP; • правильно применять основные функции AutoLISP; • загружать и работать с программами AutoLISP; • использовать опции диалогового окна Load/Unload Applications; • использовать блок-схемы для анализа тех или иных процессов; • проверять выполнение условий с помощью условных функций.
404
Глава 12
Знакомство с AutoLISP AutoLISP, разработанный специалистами компании Autodesk, Inc., представляет собой реализацию языка программирования LISP (слово LISP образовано из первых букв словосочетания LISt Processor). Первое упоминание об этом языке, принадлежащее Джону МакКарти (John McCarthy), появилось еще в 1960 году, в апрельском номере журнала The Communications of ACM. Большинство языков программирования, разработанных в начале 1960-х, уже устарели. Исключением стали только FORTRAN и COBOL. LISP пережил эти времена и в настоящее время является ведущим языком программирования для систем искусственного интеллекта (AI — Artificial Intelligence). К числу основных диалектов языка программирования LISP можно отнести Common LISP, BYSCO LISP, ExpertLISP GCLISP, IQLISP, LISP/80, LISP/88, MuLISP, TLCLISP, UO-LISP, Waltz LISP и XLISP. Например, XLISP представляет собой свободно копируемый интерпретатор LISP, а Common LISP является диалектом LISP, напоминающим AutoLISP. Интерпретатор AutoLISP входит в комплект программного обеспечения AutoCAD. Однако следует заметить, что в AutoCAD LT и AutoCAD версии 2.17 интерпретатор AutoLISP отсутствует, поэтому вы сможете использовать язык программирования AutoLISP только с программой AutoCAD версии 2.18 и выше. Программа AutoCAD содержит большую часть команд, используемых при создании чертежей. Тем не менее, некоторые команды, которые могут вам понадобиться, в этой программе отсутствуют. Например, в AutoCAD нет команды, позволяющей вносить глобальные изменения в текстовые объекты чертежа. Чтобы выйти из этого положения, можно написать программу на языке AutoLISP, с помощью которой вы сможете вносить изменения общего или избирательного характера. Язык программирования AutoLISP дает возможность писать любые программы, которые вы сможете вводить в меню, повышая таким образом эффективность системы. Язык программирования AutoLISP используется многими разработчиками программного обеспечения для написания программных пакетов, предназначенных для различных приложений. Например, автор этой книги разработал комплект программного обеспечения “SMLayout”, с помощью которого можно создавать плоские изображения различных геометрических фигур, таких как участки сопряжения и пересечения трубопроводов или деталей цилиндрической формы, коленчатые патрубки, конические поверхности, крышки и днища различных резервуаров. Таким образом, программисты, владеющие языком AutoLISP, довольно часто выступают в качестве консультантов при разработке программных приложений и нестандартных меню. При написании этой главы предполагалось, что читатель хорошо знаком с командами AutoCAD и основными системными переменными, которые используются этой программой. Тем не менее, для того чтобы начать изучение языка AutoLISP, не требуется быть специалистом в области автоматического проектирования или опытным программистом. Для чтения материала этой главы достаточно иметь некоторые начальные знания в области программирования. Если вы знакомы с другими языками, изучение AutoLISP окажется для вас совсем несложным. Всестороннее обсуждение различных функций и пошаговые инструкции по решению приведенных примеров значительно упрощают процесс обучения. В этой главе вы познакомитесь с наиболее часто используемыми функциями AutoLISP и их применением в создаваемых программах. Для получения подробной информации о функциях, не описанных в этой книге, обратитесь к руководству “AutoLISP Programmer’s Reference Manual” от компании Autodesk. Какое-либо специальное обору-
Использование AutoLISP
405
дование для программирования на языке AutoLISP не требуется. Если на вашем компьютере работает программа AutoCAD, значит будет работать и редактор AutoLISP. Для написания программ на языке AutoLISP может использоваться любой текстовый редактор.
Математические операции Математические функции являются важнейшей частью любого языка программирования. В языке AutoLISP имеется большая часть математических функций, которые обычно используются при программировании и выполнении математических вычислений. Например, с помощью этого языка можно выполнять сложение, вычитание, деление и умножение чисел. Его можно также использовать для определения синуса, косинуса и арктангенса углов, выраженных в радианах. Кроме этого, существует множество других операций, которые могут быть выполнены с помощью функций языка AutoLISP. В этом разделе вы познакомитесь с часто используемыми математическими функциями, которые поддерживаются языком программирования AutoLISP.
Сложение Формат: (+ число1 число2 число3 ...)
Эта функция (+) вычисляет сумму всех чисел, расположенных справа от знака “плюс” (+), т.е. выполняет операцию (число1 + число2 + число3 +...). Числа могут быть целыми или действительными (вещественными). Сумма целых чисел представляет собой целое число. Сумма, получаемая при сложении вещественных чисел, является вещественным числом. Несмотря на это, сумма целых и вещественных чисел также является вещественным числом. Как показано в следующих примерах, все числа, содержащиеся в первых двух строках, — целые, поэтому их сумма также является целым числом. В третьем примере одно из чисел (50,0) — вещественное, поэтому сумма чисел является вещественным числом. Примеры Command: (+ 2 5) Command: (+ 2 30 4 50) Command: (+ 2 30 4 50,0)
возвращает 7 возвращает 86 возвращает 86,0
Вычитание Формат: (- число1 число2 число3 ...)
Эта функция (-) вычитает второе число из первого (число1 – число2). Если в скобках содержится более двух чисел, второе и все последующие числа суммируются, а полученная сумма вычитается из первого числа (число1 – (число2 + число3 +...)). В первом примере 14 вычитается из 28, при этом возвращается число 14. Оба числа целые, поэтому полученный результат также является целым числом. В третьем примере 20 складывается с 10,0, а затем полученная сумма (30,0) вычитается из числа 50. В результате получаем вещественное число 20,0.
Эта функция (*) вычисляет произведение чисел, расположенных справа от звездочки (*), т.е. выполняет операцию (число1 × число2 × число3 × ...). Если сомножители являются целыми, полученный результат также будет целым числом. Если хотя бы один из сомножителей является вещественным числом, произведение чисел также будет вещественным. Примеры Command: Command: Command: Command: Command:
Эта функция (/) делит первое число на второе (число1/число2). Если в скобках находится более двух чисел, то первое число делится на произведение второго и всех последующих чисел [число1/(число2 × число3 ×...)]. В четвертом примере число 200 делится на произведение чисел 5,0 и 4, т.е. выполняется операция [200/(5,0 × 4)]. Примеры Command: Command: Command: Command: Command: Command:
Возрастающие и убывающие числа и абсолютное значение числа Возрастающие числа Формат: (1+ число)
Эта функция (1+) прибавляет единицу (целое число) к аргументу и возвращает число, увеличенное на 1. Во втором примере 1 прибавляется к числу –10,5, в результате чего получаем число –9,5.
Использование AutoLISP
407
Примеры (1+ 20) (1+ -10,5)
возвращает 21 возвращает –9,5
Убывающие числа Формат: (1- число)
Эта функция (1-) отнимает 1 (целое число) от аргумента и возвращает число, уменьшенное на 1. Во втором примере 1 вычитается из числа –10,5, в результате чего получаем число –11,5. Примеры (1- 10) (1- -10,5)
возвращает 9 возвращает –11,5
Абсолютное значение числа Формат: (abs число)
Функция abs возвращает абсолютное значение (модуль) числа, которое может быть как целым, так и вещественным. Во втором примере функция abs возвращает 20, так как абсолютным значением числа –20 является 20. Примеры (abs 20) (abs -20) (abs -20,5)
возвращает 20 возвращает 20 возвращает 20,5
Тригонометрические функции Функция синус (sin) Формат: (sin угол)
Функция синус (sin) вычисляет синус угла, выраженного в радианах. Во втором примере эта функция вычисляет синус угла π (180 градусов) и возвращает 0. Примеры (sin 0) (sin pi) (sin 1,0472)
Функция косинус (cos) вычисляет косинус угла, выраженного в радианах. В третьем примере эта функция вычисляет косинус угла π (180 градусов) и возвращает –1,0.
Функция atan вычисляет арктангенс числа1 и возвращает угол, выраженный в радианах. Во втором примере эта функция вычисляет арктангенс числа 1,0 и возвращает 0,785398 радиан. Примеры Command: (atan 0,5) Command: (atan 1,0) Command: (atan -1,0)
Функция atan позволяет также определить второе число. Формат: (atan число1 число2)
Если второе число определено, функция вычисляет арктангенс отношения (число1/ число2) и возвращает угол, выраженный в радианах. В первом примере первое число (0,5) делится на второе число (1,0) и функция atan вычисляет арктангенс делимого (0,5/1,0 = 0,5). Примеры Command: Command: Command: Command: Command:
Функция angtos Формат: (angtos угол [режим [точность]])
Функция angtos возвращает угол, выраженный в радианах, в строковом формате. Формат строкового выражения определяется параметрами режим и точность. Примеры (angtos (angtos (angtos (angtos
Примечание Функция angtos имеет формат (angtos угол [режим [точность]]), где угол — угол, выраженный в радианах, а режим — режим функции, определяемый значением системной переменной AUNITS. В программе AutoCAD существуют следующие режимы: Режим
Точность — целое число, определяющее количество знаков после запятой. Степень точности определяется значением системной переменной AUPREC. Минимальное значение параметра точность — 0, его максимальное значение равно четырем. В первом примере задан угол 0,588003 радиан, режим 0 (угол выражается в градусах) и точность 4 (четыре знака после запятой). Функция возвратит значение 33,6901.
Операторы отношения Как правило, многие программы включают в себя функции, которые проверяют выполнение тех или иных условий. Если данное утверждение справедливо, программа выполняет ряд определенных операций; если же это утверждение не является истинным, выполняются другие действия или операции. Например, реляционный оператор (if (< x 5)) проверяет, является ли значение переменной x меньше 5. Проверяемые условия такого типа довольно часто используются в программировании. В следующем разделе вы познакомитесь с различными реляционными операторами, которые используются в языке программирования AutoLISP.
Функция “равно” Формат: (= элемент1 элемент2 ...)
Эта функция (=) проверяет равенство элементов, указанных в скобках (элемент1 и элемент2). Если эти элементы равны, функция возвращает значение T. Если это условие не выполняется, функция возвращает значение nil. Примеры (= (= (= (= (=
Функция “не равно” Формат: (/= элемент1 элемент2 ... )
Эта функция (/=) проверяет равенство элементов, указанных в скобках (элемент1 и элемент2). Если эти элементы не равны, заданное условие выполняется и функция возвращает значение T. Если данные элементы равны, функция возвращает значение nil.
Эта функция (<) сравнивает значения элементов, указанных в скобках. Если первый элемент (элемент1) меньше второго (элемент2), функция возвращает значение T. Если заданное условие не выполняется, функция возвращает значение nil. Примеры (< 3 5) (< 5 3 4 2) (< "x" "y")
возвращает “T” возвращает “nil” возвращает “T”
Функция “меньше или равно” Формат: (< = элемент1 элемент2 ...)
Эта функция (<=) сравнивает значения элементов, указанных в скобках. Если первый элемент (элемент1) меньше или равен второму (элемент2), функция возвращает значение T. Если заданное условие не выполняется, функция возвращает значение nil. Примеры (<= 10 15) (<= "c" "b") (<= -2 0)
возвращает “T” возвращает “nil” возвращает “T”
Функция “больше” Формат: (> элемент1 элемент2 ...)
Эта функция (>) сравнивает значения элементов, указанных в скобках. Если первый элемент (элемент1) больше второго (элемент2), функция возвращает значение T. Если заданное условие не выполняется, функция возвращает значение nil. В первом примере 15 больше 10. Следовательно, данное утверждение является истинным, поэтому функция возвращает значение T. Во втором примере 10 больше, чем число 9, которое, в свою очередь, равно второму числу 9. Как вы видите, заданное условие не выполняется, поэтому функция возвращает значение nil. Примеры (> 15 10) (> 10 9 9) (> "c" "b")
возвращает “T” возвращает “nil” возвращает “T”
Использование AutoLISP
411
Функция “больше или равно” Формат: (>=элемент1 элемент2 ...)
Эта функция (>=) сравнивает значения элементов, указанных в скобках. Если первый элемент (элемент1) больше или равен второму (элемент2), функция возвращает значение T. Если это условие не выполняется, функция возвращает значение nil. В первом из приведенных примеров 78 больше 50. Таким образом, это утверждение является истинным, поэтому функция возвращает значение T. Примеры (>= 78 50) (>= "x" "y") (>= "78" "80")
возвращает “T” возвращает “T” возвращает “nil”
Функции defun, setq, getpoint и Command Функция defun Функция defun используется для определения функций в программе AutoLISP. Эта функция имеет следующий формат: (defun имя [аргумент])
где • имя — имя определяемой функции; • аргумент — список параметров. Примеры (defun ADNUM ( ))
Эта функция определяет функцию ADNUM, не имеющую каких-либо параметров или локальных символов. Это означает, что все переменные, используемые в данной программе, являются глобальными переменными. Глобальные переменные сохраняют присвоенные значения после завершения программы. (defun ADNUM (a b c))
Эта функция определяет функцию ADNUM, которая имеет следующие параметры: a, b и c. Переменные a, b и c получают значения вне выполняемой программы. (defun ADNUM (/a b))
Эта функция определяет функцию ADNUM, содержащую две локальные переменные a и b. Локальные переменные сохраняют свои значения во время выполнения программы и могут использоваться только в определенной программе. (defun C:ADNUM ( ))
Выражение C:, стоящее перед именем функции, дает вам возможность выполнить эту функцию, если вы введете ее имя в командную строку AutoCAD. Если выражение C: отсутствует, необходимо указывать имя функции в круглых скобках.
412
Глава 12 Примечание AutoLISP содержит ряд встроенных функций. Имена этих функций не следует присваивать другим функциям или переменным. Ниже приведен список имен, зарезервированных для встроенных функций AutoLISP. (Для получения полного списка встроенных функций AutoLISP обратитесь к руководству “AutoLISP Programmer’s Reference”.) abs ads alloc and angle antgos append apply atom ascii assoc atan atof atoi distance equal fix float if length list load member nil not nth null open or pi read repeat reverse set type while
Функция setq Функция setq позволяет присваивать переменным различные значения. Эта функция имеет следующий формат: (setq имя значение [имя значение] ...)
где • имя — имя переменной; • значение — значение, присваиваемое переменной. Значение, присваиваемое той или другой переменной, может быть выражением любого типа (числовым, строковым или буквенно-цифовым.) Command: (setq X 12) Command: (setq X 6.5) Command: (setq X 8.5 Y 12)
В последнем выражении переменной X присваивается значение 8,5, а переменной Y — значение 12. Command: (setq answer "YES")
В этом выражении переменной answer присваивается строковое значение “YES”. Функция setq может также использоваться в сочетании с другими выражениями. Ниже приведены примеры использования функции setq для присвоения различных значений тем или иным переменным. (setq pt1 (getpoint "Enter start point: ")) (setq ang1 (getangle "Enter included angle: ")) (setq answer (getstring "Enter YES or NO: ")) Примечание В языке AutoLISP используются имена и символы некоторых встроенных функций, которым нельзя присваивать какие-либо значения. В следующих примерах показаны действующие функции, использование которых не допускается. Это связано с тем, что выражения pi и angle являются зарезервированными функциями, которые будут переопределены. (setq pi 3.0) (setq angle (...))
Использование AutoLISP
413
Функция getpoint Функция getpoint создает паузу, которая позволяет пользователю ввести координаты X и Y (или X, Y и Z) той или другой точки. Координаты точки могут вводиться с помощью клавиатуры или экранного курсора. Функция getpoint имеет следующий формат: (getpoint [точка] [подсказка])
где • точка — ввод координат или выбор точки на чертеже; • подсказка — текст приглашения, которое будет выводиться на экран. Примеры (setq pt1 (getpoint)) (setq pt1 (getpoint "Enter starting point: ")) Примечание Функция getpoint не позволяет обращаться к другим программам AutoLISP. Координаты 2D- или 3D-точки всегда определяются по отношению к текущей пользовательской системе координат (UCS — User Coordinate System).
Функция Command Функция Command используется для выполнения стандартных команд AutoCAD из программ, написанных на языке AutoLISP. Имя команды AutoCAD и имена соответствующих опций необходимо заключать в двойные кавычки. Функция Command имеет следующий формат: (Command "имя_команды")
где • Command — функция AutoLISP; • имя_команды — имя команды AutoCAD. Пример (Command "line" pt1 pt2 "")
Здесь • "line" — имя команды LINE (ОТРЕЗОК); • pt1 — координаты первой точки; • pt2 — координаты второй точки; • "" — две двойные кавычки без пробела между ними, выполняющие функцию команды RETURN. Примечание Функция Command стала использоваться для выполнения команды PLOT (ПЕЧАТЬ) только после появления 12-й версии программы AutoCAD. До этого момента выражение (Command “plot” ...) не имело под собой никакой силы. AutoCAD 13 и более поздние версии этой программы дают возможность отправить чертежи на плоттер, используя для этого функцию Command (Command “plot” ...).
414
Глава 12 Функция Command в сочетании с командой TEXT (ТЕКСТ) может использоваться также для ввода текстовых данных. Например, введите выражение (Command “text” “4.04” “” “AutoCAD Text”) в командную строку — этот текст автоматически отобразится на текущем чертеже. Следует заметить, что функция Command не поддерживает использование функций ввода, имеющихся в языке AutoLISP. К функциям ввода относятся getpoint, getstring, getangle и getint. Например, функции (Command “getpoint” ...) или (Command “getangle” ...) являются недействительными. При загрузке программы, содержащей подобные функции, на экране появится сообщение о соответствующей ошибке. Тем не менее, функции ввода можно вывести на экран, заключив их имена в круглые скобки (например, Command “text” (getpoint) (getdist) (getangle) “hello, sailer”).
Пример 1 Напишите программу, которая позволит вам определить вершины треугольника, а затем провести линии через выбранные точки и построить треугольник, показанный на рис. 12.1.
Шаг 1: знакомство с программами AutoLISP Как правило, программы состоят из трех основных частей: ввод, обработка и вывод данных. Процесс обработки включает в себя генерирование требуемых выходных данных, которые создаются на основе ранее введенных данных (рис. 12.2). Прежде чем писать программу, вам необходимо определить основные элементы, из которых она будет со- Рис. 12.1. Треугольник Р1Р2Р3 стоять. В нашем примере ввод данных — определение вершин треугольника. Выходные данные представляют собой треугольник, построенный на чертеже. Процесс обработки включает в себя генерирование треугольника, образуемого путем соединения вершин Р1, Р2 и Р3. Четкое определение основных элементов программы значительно упрощает процесс программирования.
Рис. 12.2. Основные элементы программы
Раздел программы, описывающий процесс обработки данных, имеет первостепенное значение для успешного решения поставленной задачи. Этот раздел может быть простым, но может также содержать сложнейшие вычисления. Если приходится выполнять множество различных вычислений, разбейте программу на несколько разделов (или
415
Использование AutoLISP
даже подразделов), упорядочив их в логическом и систематическом отношении. Не забывайте также о том, что время от времени программу необходимо редактировать. В этом есть определенный смысл, поскольку программу следует документировать таким образом, чтобы обеспечить ясность и однозначность ее изложения. Это позволит другим программистам разобраться в том, что происходит в программе на различных стадиях ее выполнения. Поэтому старайтесь там, где это возможно, вводить описания и определения используемых переменных. Ввод данных Определение точки Р1 Определение точки Р2 Определение точки Р3
Обработка Соединение точек Р1 и Р2 Соединение точек Р2 и Р3 Соединение точек Р3 и Р1
Вывод данных Треугольник Р1Р2Р3
Шаг 2: написание программы AutoLISP Для написания программы на языке AutoLISP можно использовать любой текстовый редактор. Ниже приведен листинг программы AutoLISP для примера 1. Номера строк, указанные в правой части листинга, не являются частью программного кода и используются только для ссылок. ;Эта программа позволяет определить вершины треугольника, ;введя их координаты с клавиатуры или выделив их на чертеже ;с помощью экранного курсора. Точки P1, P2 и P3 являются ;вершинами данного треугольника. (defun C:TRIANG1() (setq P1 (getpoint (setq P2 (getpoint (setq P3 (getpoint (Command "LINE" P1 )
"\n Enter first point of Triangle: ")) "\n Enter second point of Triangle: ")) "\n Enter third point of Triangle: ")) P2 P3 "C")
1 2 3 4 5 6 7 8 9 10 11
Пояснения Строки 1–3 В первых четырех строках содержатся комментарии, которые описывают назначение этой программы. Эти строки имеют первостепенное значение, так как наличие комментариев упрощает редактирование программы. Тем не менее, комментарии должны использоваться только по мере необходимости. Строка комментариев всегда начинается точкой с запятой. При загрузке программы строки, начинающиеся с этого символа, игнорируются.
Строка 5 Это пустая строка, отделяющая раздел комментариев от основной части программы. Пустые строки могут использоваться также для разделения различных модулей программы. Это позволяет упростить идентификацию разделов, содержащихся в программе. Наличие пустых строк на работу программы не влияет.
Строка 6 (defun C:TRIANG1()
В этой строке содержится функция defun, используемая для определения функции TRIANG1. Выражение C:, стоящее перед именем этой функции, дает вам возможность
416
Глава 12
выполнять функцию TRIANG1 так, как и обычные команды AutoCAD. В том случае, если выражение С: отсутствует, для выполнения функции TRIANG1 вам придется взять ее имя в круглые скобки (TRIANG1). Функция TRIANG1 содержит три глобальных переменных (Р1, Р2 и Р3). Создавая программы на языке AutoLISP, старайтесь на первых порах использовать глобальные переменные, что даст вам возможность определять их значения после загрузки и выполнения программы. Для этого достаточно ввести в командную строку имя переменной, поставив перед ним восклицательный знак (например, Command: !P1). Проверив программу и убедившись в ее работоспособности, сделайте переменные локальными (defun C:TRIANGE1(/P1 P2 P3)).
Строка 7 (setq P1 (getpoint "\n Enter first point of Triangle: "))
Функция getpoint, содержащаяся в этой строке, создает паузу, во время которой пользователь может определить первую вершину треугольника. При этом на экране в области командных строк появляется выражение Enter first point of Triangle (“Укажите первую вершину треугольника”). Для этого необходимо ввести координаты точки с клавиатуры или выбрать точку на чертеже с помощью экранного указателя. После этого функция setq присваивает заданные координаты переменной P1. Параметр \n обеспечивает возврат каретки в исходное положение, в результате чего предложение, следующее за этим параметром, печатается на следующей строке (“n” обозначает “newline”).
Строки 8 и 9 (setq P2 (getpoint "\n Enter second point of Triangle: ")) (setq P3 (getpoint "\n Enter third point of Triangle: "))
Функции, содержащиеся в этих строках, позволяют определить вторую и третью вершины треугольника. Координаты, заданные этим точкам, присваиваются переменным Р2 и Р3. Параметр \n обеспечивает возврат каретки в исходное положение, что позволяет отобразить приглашение на ввод координат в следующей строке.
Строка 10 (Command "LINE" P1 P2 P3 "C")
Функция Command, содержащаяся в этой строке, используется для вызова команды LINE, с помощью которой вычерчиваются линии, соединяющие точки P1 и P2, P2 и P3. Параметр "C" (для вызова опции “Close”) соединяет последнюю точку (Р3) с первой (Р1). Имена команд и опций AutoCAD, используемых в программах на языке AutoLISP, должны указываться в кавычках. Переменные P1, P2 и P3 разделены пробелами.
Строка 11 Эта строка содержит закрывающую круглую скобку, которой завершается определение функции TRIANG1. Закрывающая скобка может быть объединена с предыдущей строкой, но лучше вынести ее в отдельную строку. Это позволит вам выделить строку, которая является концом определения. В представленной программе имеется только одно определение функции, поэтому отличить завершающую строку довольно легко. Но для программ, содержащих большое количество определений или состоящих из нескольких модулей, четкое разграничение элементов программы приобретает особое значение. Круглые скобки и пустые строки помогают идентифицировать начало и конец определений или различных разделов программы.
Использование AutoLISP
417
Загрузка программ на языке AutoLISP Сохраните введенный текст в виде файла с расширением .lsp. Как правило, существует два имени, ассоциируемых с программой AutoLISP: файловое имя программы и имя функции. Например, triang1.lsp является именем файла, но не именем функции. Файлы AutoLISP имеют расширение .lsp. В каждом файле может быть определена одна или несколько различных функций. Например, функция, описанная в предыдущем примере, называется TRIANG1. Для ее выполнения необходимо загрузить файл программы AutoLISP, в котором была определена эта функция. Для этого откройте графический редактор AutoCAD и загрузите файл AutoLISP, выполнив следующую процедуру. Загрузка программы AutoLISP выполняется с помощью диалогового окна или командной строки, в которую вводится соответствующая команда. Откройте диалоговое окно Load/Unload Application (Загрузить/Выгрузить приложение) (рис. 12.3), выполнив команду ToolsAutoLISPLoad (СервисAutoLISPЗагрузить) или выбрав команду Load Application (Загрузить приложение) из меню Tools (Сервис). Это диалоговое окно может использоваться для загрузки файлов приложений LSP, VLX, FAS, VBA, DBX и ObjectARX. Файлы VBA, DBX и ObjectARX загружаются при выборе соответствующего файла. Файлы с расширением LSP, VLX и FAS “выстраиваются” в очередь и загружаются только тогда, когда вы закроете диалоговое окно Load/Unload Application. В окне, расположенном в верхней части диалогового окна, показаны файлы, содержащиеся в выбранном каталоге. Если вам необходимо изменить тип файла, введите выражение (*.lsp) в текстовое окно Files of type (Тип файла) или выберите нужный тип файла в раскрывающемся списке. Чтобы загрузить определенное приложение, выделите нужный файл и щелкните на кнопке Load (Загрузить) или дважды щелкните мышью на имени соответствующего файла. В следующих разделах вы познакомитесь с другими опциями диалогового окна Load/Unload Application.
Рис. 12.3. Загрузка файлов AutoLISP с помощью диалогового окна Load/Unload Application
418
Глава 12
Кнопка Load Кнопка Load используется для загрузки или перезагрузки выделенных файлов. Файлы могут быть выбраны из списка файлов в верхней части диалогового окна, а также из вкладки Loaded Applications или History List. Файлы ObjectARX не перезагружаются. Вам придется вначале выгрузить файлы ObjectARX, а затем загрузить из повторно.
Вкладка Loaded Applications При переходе на вкладку Loaded Applications программа AutoCAD отображает список приложений, загруженных в настоящее время. Чтобы ввести в этот список другие приложения, выберите файл из списка, находящегося в верхней части диалогового окна, и перетащите его в список Loaded Applications.
Вкладка History List При переходе на вкладку History List программа AutoCAD отображает список файлов, загруженных с установленным флажком опции Add to History. Если флажок этой опции не установлен, то при перетаскивании файлов из списка в окно History List приложения успешно загружаются, но имена файлов в списке History List не отображаются.
Флаговая кнопка Add to History Если флажок опции Add to History установлен, то при перетаскивании файлов из списка, расположенного в верхней части диалогового окна, в окно History List, имена этих файлов вводятся в список History List.
Кнопка Unload Кнопка Unload появляется в диалоговом окне при переходе на вкладку Loaded Applications. Чтобы выгрузить то или иное приложение, выделите имя соответствующего файла в списке Loaded Applications и щелкните на кнопке Unload. Файлы LISP и ObjectARX, не внесенные в список разгрузки, не выгружаются.
Кнопка Remove Кнопка Remove появляется в диалоговом окне при переходе на вкладку History List. Чтобы удалить файл из списка предыстории, выделите его имя в списке History List, а затем щелкните на кнопке Remove.
Пиктограмма Startup Suit Файлы, перечисленные в диалоговом окне Startup Suit, автоматически загружаются при каждом запуске программы AutoCAD. При щелчке на пиктограмме Startup Suit AutoCAD отображает диалоговое окно Startup Suit, содержащее список соответствующих файлов. Чтобы ввести в список дополнительные файлы, щелкните на кнопке Add. Можно также перетащить нужные файлы из списка, расположенного в верхней части диалогового окна, оставив их на пиктограмме Startup Suit. Чтобы добавить файлы, перечисленные в списке History List, щелкните на имени файла правой кнопкой мыши и выберите опцию Add to Startup Suit из контекстного меню.
Использование AutoLISP
419
Для загрузки программы AutoLISP можно также использовать команду LOAD, имеющую следующий формат: Command: (load "[путь]имя_файла")
где • Command: — приглашение на ввод команды, используемое в программе AutoCAD; • load — команда, выполняющая загрузку файла программы AutoLISP; • [путь]имя_файла — путь и имя файла программы AutoLISP. Имя файла и необязательное путевое имя программы AutoLISP необходимо указывать в кавычках. Кроме этого выражения load и имя_файла должны быть взяты в круглые скобки. Если скобки отсутствуют, программа AutoCAD вместо файла AutoLISP попытается загрузить файл формы или текстового шрифта. Отделять пробелом параметры load и имя_файла не требуется. Если приложение успешно загружено, имя соответствующей функции появится на экране в области командной строки. Чтобы запустить программу, введите имя функции в командную строку AutoCAD (Command: TRIANG1), а затем нажмите клавишу <Enter>. Если в имени функции, содержащейся в данной программе, отсутствует параметр C:, то при запуске программы имя этой функции необходимо указывать в круглых скобках. Command: TRIANG1 или Command: (TRIANG1) Примечание При определении путевого имени файла, требуемого для загрузки программы AutoLISP, следует использовать левую косую черту. Например, если файл программы TRIANG1 находится на диске С: в подкаталоге LISP, то команда, используемая для загрузки файла, будет иметь следующий вид. (Вместо левой косой черты можно также использовать двойную обратную косую черту (//).) Command: (load "c:/lisp/triang") или Command: (load "c:\\lisp\\triang")
Совет Для загрузки приложений можно также использовать стандартный метод “drag-anddrop”, используемый в операционной системе Windows. Чтобы загрузить программу AutoLISP, выделите файл в окне просмотра Windows Explorer, а затем перетащите его в графическое окно программы AutoCAD. Выбранная вами программа будет автоматически загружена.
Упражнение 1 Напишите программу AutoLISP, которая начертит линию, проходящую через две точки (рис. 12.4). Эта программа должна вывести приглашение, которое позволит пользователю определить координаты X и Y первой и второй точек.
Рис. 12.4. Линия, проходящая через точки P1 и P2
420
Глава 12
Функции getcorner, getdist и setvar Функция getcorner При выполнении функции getcorner создается пауза, которая дает вам возможность определить координаты точки. Для этого необходимо ввести координаты с клавиатуры или определить местоположение точки с помощью экранного перекрестья. При использовании этой функции требуется также указать исходную точку. При перемещении курсора, имеющего форму перекрестья, на экране отобразится прямоугольный контур, одной из вершин которого будет указанная точка. Функция getcorner имеет следующий формат: (getcorner точка [подсказка])
где • точка — исходная точка; • подсказка — текст приглашения, отображаемого на экране. Примеры (getcorner pt1) (setq pt2 (getcorner pt1)) (setq pt2 (getcorner pt1 "Enter second point: ")) Примечание Местоположение исходной (или базовой) точки и точки, выбранной при выполнении функции getcorner, определяется по отношению к текущей пользовательской системе координат (ПСК). Если вы выбрали 3D-точку, имеющую координаты X, Y и Z, то координата Z игнорируется. В этом случае координата Z рассматривается как высота точки, расположенной над плоскостью чертежа.
Функция getdist Функция getdist создает паузу, которая позволяет определить расстояние между какими-либо точками, а затем возвращает введенное значение в виде вещественного (действительного) числа. Функция getdist имеет следующий формат: (getdist [точка] [подсказка])
где • точка — точка, используемая в качестве точки отсчета; • подсказка — текст приглашения, которое необходимо вывести на экране. Примеры (getdist) (setq dist (setq dist (setq dist (setq dist
(getdist)) (getdist pt1)) (getdist "Enter distance")) (getdist pt1 "Enter second point for distance: "))
Чтобы ввести расстояние, достаточно выбрать две точки на чертеже. Например, если процесс присваивания значений описывается выражением (setq dist (getdist)), можете ввести число или выделить две точки. В том случае, когда используется выражение (setq dist (getdist pt1)), в котором первая точка (pt1) уже определена, необходимо
Использование AutoLISP
421
выбрать только одну (вторую) точку. Функция getdist всегда возвращает определяемое расстояние в виде вещественного числа. Например, если вы создаете строительномонтажный чертеж и вводите все размеры в архитектурных единицах, функция getdist возвратит расстояние между точками в виде вещественного числа.
Функция setvar Функция setvar позволяет присваивать требуемые значения системным переменным AutoCAD. Имя системной переменной должно указываться в кавычках. Функция setvar имеет следующий формат: (setvar "имя_переменной" значение)
где • имя_переменной имя системной переменной AutoCAD; • значение значение, присваиваемое системной переменной. Примеры (setvar (setvar (setvar (setvar
Пример 2 Напишите программу на языке AutoLISP, которая позволила бы начертить фаску, при этом укажите угол скоса и один из линейных размеров. Для построения фаски в программе AutoCAD используются значения, присвоенные системным переменным CHAMFERA и CHAMFERB. При выборе команды CHAMFER (ФАСКА) линейные размеры фаски (горизонтальный и вертикальный) автоматически присваиваются системным переменным CHAMFERA и CHAMFERB, а затем используются указанной командой для вычерчивания фаски. Тем не менее, в машиностроительном черчении более предпочтительным способом определения фаски является задание угла и одного из линейных размеров, как показано на рис. 12.5. Входные данные • Первый размер фаски (D) • Угол скоса (А) Выходные данные • Фаска между двумя выбранными линиями
Рис. 12.5. Фаска, заданная углом А и размером D
422
Глава 12
Шаг 1: знакомство с алгоритмом программы Обработка данных 1. Вычисление второго размера фаски. 2. Присвоение этих значений системным переменным CHAMFERA и CHAMFERB. 3. Вычерчивание фаски с помощью команды CHAMFER. Вычисления • x/d = tan a • x = d * (tan a) = d * [(sin a) / (cos a)]
Шаг 2: запись программы AutoLISP Для записи программы на языке AutoLISP можно использовать любой текстовый редактор. Ниже приведен листинг программы для примера 3. Номера строк в правой части листинга не являются частью программного кода, а используются только для ссылок. ;Эта программа дает вам возможность начертить фаску, ;введя угол скоса и линейный размер фаски. ; (defun c:chamf (/d a) (setvar "cmdecho" 0) (graphscr) (setq d (getdist "\n Enter chamfer distance: ")) (setq a (getangle "\n Enter chamfer angle: ")) (setvar "chamfera" d) (setvar "chamferb" (* d (/ (sin a) (cos a)))) (command "chamfer") (setvar "cmdecho" 1) (princ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Пояснения Строка 7 (setq d (getdist "\n Enter chamfer distance: "))
Функция getdist создает паузу, которая позволяет ввести размер фаски. Затем функция setq присваивает это значение переменной d.
Строка 8 (setq a (getangle "\n Enter chamfer angle: "))
Функция getangle создает паузу, которая позволяет ввести угол скоса. Затем функция setq присваивает это значение переменной а.
Строка 9 (setvar "chamfera" d)
Функция setvar присваивает значение переменной d системной переменной chamfera, используемой в программе AutoCAD.
Использование AutoLISP
423
Строка 10 (setvar "chamferb" (* d (/ (sin a) (cos a))))
Функция setvar присваивает значение, полученное при вычислении выражения (* d (/ (sin a) (cos a))), системной переменной chamferb.
Строка 11 (command "chamfer")
Функция Command вызывает команду CHAMFER, которая создает фаску на чертеже.
Шаг 3: загрузка программы, написанной на языке AutoLISP Сохраните текстовый файл в виде файла с расширением .lsp, а затем загрузите программу AutoLISP, выполнив процедуру, описанную в примере 1.
Упражнение 2 Напишите программу AutoLISP, которая вычертит фигуры, показанные на рис. 12.6. Эта программа также должна вывести приглашение, позволяющее указать местоположение точек Р1 и Р2 и определить величины диаметров D1 и D2.
Функция list В программах, написанных на языке AutoLISP, функция list используется для определения 2D- и 3D-точек. Если выражение не содержит переменных или неопределенных элементов, функция list может быть обозначена с помощью одинарной кавычки ('). Примеры (setq x (list 2.5 3 56)) (setq x '(2.5 3 56))
возвращает (2.5 3 56) возвращает (2.5 3 56)
Совет Функция list, содержащая целые или вещественные числа, может быть заключена в одинарные круглые скобки. Одинарная кавычка, используемая для обозначения функции list, обычно выносится за скобки.
424
Глава 12
Функции car, cdr и cadr Функция car Функция car возвращает первый элемент списка. Если в списке нет ни одного элемента, функция car возвращает значение nil. Не забывайте, что перед использованием этой функции вам необходимо с помощью функции list перечислить элементы списка. Функция car имеет следующий формат: (car list)
где • car — функция, возвращающая первый элемент; • list — список элементов. Примеры (car (car (car (car (car (car
'(2.5 3 56)) '(x y z)) '((15 20) 56)) '( )) '(list 2 3.0 4)) '(A B C))
возвращает 2.5 возвращает X возвращает (15 20) возвращает “nil” возвращает 2 возвращает A
Одинарная кавычка обозначает список элементов.
Функция cdr Функция cdr возвращает список, из которого удален первый элемент. Функция cdr имеет следующий формат: (cdr list)
где • cdr — функция, возвращающая список, из которого удален первый элемент; • list — список элементов. Примеры (cdr (cdr (cdr (cdr
Функция cadr Функция cadr возвращает второй элемент списка, последовательно выполняя две операции: cdr и car. Функция cdr удаляет первый элемент списка, а функция car возвращает первый элемент нового списка. Функция cadr имеет следующий формат: (cadr list)
где • cadr — функция, выполняющая две операции (car (cdr ‘(x y z)); • list — список элементов.
Использование AutoLISP
425
Примеры (cadr (cadr (cadr (cadr
'(2 3)) '(2 3 56)) '(x y z)) '((15 20) 56 24))
возвращает 3 возвращает 3 возвращает Y возвращает 56
В этих примерах функция cadr выполняет следующие операции: (cadr '(x y z)) = (car (cdr '(x y z))) = car (y z))
и в итоге возвращает элемент y. Примечание Помимо функций car, cdr и cadr существует ряд других функций, которые могут быть использованы для извлечения различных элементов из списка. Ниже приведены некоторые из этих функций. В данном случае функция f представляет собой список '((x y) z w)). (setq f'((x y) z w)) (caar f) = (car (car f)) (cdar f) = (cdr (car f)) (cadar f) = (car (cdr (car f))) (cddr f) = (cdr (cdr f)) (caddr f) = (car (cdr (cdr f))) last f
возвращает x возвращает (y) возвращает y возвращает (w) возвращает w возвращает w
Функции graphscr, textscr, princ и terpri Функция graphscr Функция graphscr обеспечивает переход из текстового окна в окно графического редактора, позволяя работать в системе с одним монитором. Если в системе используется два монитора, эта функция игнорируется.
Функция textscr Функция textscr обеспечивает переход из окна графического редактора в текстовое окно, позволяя работать в системе с одним монитором. Если в системе используется два монитора, эта функция игнорируется.
Функция princ Функция princ печатает (или выводит на экран) значение переменной. Если переменная заключена в кавычки, эта функция выводит на печать (или на экран) выражение в кавычках. Функция princ имеет следующий формат: (princ [переменная или выражение])
Примеры (princ) (princ a) (princ "Welcome")
выводит на печать (или на экран) пустую строку выводит на печать (или на экран) значение переменной а выводит на печать (или на экран) выражение Welcome
426
Глава 12
Функция terpri Функция terpri выводит на экран новую строку, т.е. выполняет то же действие, что и выражение \n. Эта функция используется для отображения строки, следующей после функции terpri. Примеры (setq p1 (getpoint "Enter first point: ")) (terpri) (setq p2 (getpoint "Enter second point: "))
Первая строка (Enter first point:) появится на экране в командной строке. Функция terpri выполняет возврат каретки в исходное положение; таким образом, вторая строка (Enter second point:) будет отображена в следующей строке, непосредственно под предыдущей строкой. Если функция terpri будет пропущена, оба выражения будут показаны в одной строке (Enter first point: Enter second point:).
Пример 3 Напишите программу, с помощью которой вы смогли бы определить координаты противоположных вершин прямоугольника, а затем вывести на экран заданный прямоугольник (рис. 12.7).
Шаг 1: разработка алгоритма программы Входные данные • Координаты точки Р1 • Координаты точки Р3 Выходные данные • Прямоугольник Обработка данных 1. Вычисление координат точек Р2 и Р4 2. Вычерчивание следующих линий: • линия от точки Р1 до точки Р2; • линия от точки Р2 до точки Р3; • линия от точки Р3 до точки Р4; • линия от точки Р4 до точки Р1
Рис. 12.7. Прямоугольник Р1Р2Р3Р4
427
Использование AutoLISP
Координаты X и Y точек Р2 и Р4 можно определить с помощью функций car и cadr. В частности, функция car позволяет извлечь координату X из списка введенных данных, а функция cadr может быть использована для получения координаты Y. Координата X точки p2 • x2 = x3 • x2 = car (x3 y3) • x2 = car p3 Координата Y точки p2 • y2 = y1 • y2 = cadr (x1 y1) • y2 = cadr p1 Координата X точки p4 • x4 = x1 • x4 = car (x1 y1) • x4 = car p1 Координата Y точки p4 • y4 = y3 • y4 = cadr (x3 y3) • y4 = cadr p3 Точки p2 и p4 определяются следующим образом: • p2 = (list (car p3) (cadr p1)) • p4 = (list (car p1) (cadr p3))
Шаг 2: запись программы AutoLISP Для записи программы на языке AutoLISP используется любой текстовый редактор. Ниже приведен листинг программы для примера 3. Номера строк в правой части листинга не являются частью программного кода, а используются только для ссылок. ;Эта программа вычерчивает прямоугольник, ;заданный координатами двух противоположных вершин ; (defun c:RECT1 (/ p1 p2 p3 p4) (graphscr) (setvar "cmdecho" 0) (prompt "RECT1 command draws a rectangle")(terpri) setq p1 (getpoint "Enter first corner"))(terpri) setq p3 (getpoint "Enter opposite corner")"(terpri) (setq p2 (list (car p3) (cadr p1))) (setq p4 (list (car p1) (cadr p3))) (command "line" p1 p2 p3 p4 "c") (setvar "cmdecho" 1) (princ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
428
Глава 12
Пояснения Строки 1–3 В первых трех строках содержатся комментарии, которые описывают назначение этой программы. Строка комментариев всегда начинается точкой с запятой (;). При загрузке программы строки, начинающиеся с этого символа, игнорируются.
Строка 4 (defun c:RECT1 (/ p1 p2 p3 p4)
Функция defun определяет функцию RECT1.
Строка 5 (graphscr)
Функция graphscr обеспечивает переход из текстового окна в окно графического редактора (в том случае, когда текущим является текстовое окно). В других обстоятельствах эта функция не оказывает никакого влияния на текущий режим работы.
Строка 6 (setvar "cmdecho" 0)
Функция setvar присваивает системной переменной CMDECHO значение 0, что приводит к выключению командной строки. Когда значение переменной CMDECHO равно 0, командная строка в окне программы не отображается.
Строка 7 (prompt "RECT1 command draws a rectangle")(terpri)
Функция prompt выводит на экран информацию, содержащуюся в кавычках ("RECT1 command draws a rectangle"). Функция terpri возвращает каретку в исходное положение, в результате чего последующее текстовое сообщение выводится на экран (или на печать) в отдельной строке.
Строка 8 (setq p1 (getpoint "Enter first corner"))(terpri)
Функция getpoint создает паузу, которая используется для определения одной из вершин прямоугольника. Затем функция setq присваивает введенное значение переменной p1.
Функция getpoint создает паузу, которая используется для определения координат точки (противоположной вершины прямоугольника). Функция setq присваивает введенное значение переменной p3.
Строка 10 (setq p2 (list (car p3) (cadr p1)))
Функция cadr извлекает координату Y точки р1, а функция car — координату X точки p3. Функция list формирует список, состоящий из полученных значений (т.е. из координат X и Y). Эти значения функция setq присваивает переменной p2.
Использование AutoLISP
429
Строка 11 (setq p4 (list (car p1) (cadr p3)))
Функция cadr извлекает координату Y точки р3, а функция car — координату X точки p1. Функция list формирует список, состоящий из полученных значений (т.е. из координат X и Y). Эти значения функция setq присваивает переменной p4.
Строка 12 (command "line" p1 p2 p3 p4 "c")
Функция command, содержащаяся в этой строке, вызывает команду LINE, которая вычерчивает линии, соединяющие точки p1, p2, p3 и p4. Опция c (close) позволяет замкнуть контур, т.е. соединить последнюю точку (p4) с первой (p1).
Строка 13 (setvar "cmdecho" 1)
Функция setvar присваивает системной переменной CMDECHO значение 1, что обеспечивает отображение командной строки на экране.
Строка 14 (princ)
Функция princ выводит на экран (или на печать) пустую строку. Если это выражение удалить, AutoCAD выведет на экран значение, полученное при вычислении последнего выражения. Это значение не повлияет на работу программы, но его появление будет отвлекать внимание пользователя. В данном случае функция princ используется для того, чтобы предотвратить отображение последнего выражения в командной строке.
Строка 15 Закрывающая круглая скобка завершает определение функции RECT1 и заканчивает программу. Примечание В этой программе построение прямоугольника выполняется после определения координат противоположных вершин этой фигуры. Обратите внимание, что при перемещении экранного перекрестья, выполняемого в процессе определения второй вершины, контур прямоугольника не растягивается. Тем не менее, вычерчиваемую фигуру можно перетаскивать, используя для этого функцию getcorner. Пример использования этой функции показан в следующем листинге:
;Эта программа обеспечивает построение прямоугольника ;в режиме перетаскивания, используя для этого функцию getcorner (defun c:RECT2 (/ p1 p2 p3 p4) (graphscr) (setvar "cmdecho" 0) (prompt "RECT2 command draws a rectangle")(terpri) (setq p1 (getpoint "Enter first corner"))(terpri) (setq p3 (getcorner "Enter opposite corner")"(terpri) (setq p2 (list (car p3) (cadr p1))) (setq p4 (list (car p1) (cadr p3))) (command "line" p1 p2 p3 p4 "c") (setvar "cmdecho" 1) (princ) )
430
Глава 12
Шаг 3: загрузка программы, написанной на языке AutoLISP Сохраните введенный текст в виде файла с расширением .lsp, а затем загрузите его с помощью команды APPLOAD, как описывается в примере 1.
Функции getangle и getorient Функция getangle Функция getangle создает паузу, во время которой вы сможете ввести величину угла, а затем возвращает введенное значение в радианах. Функция getangle имеет следующий формат: (getangle [point] [prompt])
где • point — первая точка определяемого угла; • prompt — текст приглашения, которое необходимо вывести на экран. Примеры (getangle) (setq ang (getangle)) (setq ang (getangle pt1)), где pt1 — ранее определенная точка (setq ang (getangle "Enter taper angle")) (setq ang (getangle pt1 "Enter second point of angle"))
Величина введенного угла зависит от используемых параметров настройки. Требуемые параметры настройки углов можно установить, используя команду UNITS или изменяя значения системных переменных ANGBASE и ANGDIR. Ниже приведены стандартные настройки системы измерения угловых величин. • Угол измеряется относительно положительной оси X (по горизонтали). Значение этого параметра сохраняется в системной переменной ANGBASE. • Угол, измеряемый против часовой стрелки, считается положительным, а угол, измеряемый по часовой стрелке, — отрицательным. Значение этого параметра сохраняется в системной переменной ANGDIR. Если 135-градусный угол, показанный на рис. 12.8, а, имеет стандартные настройки, то функция getangle возвратит значение, равное 2,35619 радиан. Пример Функция (setq ang (getangle "Enter angle")) возвращает значение 2,35619 радиан (для угла 135 градусов). На рис. 12.8, б показаны новые настройки системы измерения угловых величин, в которой ось Y располагается под углом 0 градусов, а положительным считается угол, измеряемый по часовой стрелке. В этом случае функция getangle возвращает значение 3,92699 радиан (для угла 135 градусов). Это связано с тем, что функция getangle вычисляет значение угла, измеряя его против часовой стрелки, т.е. игнорируя направление, заданное значением системной переменной ANGDIR. Измерение угла выполняется в соответствии с параметрами, определенными системной переменной ANGBASE (рис. 12.9, б).
Использование AutoLISP
Рис. 12.8, a
Рис. 12.9, a
431
Рис. 12.8, б
Рис. 12.9, б
Пример Функция (setq ang (getangle "Enter angle")) возвращает значение 3,92699 радиан (для угла 135 градусов).
Функция getorient Функция getorient создает паузу, во время которой вы сможете ввести величину угла, а затем возвращает введенное значение в радианах. Функция getorient имеет следующий формат: (getorient [точка] [подсказка])
где • точка — первая точка определяемого угла; • подсказка — текст приглашения, которое необходимо вывести на экран. Примеры (getorient) (setq ang (getorient)) (setq ang (getorient pt1)) (setq ang (getorient "Enter taper angle")) (setq ang (getorient pt1 "Enter second point of angle"))
Функция getorient во многом похожа на функцию getangle. В частности, обе функции возвращают значение угла в радианах. Тем не менее, функция getorient всегда измеряет угол против часовой стрелки, начиная от положительной оси X (от горизонтальной оси координат). Эта функция игнорирует значения системных переменных
432
Глава 12
ANGBASE и ANGDIR. Если настройки, как показано на рис. 12.10, а, не изменились (значения системных переменных ANGDIR и ANGBASE заданы по умолчанию), то при измерении 135-градусного угла функция getorient возвратит значение 2,35619 радиан. В том случае, если настройки изменились (рис. 12.10, б), функция getorient возвратит значение 5,49778 радиан. Несмотря на то, что этот угол измеряется по часовой стрелке, начиная от положительной оси Y, функция getorient игнорирует внесенные изменения и вычисляет значение угла, измеряя его против часовой стрелки от положительной оси X.
Рис. 12.10, a
Рис. 12.10, б
Примечание Функции getangle и getorient позволяют определить угол, введя его числовое значение или указав две точки на чертеже. При использовании выражения (setq ang (getorient pt1)), где pt1 — ранее определенная первая точка, на экране появится приглашение, позволяющее ввести вторую точку угла. Для этого вам необходимо указать точку на чертеже или ввести ее координаты с клавиатуры. Угол 180 градусов равен числу π (3,14159 радиан). При вычислении величины угла в радианах используется следующее отношение: угол в радианах = (pi × угол в градусах)/180
Функции getint, getreal, getstring и getvar Функция getint Функция getint создает паузу, во время которой вы сможете ввести целое число. Эта функция всегда возвращает целое число. Если вы введете вещественное число, на экране появится сообщение о необходимости ввести целое число. Функция getint имеет следующий формат: (getint [подсказка])
где • подсказка — текст приглашения, которое вы хотите вывести на экран. Примеры (getint) (setq numx (getint)) (setq numx (getint "Enter number of rows: ")) (setq numx (getint "\n Enter number of rows: "))
Использование AutoLISP
433
Функция getreal Функция getreal создает паузу, во время которой вы сможете ввести вещественное (действительное) число. Эта функция всегда возвращает вещественное число, что происходит даже в том случае, когда вы вводите целое число. Функция getreal имеет следующий формат: (getreal [подсказка])
где • подсказка — текст приглашения, которое вы хотите вывести на экран. Примеры (getreal) (setq realnumx (getreal)) (setq realnumx (getreal "Enter num1: ")) (setq realnumx (getreal "\n Enter num2: "))
Функция getstring Функция getstring создает паузу, которая дает возможность ввести строковое выражение. Эта функция всегда возвращает строковое выражение, что происходит даже в том случае, когда введенная вами строка содержит только числовые значения. Функция getstring имеет следующий формат: (getstring [cr] [подсказка])
где • cr — параметр, имеющий значение T или Nil. По умолчанию ему присваивается значение Nil. Значение T, присвоенное этому параметру, позволяет вводить текстовую строку с пробелами. Также следует заметить, что строка должна заканчиваться символом ENTER. • подсказка — текст приглашения, отображаемого на экране. Примеры (getstring) (setq answer (getstring)) (setq answer (getstring "Enter Y for yes, N for no: ")) (setq answer (getstring "\n Enter Y for yes, N for no: ")) Примечание Максимальная длина строки составляет 256 символов. Если количество символов, содержащихся в этой строке, превышает указанное число, то это приводит к тому, что “лишние” символы игнорируются.
Функция getvar Функция getvar дает вам возможность вывести значение системной переменной AutoCAD. Эта функция имеет следующий формат: (getvar "переменная")
где • переменная — имя системной переменной AutoCAD.
возвращает значение 0.09 возвращает значение 1.0 возвращает значение 12.09,9.00 возвращает значение 0.00,0.00
Функции polar и sqrt Функция polar Функция polar позволяет определить точку, находящуюся под указанным углом и на заданном расстоянии от данной точки (рис. 12.11). Угол задается в радианах и измеряется против часовой стрелки (т.е. предполагается, что системные переменные ANGBASE и ANGDIR имеют значения по умолчанию). Функция polar имеет следующий формат: (polar точка угол расстояние)
где • точка — исходная точка; • угол — угол, образованный исходной и определяемой точками; • расстояние — расстояние между исходной и заданной точками. Примеры (polar pt1 ang dis) (setq pt2 (polar pt1 ang dis)) (setq pt2 (polar '(2.0 3.25) ang dis))
Функция sqrt Функция sqrt вычисляет квадратный корень из заданного числа, а затем возвращает полученное значение в виде вещественного числа (рис. 12.12). Функция sqrt имеет следующий формат: (sqrt число)
где • число — число (целое или вещественное), из которого требуется извлечь квадратный корень. Примеры (sqrt (sqrt (setq (setq (setq (setq
144) 144.0) x (sqrt 57.25)) x (sqrt (* 25 36.5))) x (sqrt (/ 7.5 (cos 0.75))) hyp (sqrt (+ (* base base) (* ht ht))))
возвращает значение 12.0 возвращает значение 12.0 возвращает значение 7.566373 возвращает значение 30.207615 возвращает значение 3.2016035
Для последнего примера квадрат гипотенузы равен сумме квадратов катетов или как в данном случае, высоты и основания (см. рис. 12.12).
Использование AutoLISP
435
Рис. 12.11. Использование функции polar для определения точки
Рис. 12.12. Пример использования функции sqrt
Пример 4 Напишите программу на языке AutoLISP, с помощью которой вы сможете построить равносторонний треугольник, описанный вокруг окружности (рис. 12.13). Стороны треугольника являются касательными к окружности. Программа должна вывести приглашение, которое позволит определить радиус и координаты центра вписанной окружности.
Рис. 12.13. Равносторонний треугольник, описанный вокруг окружности
436
Глава 12
Шаг 1: запись программы AutoLISP Для написания программы на языке AutoLISP обычно используется какой-нибудь текстовый редактор. Ниже приведен листинг программы AutoLISP для примера 4: ;Эта программа позволяет построить равносторонний треугольник, ;описанный вокруг окружности с заданным радиусом. ; (defun dtr (a) (* a (/ pi 180.0) ) (defun c:trgcir (/ r c d p1 p2 p3) (setvar "cmdecho" 0) (graphscr) (setq r (getdist "\n Enter circle radius: ")) (setq c (getpoint "\n Enter center of circle: ") (setq d (/ r (sin(dtr 30)))) (setq p1 (polar c (dtr 210) d) (setq p2 (polar c (dtr 330) d) (setq p3 (polar c (dtr 90) d) (command "circle" c r) (command "line" p1 p2 p3 "c") (setvar "cmdecho" 1) (princ) )
Шаг 2: загрузка программы AutoLISP Сохраните введенный текст в виде файла с расширением .lsp, а затем загрузите созданную программу с помощью команды APPLOAD, как описано в примере 1.
Упражнение 3 Напишите программу на языке AutoLISP, с помощью которой вы сможете построить равнобедренный треугольник Р1Р2Р3. Основание треугольника (Р1Р2) образует с положительной осью Х угол В (рис. 12.14). Программа должна вывести приглашение, которое позволит вам определить начальную точку Р1, длину основания L1 и углы А и В.
Рис. 12.14. Равнобедренный треугольник, повернутый на угол В
Использование AutoLISP
437
Упражнение 4 Напишите программу, с помощью которой вы сможете нарисовать шпоночный паз с проведенными осевыми линиями. Программа должна вывести приглашение, которое позволит вам определить длину и ширину паза, а также указать имя слоя, содержащего осевые линии (рис. 12.15).
Рис. 12.15. Шпоночный паз длиной L и шириной W
Функции itoa, rtos, strcase и prompt Функция itoa Функция itoa преобразует целое число в строковое выражение и возвращает это число в виде текстовой строки. Функция itoa имеет следующий формат: (itoa число)
где • число — целое число, которое нужно преобразовать в строковое выражение. Примеры (itoa (itoa (setq (setq
Функция rtos Функция rtos преобразует вещественное число в строковое выражение и возвращает его в виде текстовой строки. Функция rtos имеет следующий формат: (rtos число)
где • число — вещественное число, которое требуется преобразовать в строковое выражение. Примеры (rtos (rtos (setq (setq
Функция rtos позволяет также устанавливать тип и степень точности единиц измерения. Если эти параметры не указываются, используются текущие настройки программы AutoCAD. В этом случае функция rtos имеет следующий формат: (rtos число [режим [точность]])
где • число — вещественное число; • режим — тип единиц измерения (десятичные, научные и т.п.); • точность — число десятичных разрядов или знаменатель дробных чисел.
Функция strcase Функция strcase преобразует символы, содержащиеся в строковом выражении, в строчные или прописные. Функция strcase имеет следующий формат: (strcase строка [true]),
где • строка — строка, символы которой требуется преобразовать в строчные или прописные; • true — параметр, определяющий регистр преобразованного строкового выражения. Параметр true не является обязательным. Если он пропущен или имеет значение nil, строковое выражение преобразуется в прописные символы. Если значение этого параметра не равно nil, преобразованная строка будет содержать только строчные символы. Примеры (strcase "Welcome Home") возвращает “WELCOME HOME” (setq t 0) (strcase "Welcome Home" t) возвращает “welcome home” (strcase "Welcome Home" a) возвращает “WELCOME HOME” (setq answer (strcase (getstring "Enter Yes or No: ")))
Функция prompt Функция prompt используется для отображения сообщений на экране в области командной строки. Содержание сообщения должно быть заключено в кавычки. Функция prompt имеет следующий формат: (prompt сообщение),
где сообщение — сообщение, которое вы хотите вывести на экран. Примеры (prompt "Enter circle diameter: ") (setq d (getdist (prompt "Enter circle diameter: "))) Примечание При использовании системы с двумя мониторами функция prompt выводит сообщение на оба экрана.
Использование AutoLISP
439
Пример 5 Напишите программу, с помощью которой вы сможете начертить две окружности радиусом r1 и r2, изображающие два колеса ременной передачи, расположенные на расстоянии d друг от друга. Линия, соединяющая центры этих окружностей, пересекается с положительной осью X под углом a, как показано на рис. 12.16.
Рис. 12.16. Две окружности, соединенные касательными
Шаг 1: разработка алгоритма программы Исходные данные • Радиус меньшей окружности — r1; • радиус большей окружности — r2; • расстояние между окружностями — d; • угол наклона центральной линии — a; • центр меньшей окружности — c1. Выходные данные • Меньшая окружность радиусом r1; • большая окружность радиусом r2; • линии, касательные к окружностям. Обработка данных 1. Определение расстояний x1 и x2. 2. Определение угла ang. 3. Определение координат точки с2 относительно точки с1. 4. Определение координат точек р1, р2, р3 и р4. 5. Построение меньшей окружности с радиусом r1 и центром с1. 6. Построение большей окружности с радиусом r2 и центром с2. 7. Построение линий, соединяющих точки р1 и р2, а также р3 и р4.
440
Глава 12
Вычисления • x1 = r2 – r1 • x2 = SQRT [d^2 – (r2 – r1)^2] • tan ang = x1 / x2 • ang = atan (x1 / x2) • ala = 90 + a + ang • alb = 270 + a – ang • a2a = 90 + a + ang • a2b = 270 + a – ang
Шаг 2: написание программы AutoLISP Для записи программы на языке AutoLISP может использоваться любой текстовый редактор. Ниже приведен листинг программы для примера 4. Номера строк в правой части листинга не являются частью программного кода, а используются только для ссылок. ;Эта программа строит касательные к окружностям шкивов ременной ;передачи, расположенным на заданном расстоянии друг от друга ; ;Эта функция преобразует градусы в радианы (defun dtr (a) (* a (/ pi 180.00)) ) ;Конец функции dtr ;Функция belt строит линии, касательные к окружностям (defun c:belt(/ r1 r2 d a c1 x1 x2 c2 p1 p2 p3 p4) (setvar "cmdecho" 0) (graphscr) (setq r1(getdist "\n Enter radius of small pulley: ")) (setq r2(getdist "\n Enter radius of larger pulley: ")) (setq d(getdist "\n Enter distance between pulleys: ")) (setq a(getangle "\n Enter angle of pulleys: ")) (setq c1(getpoint "\n Enter center of small pulley: ")) (setq x1 (- r2 r1)) (setq x2 (sqrt (- (* d d) (* (- r2 r1) (- r2 r1))))) (setq ang (atan (/ x1 x2))) (setq c2 (polar c1 a d)) (setq p1 (polar c1 (+ ang a (dtr 90)) r1)) (setq p3 (polar c1 (- (+ a (dtr 270)) ang) r1)) (setq p2 (polar c2 (+ ang a (dtr 90)) r2)) (setq p4 (polar c2 (- (+ a (dtr 270)) ang) r2)) ; ;Следующие функции строят окружности и отрезки (command "circle" c1 p3) (command "circle" c2 p2) (command "line" p1 p2 "") (command "line" p3 p4 "") (setvar "cmdecho" 1) (princ))
Вначале вычисляется разность значений r2 и r1 (выражение (- r2 r1)), после чего полученное число возводится в квадрат (выражение (* (- r2 r1) (- r2 r1)). Затем вычисляется квадратный корень от разницы квадрата гипотенузы и квадрата катета (выражение (sqrt (- (* d d) (* (- r2 r1) (- r2 r1)))). Функция setq присваивает полученное значение переменной x2.
Строка 20 (setq ang (atan (/ x1 x2)))
В этой строке функция (atan (/ x1 x2) вычисляет арктангенс числа, полученного в результате деления x1 и x2. Функция setq присваивает полученное значение переменной ang.
Строка 21 (setq c2 (polar c1 a d))
Функция polar, содержащаяся в этой строке, используется для определения относительного положения точки c2, удаленной от точки с1 на расстояние d и находящейся на линии, образующей угол а с положительной осью Х.
Строка 22 (setq p1 (polar c1 (+ ang a (dtr 90)) r1))
В этой строке функция (polar c1 (+ ang a (dtr 90)) r1)) используется для определения координат точки р1, удаленной от точки с1 на расстояние r1 и на-
442
Глава 12
ходящейся на линии, образующей с положительной осью Х угол (90 + а) (выражение (+ ang a (dtr 90))).
Строка 28 (command "circle" c1 p3)
Функция command, содержащаяся в этой строке, используется для вызова команды CIRCLE, с помощью которой вы сможете начертить окружность с центром в точке с1 и радиусом, определяемым точкой р3.
Строка 30 (command "line" p1 p2 "")
Функция command, содержащаяся в этой строке, используется для вызова команды LINE, с помощью которой вы сможете начертить линию, соединяющую точки p1 и p2. Пара кавычек ("") в конце строки возвращает каретку в исходное положение, завершая тем самым выполнение команды LINE.
Шаг 3: загрузка программы AutoLISP Сохраните текст в виде файла с расширением .lsp, а затем загрузите созданную программу, используя описание, приведенное в примере 1.
Упражнение 5 Напишите программу на языке AutoLISP, с помощью которой вы сможете провести касательные к окружностям, показанным на рис. 12.17. Программа должна вывести приглашение, которое позволит определить диаметры и расстояние между центрами окружностей.
Рис. 12.17. Касательные, проведенные к окружностям
Блок-схемы Блок-схема — графическое представление алгоритма программы, которое может быть использовано для систематизированного анализа проблем, возникающих во время работы. Блок-схема помогает понять процессы, происходящие при выполнении программы, и упрощает исправление ошибок, допущенных, например, при использовании условных операторов. Блок-схема составляется из стандартных символов, которые обозначают те или иные функции, выполняемые данной программой. Например, прямоугольник ис-
Использование AutoLISP
443
пользуется для обозначения различных процессов, происходящих во время выполнения программы. Блоки соединены линиями, которые определяют порядок выполнения операций. На рис. 12.18 показаны стандартные обозначения, которые могут использоваться в блок-схемах.
Рис. 12.18. Стандартные обозначения, используемые в блок-схемах
Условные операторы Реляционные операторы (или операторы отношения), с которыми вы познакомились в одной из предыдущих глав, определяют отношения между элементами программы. Например, выражение (< x y) описывает условие, проверяемое при выполнении операции. Для создания более сложных отношений используются условные функции.
444
Глава 12
В данном случае выражение (if (< x y) (setq z (– y x)) (setq z (–x y))) описывает операции, которые будут выполнены в том случае, если данное высказывание является истинным (T) или, наоборот, ложным (nil). Если поставленное условие выполняется, z = y – x. Если условие не выполняется, переменной z присваивается значение (x – y). Таким образом, условные функции играют важную роль во всех языках программирования, включая AutoLISP.
Функция if Если заданное условие возвращает значение “истина”, функция if (рис. 12.19) вычисляет первое выражение (then); если же это условие возвращает значение “ложь” (“nil”), функция if вычисляет второе выражение (else). Эта функция имеет следующий формат: (if условие then [else]),
где • условие — заданное условие; • then — выражение, которое вычисляется, когда заданное условие является истинным (T); • else — выражение, которое вычисляется, когда заданное условие является ложным (nil).
Рис. 12.19. Функция if
Примеры (if (= 7 7) ("true"))
возвращает “true”
(if (= 5 7) ("true") ("false"))
возвращает “false”
(setq ans "yes") (if (= ans "yes") ("Yes") ("No"))
Пример 6 Напишите программу на языке AutoLISP, с помощью которой вы сможете вычесть меньшее число из большего. Эта программа должна также вывести приглашение, которое позволит вам ввести два числа.
Шаг 1: разработка алгоритма и блок-схемы программы Исходные данные • Число (num1) • Число (num2) Выходные данные • x = num1 – num2 или • x = num2 – num1 Обработка данных • Если num1 > num2, то x = num1 – num2 (If num1 > num2 then x = num1 – num2) • Если num1 < num2, то x = num2 – num1 (If num1 < num2 then x = num2 – num1) На рис. 12.20 показана блок-схема, описывающая процесс выполнения программы. Для этого используются стандартные условные обозначения.
Рис. 12.20. Блок-схема для примера 6
Шаг 2: написание программы AutoLISP Для записи программы на языке AutoLISP может использоваться любой текстовый редактор. Ниже приведен листинг программы для примера 6. Номера строк не являются частью программного кода, а используются только для ссылок.
446
Глава 12
;Эта программа вычитает большее число ;из меньшего. ; (defun c:subnum() (setvar "cmdecho" 0) (setq num1 (getreal "\n Enter first number: ")) (setq num2 (getreal "\n Enter second number: ")) (if (> num1 num2) (setq x (- num1 num2)) (setq x (- num2 num1)) ) (princ) (setvar "cmdecho" 1) (princ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Пояснения Строка 8 (if (> num1 num2)
Функция if, содержащаяся в этой строке, оценивает заданное условие (> num1 num2). Если это условие выполняется, функция возвращает значение “T” (“истина”); если условие не выполняется, функция возвращает значение “nil” (“ложь”).
Строка 9 (setq x (- num1 num2))
Эта операция выполняется, если проверочное выражение (if (> num1 num2) возвращает значение “Т”. Число num2 вычитается из числа num1 и полученное значение присваивается переменной х.
Строка 10 (setq x (- num1 num2))
Эта операция выполняется в том случае, если проверочное выражение (if (> num1 num2) возвращает значение “nil”. Число num1 вычитается из числа num2 и полученное значение присваивается переменной х.
Строка 11 )
Закрывающая скобка завершает определение функции if.
Шаг 3: загрузка программы AutoLISP Сохраните текст в виде файла с расширением .lsp, а затем, используя команду APPLOAD, загрузите созданную программу, как описывается в примере 1.
Использование AutoLISP
447
Пример 7 Напишите программу на языке AutoLISP, с помощью которой вы сможете умножить или разделить два указанных числа (рис. 12.21). Эта программа должна вывести приглашение, которое позволит вам выбрать нужную операцию (деление или умножение). При выборе неподходящей операции на экране должно появиться соответствующее сообщение.
Шаг 1: создание блок-схемы На рис. 12.21 показан один из возможных вариантов вашей блок-схемы.
Рис.12.21. Блок-схема для примера 7
Шаг 2: написание программы AutoLISP Ниже приведен листинг программы на языке AutoLISP для примера 7. ;Эта программа делит или умножает два заданных числа. (defun c:cmdnum() (setvar "cmdecho" 0) (setq num1 (getreal "\n Enter first number: ")) (setq num2 (getreal "\n Enter second number: ")) (prompt "Do you want to multiply or divide? Enter M or D: ") (setq ans (strcase (getstring))) (if (= ans "M") (setq x (* num1 num2)) ) (if (= ans "D") (setq x (/ num1 num2)) ) (if (and (/ = ans "D")(/ = ans "M")) (prompt "Sorry! Wrong entry/ Try again") (princ x) ) (setvar "cmdecho" 1) (princ) )
448
Глава 12
Шаг 3: загрузка программы AutoLISP Сохраните текст в виде файла с расширением .lsp, а затем загрузите созданную программу, используя команду APPLOAD. О том, как это сделать, рассказывается в примере 1.
Функция progn Функция progn может использоваться вместе с функцией if для оценки сразу нескольких выражений. Функция progn имеет следующий формат: (progn выражение1 выражение2 ...)
Функция if вычисляет только одно выражение (при условии, что заданное условие возвращает значение “истина”). В отличие от этого, функция progn, используемая вместе с функцией if, позволяет вычислить сразу несколько выражений. Ниже приведен пример, иллюстрирующий совместное использование этих функций. Пример (defun c:IFPRGN() (setq p1(getint "Введите целое число")) (if (> = p1 5) (progn (command "line" "2,2" "3,3" "") (command "rec" "3,3" "6,6")) (progn (command "circle" "3,3" 1) (command "line" "3,3" "5,5" "")) ) ) ;Конец программы
Функция while Функция while (рис. 12.22) проверяет выполнение заданного условия. Если условие выполняется (возвращаемое значение не равно nil), то операция, указанная после оператора while, выполняется до тех пор, пока проверочное выражение не возвратит значение nil. Функция while имеет следующий формат: (while пров_выражение операции),
где • пров_выражение — выражение, проверяющее выполнение условия; • операции — операции, выполняемые до тех пор, пока проверочное выражение не возвратит значение nil. Пример (while (= ans "yes") (setq x (+ x 1)) (setq ans (getstring "Enter yes or no: ")) ) (while (< n 3) (setq x (+ x 10)) (setq n (1 + n)) )
Использование AutoLISP
449
Рис. 12.22. Функция while
Пример 8 Напишите программу на языке AutoLISP, с помощью которой вы сможете возвести заданное число в n-ю степень. Показатель степени n — любое целое число. Эта программа должна также вывести приглашение, которое позволит вам ввести число и показатель степени (рис. 12.23).
Рис. 12.23. Блок-схема программы для примера 8
Шаг 1: разработка алгоритма программы и создание блок-схемы Исходные данные • Число х • Показатель степени n Выходные данные • Число х в степени n (xn)
450
Глава 12
Обработка данных 1. Установите значения: t = 1 и c =1. 2. Умножьте t на x и присвойте полученный результат переменной t. 3. Повторяйте эту операцию до тех пор, пока счетчик c будет меньше или равен показателю степени n.
Шаг 2: написание программы AutoLISP Ниже представлен листинг программы AutoLISP для примера 8. ;Эта программа вычисляет n-ю ;степень заданного числа (defun c:npower() (setvar "cmdecho" 0) (setq x(getreal "\n Enter a number: ")) (setq n(getint "\n Enter Nth power-integer number: ")) (setq t 1) (setq c 1) (while (<= c n) (setq t (* t x)) (setq c (1 + c)) ) (princ t) (setvar "cmdecho" 1) (princ) )
Шаг 3: загрузка программы AutoLISP Сохраните файл, а затем загрузите созданную программу, используя для этого команду APPLOAD.
Пример 9 Напишите программу на языке AutoLISP, с помощью которой вы сможете начертить ряд крепежных отверстий, центры которых расположены на окружности заданного диаметра (рис. 12.24).
Рис. 12.24. Шесть крепежных отверстий, расположенных по окружности
Использование AutoLISP
451
Кроме этого, программа должна вывести приглашение, которое позволит вам определить координаты центра этой окружности и ее диаметр, а также указать количество и диаметр крепежных отверстий и угол наклона оси первого отверстия.
Шаг 1: написание программы AutoLISP ;Эта программа чертит крепежные отверстия, расположенные ;по окружности заданного диаметра ; (defun c:bc1() (graphscr) (setvar "cmdecho" 0) (setq cr(getpoint "\n Enter center of Bolt-Circle: ")) (setq d(getdist "\n Dia of Bolt-Circle: ")) (setq n(getint "\n Number of holes in Bolt-Circle: ")) (setq a(getangle "\n Enter start angle: ")) (setq dh(getdist "\n Enter diameter of hole: ")) (setq inc(/ (* 2 pi) n)) (setq ang 0) (setq r (/ dh 2)) (while (< ang (* 2 pi)) (setq p1 (polar cr (+ a inc) (/ d 2))) (command "circle" p1 r) (setq a (+ a inc)) (setq ang (+ ang inc)) ) (setvar "cmdecho" 1) (princ) )
Шаг 2: загрузка программы AutoLISP Сохраните файл, а затем загрузите созданную программу, используя для этого команду APPLOAD.
Функция repeat Функция repeat вычисляет выражение n-е количество раз, как определено этой функцией (рис. 12.25). Значение переменной n должно быть целым числом. Функция repeat имеет следующий формат: repeat n,
где • n — целое число, которое определяет, сколько раз должно быть выполнено указанное выражение. Пример (repeat 5 (setq x (+ x 10))
452
Глава 12
Рис. 12.25. Функция repeat
Примечание AutoCAD позволяет автоматически загружать определенные программы AutoLISP при каждом запуске AutoCAD. Например, если во время работы над проектом была загружена какая-нибудь программа AutoLISP, то эта программа автоматически загрузится при открытии другого чертежа. Чтобы воспользоваться этой возможностью, добавьте имя соответствующего файла к списку Startup Suit, который находится в диалоговом окне Load/Unload Application (ToolsLoad Application или ToolsAutoLISPLoad). Для получения более подробной информации об опциях диалогового окна Load/Unload Application обратитесь к одному из предыдущих разделов.
Пример 10 Напишите программу на языке AutoLISP, с помощью которой вы сможете начертить определенное количество концентрических окружностей. Эта программа должна также выводить приглашение, которое позволит вам определить координаты центра этих окружностей, указать начальный радиус и величину приращения радиуса (рис. 12.26).
Рис. 12.26. Блок-схема для примера 10
Использование AutoLISP
453
Ниже приведен листинг программы AutoLISP для примера 10. ;Эта программа позволяет начертить заданное количество ;концентрических окружностей, используя функцию repeat. (defun c:concir() (graphscr) (setvar "cmdecho" 0) (setq c (getpoint "\n Enter center point of circles: ")) (setq n (getint "\n Enter number of circles: ")) (setq r (getdist "\n Enter radius of first circle: ")) (setq d (getdist "\n Enter radius increment: ")) (repeat n (command "circle" c r) (setq r (+ r d)) ) (setvar "cmdecho" 1) (princ) )
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. AutoLISP является ведущим языком программирования для ________. 2. Интерпретатор языка AutoLISP обычно входит в комплект программного обеспечения программы ________. 3. Функция ________ проверяет равенство указанных элементов. 4. В языке AutoLISP имеется целый ряд ________ функций. 5. Если встроенные функции используются вместе с функцией setq, то при первой возможности эти функции будут ________. 6. При использовании функции LOAD файловое имя и опциональное путевое имя программы AutoLISP должны быть указаны в ________. 7. Для загрузки файлов LISP используется команда ________. 8. Функция strcase преобразует символы, содержащиеся в строке, в ________. 9. Функция progn может использоваться вместе с функцией ________. 10. Функция setq используется для присваивания значений ________.
2. Функция ________ создает паузу, которая дает вам возможность ввести координаты точки X и Y (или X, Y и Z). 3. Функция ________ используется для вызова стандартных команд AutoCAD во время выполнения программы AutoLISP. 4. В выражениях AutoLISP имена и опции команд AutoCAD должны указываться в кавычках. (Да/Нет) 5. Функция getdist создает паузу, которая позволяет определить ________ между двумя точками, а затем возвращает введенное значение в виде вещественного числа. 6. Функция ________ присваивает значение системной переменной AutoCAD. Имя системной переменной должно указываться в ________. 7. Функция cadr возвращает второй элемент списка, последовательно выполняя две операции: ________ и ________. 8. Функция ________ печатает на экране новую строку, т.е. выполняет ту же операцию, что и выражение \n. 9. Функция ________ создает паузу, которая позволяет пользователю определить величину угла, а затем возвращает значение угла в радианах. 10. Функция ________ всегда измеряет угол против часовой стрелки, начиная от положительной оси Х.
Использование AutoLISP
455
11. Функция ________ создает паузу, которая позволяет ввести целое число. Эта функция всегда возвращает целое число, что происходит даже тогда, когда введенное число является вещественным. 12. Функция _________ позволяет вывести значение системной переменной AutoCAD. 13. Функция ________ позволяет определить точку, расположенную под указанным углом и на заданном расстоянии от данной точки. 14. Функция ________ извлекает квадратный корень из указанного числа, а затем возвращает полученное значение в виде вещественного числа. 15. Функция ________ преобразует вещественное число в строковое выражение и возвращает его в виде текстовой строки. 16. Функция if проверяет заданное условие (> num1 num2). Если это условие выполняется, функция if возвращает значение ________; если условие не выполняется, эта функция возвращает значение ________. 17. Функция _______ может использоваться вместе с функцией if для вычисления сразу нескольких выражений. 18. Функция while проверяет выполнение заданного условия. Если условие выполняется (возвращаемое значение не равно “nil”), то операция, указанная после оператора while, ________ до тех пор, пока проверочное выражение не возвратит значение ________. 19. Функция repeat вычисляет выражение n-е количество раз, как определено этой функцией. Значение переменной n должно быть целым числом. (Да/Нет)
Упражнения Упражнение 6 (Общее) Напишите программу на языке AutoLISP, с помощью которой вы сможете начертить три концентрических окружности с центром в точке С1 и диаметрами D1, D2 и D3 (рис. 12.27). Программа должна также вывести приглашение, которое позволит вам ввести координаты точки С1 и диаметры окружностей D1, D2 и D3.
Рис. 12.27. Концентрические окружности с диаметрами D1, D2 и D3
456
Глава 12
Упражнение 7 (Общее) Напишите программу на языке AutoLISP, с помощью которой вы сможете провести линию от точки Р1 до точки Р2 (рис. 12.28). Линия Р1Р2 образует с положительной осью Х угол А. Расстояние между точками Р1 и Р2 равно L. Диаметр окружностей равен D1 (D1 = L/4).
Рис. 12.28. Окружности и линия, проведенная под углом А к положительной оси Х
Упражнение 8 (Общее) Напишите программу на языке AutoLISP, с помощью которой вы сможете начертить равнобедренный треугольник Р1Р2Р3 (рис.12.29). Эта программа должна также вывести приглашение, которое позволит вам ввести координаты вершины Р1, длину основания L1 и угол при основании А.
Рис. 12.29. Равнобедренный треугольник
Использование AutoLISP
457
Упражнение 9 (Общее) Напишите программу, с помощью которой вы сможете нарисовать шпоночный паз с проведенными осевыми линиями. Программа должна вывести приглашение, которое позволит вам определить длину и ширину паза (2R), ввести угол наклона осевой линии, а также указать имя слоя, содержащего осевые линии (рис. 12.30).
Рис. 12.30. Шпоночный паз длиной L и радиусом R
Упражнение 10 (Общее) Напишите программу, с помощью которой вы сможете начертить линию, а затем провести определенное число (N) линий, параллельных первой (рис. 12.31).
Рис. 12.31. N-е число линий, находящихся друг от друга на расстоянии S
Ответы на вопросы для самопроверки 1 — системы искусственного интеллекта, 2 — AutoCAD, 3 — /=, 4 — встроенных, 5 — переопределены, 6 — двойных кавычках, 7 — APPLOAD, 8 — прописные или строчные буквы, 9 — if, 10 — переменным.
Глава 13
Использование Visual LISP
Цель занятия Познакомившись с материалом этой главы, вы научитесь: • работать с Visual LISP в программе AutoCAD; • работать с текстовым редактором Visual LISP; • загружать и запускать программы Visual LISP; • загружать имеющиеся файлы AutoLISP; • использовать консоль Visual LISP; • изменять опции форматирования и работать с форматтером Visual LISP; • отлаживать программы Visual LISP и отслеживать значения переменных.
460
Глава 13
Visual LISP Язык программирования Visual LISP является инструментом дальнейшего расширения возможностей настройки AutoCAD. Программа AutoCAD версии 2.0 появилась в середине 1980-х годов. С тех пор пользователи начали применять язык AutoLISP для написания приложений, позволяющих создавать чертежи для различных отраслей промышленности. В их число входят разработка документации для проведения ремонтностроительных работ, проектирование машин и механизмов, разработка электрических цепей, систем кондиционирования воздуха, штампов и приспособлений для листовой штамповки и многое другое. Тем не менее, язык AutoLISP имеет определенные ограничения. Например, при написании программы с помощью текстового редактора проверить правильность использования круглых скобок, функций и системных переменных AutoCAD довольно сложно. Не менее проблематичным является и выявление ошибок, так как трудно определить, что происходит при выполнении программы и что приводит к появлению тех или иных ошибок. Многие программисты вводят в программу ряд дополнительных функций, используемых для проверки значений переменных на разных стадиях выполнения программы. Когда отладка программы завершается, эти функции удаляются или преобразуются в комментарии. Форматирование программного кода и равномерное распределение круглых скобок также относятся к числу проблем, возникающих при традиционном программировании на языке AutoLISP. Visual LISP был разработан для упрощения и повышения эффективности программирования. В этом языке имеются собственные средства форматирования и мощный текстовый редактор, который поддерживает цветовое кодирование круглых скобок, имен функций, переменных и других компонентов программы. Имеющиеся средства форматирования (форматтер) позволяют сохранить программный код в удобочитаемом формате. Кроме этого, существует средство наблюдения, с помощью которого вы сможете отслеживать значения переменных и выражений, используемых в программе. Редактор Visual LISP содержит также интерактивную консоль с развитыми логическими функциями, которая значительно упрощает программирование на этом языке. Кроме этого, он предоставляет контекстно-зависимую справку по используемым функциям AutoCAD и поддерживает возможность поиска соответствующих символьных имен. Существующие средства отладки упрощают выявление и исправление допущенных ошибок, а также проверку исходного кода. Эти и другие возможности делают Visual LISP наиболее предпочтительным средством для написания программ на языке AutoLISP. Редактор Visual LISP, поддерживаемый программой AutoCAD, состоит из нескольких собственных окон. Тем не менее, не запустив AutoCAD, вы не сможете работать с Visual LISP.
Знакомство с Visual LISP В этом разделе вы познакомитесь с некоторыми уникальными функциями Visual LISP, недоступными для пользователей AutoLISP. Вы узнаете о том, как начинать работу с Visual LISP, как писать программы с помощью текстового редактора Visual LISP, как загружать и запускать созданные программы.
2. В меню Tools выберите команду AutoLISP, а затем — команду Visual LISP Editor. Можно также начать работу с Visual LISP, введя выражение VLIDE в командную строку. На экране отобразится окно Visual LISP, показанное на рис. 13.1. При каждой загрузке Visual LISP на экране на какое-то время появляется окно Trace, содержащее информацию о текущей версии Visual LISP и ошибках, которые могут встретиться при загрузке редактора Visual LISP. Окно Visual LISP, как видно из рис. 13.1, содержит четыре области: строку меню, консоль управления, окно отслеживания и строку состояния. Ниже приведено краткое описание этих областей. Меню
Панели инструментов
Консоль управления
Окно наблюдения Строка состояния Рис. 13.1. Окно редактора Visual LISP
Меню. Строка меню находится в верхней части окна Visual LISP и содержит ряд различных элементов. При выборе того или иного меню на экране отображается ряд элементов, содержащихся в этом меню. Функция выбранного вами элемента отображается в строке состояния, которая находится в нижней части окна Visual LISP. Панели инструментов. Панели инструментов представляют собой быстрый и довольно удобный способ вызова команд Visual LISP. В этом языке используется пять панелей инструментов: Debug, Edit, Find, Inspect и Run. При выборе другого окна внешний вид инструментальных панелей изменяется. Если установить указатель мыши на пиктограмму какого-нибудь инструмента, то через несколько секунд появится всплывающая подсказка, описывающая функции этого инструмента. При этом в строке состояния отображается подробное описание выбранного инструментального средства. Консоль управления. Консоль управления Visual LISP Console находится в окне редактора Visual LISP. Окно консоли содержит полосы прокрутки, которые позволяют просматривать его содержимое. Консоль управления, которая может быть расположена в любом месте окна Visual LISP, позволяет также вводить команды AutoLISP и Visual LISP и выполнять различные операции. Например, для того чтобы сложить два какихнибудь числа, введите после знака доллара ($) соответствующую команду (+ 2 9.5), а затем нажмите клавишу <Enter>. Visual LISP возвратит результат и отобразит его в том же окне.
462
Глава 13
Строка состояния. Когда вы выбираете какой-нибудь элемент меню или инструмент на панели инструментов, относящаяся к нему информация отображается в строке состояния, которая находится в нижней части окна Visual LISP.
Использование текстового редактора Visual LISP 1. Выберите команду New File из меню File. На экране появится окно текстового редактора, показанное на рис. 13.2. По умолчанию этому файлу присваивается имя Untitled-0, которое отображается в строке заголовка. 2. Чтобы активизировать программу редактирования, щелкните мышью в окне текстового редактора Visual LISP. 3. Наберите текст следующей программы и посмотрите, чем отличается текстовый редактор Visual LISP от тех редакторов, которые использовались для написания программ AutoLISP (таких как Notepad): ;;;Эта программа позволяет начертить треугольник (defun tr1 () (setq p1(list 2 2)) (setq p2(list 6.0 3.0)) (setq p3(list 4.0 7.0)) (command "line" p1 p2 p3 "c") )
4. Откройте диалоговое окно Save As, выбрав в меню File команду Save или Save As. Сохраните созданный файл, присвоив ему имя triang1.lsp. Файловое имя отобразится в строке заголовка окна текстового редактора (рис. 13.3).
Рис. 13.2. Окно текстового редактора Visual LISP
Использование Visual LISP
463
Рис. 13.3. Запись программного кода в окне текстового редактора Visual LISP
Загрузка и запуск программы 1. Активизируйте окно текстового редактора Visual LISP, щелкнув на нем мышью. 2. Выберите в меню Tools команду Load Text in Editor. Можно также загрузить созданную программу, щелкнув на пиктограмме Load active edit window, которая находится на панели инструментов Tools. В окне Visual LISP Console появится сообщение об успешной загрузке данной программы. При возникновении каких-либо проблем в окне консоли появится сообщение об ошибке. 3. Чтобы запустить программу, введите имя функции (tr1) в строку приглашения (после знака _$). Не забывайте, что имя функции следует указывать в круглых скобках. Эта программа начертит треугольник, имеющий заданные размеры. Чтобы увидеть результаты выполнения программы, перейдите в окно AutoCAD, щелкнув на пиктограмме Activate AutoCAD, которая находится на панели инструментов View. Эту программу можно также запустить из программы AutoCAD. Для этого необходимо перейти в AutoCAD и ввести имя функции TR1 в командную строку. AutoCAD запустит эту программу и построит на экране треугольник, показанный на рис.13.4.
464
Глава 13
Рис. 13.4. Результат выполнения программы
Упражнение 1 (Общее) Напишите программу на языке AutoLISP, с помощью которой вы сможете построить равносторонний треугольник. Эта программа должна вывести приглашение, которое позволит вам указать начальную точку (левый нижний угол) и длину одной из сторон треугольника (рис. 13.5).
Рис. 13.5. Равносторонний треугольник, построенный в упражнении 1
Использование Visual LISP
465
Загрузка существующих файлов AutoLISP Visual LISP позволяет также загружать файлы AutoLISP, редактировать и отлаживать их, а затем загружать и запускать созданные программы. 1. Запустите программу AutoCAD, а затем откройте окно редактора Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor. Чтобы запустить программу редактирования, можно также ввести команду VLIDE в командную строку. 2. Открыв текстовый редактор Visual LISP, выберите команду Open File в меню File. На экране появится диалоговое окно Open file to edit/view. 3. Выберите программу AutoLISP, которую вы хотите загрузить, и щелкните на кнопке Open (Открыть). Выбранная вами программа будет загружена в текстовый редактор Visual LISP. 4. Чтобы отформатировать программу в окне редактора, щелкните на кнопке Format edit window на панели инструментов Tools. 5. Чтобы загрузить выбранную программу, щелкните на кнопке Load active edit window на панели инструментов Tools или выберите команду Load Text in Editor из меню Tools. 6. Для того чтобы запустить программу, введите имя функции в строку приглашения (_$), которая находится в окне Visual LISP Console, а затем нажмите клавишу <Enter>. Выражение nil, появившееся в строке приглашения, говорит об успешном выполнении программы и выводе чертежа на графический экран.
Консоль Visual LISP Разработка программного обеспечения на языке Visual LISP в основном выполняется в текстовом редакторе Visual LISP. Тем не менее, можно ввести программный код в окно консоли Visual LISP и сразу же получить требуемый результат. Например, если вы введете выражение (sqrt 37.2) в строку приглашения (после знака _$) и нажмете клавишу <Enter>, Visual LISP извлечет квадратный корень и возвратит значение 6,09918. Точно так же, введите выражения (setq x 99.3), (+ 38 23.44), (- 23.786 35), (abs -37.5) и (sin 0.333) и посмотрите на полученные результаты. Как показано на рис. 13.6, каждое выражение следует вводить после знака доллара ($).
Основные свойства консоли Visual LISP 1. Консоль Visual LISP позволяет ввести несколько выражений в одной строке и вычислить их, нажав клавишу <Enter>. Visual LISP выполнит указанные операции и возвратит полученные значения. Не забывайте, что перед каждым выражением необходимо ставить знак доллара ($). _$ (setq x 37.5) (setq y (/ x 2))
Когда вы нажмете клавишу <Enter>, в окне консоли Visual LISP появятся значения переменных X и Y (рис. 13.7). 2. Если необходимо определить, какое значение в создаваемой программе имеет та или другая переменная, введите имя переменной, поставив перед ним знак доллара ($). Например, чтобы вывести значение переменной X, введите X в строку приглашения (после _$).
466
Глава 13
Рис. 13.6. Ввод программного кода LISP в окно консоли Visual LISP
3. Visual LISP позволяет записать выражение AutoLISP на нескольких строках, но для этого вам придется в конце каждой строки нажимать клавиши . Например, если вы хотите записать два выражения на двух строках, вначале введите первое выражение, а затем нажмите клавиши . Обратите внимание на отсутствие знака $ в начале второй строки, что указывает на продолжение выражения, записанного в предыдущей строке. Теперь введите второе выражение и нажмите клавишу <Enter>, как показано на рис. 13.7. $ (setq n 38) Нажмите клавиши (setq counter (-n 1))
4. Чтобы восстановить текст ранее введенного выражения, щелкните мышью в строке приглашения (_$) и нажмите клавишу . При каждом нажатии клавиши в окне консоли будет отображаться ранее введенный текст. Нажав эту клавишу несколько раз, вы сможете просмотреть текст всех выражений, введенных в консоль Visual LISP. Если одно и то же выражение было введено несколько раз, то при нажатии клавиши его содержимое отобразится на экране только один раз, а затем вы перейдете к предыдущему выражению. Для просмотра текста в обратном направлении нажимайте клавиши <Shift+Tab>. 5. Чтобы удалить текст, содержащийся в строке приглашения (т.е. после знака _$), нажмите клавишу <Esc>. Тем не менее, при нажатии клавиш <Shift+Esc> выражение, содержащееся в строке приглашения, не вычисляется, и остается в том же состоянии. При этом курсор перемещается в следующую строку. Например, если вы введете выражение (setq x 15), а затем нажмете клавишу <Esc>, то это приведет к удалению введенного выражения. Несмотря на это, при нажатии клавиш <Shift+Esc> выражение (setq x 15) не вычисляется, а курсор переходит в следующую строку без удаления ранее введенного текста.
Использование Visual LISP
467
Рис. 13.7. Ввод кода AutoLISP в окно консоли Visual LISP
6. Клавиша <Enter> позволяет также проводить ассоциативный поиск выражений, начинающихся с определенной текстовой строки. Например, если вы хотите найти выражение, которое начинается со строки “(sin”, введите это выражение в строку приглашения (после _$), а затем нажмите клавишу <Enter>. Редактор Visual LISP просмотрит текст, содержащийся в окне Console, и возвратит выражение, отвечающее этому условию. Если соответствующее выражение не было найдено, вы услышите звуковой сигнал. 7. Если щелкнуть правой кнопкой мыши в окне консоли или нажать клавиши <Shift+F10>, рядом с меткой курсора появится контекстное меню, показанное на рис. 13.8. Контекстное меню содержит следующие команды: Cut, Copy, Paste, Clear Console Window, Find, Inspect, Add Watch, Apropos Window, Symbol Service, Undo, Redo, AutoCAD Mode и Toggle Console Log. 8. Одной из наиболее важных особенностей Visual LISP является контекстно-зависимая справка, содержащая описание функций Visual LISP. Для того чтобы получить справочную информацию по той или другой функции, введите или выделите ее имя, а затем щелкните на кнопке Help на панели инструментов Tools. Visual LISP откроет страницу справочной системы, относящуюся к выбранной функции (рис. 13.9).
Рис. 13.8. Контекстное меню открывается по щелчку правой кнопкой мыши
468
Глава 13
Рис. 13.9. Окно контекстно-зависимой справочной системы
9. Visual LISP позволяет также записывать события, выполняемые в окне консоли Visual LISP Console, сохраняя журналы регистрации событий на дискете в виде файлов с расширением (.log). Чтобы создать журнал регистрации, выберите команду Toggle Console Log из меню File или опцию Toggle Console Log из контекстного меню. При создании журнала окно Visual LISP Console должно быть активным. 10. При вводе текста в окно консоли, Visual LISP автоматически назначает элементам программы тот или иной цвет, который определяется характером текстовой строки. Например, выражение, представляющее собой имя встроенной функции или защищенный символ, выделяется синим цветом. Текстовые строки выделяются фиолетовым цветом, круглые скобки — красным, целые числа — зеленым, а вещественные числа — сине-зеленым цветом. Строки комментариев тоже выделяются фиолетовым цветом, но располагаются на сером фоне. 11. Несмотря на то, что AutoLISP и Visual LISP являются независимыми средами программирования, можно перенести любой текст, введенный в окно консоли Visual LISP, в командную строку AutoCAD. Для этого введите программный код в строку приглашения консоли, а затем выберите команду AutoCAD Mode из контекстного меню или меню Tools. Чтобы отобразить текст, введенный в строку приглашения, нажмите клавишу . Затем перейдите в окно программы AutoCAD, нажав клавишу <Enter>. Введенный текст появится в командной строке AutoCAD.
Текстовый редактор Visual LISP Текстовый редактор Visual LISP можно также использовать для ввода программного кода. Этот редактор содержит ряд функций, которых нет в других текстовых редакторах. Например, когда вы вводите текст в окно консоли, Visual LISP выделяет элементы строки определенным цветом, который соответствует характеру текстовой строки. Круглые скобки выделяются красным цветом, а имена функций Visual LISP — синим. Кроме этого, текстовый редактор Visual LISP позволяет выполнять функции AutoLISP, не закрывая окно редактора, а также следить за соотношением открывающих и закрывающих скобок. Эти возможности делают текстовый редактор идеальным инструментом для написания программ Visual LISP.
Цветовое кодирование Текстовый редактор Visual LISP поддерживает цветовое кодирование файлов, распознаваемых Visual LISP. К их числу принадлежат исходные файлы языков С, LISP, DCL и SQL. При вводе текста в окно текстового редактора Visual LISP автоматически определяет требуемый цвет и назначает его элементам введенного выражения (рис. 13.10). В следующей таблице приведена цветовая схема, заданная по умолчанию: Текстовые элементы Visual LISP
Цвет
Круглые скобки
Красный
Встроенные функции
Синий
Защищенные символы
Синий
Комментарии
Фиолетовый на сером фоне
Строки
Фиолетовый
Вещественные числа
Сине-зеленый
Целые числа
Зеленый
Нераспознанные элементы
Черные (как переменные)
Слова в текстовом редакторе Visual LISP Как правило, во всех текстовых редакторах слова разделяются пробелами. Однако в текстовом редакторе Visual LISP слово имеет совсем другое значение. В этом случае слова представляют собой наборы символов, отделенных друг от друга следующими специальными символами:
Например, когда вы вводите текст (Command"Line"P1P2 P3"c"), Visual LISP рассматривает выражения Command и Line как отдельные слова, так как они разделены двойными кавычками. В обычном текстовом редакторе выражение (Command"Line" будет интерпретировано как одно слово. Точно так же, в строке (setq p1 выражения setq и p1 разделены пробелом и поэтому считаются отдельными словами. При отсутствии пробела Visual LISP будет рассматривать выражение (setqp1 как одно слово.
Контекстно-зависимая справка Одной из наиболее важных особенностей Visual LISP является контекстно-зависимая справка, содержащая описание функций Visual LISP. Для получения справочной информации по той или другой функции введите или выделите ее имя, а затем щелкните на кнопке Help на панели инструментов Tools. Visual LISP откроет страницу справочной системы, относящуюся к выбранной функции.
Использование Visual LISP
471
Контекстное меню Если щелкнуть правой кнопкой мыши в окне текстового редактора или нажать клавиши <Shift+F10>, рядом с курсором появится контекстное меню, показанное на рис. 13.11.
Рис. 13.11. Контекстное меню, открывающееся по щелчку правой кнопкой мыши
Контекстное меню содержит следующие команды: Cut, Copy, Paste, Clear Console Window, Find, Inspect, Add Watch, Apropos Window, Symbol Service, Undo, Redo, AutoCAD Mode и Toggle Console Log. Краткое описание функций контекстного меню приведено в следующей таблице. Функция контекстного меню
Описание функции
Cut
Перемещает выделенный текст в буфер обмена
Copy
Копирует выделенный текст в буфер обмена
Paste
Вставляет содержимое буфера обмена в точку расположения курсора
Find
Выполняет поиск выделенного текста
Go to Last Edited
Перемещает курсор к месту последнего редактирования
Toggle Breakpoint
Вводит или удаляет точку останова в месте расположения курсора
Inspect
Открывает диалоговое окно Inspect
Add Watch
Открывает диалоговое окно Add Watch
Apropos Window
Открывает диалоговое окно Apropos Window
Symbol Service
Открывает диалоговое окно Symbol Service
Undo
Отменяет последнюю выполненную операцию
Redo
Отменяет выполнение команды Undo
Средства форматирования Visual LISP Для форматирования текста, введенного в окно текстового редактора, используется функция Visual LISP Formatter. При форматировании текста форматтер автоматически компонует выражения AutoLISP таким образом, чтобы упростить чтение и понимание программного кода. Благодаря этому также упрощается процесс отладки программы, когда эта программа не выполняет намеченных функций.
472
Глава 13
Запуск форматтера С помощью форматтера можно отформатировать весь текст, введенный в окно редактора, или ограничиться только выделенными фрагментами текста. Во время форматирования окно текстового редактора должно быть активным. Если это условие не выполняется, активизируйте окно редактора, щелкнув мышью в области окна. Чтобы отформатировать весь текст, щелкните на кнопке Format edit window, которая находится на панели инструментов Tools, или выберите команду Format code in Editor из меню Tools. Чтобы отформатировать фрагмент текста, выделите его и щелкните на кнопке Format selection на панели инструментов Tools или выберите команду Format code in Selection из меню Tools. Меню Tools и панель инструментов Tools показаны на рис. 13.12.
Рис. 13.12. Использование опций Format selection и Format edit window
Форматирование комментариев В Visual LISP могут использоваться комментарии пяти разных типов, которые определяют параметры форматирования и местоположение текста комментариев в теле программного кода. Ниже приведено описание типов комментариев, существующих в Visual LISP. Формат комментариев ; Single-Semicolon ;; Current-Column ;;; Heading или 0-Column ;| Inline |; ;_ Function-Closing
Описание Текст комментария располагается с отступом, величина которого определяется опцией форматирования SingleSemicolon comment indentation Строка комментария структурируется точно так же, как и предыдущая строка программного кода Строка комментария располагается без отступа Строка комментария структурируется точно так же, как и любое другое выражение Строка комментария структурируется точно так же, как и предыдущая функция, что обеспечивается опцией форматирования Insert form-closing comment
Использование Visual LISP
473
На рис. 13.13 показаны два окна текстового редактора. В верхнем окне содержится неформатированный текст. Текст программы, содержащийся в нижнем окне редактора, отформатирован. Если вы посмотрите на эти окна, то заметите, как отличаются форматированный и неформатированный текст по своему внешнему виду.
Рис. 13.13. В верхнем окне показан неформатированный текст, а в нижнем окне отображен тот же текст после форматирования программного кода
Изменение опций форматирования Для того чтобы изменить параметры форматирования, воспользуйтесь опциями диалогового окна Format options, показанного на рис. 13.14. Чтобы открыть это диалоговое окно, выберите команду ToolsEnvironment OptionsVisual LISP Format Options. Для получения доступа к другим опциям форматирования необходимо развернуть окно, щелкнув на кнопке More options (рис. 13.15).
Отладка программы Редко бывает так, что написанная программа сразу начинает работать. А если и работает, то далеко не всегда выполняет все необходимые операции. Причиной этого могут быть допущенная синтаксическая или орфографическая ошибка, пропущенные круглые скобки или неправильно используемые функции. Выявление ошибок отнимает немало времени и является довольно сложной задачей. Visual LISP содержит несколько инструментальных средств, упрощающих процесс поиска ошибок и отладку написанных программ. Проверьте, выведена ли на экран панель инструментов Debug. Если эта панель отсутствует, откройте диалоговое окно Toolbars, выбрав команду Toolbars из меню View, а затем установите флажок опции Debug. После этого щелкните на кнопке Apply и закройте диалоговое окно, щелкнув на кнопке Close. Панель инструментов Debug появится на экране. На рис. 13.16 показана эта панель со всплывающими подсказками к имеющимся инструментам.
474
Глава 13
Рис. 13.14. Диалоговое окно Format Options
Рис. 13.15. Диалоговое окно Format Options, содержащее дополнительные опции форматирования
На уровень вниз На уровень вверх Пропустить Продолжить Выход
Индикатор отладки Последний разрыв Контрольная точка Точка разрыва Восстановить
Рис. 13.16. Средства отладки на панели инструментов Debug
Использование Visual LISP
475
1. Чтобы получше познакомиться со средствами отладки, введите следующую программу в окно текстового редактора Visual LISP, а затем сохраните ее в виде файла triang2.lsp. ;;;С помощью этой программы можно начертить треугольник и дугу (defun tr2 () (setq p1 (getpoint "\n Enter first point p1: ")) (setq p2 (getpoint "\n Enter second point p2: ")) (setq p3 (getpoint "\n Enter third point p3: ")) (command "arc" p1 p2 p3) (command "line" p1 p2 p3 "c") )
2. Чтобы отформатировать введенный код, щелкните на кнопке Format edit window на панели инструментов Tools или выберите команду Format code in Editor из меню Tools. 3. Загрузите программу, щелкнув на кнопке Load active edit window на панели инструментов Tools. Можно также загрузить программу, выбрав команду Load Text in Editor из меню Tools. 4. Перейдите в текстовый редактор Visual LISP и установите курсор в конце следующей строки, а затем щелкните на кнопке Toggle breakpoint, которая находится на панели инструментов Debug. Эту команду можно также выбрать из меню Debug. Visual LISP введет контрольную точку в место расположения курсора. (setq p2 (getpoint "\n Enter second point p2: "))|
5. Перейдите в окно консоли Visual LISP Console и введите имя функции в строку приглашения. После этого запустите программу, нажав клавишу <Enter>. _$ (tr2)
На экране появится окно программы AutoCAD. При этом в командной строке отобразятся два первых приглашения на ввод соответствующих данных (Enter first point p1: Enter second point p2:). Когда вы определите указанные точки, на экране появится окно Visual LISP. Обратите внимание, что строка, в конце которой находится контрольная точка, выделена синим цветом, как показано на рис. 13.17.
Рис. 13.17. Чтобы начать выполнение программы, щелкните на кнопке Step into
6. Щелкните на кнопке Step into, которая находится на панели инструментов Debug, или выберите команду Step into из меню Debug. Можно также вызвать команду Step into, нажав клавишу . Программа будет выполнена до следующего вы-
476
Глава 13
ражения, содержащегося в круглых скобках. Это выражение (рис. 13.18) выделено синим цветом. Обратите внимание на положение курсора. Он находится прямо перед выражением (setq p3 (getpoint "\n Enter third point p3: ")).
Рис. 13.18. Если щелкнуть на кнопке Step into еще раз, курсор “перепрыгнет” к началу следующего выражения
7. Щелкните на кнопке Step into еще раз. Курсор переместится в правую сторону и выделит выражение (setq p3 (getpoint "\n Enter third point p3: ")), как показано на рис. 13.19. 8. Щелкните на кнопке Step into еще раз. На экране появится окно программы AutoCAD, в командной строке которой отобразится третье приглашение (Enter third point p3:). Укажите третью точку и на экране снова появится окно Visual LISP. Обратите внимание на положение курсора. Теперь он находится после выражения (getpoint "\n Enter third point p3: ")).
Рис. 13.19. Если щелкнуть на кнопке Step into еще раз, в правой части пиктограммы Step Indicator появится вертикальная черта
9. Чтобы продолжить выполнение программы, щелкните на кнопке Step into еще раз. При этом будет выделена полностью вся строка, а курсор переместится в конец выражения (getpoint "\n Enter third point p3: ")). 10. Щелкните на кнопке Step into еще раз. Будет выделена следующая строка программы, а курсор переместится в начало выражения. 11. Чтобы пропустить выделенное выражение, щелкните на кнопке Step over, которая находится на панели инструментов Debug, или выберите команду Step over из меню Debug. Для вызова этой команды можно также воспользоваться клавишами <Shift+F8>. 12. Щелкайте на кнопке Step over до тех пор, пока не пропустите все выражения и не выделите всю программу. При этом вы заметите, что данная программа будет выполняться в окне AutoCAD.
Использование Visual LISP
477
Общие рекомендации по написанию программ AutoLISP 1. 2. 3. 4.
Встроенные функции и аргументы следует отделять пробелами. Аргументы функций должны быть разделены пробелами. Каждая функция должна начинаться с открывающей круглой скобки. Каждая функция должна заканчиваться закрывающей круглой скобкой.
Пример 1 Напишите программу на языке LISP, с помощью которой вы сможете нарисовать I-образную фигуру (сечение двутавровой балки), показанную на рис. 13.20. Начальной точкой является Р1. Координаты точки Р1, высота балки, ширина и толщина полок, а также толщина стенки определяются пользователем и должны вводиться с помощью командной строки.
Шаг 1: разработка алгоритма программы Перед написанием программы необходимо выяснить, какие величины известны, что требуется получить и как достичь желаемого результата, имея данную информацию. Проанализируйте программу, используя следующий образец. Исходные данные • P1 — начальная точка; • L — высота балки; • W — ширина полки; • T1 — толщина полки; • T2 — толщина стенки. Выходные данные • Чертеж двутавровой балки (I-образной фигуры), показанный на рис. 13.20.
Рис. 13.20. Размеры сечения двутавровой балки для примера 1
478
Глава 13
Обработка данных • Определите координаты вершин данной фигуры: р1, р2, р3, р4, р5, р6, р7, р8, р9, р10, р11 и р12.
Шаг 2: написание программы Visual LISP Откройте окно редактора Visual LISP. Для этого выберите команду ToolsAutoLISP Visual LISP Editor или введите выражение VLIDE в командную строку. Затем откройте окно текстового редактора, выбрав команду New File из меню File. Введите в окно редактора следующий текст: (defun isec () (setq p1 (getpoint "\n Enter the starting point of the I-section: ") l (getdist "\n Enter the length of the I-section: ") w (getdist "\n Enter the width of the I-section: ") t1 (getdist "\n Enter the thickness of the flange: ") t2 (getdist "\n Enter the thickness of the web: ") p2 (list (+ (car p1) w) (cadr p1)) p3 (list (car p2) (+ (cadr p2) t1)) p4 (list (- (car p3) (/ (- w t2) 2)) (cadr p3)) p5 (list (car p4) (+ (cadr p4) (-l (* 2 t1)))) p6 (list (car p3) (cadr p5)) p7 (list (car p6) (+ (cadr p6) t1)) p8 (list (car p1) (+ (cadr p1) l)) p9 (list (car p8) (- (cadr p8) t1)) p10 (list (- (car p5) t2) (cadr p5)) p11 (list (- (car p4) t2) (cadr p4)) p12 (list (car p1) (cadr p11)) ) (command "PLINE" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p1 "") )
Шаг 3: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем isec.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP Console появится сообщение об успешной загрузке данной программы. Если окно Visual LISP Console отсутствует, выведите его на экран, выбрав команду Tile Horizontally из меню Window. Если в программе будут обнаружены какие-либо ошибки, на экране появится соответствующее сообщение. Теперь можете заняться пошаговой отладкой программы, выполняя процедуры, описанные в разделе “Отладка программы”. Чтобы привести в соответствие количество открывающих и закрывающих скобок, щелкните на кнопке Format Edit Window, которая находится на панели инструментов Tools. Характер и причины возможных ошибок описываются в разделе “Коды ошибок и сообщения об ошибках”, который находится в конце этой главы. Чтобы запустить программу, введите имя функции (isec) в строку приглашения консоли после знака _$. Не забывайте, что имя функции необходимо указывать в круглых скобках. Когда вы введете имя функции и нажмете клавишу <Enter>, в командной строке программы AutoCAD появится приглашение на ввод данных, определяющих геометрические параметры двутавровой балки. После того как вы введете все необходимые данные, на экране отобразится I-образная фигура, построенная по вашим размерам.
Использование Visual LISP
479
Совет 1. Для написания программы можно воспользоваться любым текстовым редактором, например таким как Notepad. Чтобы загрузить программу, введите команду APPLOAD в командную строку, как описывается в главе, посвященной языку AutoLISP. 2. Чтобы построить эту фигуру, можно начертить половину двутавровой балки, а затем выполнить ее зеркальное отображение, используя для этого команду MIRROR. Более того, можно даже начертить четвертую часть фигуры, а затем дважды применить команду MIRROR, полностью воссоздав контур двутавровой балки.
Шаг 4: использование функции POLAR в программе Visual LISP Чтобы построить контур двутавровой балки, вы должны определить координаты всех его вершин, а затем начертить линии, проходящие через эти вершины. Для решения этой задачи можно использовать функцию POLAR. В этой программе d1 — расстояние между точками Р2 и Р3, d2 — расстояние между точками Р3 и Р4, а d3 — расстояние между точками Р4 и Р5. Учтите, что функция dtr используется для преобразования градусов в радианы. Ниже приведен листинг программы, в которой используется функция POLAR. (defun dtr (a) (* a (/ pi 180.0)) ) (defun isec () (setq p1 (getpoint "\n Enter the starting point of the I-section: ") l (getdist "\n Enter the length of the I-section: ") w (getdist "\n Enter the width of the I-section: ") t1 (getdist "\n Enter the thickness of the flange: ") t2 (getdist "\n Enter the thickness of the web: ") ) (setq d1 t1 d2 (- (/ w 2.0) (/ t2 2.0)) d3 (- l (* 2.0 t1)) ) (setq p2 (polar p1 (dtr 0) w) p3 (polar p2 (dtr 90) d1) p4 (polar p3 (dtr 180) d2) p5 (polar p4 (dtr 90) d3) p6 (polar p5 (dtr 0) d2) p7 (polar p6 (dtr 90) d1) p8 (polar p7 (dtr 180) w) p9 (polar p8 (dtr 270) d1) p10 (polar p9 (dtr 0) d2) p11 (polar p10 (dtr 270) d3) p12 (polar p11 (dtr 180) d2) ) (command "PLINE" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 "") )
480
Глава 13
Пример 2 Напишите программу на языке Visual LISP, с помощью которой вы сможете построить трехмерную модель двутавровой балки (рис. 13.21) путем “выдавливания” двумерного компонента (в качестве которого используется поперечное сечение объекта, описанное в примере 1). При выполнении этой программы необходимо определить несколько дополнительных параметров: направление взгляда (vpoint или v), высота (h) и угол (a) выдавливания.
Рис. 13.21. Трехмерная модель двутавровой балки, описанной в примере 1
Шаг 1: разработка алгоритма программы Кроме исходных данных, используемых в примере 1, необходимо определить несколько дополнительных параметров, таких как проекция (Vpoint), высота выдавливания (Extrusion Height) и угол выдавливания (Angle of Extrusion). Также необходимо ввести команды, позволяющие выбрать соответствующую проекцию, выполнить выдавливание компонента и масштабирование изображения. Проекция (направление взгляда), высота и угол выдавливания определяются значением переменных v, h и a. Величина угла определяется с помощью функции getreal, которая позволит программе принимать углы, выраженные в десятичных градусах. Функция getangle для этого не подходит, так как она возвращает величину угла в радианах. Угол выдавливания, требуемый для выполнения команды EXTRUDE, должен задаваться в градусах.
Шаг 2: написание программы Visual LISP Чтобы открыть окно Visual LISP, выберите команду Tools AutoLISP Visual LISP Editor или введите выражение VLIDE в командную строку. Затем откройте окно тестового редактора, выбрав команду New File из меню File. Теперь напишите программу, листинг которой приведен в следующем абзаце, или введите файл LISP из примера 1 и добавьте в него несколько дополнительных строк (новые строки выделены жирным шрифтом). (defun dtr (a) (* a (/ pi 180.0))) (defun isec3d () (setq p1 (getpoint "\n Enter the starting point of the I-section: ") l (getdist "\n Enter the length of the I-section: ")
Использование Visual LISP
481
w (getdist "\n Enter the width of the I-section: ") t1 (getdist "\n Enter the thickness of the flange: ") t2 (getdist "\n Enter the thickness of the web: ") h (getdist "\n Enter Extrusion Height: ") v (getpoint "\n Enter the Viewpoint: ") a (getreal "\n Enter Angle of Extrusion: ") ) (setq d1 t1 d2 (- (/ w 2.0) (/ t2 2.0)) d3 (- l (* 2.0 t1)) ) (setq p2 (polar p1 (dtr 0) w) p3 (polar p2 (dtr 90) d1) p4 (polar p3 (dtr 180) d2) p5 (polar p4 (dtr 90) d3) p6 (polar p5 (dtr 0) d2) p7 (polar p6 (dtr 90) d1) p8 (polar p7 (dtr 180) w) p9 (polar p8 (dtr 270) d1) p10 (polar p9 (dtr 0) d2) p11 (polar p10 (dtr 270) d3) p12 (polar p11 (dtr 180) d2) ) (command "PLINE" p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 "") (command "VPOINT" v) (commnad "EXTRUDE" "All" "" h a) (command "ZOOM" "All") (commnad "HIDE") )
Шаг 3: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем isec3d.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. При этом в окне консоли Visual LISP Console появится сообщение об успешно выполненной загрузке. Чтобы запустить программу, введите имя функции (isec3d) в строку приглашения консоли после знака _$. Не забывайте, что имя функции должно быть указано в круглых скобках. Когда вы введете имя функции и нажмете клавишу <Enter>, в командной строке программы AutoCAD отобразится приглашение на ввод данных, определяющих положение начальной точки, высоту балки, ширину и толщину полок, ширину стенки, проекцию, высоту и угол выдавливания. После того как вы введете все необходимые данные, в окне программы AutoCAD появится трехмерная модель двутавровой балки, построенная по вашим размерам. Совет Для пошаговой отладки программы можно использовать функцию Toggle breakpoint, пиктограмма которой находится на панели инструментов Debug. О том, как это сделать, рассказывается в разделе “Отладка программы”.
482
Глава 13
Пример 3 Напишите программу на языке Visual LISP, с помощью которой вы сможете построить C-образную фигуру, показанную на рис. 13.22. Эта программа должна также вывести приглашение, позволяющее определить координаты начальной точки, высоту, ширину и толщину различных элементов этой фигуры.
Шаг 1: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте окно текстового редактора, выбрав команду New File из меню File. Для написания программы на языке LISP можно воспользоваться любым текстовым редактором, например, таким как Notepad. Ниже приведен листинг программы, позволяющей вычертить C-образную фигуру.
Рис. 13.22. C-образная фигура
;;Эта программа позволяет начертить C-образную фигуру (defun csec () (setq p1 (getpoint "\n Enter the point: ")) (setq L (getdist "\n Enter the length: ")) (setq W (getdist "\n Enter the width: ")) (setq t1 (getdist "\n Enter the thickness of flange: ")) (setq t2 (getdist "\n Enter the thickness of web: ")) (setq p2 (list (+ (car p1) w) (cadr p1))) (setq p3 (list (car p2) (+ (cadr p2) t1))) (setq p4 (list (- (car p3) (- w t2) (cadr p3))) (setq p5 (list (car p4) (+ (cadr p4) (- L (* 2 t1))))) (setq p6 (list (+ (car p5) (- w t2)) (cadr p5))) (setq p7 (list (+ (car p5) (+ (cadr p6) t1))) (setq p8 (list (car p1) (cadr p7))) (command "PLINE" p1 p2 p3 p4 p5 p6 p7 p8 "c") )
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем csec.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP Console появится сообщение об успешно выполненной загрузке. Чтобы запустить программу, введите имя функции (csec) в строку приглашения консоли после знака _$. Не забывайте, что имя функции должно указываться в круглых скобках.
Упражнение 3 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете начертить Т-образную фигуру, показанную на рис. 13.23. Эта программа должна также вывести приглашение, позволяющее определить начальную точку, длину (L), ширину (W) и толщину полки и стенки (t1 и t2) этой фигуры.
Использование Visual LISP
483
Рис. 13.23. Т-образная фигура для упражнения 3
Упражнение 4 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете построить трехмерную модель T-образной фигуры, имеющей те же геометрические параметры, что и в упражнении 3. При выполнении этой программы необходимо определить несколько дополнительных параметров, таких как направление взгляда (vpoint), высота и угол выдавливания.
Упражнение 5 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете построить L-образную фигуру, показанную на рис. 13.24. Данная программа должна также вывести приглашение, позволяющее пользователю определить начальную точку, длину, ширину и толщину элементов этой фигуры.
Рис. 13.24. L-образная фигура для упражнения 5
484
Глава 13
Пример 4 Напишите программу на языке Visual LISP, с помощью которой вы сможете начертить развертку сопряжения, а затем проставить все необходимые размеры. Сопряжение и его развертка без размеров показаны на рис. 13.25.
Рис. 13.25. Развертка сопряжения
Шаг 2: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте окно текстового редактора, выбрав команду New File из меню File. Для написания программы на языке LISP можно воспользоваться любым текстовым редактором, например, таким как Notepad. Ниже приведен листинг программы для примера 4. (Для программ LISP использование строчных букв не является обязательным, поэтому могут использоваться как строчные, так и прописные буквы.) ;С помощью этой программы вы сможете построить ;развертку сопряжения прямоугольных поперечных сечений ; (defun TRANA () (graphscr) (setvar "cmdecho" 0) (setq L (getdist "\n Enter length of bottom rectangle: ")) (setq W (getdist "\n Enter width of bottom rectangle: ")) (setq H (getdist "\n Enter height of transition: ")) (setq L1 (getdist "\n Enter length of top rectangle: ")) (setq W1 (getdist "\n Enter width of top rectangle: ")) (setq (setq (setq (setq (setq (setq
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем trana.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP Console появится сообщение об успешно выполненной загрузке. Чтобы запустить программу, введите имя функции (trana) в строку приглашения консоли после знака _$. Не забывайте, что имя функции должно указываться в круглых скобках.
486
Глава 13
Пример 5 Напишите программу на языке Visual LISP, с помощью которой вы сможете построить развертку усеченного конуса, показанного на рис. 13.26, а затем проставить все необходимые размеры.
Рис. 13.26. Развертка усеченного конуса
Шаг 1: написание программы Visual LISP Ниже приведен листинг программы Visual LISP для примера 5. ;Эта программа вычерчивает развертку усеченного конуса ; ;Функция DTR преобразует градусы в радианы (defun DTR (a) (* PI (/ A 180.0)) ) ;Функция RTD преобразует радианы в градусы (defun RTD (a) (* a (/ 180.0 pi)) ) (defun tan (a) (/ (sin a) (cos a)) ) (defun cone-lp () (graphscr)) (setvar "cmdecho" 0) (setq r2 (getdist "\n Enter outer radius at larger end: ") (setq r1 (getdist "\n Enter inner radius at smaller end: ") (setq t1 (getdist "\n Enter sheet thickness: ") (setq a (getangle "\n Enter cone angle: ") ;В этой части программы вычисляются различные параметры, ;необходимые для построения развертки (setq x0 0) (setq y0 0)
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем cone-lp.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP Console появится сообщение об успешно выполненной загрузке. Чтобы запустить программу, введите имя функции (cone-lp) в строку приглашения консоли после знака _$. Не забывайте, что имя функции должно указываться в круглых скобках.
Отслеживание переменных Иногда возникает необходимость определить значения переменных, которые используются в данной программе. Предположим, например, что созданная программа работает с перебоями или не выполняет требуемых функций. Чтобы исправить это положение, необходимо определить причину возникшей проблемы. Одним из способов выполнения этой задачи является отслеживание значений переменных, используемых в программе. Ниже приведено пошаговое описание этой процедуры: 1. Откройте файл, содержащий программный код, в текстовом редакторе Visual LISP. Для этого выберите команду Open File из меню File. 2. Загрузите программу, выбрав команду Load Text in Editor из меню Tools или щелкнув на кнопке Load active edit window, которая находится на панели инструментов Tools. 3. Запустите программу, введя ее имя (tr2) в строку приглашения консоли Visual LISP (после знака _$). При этом будут выполнены операции, определенные в программе. В данном случае будут построены треугольник и дуга по трем точкам, которые определены пользователем. Для определения координат точек p1, p2 и p3 можно воспользоваться средством Watch window, которое находится на панели инструментов View. 4. Запустив программу, выделите в окне Visual LISP переменную p1, а затем щелкните на кнопке Watch window, которая находится на панели инструментов View. На переднем плане появится диалоговое окно Add Watch, а на заднем плане отобразится окно Watch. В раскрывающемся списке открывшегося диалогового окна показана переменная р1. Щелкните на кнопке ОК и в окне Watch появятся координаты точки р1 (X, Y и Z). 5. Установите курсор рядом с переменной p2 (перед, после или прямо на ней) и щелкните на пиктограмме Add Watch, которая находится в верхней части окна Watch. В открывшемся окне Add Watch щелкните на кнопке OK. Координаты выбранной переменной появятся в окне Watch, как показано на рис. 13.27. Точно так же можно определить значения других переменных, использованных в этой программе.
Использование Visual LISP
489
Рис. 13.27. Использование функции Add Watch для отслеживания значений переменных
Коды ошибок и сообщения об ошибках, используемые в Visual LISP В этом разделе вы познакомитесь с сообщениями об ошибках, которые могут появиться в строке приглашения консоли при выполнении программ Visual LISP. Сообщения об ошибках располагаются по возрастанию частоты их возникновения при выполнении программ Visual LISP, т.е. первыми в списке перечислены наиболее часто встречающиеся ошибки. • Malformed list (Неправильно сформированный список) Преждевременное завершение списка. Наиболее распространенной причиной является несоответствие количества открывающих и закрывающих скобок. • Malformed string (Неправильно сформированная строка) Преждевременное завершение строки, считываемой из файла. • Null function (Нулевая функция) Функция, аргумент которой равен нулю. • Too few arguments (Слишком мало параметров) Встроенная функция получила меньше аргументов, чем требуется. • String too long (Слишком длинная строка) Системной переменной SETVAR присвоено слишком длинное строковое выражение.
490
Глава 13
• Too many arguments (Слишком много параметров) Встроенная функция получила слишком много параметров. • Invalid argument (Неправильный аргумент) Используется параметр несоответствующего типа. • Invalid argument list (Неправильный список параметров) Функция получила неправильный список параметров. • Incorrect number of arguments (Неверное число параметров) Несмотря на то, что данная функция должна содержать только один параметр, она получает еще несколько дополнительных параметров. • Incorrect number of arguments to a function (Неверное число параметров, введенных в данную функцию) Несоответствие между числом определенных формальных параметров и количеством аргументов, введенных в определенную пользователем функцию. • Function cancelled (Отмена выполнения функции) Отмена выполнения команды посредством нажатия клавиш или <Esc> при появлении приглашения на ввод данных. • Extra right paren (Дополнительная правая скобка) Обнаружение одной или нескольких дополнительных правых скобок. • Exceeded maximum string length (Превышение максимальной длины строки) Длина строкового выражения, введенного в функцию, превышает 132 символа. • Divide by zero (Деление на нуль) Делить на нуль нельзя. • Divide overflow (Переполнение при делении) Ошибка, возникающая при делении на бесконечно малую величину. • Console break (Прерывание работы консоли) Ошибка, возникающая при нажатии клавиш во время выполнения команды. • Bad argument type (Неверный тип параметра) Функция, получившая параметр несоответствующего типа. • Bad association list (Неправильный ассоциированный список) Список параметров, поставленный в соответствие данной функции, не содержит списков ключевых значений. • Visual LISP stack overflow (Переполнение стека Visual LISP) При выполнении программы произошло переполнение стековой памяти Visual LISP. Одной из причиной этого является слишком большое число параметров, введенных в данную функцию. • Bad ENTMOD list (Неправильный список ENTMOD) Параметр, переданный функции ENTMOD, не соответствует существующему списку данных.
Использование Visual LISP
491
• Bad conversion code (Неправильный код преобразования) Функции преобразования был передан неверный пространственный идентификатор. • Bad entmod list value (Неправильное значение списка ENTMOD) Один из подсписков ассоциированного списка, полученного функцией ENTMOD, содержит неверное значение. • Bad function (Неверная функция) Первый элемент списка не является именем существующей функции. • Bad list (Неверный список) Неверный список, полученный данной функцией. • Bad ssget list (Неверный список функции SSGET) Параметр, переданный функции (ssget "x"), является неверным. • Bad ssget list value (Неправильное значение списка функции SSGET) Один из подсписков ассоциированного списка, полученного функцией SSGET, содержит неверное значение. • Bad ssget mode string (Неверное строковое выражение, содержащееся в параметре режима функции SSGET) Ошибка, возникающая при получении функцией SSGET параметра режима, содержащего неверное строковое выражение. • Base point is required (Требуется определить координаты исходной точки) Ошибка, возникающая при вызове функции getcorner без определения координат исходной точки. • Can’t evaluate expression (Вычислить выражение нельзя) Неправильно поставленная десятичная точка или неверно сформированное выражение. • Can’t open file for input - LOAD failed (Нельзя открыть введенный файл - отказ функции LOAD) Функция загрузки не находит нужный файл или пользователь не имеет доступа к файлу. • Input aborted (Ввод данных прекращен) Ошибка или преждевременное завершение определения параметров файла, которое приводит к прерыванию ввода данных. • Invalid character (Неверный символ) Выражение, содержащее неверный символ. • Invalid dotted pair (Неправильная точечная пара) Вещественное число, начинающееся с десятичной точки; в подобных случаях необходимо использовать ведущий нуль. • Misplaced dot (Неправильно расположенная точка) Вещественное число, начинающееся с десятичной точки; в подобных случаях необходимо использовать ведущий нуль.
492
Глава 13
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Visual LISP содержит мощный ________ и ________. 2. Текстовый редактор поддерживает ________ круглых скобок, имен функций, переменных и других компонентов программы. 3. Форматтер ________ программный код, сохраняя его в удобочитаемом формате. 4. Для отслеживания значений переменных можно использовать средство ________, которое находится на панели инструментов View. 5. Для пошаговой отладки программы обычно используется средство ________, которое находится на панели инструментов Debug. 6. Какие способы могут быть использованы для запуска Visual LISP? 1. ____________________ 2. ____________________ 7. Назовите основные области окна Visual LISP. 1. ____________________ 2. ____________________ 3. ____________________ 4. ____________________ 8. Перечислите панели инструментов Visual LISP. 1. ____________________ 2. ____________________ 3. ____________________ 4. ____________________ 5. ____________________
Повторение пройденного материала Ответьте на следующие вопросы. 1. Опишите различные способы загрузки программ Visual LISP. 1. ____________________ 2. ____________________ Как запустить программу Visual LISP? Можно ли открыть файл AutoLISP в текстовом редакторе Visual LISP? Для каких целей используется окно консоли Visual LISP Console? Можно ли ввести в окно консоли Visual LISP несколько выражений LISP? Если можно, приведите соответствующий пример. 6. Как записать выражение LISP на нескольких строках, используя окно консоли Visual LISP? 7. Что такое контекстное меню и как его вывести на экран? 8. Какие цвета в текстовом редакторе Visual LISP назначены по умолчанию следующим элементам программы: круглым скобкам ____________ функциям LISP ______________ комментариям _______________ целым числам _______________
2. 3. 4. 5.
9. Для каких целей используется Visual LISP Formatter и как можно отформатировать текст? 10. Чем отличается заглавный комментарий от комментария завершения функции? 11. Как изменить опции форматирования?
Использование Visual LISP
493
12. Как выполнить отладку программы Visual LISP? 13. Как отслеживать значения переменных, используемых в программах Visual LISP?
Упражнения Упражнение 6 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете начертить лестничный марш, показанный на рис. 13.28. Программа должна также вывести приглашение, которое позволит пользователю определить высоту и ширину каждой ступеньки, а также указать их количество. Пользователь должен также ввести ширину порожка, примыкающего к лестничной площадке.
Рис. 13.28. Эскиз лестничного марша для упражнения 6
Упражнение 7 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете начертить рамку для картины, показанную на рис. 13.29. Программа должна также вывести приглашение, которое позволит пользователю определить длину, высоту и ширину этой рамки.
Рис. 13.29. Эскиз рамки для упражнения 7
494
Глава 13
Упражнение 8 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете начертить трехмерную модель стола, показанную на рис. 13.30. Программа должна вывести приглашение, которое позволит пользователю ввести длину, ширину и высоту стола, а также толщину столешницы и размеры поперечного сечения ножек. В этой программе должна использоваться команда VPOINT, которая позволит вам изменить направление взгляда и создать трехмерное изображение стола.
Рис. 13.30. Эскиз стола для упражнения 8
Упражнение 9 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете начертить фигуру, показанную на рис. 13.31, провести осевые линии и проставить все необходимые размеры. Предполагается, что L5 = D1, L3 = 1,5*D1, L2 = 10*D1, L1 = L2–D1, L4 = L3+D1.
Рис. 13.31. Эскиз фигуры для упражнения 9
Упражнение 10 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете начертить втулку со шпоночным пазом, показанную на рис. 13.32. Программа должна вывести приглашение, которое позволит пользователю определить координаты точки P0 (центр втул-
Использование Visual LISP
495
ки/вала), диаметр вала D1, наружный диаметр втулки D2, ширину шпоночного паза W и высоту вала со шпонкой (T). Программа должна также начертить осевые линии в слое Center (зеленый цвет) и проставить размеры T и W в слое Dim (фиолетовый цвет).
Рис. 13.32. Эскиз втулки со шпоночным пазом для упражнения 10
Упражнение 11 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете начертить равносторонний треугольник, вписанный в окружность заданного диаметра (рис. 13.33). Программа должна вывести приглашение, которое позволит вам определить величину радиуса и координаты центра описанной окружности.
Рис. 13.33. Равносторонний треугольник, вписанный в окружность
Упражнение 12 (Общее) Напишите программу на языке Visual LISP, с помощью которой вы сможете провести касательные к окружностям, показанным на рис. 13.34. Программа должна вывести приглашение, которое позволит вам определить диаметры окружностей и расстояние между их центрами.
496
Глава 13
Рис. 13.34. Касательные, проведенные к окружностям. Центры окружностей находятся на линии, проведенной под углом А
Ответы на вопросы для самопроверки 1 — текстовый редактор, форматтер, 2 — цветовое кодирование, 3 — форматирует, 4 — Watch Window, 5 — Toggle Breakpoint, 6 — ToolsAutoLISPVisual LISP Editor, VLIDE, 7 — меню, панели инструментов, окно консоли и строка состояния, 8 — Standard, Tools, Debug, View.
Глава 14
Visual LISP: редактирование базы данных чертежа Цель занятия Познакомившись с материалом этой главы, вы научитесь: • редактировать базу данных чертежа с помощью Visual LISP; • использовать функции ssget, sslength, ssname, ssadd, ssdel, entget, assoc, cons, subst, entnext, entlast и entmode; • извлекать информацию из базы данных чертежа; • редактировать базу данных и изменять существующие значения.
498
Глава 14
Редактирование базы данных Язык программирования Visual LISP позволяет не только писать программы или создавать новые команды, но и редактировать базы данных чертежа. Другими словами, Visual LISP является мощным инструментом, который позволяет вносить необходимые изменения в уже существующие чертежи. Например, можно написать программу, с помощью которой вы сможете удалить все текстовые элементы чертежа или изменить диаметр и цвет всех вычерченных окружностей, введя одну-единственную команду. Познакомившись с организацией хранения информации в программе AutoCAD, а также со способами извлечения и редактирования данных, вы сможете работать с базой данных так, как вы этого захотите. В этой главе рассказывается о командах, наиболее часто используемых при редактировании базы данных чертежа. Для получения информации о командах, не вошедших в этот раздел, обратитесь к интерактивному справочному руководству для программистов “Visual LISP Programmer’s Reference”, опубликованному компанией Autodesk.
Функция ssget Функция ssget дает вам возможность выделить произвольное количество объектов, имеющихся на чертеже. Описание этой функции обычно содержит название режима выделения (окно, пересечение, предыдущее, последнее и т.д.) и координаты точек, определяющие положение противоположных вершин окна выделения. Функция ssget имеет следующий формат: (ssget [режим_выбора] [точка1 точка2])
где • режим_выбора — режим выделения объектов (w, c, l, p и т.д.); • точка1 — первая вершина окна; • точка2 — вторая вершина окна. Примеры (ssget) (ssget "L") (ssget "p") (ssget "w" (list 0 0) (list 12.0 9.0)) (ssget "c" pt1 pt2))
Выделение объекта в обычном режиме Выделение последнего объекта Выделение ранее выбранных объектов Выделение объекта в оконном режиме (размеры и положение окна определены точками 0,0 и 12.0,9,0) Выделение объекта в режиме пересечения (размеры и положение окна определены ранее заданными точками pt1 и pt2)
Пример 1 Напишите программу Visual LISP, с помощью которой вы сможете стереть все объекты, оказавшиеся в пределах чертежного листа (размеры листа определяются значениями limmin и limmax). Для выделения объектов используется функция ssget. Предполагается, что объекты уже начерчены на листе.
Шаг 1: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце.
499
Visual LISP: редактирование базы данных чертежа
Ниже представлен листинг программы Visual LISP для примера 1. Номера строк не являются частью программы, а используются только в качестве ссылок. ;С помощью этой программы вы сможете удалить все ;объекты, находящиеся в пределах чертежного листа. ; (defun delall () (setvar "cmdecho" 0) (setq pt1 (getvar "limmin")) (setq pt2 (getvar "limmax")) (setq ss1 (ssget "c" pt1 pt2)) (command "erase" ss1 "") (command "redraw") (setvar "cmdecho" 1) (princ) )
1 2 3 4 5 6 7 8 9 10 11 12 13
Пояснения Строки 1–3 В начале листинга находятся строки комментариев, описывающие функцию этой программы. Обратите внимание, все строки комментариев начинаются точкой с запятой (;).
Строка 4 (defun delall ()
В этой строке функция defun определяет функцию delall.
Строка 6 (setq pt1 (getvar "limmin"))
Функция getvar получает координаты левого нижнего угла чертежного листа (limmin), а функция setq присваивает эти значения переменной pt1.
Строка 7 (setq pt2 (getvar "limmax"))
Функция getvar получает координаты правого верхнего угла чертежного листа (limmax), а функция setq присваивает эти значения переменной pt2.
Строка 8 (setq ss1 (ssget "c" pt1 pt2))
Функция ssget обеспечивает выделение объектов, которые пересеклись или попали в окно, определенное точками pt1 или pt2. (В данном случае выделение объектов выполняется в режиме пересечения.) Затем функция setq присваивает определение множества выделенных объектов переменной ss1.
Строка 9 (command "erase" ss1 "")
Функция command вызывает команду ERASE, с помощью которой стирает множество ранее выбранных объектов, определенное значением переменной ss1.
500
Глава 14
Строка 10 (command "redraw")
В этой строке функция command вызывает команду REDRAW, которая перерисовывает содержимое текущего экрана и удаляет следы, оставшиеся после удаления объектов.
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем delall.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP появится сообщение об успешной загрузке данной программы. Если в программе будут обнаружены какие-либо ошибки, на экране появится соответствующее сообщение. Характер и причины возможных ошибок описываются в разделе “Коды ошибок и сообщения об ошибках”, который находится в конце главы 13 “Использование Visual LISP”. Теперь можете заняться пошаговой отладкой программы, выполняя процедуры, описанные в главе 13 в разделе “Отладка программы”. Например, чтобы привести в соответствие количество открывающих и закрывающих скобок, щелкните на кнопке Format Edit Window, которая находится на панели инструментов Tools. Чтобы запустить программу, введите имя функции (delall) в строку приглашения консоли после знака _$ и нажмите клавишу <Enter>. Не забывайте, что имя функции необходимо указывать в круглых скобках. Выполнив описанные действия, перейдите в программу AutoCAD, выбрав команду Activate AutoCAD из меню Window. Вы убедитесь, что все объекты, находившиеся на чертежном листе, удалены.
Функция ssget "X" Функция ssget "X" дает возможность выделить объекты определенного типа, имеющиеся на чертеже. Эта функция может использоваться даже в том случае, когда объекты находятся на замороженном или выключенном слое. Функция ssget "X" имеет следующий формат: (ssget "X" критерии_отбора)
где • X — режим отбора функции ssget; • критерии_отбора — список определенных критериев, используемых при выборе объектов. Примеры (ssget "X" (list (cons 0 "TEXT")))
(ssget "X" (list (cons 7 "ROMANC")))
(ssget "X" (list (cons 0 "LINE")))
(ssget "X" (list (cons 8 "OBJECT")))
Возвращает множество выбранных элементов, состоящее из всех объектов TEXT, имеющихся на чертеже Возвращает множество выбранных элементов чертежа, которое состоит из объектов TEXT, набранных шрифтом ROMANC Возвращает множество выбранных элементов, состоящее из всех объектов LINE, имеющихся на чертеже Возвращает множество выбранных элементов, состоящее из объектов, находящихся на слое OBJECT
Visual LISP: редактирование базы данных чертежа
501
Функция ssget "X" может содержать несколько критериев отбора, что позволяет выбирать объекты определенного типа. Например, чтобы выбрать все линейные объекты, имеющиеся на слое OBJECT, необходимо установить два критерия отбора. Во-первых, эти объекты должны быть линейными, а во-вторых, они должны находиться на слое OBJECT. (ssget "X" (list (cons 0 "LINE")(cons 8 "OBJECT")))
Групповые коды функции ssget "X" В следующей таблице приведены групповые коды AutoCAD, которые могут использоваться с функцией ssget "X": Групповой код
Выполняемая функция
0 2 3 6 7 8 38 39 62 66 210
Тип объекта Имя, используемое при обращении к блоку Имя текущего стиля DIMSTYLE размерного элемента Имя типа линии Имя текстового стиля Имя слоя Угол возвышения Толщина Количество цветов Атрибуты Направление выдавливания в трехмерной системе координат
Пример 2 Напишите программу Visual LISP, с помощью которой вы сможете удалить все текстовые объекты, находящиеся на определенном слое чертежа. Для выделения текстовых объектов, отвечающих заданному критерию, используйте функцию ssget с опцией filter (ssget "X"). Предполагается, что на указанном слое уже начерчены некоторые объекты.
Шаг 1: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце. Ниже представлен листинг программы Visual LISP для примера 2. ;Эта программа позволяет удалить все текстовые объекты, ;находящиеся на заданном слое чертежа. ; (defun deltext () (setvar "cmdecho" 0) (setq layer (getstring "\n Enter layer name: ")) (setq ss1 (ssget "x" (list (cons 8 layer) (cons 0 "text")))) (command "erase" ss1 "") (command "redraw") (setvar "cmdecho" 1) (princ))
502
Глава 14
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем deltext.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP появится сообщение об успешной загрузке данной программы. Если в программе будут обнаружены какиелибо ошибки, на экране появится соответствующее сообщение. Чтобы запустить программу, введите имя функции (deltext) в строку приглашения консоли после знака _$ и нажмите клавишу <Enter>. Не забывайте, что имя функции необходимо указывать в круглых скобках. Выполнив описанные действия, перейдите в программу AutoCAD, выбрав команду Activate AutoCAD из меню Window. Вы увидите, что все текстовые объекты, расположенные на заданном слое чертежа, удалены.
Функция sslength Функция sslength определяет количество объектов, которые содержатся в массиве выбранных элементов, и возвращает целое число, соответствующее количеству найденных объектов. Функция sslength имеет следующий формат: (sslength набор_выбора)
Возвращает целое число, соответствующее количеству объектов, содержащихся в заданном массиве ss1 Возвращает число объектов (1), содержащихся в массиве выбранных элементов ss2. Массив ss2 определен как последний объект данного чертежа
Функция ssname Функция ssname возвращает имя объекта, содержащегося в заданном массиве выделенных элементов. Для обращения к объекту используется индекс, обозначающий номер объекта. Функция ssname имеет следующий формат: (ssname набор_выбора индекс)
где • набор_выбора — заданный массив выделенных элементов; • индекс — номер объекта, содержащегося в заданном массиве выделенных элементов. Пример (setq ss1 (ssget)) (setq index 0) (setq entname (ssname ss1 index))
Возвращает имя первого объекта, содержащегося в массиве выделенных элементов ss1
Примечание Если индекс равен 0, функция ssname возвращает имя первого объекта, содержащегося в массиве выделенных элементов. Если индекс равен 1, функция возвращает имя второго объекта, и т.д.
Visual LISP: редактирование базы данных чертежа
503
Функция ssadd Функция ssadd добавляет новый объект (запись) в массив или создает новый массив выделенных элементов. Эта функция имеет следующий синтаксис: (ssadd имя_объекта набор_выбора)
Когда функция ssadd используется без аргументов, создается новый массив, не содержащий ни одного члена. При использовании имен записи (параметров имя_объекта) создается массив, состоящий из одного члена. Пример (setq all(ssget)) Selection objects: All Selection set = 30
В этом примере создается массив с именем All, содержащий ряд определенных объектов, например, две окружности. Теперь мы попробуем ввести в массив выбранных объектов еще одну окружность. (setq b(entsel)) Select objects: Выберите окружность, используя один из существующих методов выбора объектов. (<entity name: 1ffo5a0> (10.977 4.99 0)) (setq c(car b)) entity name: 1ffo5a0 (setq d(ssadd c all)) (command "erase" all "")
В существующий массив будет добавлена еще одна окружность.
Функция ssdel Функция ssdel дает возможность пользователю удалить объект или запись из массива выбранных объектов. Она работает примерно так же, как функция ssadd. Функция ssdel имеет следующий формат: (ssdel имя_объекта набор_выбора)
Пример Итак, вы начертили три окружности, а затем преобразовали их в набор выбранных объектов. Теперь вы хотите удалить из этого набора одну из окружностей. (setq all(ssget)) Select objects: All (setq b(entsel)) Select objects: Выберите окружность, которую вы хотите удалить, используя один из методов выделения объектов. (<entity name: 1ffo5a0> (2.455 5.99 0)) (setq c(car b)) entity name: 1ffo5a0 (setq d(ssdel c all)) selection set = 36 (command "erase" all "")
При выполнении этой команды будут стерты только две окружности, так как одна окружность была удалена из текущего набора.
504
Глава 14
Функция entget Функция entget извлекает список данных из имени объекта. Имя объекта может быть получено с помощью функции ssname. Функция entget имеет следующий формат: (entget имя_объекта)
где • имя_объекта — имя объекта, полученного с помощью функции ssname. Пример (setq (setq (setq (setq
Это выражение возвращает список параметров первого объекта, содержащийся в переменной entname, и присваивает его переменной entlist.
Функция assoc Функция assoc находит определенный код в списке параметров объекта и возвращает элемент, содержащий этот код. Функция assoc имеет следующий формат: (assoc код список_объекта)
где • код — объектный код AutoCAD; • список_объекта — список параметров данного объекта. Пример (setq (setq (setq (setq (setq
Это выражение возвращает элемент, ассоциированный с объектным кодом 0, из списка, который определяется переменной entlist.
Функция cons Функция cons формирует новый список из данных элементов или списков. Эта функция имеет следующий формат: (cons первый_элемент второй_элемент)
где • первый_элемент — первый элемент или список; • второй_элемент — второй элемент или список. Примеры (cons 'x 'y) (cons '(x y) 'z) (cons '(x y z) '(0.5 5.0))
Функция subst Функция subst заменяет элементы списка новым элементом. Это дает вам возможность заменить один или несколько элементов, находящихся в одном списке. Функция subst имеет следующий формат: (subst новый_элемент старый_элемент список)
где • новый_элемент — новый элемент, который заменит существующие элементы; • старый_элемент — элементы, которые вы хотите заменить; • список — имя списка параметров объекта или список. Пример (setq entlist '(x y x)) (setq newlist (subst '(z) '(x) entlist)
Это выражение возвращает (x y z); функция subst заменяет переменную x, имеющуюся в списке параметров объекта (entlist), на переменную z.
Функция entmod Функция entmod обновляет содержимое чертежа, вводя измененный список параметров в базу данных чертежа. Эта функция имеет следующий формат: (entmod список_объекта)
где • список_объекта — имя измененного списка параметров.
Пример 3 Напишите программу Visual LISP, с помощью которой вы сможете изменить высоту текстового объекта. Эта программа должна также вывести приглашение, позволяющее определить новую высоту текста.
Шаг 1: разработка алгоритма программы Исходные данные • Новая высота текста • Текстовый объект Выходные данные • Текст, имеющий новую высоту текста Процесс обработки данных 1. Выберите текстовый объект; используя функцию ssname, получите имя выбранного объекта. 2. Используя функцию entget, извлеките список параметров объекта. 3. С помощью функции assocc выберите из списка параметров элемент, ассоциированный с объектным кодом 0. 4. Используя функцию cons, сформируйте новый элемент, имеющий новую высоту текста.
506
Глава 14
5. С помощью функции subst введите новый элемент в исходный список. 6. Обновите базу данных чертежа, используя функцию entmod.
Шаг 2: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце. Перед вами листинг программы Visual LISP для примера 3. ;Эта программа изменяет высоту выделенного текста. ;За каждый прогон программы можно изменить высоту ;только одного текстового фрагмента. ; (defun chgtext1 () (setvar "cmdecho" 0) (setq newht (getreal "\n Enter new text height: ")) (setq ss1 (ssget)) (setq name (ssname) ss1 0)) (setq ent (entget name)) (setq oldlist (assocc 40 ent)) (setq conlist (cons (car oldlist) newht)) (setq newlist (subst conlist oldlist ent)) (entmod newlist) (setvar "cmdecho" 1) (princ) )
Шаг 3: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните текстовый файл под именем chgtext1.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. В окне консоли Visual LISP появится сообщение об успешной загрузке данной программы. Если в программе будут обнаружены какие-либо ошибки, на экране появится соответствующее сообщение. Чтобы запустить программу, введите имя функции (chgtext1) в строку приглашения консоли после знака _$ и нажмите клавишу <Enter>. (Не забывайте, что имя функции следует указывать в круглых скобках.) Выполнив описанные действия, вы автоматически перейдете в окно графического редактора, а в командной строке появится приглашение на ввод высоты текста и выбор редактируемого объекта. Выделите текстовый объект и нажмите клавишу <Enter>. Вы увидите, что высота текста изменилась.
Поиск и редактирование базы данных Чтобы изменить объекты, имеющиеся на чертеже, вы должны разобраться в структуре базы данных и понять способы, используемые для обработки данных. Познакомившись с основными концепциями, вы сможете легко редактировать базу данных и объекты чертежа. Ниже приведено пошаговое описание процесса, выполняемого при изменении высоты выделенного текстового объекта. Допустим, вы хотите отредактировать текстовую строку
Visual LISP: редактирование базы данных чертежа
507
“CHANGE TEXT”, начерченную на листе. Высота текста равна 0,3 единицы. Перед тем как приступить к выполнению описанных действий, загрузите программу Visual LISP из примера 3 и запустите ее, присваивая переменным соответствующие значения.
Шаг 1 Используя функцию ssget или ssget "X", выделите текст и присвойте полученные данные переменной ss1. AutoCAD создаст набор, который может состоять из одного или нескольких выделенных объектов. В строке 7 (setq ss1 (ssget)), содержащейся в программе для примера 3, набор объектов присваивается переменной ss1. Для проверки этой переменной используется следующая команда: Command: !ss1 <Selection set: 2>
Шаг 2 Созданный набор может состоять из нескольких объектов, поэтому прежде чем вносить какие-либо изменения, выбранные объекты необходимо разделить. Это может быть сделано с помощью функции ssname, которая позволяет извлечь имя объекта. Для определения объекта, имя которого извлекается функцией ssname, используется числовой индекс. Например, если индекс равен 0, функция ssname извлечет имя первого объекта, если индекс равен 1, функция извлечет имя второго объекта, и т.д. В восьмой строке программы (setq name (ssname ss1 0)) функция ssname извлекает имя первого объекта и присваивает его имени переменной. Для проверки имени переменной используется следующая команда: Command: !name