ББК 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
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Autodesk Press. Authorized translation from the English language edition published by Delmar Learning, a division of Thomson Learning, Inc. Copyright © 2004 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Russian language edition is published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2006.
ISBN 5-8459-0931-7 (рус.) ISBN 1-4018-5135-5 (англ.)
© Издательский дом “Вильямс”, 2006 © Delmar Learning, 2004
Оглавление Введение Глава 1. Шаблоны чертежей
16 21
Глава 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) Дополнительные типы линий Модификация типов линий Сложные типы линий Создание строкового типа линий Создание геометрического типа линий
53 54 57 64 65 66 66 67 78 78 78 79 82 84 88 89 97 98 98 98 98 99 100 105 106 109 110 111 112 115 115 120
Содержание
7
Определение образцов штриховки Заголовок строки Описатели штриховки Угол наклона линий штриховки Как формируется штриховка Создание простого образца штриховки Влияние угла и масштаба на внешний вид штриховки Образцы штриховки со штрихами и точками Задание пути доступа к файлу образца штриховки Штриховка, имеющая несколько определений Сохранение образца штриховки в отдельном файле Файл нестандартного образца штриховки
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 Стандартные меню Запись меню Загрузка меню Ограничения Каскадное размещение подменю Контекстные меню и меню быстрого вызова команд Подменю Определение подменю Ссылка на подменю Отображение подменю Загрузка экранных и мозаичных меню Загрузка экранного меню Загрузка мозаичного меню Неполные меню Метки разделов меню Запись неполного меню Ускоряющие клавиши Виртуальные клавиши Общезначимые модификаторы Панели инструментов Система справочной информации Настройка панелей инструментов Редактирование изображения на кнопке и изменение всплывающей подсказки Удаление кнопок на панели инструментов
157 158 159 159 167 169 169 175 178 179 179 180 180 180 180 184 184 184 189 190 191 191 196 196 199 200
8
Содержание
Удаление панели инструментов Копирование кнопок инструментов Создание пользовательских панелей инструментов Создание клавишных комбинаций быстрого вызова команд
Глава 6. Мозаичные меню Мозаичные меню Подменю Определение подменю Ссылка на подменю Отображение подменю Запись мозаичного меню Слайды, используемые в мозаичном меню Загрузка меню Ограничения Метки элементов мозаичного меню Формат меток элементов меню
Глава 7. Кнопочные и вспомогательные меню Кнопочные меню Запись кнопочного меню Специальная обработка кнопочных меню Подменю кнопочного меню Определение подменю Ссылка на подменю Загрузка меню Загрузка экранного меню Загрузка меню из кнопочного меню Загрузка мозаичного меню Вспомогательные меню
Глава 8. Планшетные меню Стандартное планшетное меню Функции планшетного меню Настройка планшетного меню Запись планшетного меню Конфигурирование графического планшета Загрузка меню Графический планшет с блоками разного размера Назначение команд блокам планшетного меню Автоматическая выгрузка меню
Глава 9. Экранные меню Экранное меню Загрузка меню Подменю экранного меню Определение подменю Ссылка на подменю Вложенные подменю
201 201 201 202 207 208 209 209 209 210 210 211 216 217 218 218 223 224 224 228 231 231 232 232 232 233 233 236 241 242 243 244 245 247 249 250 253 254 265 266 270 272 272 273 274
Содержание
9
Использование нескольких подменю Длинные определения меню Повторение команд меню Автоматическая выгрузка меню Системная переменная MENUECHO Меню на иностранном языке Использование управляющих символов в элементах меню Специальные символы Определение команды без пробелов и точки с запятой Элементы меню, работающие в режиме выбора одного объекта Использование функций AutoLISP в определении меню Использование выражений DIESEL
280 294 296 297 298 298 299 299 301 303 303 304
Глава 10. Настройка стандартного меню AutoCAD
313 314 330 330 331 331 332 332 332 337 341 341 344 345 350 351 354 355 355 356 357 357 360 360 361
Стандартное меню программы 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
390 391 403 404 405 405 405 406 406 406 406 407 407 407 407 407 408 408 409 409 409 410 410 410 411 411 411 412 413 413 417 418 418 418 418 418 418 418 420 420 420 421 423 424 424 424 424
Содержание
11
Функции 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
425 425 425 425 426 430 430 431 432 432 433 433 433 434 434 434 437 437 437 438 438 441 442 443 444 448 448 451
Глава 13. Использование Visual LISP
459 460 460 465 469 471 473 477 488 489
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) Блочная строка Столбцы и переключатели Столбец Блочный столбец Переключатели
504 504 504 505 505 506 508 508 508 508 515 516 516 517 519 519 519 519 519 520 521 521 521 522 522 522 523 524 525 527 527 528 528 528 528 529 529 529 529 532 532 532 532 532 532 532
Содержание
13
Атрибуты ускоряющих клавиш Функции 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
533 537 537 538 538 541 541 541 541 542 548 548 548 548 552 552 552 552 553 556 556 556 557 557 557 558
Глава 16. DIESEL: язык строковых выражений
567 568 568 569 570 571 574 575 576 577 577 578 578 578 578 580 580 580 581 581 581
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 (Редактирование) Создание связей с графическими объектами Дополнительные опции просмотра Редактирование данных Создание меток Свободные метки Прикрепленные метки Обновление меток Импорт и экспорт шаблонов
581 582 582 582 585 586 586 587 587 590 590 591 591 592 592 593 594 594 595 596 600 600 601 601 606 606 607 612 619 620 620 620 620 621 622 622 624 625 625 626 629 629 630 630 631 633 633
Содержание
15
Среда языка структурированных запросов (ASE) Редактор запросов AutoCAD Вкладка Quick Query Вкладка Range Query Вкладка Query Builder Вкладка SQL Query Импорт и экспорт запросов SQL Формирование наборов выбора путем отбора связей Выбор Объединение Пересечение Вычитание А–В Вычитание В–А Сохранение ссылок ASE в формате AutoCAD 2000 или в формате более поздних версий Сохранение ссылок AutoCAD 2004/2006 в формате R13/R14
634 635 635 635 635 636 639 639 640 640 640 640 640
Глава 19. Вычисление математических и геометрических выражений Геометрическая счетная машина Вещественные, целочисленные и векторные выражения Вещественные и целочисленные выражения Векторные выражения Математические функции Использование режимов привязки Определение радиуса геометрической фигуры Определение положения точки на линии Определение угла Функция ang(v) Функция ang(р1,р2) Функция ang(apex,p1,p2) Функция ang(apex,p1,p2,р) Определение координат точки пересечения Способы применения геометрического калькулятора Использование переменных AutoLISP Координатные фильтры Преобразование единиц измерения Дополнительные функции
645 646 646 646 647 647 648 649 650 652 652 653 653 654 654 655 658 659 660 661
Приложение А. Системные требования и установка 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 (Простейший шаблон). Перед вами появится список значений, присваиваемых по умолчанию системным переменным, которые определяют параметры нового чертежа:
Шаблоны чертежей Имя системной переменной CHAMFERA CHAMFERB COLOR DIMALT DIMALTD DIMALTF DIMPOST DIMASO DIMASZ FILLETRAD GRID GRIDMODE ISOPLANE LIMMIN LIMMAX LTSCALE MIRRTEXT TILEMODE
23
Значение по умолчанию 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 (Далее).
Шаблоны чертежей
25
Рис. 1.3. Страница Angle диалогового окна Advanced Setup
Шаг 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,0 Specify upper right corner : 18.0,12.0 ◊◊◊ Команда: LIMITS Левый нижний угол или [Вкл/Выкл] : 0,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.125 ◊◊◊ Команда: TEXTSIZE Введите новое значение TEXTSIZE : 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 Текст размера над выносной линией Текст размера выравнивается по выносной линии Слои Название слоя
Тип линии
Цвет
0 OBJ CEN HID DIM BOR
Continuous (Сплошная) Continuous (Сплошная) Center (Осевая) Hidden (Невидимая) Continuous (Сплошная) Continuous (Сплошная)
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,0 Specify upper right corner : 48.0,36.0 ◊◊◊ Команда: LIMITS Левый нижний угол или [Вкл./Выкл.] : 0,0 Правый верхний угол : 48.0,36.0
2. Увеличьте область листа, отображаемую на экране, вызвав команду ZOOM с опцией All. 3. Измените размер текста, введя выражение TEXTSIZE в командную строку. Command: TEXTSIZE Enter new value for TEXTSIZE : 0.25 ◊◊◊ Команда: TEXTSIZE Новое значение TEXTSIZE : 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 (Размеры).
Рис. 1.10. Диалоговое окно Dimension Style Manager
Можно также отобразить диалоговое окно, введя выражение 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).
Рис. 1.13. Фрагмент диалогового окна Layer Properties Manager
Существует еще один способ, позволяющий открыть диалоговое окно 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. Видовые экраны должны иметь следующие параметры: Видовой экран Правый верхний Левый верхний Правый нижний Левый нижний
Направление взгляда 1, -1, 1 0, 0, 1 1, 0, 0 0, -1, 0
Вид Аксонометрия Вид сверху Вид справа Вид спереди
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,0 Правый верхний угол : <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 Начальная ширина : 3
Шаблоны чертежей
47
Конечная ширина : 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.25 Specify ending width : 0.25 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @0.25 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 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 Specify ending width : 0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @3.5 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.35 Specify ending width : 0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: @3 Command: SCRIPT ROTATE.SCR ◊◊◊ Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Blue Команда: DONUT Внутренний диаметр кольца : 8.0 Наружный диаметр кольца : 8.4 Координаты центра кольца : 5.5 Координаты центра кольца : Нажмите клавишу <Enter> Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Green Команда: PLINE Начальная точка: 5,8.5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: Width Начальная ширина : 0.25 Конечная ширина : 0.25 Следующая точка или [Дуга/Соединить/Полуширина/Длина/Отмена/Ширина]: @0.25 Команда: -ARRAY Выбор объекта: Last Выбор объекта: Нажмите клавишу <Enter> Тип массива [Прямоугольный/Полярный] : Polar Центральная точка массива: 5.5 Количество элементов в массиве: 12 Угол заполнения (+= против часовой стрелки, -= по часовой стрелке) : 360 Поворачивать упорядочиваемые объекты? [Да/Нет] : Y Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] BYLAYER>: Red Команда: PLINE Начальная точка: 5,5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Width Начальная ширина : 0.5 Конечная ширина : 0 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: @3.5 Команда: -COLOR Цвет объекта по умолчанию [НатурЦвет/ПалитраЦветов] : Cyan Команда: PLINE Начальная точка: 5,5 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: Width Начальная ширина : 0.35 Конечная ширина : 0 Следующая точка или [Дуга/Соединить/Полуширина/Длина/ Отмена/Ширина]: @3 Команда: 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 Array L Пустая строка для нажатия клавиши <Enter> P 5,5 12 360 Y Color Red Pline 5,5 W 0.5 0 @3.5 Color Cyan Pline 5,5 W 0.35 0 @3 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
Показ слайда SLIDE1 Предварительная загрузка слайда SLIDE2 15-секундная пауза Показ слайда SLIDE2 Предварительная загрузка слайда SLIDE3 15-секундная пауза Показ слайда SLIDE3 Предварительная загрузка слайда SLIDE4 15-секундная пауза Показ слайда SLIDE4 15-секундная пауза Повторный запуск файла сценария
Пример 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
Строка 1 VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR1/SLD1.SLD"
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD1. Путевое имя этого файла указано в команде VSLIDE. Если составное имя каталога содержит пробелы, его необходимо заключить в кавычки.
Строка 2 DELAY 2000
Команда DELAY (ПАУЗА), содержащаяся в этой строке, используется для создания 2-секундной паузы перед загрузкой следующего слайда.
Строка 3 VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR2/SLD2.SLD"
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD2, который находится в подкаталоге SUBDIR2. Если файл слайда расположен в другом подкаталоге, укажите путь к этому файлу.
Строка 5 VSLIDE "C:/Program Files/AutoCAD 2004/SUBDIR3/SLD3.SLD"
Команда VSLIDE, содержащаяся в этой строке, загружает файл слайда SLD3, который находится в подкаталоге SUBDIR3.
84
Глава 2
Строка 7 RSCRIPT
Команда RSCRIPT, содержащаяся в этой строке, обеспечивает повторное выполнение файла сценария и отображение слайдов презентации на экране. Этот процесс будет повторяться до тех пор, пока вы не прервете выполнение сценария, нажав клавишу <Esc> или .
Библиотеки слайдов Программа AutoCAD предоставляет утилиту SLIDELIB, с помощью которой можно создавать библиотеки слайдов. Команда SLIDELIB имеет следующий синтаксис: SLIDELIB (Файловое имя библиотеки) 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
Красный (Red) Желтый (Yellow) Синий (Blue) Зеленый (Green) ˇ ßØ (Magenta) Голубой (Cyan)
Сплошная (Continuous) Центровая (Center) Пунктирная (Hidden) Сплошная (Continuous) Сплошная (Continuous) Сплошная (Continuous)
Упражнение 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 и ввести туда строки, определяющие новый тип линии.
102
Глава 3
Представленный ниже фрагмент листинга файла acad.lin содержит определение нового типа линии: *BORDER,__ __ . __ __ . __ __ . __ __ . __ __ . __ __ . __ A,.5,-.25,.5,-.25,0,-.25 *BORDER2,__ . __ . __ . __ . __ . __ . __ . __ . __ . __ . A,.25,-.125,.25,-.125,0,-.125 *BORDERX2,___ ___ . ___ ___ . ___ ___ . ___ ___ . ___ ___ . A,1.0,-.5,1.0,-.5,0,-.5 *CENTERX2,______ __ ______ __ ______ __ ______ __ A,2.5,-.5,.5,-.5 *DASHDOT,__ . __ . __ . __ . __ . __ . __ . __ . __ . __ . A,.5,-.25,0,-.25 *DOTX2,. . . . . . . . . . . . . . . . . . A,.25,-.125 *HIDDEN2,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ A,.125,-.0625 *HIDDENX2,____ ____ ____ ____ ____ ____ ____ ____ A,.5,-.25 *PHANTOM,_____ __ __ _____ __ __ _____ __ __ _____ A,1.25,-.25,.25,-.25, .25,-.25 ____ ____ __________ ____ *PHANTOMX2,__________ *GAS_LINE,Gas line, ----GAS----GAS----GAS----GAS----GAS---A,.5,-.2 ["GAS",STANDARD,S=.1,R=0.0,X=-0.1Y=-.05],-.25 *ZIGZAG,Zig zag /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ A,.001,-.2 [ZIG,ltypesp.shx,x=-.2,s=-.2],-.4,[ZIG,ltypesp. shx,r=180,x=.2s=.2],-.2 *DASH3DOT,___ . . . ___ . . . ___ А,.5,-.125,0,-.125,0,-.125,0,-.125
Две последние строки этого файла определяют новый тип линии. Первая строка содержит имя 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. Кроме имени *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
Создание типов линий и образцов штриховки *CENTERX2,Center (2x) ________ __ ________ __ _____ A,2.5,-.5,.5,-.5 *DASHDOT,Dash dot __ . __ . __ . __ . __ . __ . __ . __ A,.5,-.25,0,-.25 *DASHDOT2,Dash dot (.5x) _._._._._._._._._._._._._._._. A,.25,-.125,0,-.125 *DASHDOTX2,Dash dot (2x) ____ . ____ . ____ . ___ A,1.0,-.5,0,-.5 *DASHED,Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _ A,.5,-.25 *DASHED2,Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ A,.25,-.125 *DASHEDX2,Dashed (2x) ____ ____ ____ ____ ____ ___ A,1.0,-.5 *DIVIDE,Divide ____ . . ____ . . ____ . . ____ . . ____ A,.5,-.25,0,-.25,0,-.25 *DIVIDE2,Divide (.5x) __..__..__..__..__..__..__..__.._ A,.25,-.125,0,-.125,0,-.125 *DIVIDEX2,Divide (2x) ________ . . ________ . . _ A,1.0,-.5,0,-.5,0,-.5 *DOT,Dot . . . . . . . . . . . . . . . . . . . . . . . . A,0,-.25 *DOT2,Dot (.5x) ........................................ A,0,-.125 *DOTX2,Dot (2x) . . . . . . . . . . . . . . A,0,-.5 *HIDDEN,Hidden __ __ __ __ __ __ __ __ __ __ __ __ __ __ A,.25,-.125 *HIDDEN2,Hidden (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ A,.125,-.0625 *HIDDENX2,Hidden (2x) ____ ____ ____ ____ ____ ____ ____ A,.5,-.25 *PHANTOM,Phantom ______ __ __ ______ __ __ ______ A,1.25,-.25,.25,-.25,.25,-.25 *PHANTOM2,Phantom (.5x) ___ _ _ ___ _ _ ___ _ _ ___ _ _ A,.625,-.125,.125,-.125,.125,-.125 ____ ____ _ *PHANTOMX2,Phantom (2x) ____________ A,2.5,-.5,.5,-.5,.5,-.5 ;; Типы линий ISO 128 (ISO/DIS 12011) ;; Длины линейных сегментов всех типов линий ISO определены для ;; использования с пером шириной 1 мм. Чтобы их использовать ;; с другими перьями стандарта ISO, масштаб линии необходимо ;; изменить, согласовав его с заданной шириной пера ;; (например, ширина пера 0,5 мм — ltscale = 0.5). ;;
113
114
Глава 3
*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
Создание типов линий и образцов штриховки
135
где • 90 — угол наклона линий штриховки; • 0 — координата Х; • 0 — координата Y; • 0 — смещение дельта X; • 1 — смещение дельта Y; • .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
где • 0 — угол наклона линий штриховки; • 0 — координата Х; • 0.5 — координата Y; • 0 — смещение дельта X; • 1 — смещение дельта Y; • .5 — длина штриха (перо опущено); • -.5 — длина пробела (перо поднято).
136
Глава 3
Шаг 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
где • 45 — угол наклона линий штриховки; • 0 — координата Х; • 0 — координата Y; • .7071 — смещение дельта X; • .7071 — смещение дельта Y; • .7071 — длина штриха (перо опущено); • -.7071 — длина пробела (перо поднято).
Шаг 4: загрузка созданного образца штриховки Теперь вам остается только объединить три строки данных и вставить их в существующий файл acad.pat или сохранить в виде отдельного файла. Для редактирования файла acad.pat и вставки указанных строк можно также использовать команду EDIT.
Создание типов линий и образцов штриховки
137
Ниже приведен фрагмент листинга файла acad.pat, содержащего определения образцов штриховки, созданных в примерах 5, 6 и 7. *SOLID, Solid fill 45, 0,0, 0,.125 *ANGLE, Angle steel 0, 0,0, 0,.275, .2,-.075 90, 0,0, 0,.275, .2,-.075 *ANSI31, ANSI Iron, Brick, Stone masonry 45, 0,0, 0,.125 *ANSI32, ANSI Steel 45, 0,0, 0,.375 45, .176776695,0, 0,.375 *ANSI33, ANSI Bronze, Brass, Copper 45, 0,0, 0,.25 45, .176776695,0, 0,.25, .125,-.0625 *ANSI34, ANSI Plastic, Rubber 45, 0,0, 0,.75 45, .176776695,0, 0,.75 45, .353553391,0, 0,.75 45, .530330086,0, 0,.75 *ANSI35, ANSI Fire brick, Refractory material 45, 0,0, 0,.25 45, .176776695,0, 0,.25, .3125,-.0625,0,-.0625 *ANSI36, ANSI Marble, Slate, Glass 45, 0,0, .21875,.125, .3125,-.0625,0,-.0625 | | *SWAMP, Swampy area 0, 0,0, .5,.866025403, .125,-.875 90, .0625,0, .866025403,.5, .0625,-1.669550806 90, .078125,0, .866025403,.5, .05,-1.682050806 90, .046875,0, .866025403,.5, .05,-1.682050806 | | *ZIGZAG, Staircase effect 0, 0,0, .125,.125, .125,-.125 90, .125,0, .125,.125, .125,-.125 *HATCH1,Hatch at 45 Degree Angle 45,0,0,0,.5 *HATCH2,Hatch with Dashes & Dots 0,0,0,.25,.25,.5,-.125,0,-.125,0,-.125 *HATCH3,Triangle Hatch 90,0,0,0,1,.5,-.5 0,0,0.5,1,.5,-.5 45,0,0,.7071,.7071,.-7071
Загрузите образец 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: запуск приложения в "скрытом" виде (в фоновом режиме)
Редактирование файла ACAD.PGP ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Бит 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,
START EXPLORER, START NOTEPAD, START PBRUSH,
1,, 1,*File to edit:, 1,,
; Формат псевдонима команды: ; ,* ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Принципы создания новых псевдонимов команд. 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,
*3DARRAY *3DORBIT *3DFACE *3DPOLY *ARC *ADCENTER *AREA *ALIGN *APPLOAD *ARRAY *-ARRAY *ATTDEF *-ATTDEF *ATTEDIT *-ATTEDIT *-ATTEDIT *BLOCK *-BLOCK *BHATCH *BOUNDARY *-BOUNDARY *BREAK *CIRCLE *PROPERTIES *CHANGE *CHAMFER *COLOR *COLOR *COPY *DIMSTYLE *DIMALIGNED *DIMANGULAR *DIMBASELINE *DBCONNECT *DIMCENTER *DIMCONTINUE *DIMDISASSOCIATE *DIMDIAMETER *DIMEDIT *DIST *DIVIDE *DIMLINEAR *DONUT *DIMORDINATE *DIMOVERRIDE *DRAWORDER
Редактирование файла ACAD.PGP DRA, DRE, DS, DST, DT, DV, E, ED, EL, EX, EXIT, EXP, EXT, F, FI, G, -G, GR, H, -H, HE, I, -I, IAD, IAT, ICL, IM, -IM, IMP, IN, INF, IO, L, LA, -LA, LE, LEN, LI, LINEWEIGHT, LO, LS, LT, -LT, LTYPE, -LTYPE, LTS, LW, M, MA, ME, MI,
*DIMRADIUS *DIMREASSOCIATE *DSETTINGS *DIMSTYLE *DTEXT *DVIEW *ERASE *DDEDIT *ELLIPSE *EXTEND *QUIT *EXPORT *EXTRUDE *FILLET *FILTER *GROUP *-GROUP *DDGRIPS *BHATCH *HATCH *HATCHEDIT *INSERT *-INSERT *IMAGEADJUST *IMAGEATTACH *IMAGECLIP *IMAGE *-IMAGE *IMPORT *INTERSECT *INTERFERE *INSERTOBJ *LINE *LAYER *-LAYER *QLEADER *LENGTHEN *LIST *LWEIGHT *-LAYOUT *LIST *LINETYPE *-LINETYPE *LINETYPE *-LINETYPE *LTSCALE *LWEIGHT *MOVE *MATCHPROP *MEASURE *MIRROR
147
148
Глава 4
ML, MO, MS, MT, MV, O, OP, OS, -OS, P, -P, PA, PARTIALOPEN, PE, PL, PO, POL, PR, PRCLOSE, PROPS, PRE, PRINT, PS, PTW, PU, -PU, R, RA, RE, REA, REC, REG, REN, -REN, REV, RM, RO, RPR, RR, S, SC, SCR, SE, SEC, SET, SHA, SL, SN, SO, SP, SPL,
*MLINE *PROPERTIES *MSPACE *MTEXT *MVIEW *OFFSET *OPTIONS *OSNAP *-OSNAP *PAN *-PAN *PASTESPEC *-PARTIALOPEN *PEDIT *PLINE *POINT *POLYGON *OPTIONS *PROPERTIESCLOSE *PROPERTIES *PREVIEW *PLOT *PSPACE *PUBLISHTOWEB *PURGE *-PURGE *REDRAW *REDRAWALL *REGEN *REGENALL *RECTANGLE *REGION *RENAME *-RENAME *REVOLVE *DDRMODES *ROTATE *RPREF *RENDER *STRETCH *SCALE *SCRIPT *DSETTINGS *SECTION *SETVAR *SHADE *SLICE *SNAP *SOLID *SPELL *SPLINE
Редактирование файла ACAD.PGP SPE, ST, SU, T, -T, TA, TH, TI, TO, TOL, TOR, TR, UC, UCP, UN, -UN, UNI, V, -V, VP, -VP, W, -W, WE, X, XA, XB, -XB, XC, XL, XR, -XR, Z,
*SPLINEDIT *STYLE *SUBTRACT *MTEXT *-MTEXT *TABLET *THICKNESS *TILEMODE *TOOLBAR *TOLERANCE *TORUS *TRIM *DDUCS *DDUCSP *UNITS *-UNITS *UNION *VIEW *-VIEW *DDVPOINT *VPOINT *WBLOCK *-WBLOCK *WEDGE *EXPLODE *XATTACH *XBIND *-XBIND *XCLIP *XLINE *XREF *-XREF *ZOOM
; Альтернативные имена и псевдонимы команд, представленные ; в AutoCAD версии 13. AV, *DSVIEWER CP, *COPY DIMALI, *DIMALIGNED DIMANG, *DIMANGULAR DIMBASE, *DIMBASELINE DIMCONT, *DIMCONTINUE DIMDIA, *DIMDIAMETER DIMED, *DIMEDIT DIMTED, *DIMTEDIT DIMLIN, *DIMLINEAR DIMORD, *DIMORDINATE DIMRAD, *DIMRADIUS DIMSTY, *DIMSTYLE DIMOVER, *DIMOVERRIDE LEAD, *LEADER TM, *TILEMODE
149
150
Глава 4
; Псевдонимы, обеспечивающие совместимость "гиперссылка/URL" ; с версией AutoCAD 14 SAVEURL, *SAVE OPENURL, *OPEN INSERTURL, *INSERT ; Псевдонимы команд, исключенные из AutoCAD 2000: AAD, *DBCONNECT AEX, *DBCONNECT ALI, *DBCONNECT ASQ, *DBCONNECT ARO, *DBCONNECT ASE, *DBCONNECT DDATTDEF, *ATTDEF DDATTEXT, *ATTEXT DDCHPROP, *PROPERTIES DDCOLOR, *COLOR DDLMODES, *LAYER DDLTYPE, *LINETYPE DDMODIFY, *PROPERTIES DDOSNAP, *OSNAP DDUCS, *UCS ; Псевдонимы команд, исключенные из AutoCAD 2004: ACADBLOCKDIALOG, *BLOCK ACADWBLOCKDIALOG, *WBLOCK ADCENTER, *ADCENTER BMAKE, *BLOCK BMOD, *BLOCK BPOLY, *BOUNDARY CONTENT, *ADCENTER DDATTE, *ATTEDIT DDIM, *DIMSTYLE DDINSERT, *INSERT DDPLOTSTAMP, *PLOTSTAMP DDRMODES, *DSETTINGS DDSTYLE, *STYLE DDUCS, *UCSMAN DDUCSP, *UCSMAN DDUNITS, *UNITS DDVIEW, *VIEW DIMHORIZONTAL, *DIMLINEAR DIMROTATED, *DIMLINEAR DIMVERTICAL, *DIMLINEAR DOUGHNUT, *DONUT DTEXT, *TEXT DWFOUT, *PLOT DXFIN, *OPEN DXFOUT, *SAVEAS PAINTER, *MATCHPROP PREFERENCES, *OPTIONS RECTANGLE, *RECTANG SHADE, *SHADEMODE VIEWPORTS, *VPORTS
Редактирование файла ACAD.PGP
151
Разделы файла 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,
START WINWORD,1,, 8,File to rename:, 8,File to copy:, *DIMLINEAR *DIMORDINATE *DIMRADIUS *DIMSTYLE *DIMOVERRIDE *LEADER *TILEMODE *ELLIPSE *COPY *OFFSET *SCALE *MIRROR *STRETCH
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Строка 8 GOWORD, START WINWORD,1,,
При выполнении команды 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
Раскрывающиеся и неполные меню, меню быстрого вызова команд...
159
Кнопочные меню ***BUTTONS1 ***BUTTONS2 ***BUTTONS3 ***BUTTONS4
Вспомогательные меню ***AUX1 ***AUX2 ***AUX3 ***AUX4
Раскрывающиеся меню и курсорное меню ***POP0 ***POP1 ***POP2 ***POP3 ***POP4 ***POP5 ***POP6 ... ***POP497 ***POP498 ***POP499
Стандартные меню Меню является частью стандартного файла меню 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. Номера строк не являются частью файла, а используются только в качестве ссылок.
Шаг 2: запись файла меню ***POP1 [DRAW] [LINE]*^C^CLINE [PLINE]^C^CPLINE [--] [CIR-C,R]^C^CCIRCLE [CIR-C,D]^C^CCIRCLE \D [CIR-2P]^C^CCIRCLE 2P [CIR-3P]^C^CCIRCLE 3P ***POP2 [EDIT] [ERASE]*^C^CERASE [MOVE]^C^CMOVE [COPY]^C^CCOPY [STRETCH]^C^CSTRETCH;C [EXTEND]^C^CEXTEND [OFFSET]^C^COFFSET ***POP3 [DISPLAY] [REDRAW]'REDRAW [REGEN]^C^CREGEN [--] [ZOOM-All]^C^CZOOM A [ZOOM-Window]'ZOOM-W [ZOOM-Prev]'ZOOM PREV [~Exit]^C ***POP4 [UTILITY] [SAVE]^C^CSAVE; [QUIT]^C^CQUIT [----] [PLOT]^C^CPLOT [EXIT]^C^CEXIT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Строка 1 ***POP1
Выражение 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 : 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 предоставляет ряд специальных символов, которые обеспечивают возможность использования каскадного расположения элементов. Например, символ -> определяет каскадное подменю, а символ
Символ, определяющий каскадное подменю; его необходимо ставить перед именем подменю. Пример: [-> Draw]
, который стоит перед названием пункта Linear, указывает на наличие второго подменю. Как показано на рис. 5.11, подменю Linear вложено в подменю Dimensions. Пункты меню, названия которых приведены в строках 10–15, входят в подменю Linear. В свою очередь, подменю Linear и Radial являются пунктами подменю Dimensions.
Рис. 5.11. Меню CIR-DIM-DISP с каскадным подменю Dimensions
Строка 16 [->Radial]
Эта строка определяет еще одно вложенное подменю, в которое вошли элементы, описанные в строках 17, 18 и 19.
Строка 19 [ и и, удерживая их нажатыми, нажмите кнопку координатно-указательного устройства
Одна из кнопок (обычно первая) используется в качестве кнопки указания, с помощью которой можно определить координаты экранного перекрестья и отправить эту информацию в программу 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
Подменю 2
1. Кнопка указания 2. Команда ENTER 3. Загрузка подменю OSNAPS 4. Загрузка подменю ZOOM1 5. Загрузка кнопочного подменю B1 6. Загрузка кнопочного подменю B2
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 : 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
***TABLET1 ^C^CLINE ^C^CPLINE ^C^CCIRCLE ^C^CCIRCLE;\D ^C^CCIRCLE;2P ***TABLET2 ^C^CERASE ^C^CZOOM;W ^C^CMOVE ^C^CZOOM;P ^C^CCOPY ^C^CZOOM;A ^C^COFFSET ^C^CPAN ***TABLET3 ; ; 'REDRAW 'REDRAW 'REDRAW ***TABLET4 5\ 6\ 7\
Рис. 8.9. Количество строк и столбцов в различных областях
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
252
Глава 8
8\ 9\ ,\ WINDOW 0\ 1\ 2\ 3\ 4\ .\ CROSSING
26 27 28 29 30 31 32 33 34 35 36
Строки 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
ZOOM-Win ZOOM-Dyn ZOOM-All ZOOM-Pre ZOOM-Ext ZOOM-Scl
DIM-Horz DIM-Vert DIM-Alig DIM-Ang DIM-Rad DIM-Cen
256
Глава 8
Упражнение 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 [ ]
1 2 3 4 5 6
268
Глава 9
[CIR-C,R ]^C^CCIRCLE [CIR-C,D ]^C^CCIRCLE;\D [CIR-2P ]^C^CCIRCLE;2P [ ] [ERASE ]^C^CERASE [MOVE ]^C^CMOVE
7 8 9 10 11 12
Пояснения Строка 1 ***SCREEN
Здесь ***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 : 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
276
Глава 9
**EDIT [ MENU-2 ]^C^C$S=SCREEN [******** ] [ ] [*-EDIT-* ] [ ] [ERASE: ]^C^CERASE [MOVE: ]^C^CMOVE [ROTATE: ]^C^CROTATE [OFFSET: ]^C^COFFSET [COPY: ]^C^CCOPY [SCALE: ]^C^CSCALE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]^C^C$S= [*-DRAW-* ]^C^C$S=DRAW
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
Пояснения Строка 1 ***SCREEN
Здесь ***SCREEN — метка раздела экранного меню.
Строка 2 [ MENU-2
]
Эта строка обеспечивает отображение надписи “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
MIRROR BREAK-F BREAK-@ EXTEND STRETCH FILLET-0 FILLET CHAMFER
Использование нескольких подменю В файле меню может содержаться любое количество подменю. Перед именем подменю ставятся две звездочки (**), что выполняется даже в том случае, если подменю вложено в другое подменю. С помощью одного оператора можно загрузить несколько подменю. Если элемент меню содержит несколько подменю, они должны быть разделены пустой строкой. Пример 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
282
Глава 9
[ -3P: ]^C^CARC \\DRAG [ -SCE: ]^C^CARC \C \DRAG [ -SCA: ]^C^CARC \C \A DRAG [ -CSE: ]^C^CARC C \\DRAG [ -CSA: ]^C^CARC C \\A DRAG [ CSL: ]^C^CARC C \\L DRAG [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-DISP-* ]$S=X $S=DISP **EDIT 3 [*-EDIT-* ] [ ] [EXTEND: ]^C^CEXTEND [STRETCH: ]^C^CSTRETCH;C [FILLET: ]^C^CFILLET [ Rad ]R;\Fillet [ Rad 0 ]R;0;\Fillet [FILLET0: ]^C^CFillet;R;0:: Win. Cross. Add Undo [ ] [*-PREV-* ]$S= $S= [*-DRAW-* ]^C^C$S=X $S=DRAW [*-DISP-* ]$S=X $S=DISP **DISP 3 [*-DISP-* ] [ ] [ZOOM: ]’ZOOM [ -ALL ]A [ -WIN ]W [ -PREV ]P [ -EXT ]E [ ] [SCALE: ]’ZOOM [PAN: ]’PAN [REGEN: ]^C^CREGEN [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-DRAW-* ]$S=X $S=DRAW **X 3 [ ] [ ] [ ] [ ] [ ] [ ] [ ]
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Экранные меню [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] **OSNAP 2 [*-OSNAPS-*] [ ] [Center ]CEN $S= [Endpoint ]END $S= [Insert ]INS $S= [Intersec ]INT $S= [Midpoint ]MID $S= [Nearest ]NEA $S= [Node ]NOD $S= [Perpend ]PER $S= [Quadrant ]QUA $S= [Tangent ]TAN $S= [None ]NONE $S= [ ] [ ] [ ] [ ] [ ] [*-PREV-* ] $S=
283 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
Пояснения Строка 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 [ ] [ ]
1 2 3 4 5 6
289
Экранные меню [DRAW [EDIT [ZOOM [LAYER
]^C^C$S=X $S=DRAW ]^C^C$S=X $S=EDIT ]^C^C$S=X $S=ZOOM ]^C^C$S=X $S=LAYER
**DRAW 3 [*-DRAW-* ] [ ] [ ] [LINE: ]$S=X $S=LINE ^C^CLINE [ARC: ]$S=X $S=ARC [CIRCLE: ]$S=X $S=CIRCLE ^C^CCIRCLE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-ZOOM-* ]$S=X $S=ZOOM **LINE 3 [LINE: ]^C^CLINE [ ] [ ] [ Continue ]^C^CLINE;; [ Close ]CLOSE [ Undo ]UNDO [ .X ].X [ .Y ].Y [ .Z ].Z [ .XY ].XY [ .XZ ].XZ [ .YZ ].YZ [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-ZOOM-* ]$S=X $S=ZOOM **ARC 3 [ARC ] [ ] [ -3P: ]^C^CARC \\DRAG [ -SCE: ]^C^CARC \C \DRAG [ -SCA: ]^C^CARC \C \A DRAG [ -CSE: ]^C^CARC C \\DRAG
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
290
Глава 9
[ -CSA: ]^C^CARC C \\A DRAG [ CSL: ]^C^CARC C \\L DRAG [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-ZOOM-* ]$S=X $S=ZOOM **CIRCLE 3 [CIRCLE: ] [ ] [ -C,R: ]^C^CCIRCLE [ -C,D: ]^C^CCIRCLE \D [ -2P: ]^C^CCIRCLE 2P [ -3P: ]^C^CCIRCLE 3P [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-ZOOM-* ]$S=X $S=ZOOM
**EDIT 3 [*-EDIT-* ] [ ] [ ] [ERASE ] [Quadrant ]QUA $S= [Tangent ]TAN $S= [None ]NONE $S= [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
Экранные меню [*-ZOOM-* ]$S=X $S=ZOOM **ERASE 3 [ERASE: [ ] Window Last Prev Cross Remove Add Undo [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* [*-EDIT-* [*-ZOOM-*
]^C^CERASE
]$S= $S= ]^C^C$S=X $S=EDIT ]$S=X $S=ZOOM
**ZOOM 3 [*-ZOOM-* ] [ ] [ ] [ZOOM: ]’ZOOM [ -ALL ]A [ -WIN ]W [ -PREV ]P [ -EXT ]E [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-DRAW-* ]$S=X $S=DRAW ***LAYER 3 [*-LAYER-* ] [ ] [ ] [LAYER: ]^C^CCLAYER Make New Set Linetype Color
291 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
292
Глава 9
[List ]?;; [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S= $S= [*-EDIT-* ]^C^C$S=X $S=EDIT [*-DRAW-* ]$S=X $S=DRAW **X 3 [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ]
**OSNAP 2 [*-OSNAPS-*] [ ] [Center ]CEN $S= [Endpoint ]END $S= [Insert ]INS $S= [Intersec ]INT $S= [Midpoint ]MID $S= [Nearest ]NEA $S= [Node ]NOD $S= [Perpend ]PER $S= [Quadrant ]QUA $S= [Tangent ]TAN $S= [None ]NONE $S= [ ] [ ] [ ] [ ] [ ] [*-PREV-* ]$S
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
Экранные меню ***TABLET1 $S=X $S=LINE ^C^CLINE $S=X $S=CIRCLE ^C^CCIRCLE $S=X $S=ARC ^C^CARC $S=X $S=ZOOM ^C^CZOOM $S=X $S=ERASE ^C^CERASE $S=X $S=LAYER ^C^CLAYER
293 214 215 216 217 218 219 220
Пояснения Строка 1 ***SCREEN
Здесь ***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
0.01 0,0 12,0 12,9 0,9 0,0
Экранные меню
295
Исходные параметры чертежа Шаг привязки Шаг сетки Лимиты Масштабировать
0.25 0.5 12,9 Все
Прежде чем записывать меню, следует познакомиться с командами, опциями и параметрами, которые вы будете вводить. Таким образом, в первую очередь вы должны изучить команды, используемые для установки исходных параметров чертежа.
Полилиния Command: PLINE Specify start point: 0,0 Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: Specify starting width : 0.01 Specify ending width : Нажмите клавишу <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
Привязка Command: SNAP Specify snap spacing or [ON/OFF/Aspect/Rotate/Sytle/Type] : 0.25
Определение команды 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 из нового экранного меню, это определение выполнит все ранее описанные функции.
Строка комбинированного экранного меню [-NSETUP-]PLINE;0,0;W;0.01;;12,0;12;9;C;+ SNAP;0.25;GRID;0.5;LIMITS;+ 0,0;12,9;ZOOM;A
Упражнение 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 Пробел выполняет ту же функцию, что и нажатие клавиши “пробел”
300
Глава 9
Символ \ _ + =* * $M= $S=CMDNAME ^B ^C ^D ^E ^G ^H ^O ^P ^Q ^T ^V ^Z
Описание Обратная косая черта, создающая паузу для ввода данных пользователем Символ подчеркивания, который переводит команды и зарезервированные слова 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\
] ] ] ]
[6]6\ [7]7\ [8]8\ [9]9\ [.].\ [,],\ [] [X]X\ [Y]Y [Z]Z\
Экранные меню
303
Элементы меню, работающие в режиме выбора одного объекта Функция выбора объекта, выполняемая с помощью опции 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).
Экранные меню
305
***screen [*DIESEL*] [DIESEL1:]^C^MODEMACRO;$M=Cust-Acad,N:$(GETVAR,DWGNAME),+ L:$(GETVAR,CLAYER); [DIESEL2:]^C^CMODEMACRO;$M=PLWID:$(GETVAR,PLINEWID),+ FRAD:$(GETVAR,FILLETRAD),OFFSET:$(GETVAR,OFFSETDIST),+ LTSCALE:$(GETVAR,LTSCALE); [DIESEL3:]^C^CMODEMACRO;$M=DTAD:$(GETVAR,DIMTAD),+ DTIX:$(GETVAR,DIMTIX),DSCALE:$(GETVAR,DIMSCALE);
Рис. 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)
***BUTTONS(n) ***AUX(n) ***MENUGROUP ***TOOLBARS ***HELPSTRING ***ACCELERATORS
n от 1 до 4 n от 1 до 499 n = 0, n от 500 до 999 n от 1 до 4 n от 1 до 4
Экранное меню Планшетное меню Мозаичное меню Раскрывающееся меню Меню быстрого вызова команд Меню координатно-указательного устройства Меню системного координатно-указательного устройства Имя группы файлов меню Определение панелей инструментов Текст, отображаемый в строке состояния Определения ускоряющих клавиш
Рис. 10.1. Окно программы, содержащей стандартное меню AutoCAD
Настройка стандартного меню AutoCAD
315
В следующем фрагменте листинга файла acad.mnu показаны метки некоторых разделов: /// // // //
AutoCAD 2002 Menu Dec. 15, 2000 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1994, 1996, 1997,1998, 1999, 2000, 2001 by Autodesk, Inc.
***MENUGROUP=ACAD // Кнопочные меню кодирующего преобразователя AutoCAD ***BUTTONS1 // Объект + кнопка // если ручка высвечена, вызовите контекстное меню (POP 500) // или выполните возврат каретки в исходное положение. // Если системная переменная SHORTCUTMENU не равна 0, // первый элемент (для кнопки 1) не используется. $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 // Клавиша <Shift> + кнопка $P0=SNAP $p0=* ***BUTTONS3 // Клавиша + кнопка ***BUTTONS4 // Клавиши + <Shift> + кнопка // Меню системного координатно-указательного устройства ***AUX1 // Объект + кнопка // если ручка высвечена, вызовите контекстное меню (POP 500) // или выполните возврат каретки в исходное положение. // Если системная переменная SHORTCUTMENU не равна 0, // первый элемент (для кнопки 1, "правой кнопки") не используется. $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,5),GRIP_),$P0=ACAD.GRIPS $P0=*); $P0=SNAP $p0=* ^C^C ^B ^O ^G ^D ^E ^T
316
Глава 10
***AUX2 // Клавиша <Shift> + кнопка $P0=SNAP $p0=* $P0=SNAP $p0=* ***AUX3 // Клавиша + кнопка $P0=SNAP $p0=* ***AUX4 // Клавиши + <Shift> + кнопка $P0=SNAP $p0=* ***POP0 **SNAP // Клавиша <Shift> + правая кнопка, если используются стандартные // меню AUX2 и/или BUTTONS2. [&Object Snap Cursor Menu] ID_Tracking [Temporary trac&k point]_tt ID_From [&From]_from ID_MnPointFi [->Poin&t Filters] ID_PointFilx [.X].X ID_PointFily [.Y].Y ID_PointFilz [.Z].Z | | ***POP1 **FILE ID_MnFile [&File] ID_New [&New...\tCtrl+N]^C^C_new ID_Open [&Open...\tCtrl+O]^C^C_open ID_DWG_CLOSE [&Close]^C^C_close ID_PartialOp [$(if,$(eq,$(getvar,fullopen),0),,~)Partia&l Load]^C^C_partiaload ID_Save [&Save\tCtrl+S]^C^C_qsave ID_Saveas [Save &As...]^C^C_saveas ID_ETransmit [e&Transmit...]^C^C_etransmit ID_Publish [Publish to &Web...]^C^C_publishtoweb ID_Export [&Export...]^C^C_export | | ***POP2 **EDIT ID_MnEdit [&Edit] ID_U [&Undo\tCtrl+Z]_u ID_Redo [&Redo\tCtrl+Y]^C^C_redo [--] ID_Cutclip [Cu&t\tCtrl+X]^C^C_cutclip ID_Copyclip [&Copy\tCtrl+C]^C^C_copyclip ID_Copybase [Copy with &Base Point]^C^C_copybase ID_Copylink [Copy &Link]^C^C_copylink
Настройка стандартного меню AutoCAD | | ***POP3 **VIEW ID_MnView [&View] ID_Redrawall [&Redraw]'_redrawall ID_Regen [Re&gen]^C^C_regen ID_Regenall [Regen &All]^C^C_regenall 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 | | ***POP5 **FORMAT ID_MnFormat [F&ormat] ID_Layer [&Layer...]'_layer ID_Ddcolor [&Color...]'_color ID_Linetype [Li&netype...]'_linetype ID_Linewt [Line&weight...]'_lweight | | ***POP6 **TOOLS ID_MnTools [&Tools] ID_Today [&Today]^C^C_Today ID_PointA [&Autodesk Point A]^C^C_^C^C_browser http://pointa.autodesk.com ID_MeetNow [&Meet Now]^C^C_MeetNow ID_MnCadStd [->CAD &Standards] ID_Standards [&Configure...]^C^C_standards | | ***POP7 **DRAW ID_MnDraw [&Draw] ID_Line [&Line]^C^C_line ID_Ray [&Ray]^C^C_ray ID_Xline [Cons&truction Line]^C^C_xline ID_Mline [&Multiline]^C^C_mline
317
318
Глава 10
ID_Pline [&Polyline]^C^C_pline ID_Polygon [Pol&ygon]^C^C_polygon ID_Rectang [Rectan&gle]^C^C_rectang | | ***POP8 **DIMENSION ID_MnDimensi [Dime&nsion] ID_QDim [&Quick Dimension]^C^C_qdim [--] ID_Dimlinear [&Linear]^C^C_dimlinear ID_Dimaligne [Ali&gned]^C^C_dimaligned ID_Dimordina [&Ordinate]^C^C_dimordinate [--] ID_Dimradius [&Radius]^C^C_dimradius ID_Dimdiamet [&Diameter]^C^C_dimdiameter ID_Dimangula [&Angular]^C^C_dimangular | | ***POP9 **MODIFY ID_MnModify [&Modify] ID_Ai_propch [&Properties]^C^C_properties ID_Matchprop [&Match Properties]'_matchprop ID_MnObject [->&Object] ID_MnExterna [->&External Reference] ID_Xbind [&Bind...]^C^C_xbind ID_Xclipfram [&Image] ID_Imageadju [&Adjust...]^C^C_imageadjust ID_Imagequal [&Quality]^C^C_imagequality ID_Transpare [&Transparency]^C^C_transparency | | ***POP10 **WINDOW ID_MnWindow [&Window] ID_DWG_CLOSE [Cl&ose]^C^C_close ID_WINDOW_CLOSEALL [C&lose All]^C^C_closeall ID_WINDOW_CASCADE [&Cascade]^C^C_syswindows;_cascade ID_WINDOW_TILE_HORZ [Tile &Horizontally]^C^C_syswindows;_hor | | ***POP11 **HELP ID_MnHelp [&Help] ID_Help [&Help\tF1]'_help ID_ASSIST [&Active Assistance]'_ASSIST ID_DevHelp [&Developer Help]^C^C^P(help "acad_dev" "") ^P ID_Support [&Support Assistance]^C^C^P(help "acad" "asa") ^P
Настройка стандартного меню AutoCAD
319
ID_WhatsNew [&What's New]^C^C^P(progn (help "acadwnew")(princ)) ^P ID_LAssist [&Learning Assistance]^C^C^P(help "acad" "elearning") ^P ID_AUGI [Autodesk &User Group International]^C^C^P(command "_browser" (findfile "augi.htm")) ^P | | ***POP500 **GRIPS // Когда выбрана ручка и нажата правая кнопка мыши, на экране // отображается следующее контекстное меню. См. также меню AUX1. // [&Grips Cursor Menu] ID_Enter [&Enter]; ID_GripMove [&Move]_move ID_GripMirro [M&irror]_mirror ID_GripRotat [&Rotate]_rotate ID_GripScale [Sca&le]_scale | | ***POP501 **CMDEFAULT [Контекстное меню режима по умолчанию] ID_CMNonLast [&Repeat %s]^C^C; ID_Cutclip [Cu&t]^C^C_cutclip ID_Copyclip [&Copy]^C^C_copyclip ID_Copybase [Copy with &Base Point]^C^C_copybase ID_Pasteclip [&Paste]^C^C_pasteclip ID_Pastebloc [Paste as Bloc&k]^C^C_pasteblock ID_Pasteorig [Paste to Original Coor&dinates]^C^C_pasteorig | | ***POP502 **CMEDIT [Контекстное меню режима редактирования] ID_CMSelLast [&Repeat %s]^C^C; ID_Cutclip [Cu&t]^C^C_cutclip ID_Copyclip [&Copy]^C^C_copyclip ID_Copybase [Copy with &Base Point]^C^C_copybase ID_Pasteclip [&Paste]^C^C_pasteclip ID_Pastebloc [Paste as Bloc&k]^C^C_pasteblock ID_Pasteorig [Paste to Original Coor&dinates]^C^C_pasteorig | | ***POP503 **CMCOMMAND [Контекстное меню командного режима] ID_Enter [&Enter]; ID_Cancel [&Cancel]^C | | ***POP504 **OBJECTS_DIMENSION [Контекстное меню размерных объектов] ID_DimText [->Dim Te&xt position] ID_DimAbove [&Above dim line]^C^C_ai_dim_textabove ID_DimTxtCen [&Centered]^C^C_ai_dim_textcenter
320
Глава 10
ID_DimHome [&Home text]^C^C_ai_dim_texthome ID_DimTxtMove2 [&Move text alone]^C^C_aidimtextmove _2 | | ***POP505 **OBJECT_VIEWPORT [Контекстное меню видовых экранов] ID_VpClip [&Viewport Clip]^C^C_vpclip ID_Vport_disp [->&Display Viewport Objects] ID_Vport_dispon [&Yes]^C^C_-vports _on _p;; ID_Vport_dispoff [Display &Locked] | | ***POP506 **OBJECTS_XREF [Контекстное меню объектов XREF] ID_Xclip [Xref Cl&ip]^C^C_xclip ID_XRef [Xref Ma&nager...]^C^C_xref ***POP507 **OBJECT_MTEXT [Контекстное меню объекта MTEXT] ID_Mtedit [Mtext Ed&it...]^C^C_mtedit ***POP508 **OBJECT_TEXT [Контекстное меню объекта TEXT] ID_Ddedit [Text Ed&it...]^C^C_ddedit ***POP509 **OBJECT_HATCH [Контекстное меню объекта HATCH] ID_Hatchedit [&Hatch Edit...]^C^C_hatchedit ***POP510 **OBJECT_LWPOLYLINE [Контекстное меню объекта PLINE] ID_Pedit [Polyline Ed&it]^C^C_pedit ***POP511 **OBJECT_SPLINE [Контекстное меню объекта SPLINE] ID_Splinedit [Spline Ed&it]^C^C_splinedit | | ***TOOLBARS **TB_DIMENSION ID_TbDimensi [_Toolbar("Dimension", _Floating, _Hide, 100, 130, 1)] ID_Dimlinear [_Button("Linear Dimension", RCDATA_16_DIMLIN, RCDATA_16_DIMLIN)]^C^C_dimlinear ID_Dimaligne [_Button("Aligned Dimension", RCDATA_16_DIMALI, RCDATA_16_DIMALI)]^C^C_dimaligned ID_Dimordina [_Button("Ordinate Dimension", RCDATA_16_DIMORD, RCDATA_16_DIMORD)]^C^C_dimordinate [--] ID_Dimradius [_Button("Radius Dimension", RCDATA_16_DIMRAD, RCDATA_16_DIMRAD)]^C^C_dimradius
Настройка стандартного меню AutoCAD ID_Dimdiamet [_Button("Diameter Dimension", RCDATA_16_DIMDIA, RCDATA_16_DIMDIA)]^C^C_dimdiameter ID_Dimangula [_Button("Angular Dimension", RCDATA_16_DIMANG, RCDATA_16_DIMANG)]^C^C_dimangular [--] | | **TB_DRAW ID_TbDraw [_Toolbar("Draw", _Left, _Show, 0, 0, 1)] ID_Line [_Button("Line", RCDATA_16_LINE, RCDATA_16_LINE)]^C^C_line ID_Xline [_Button("Construction Line", RCDATA_16_XLINE, RCDATA_16_XLINE)]^C^C_xline ID_Pline [_Button("Polyline", RCDATA_16_PLINE, RCDATA_16_PLINE)]^C^C_pline | | **TB_INQUIRY ID_TbInquiry [_Toolbar("Inquiry", _Floating, _Hide, 100, 170, 1)] ID_Dist [_Button("Distance", RCDATA_16_DIST, RCDATA_16_DIST)]'_dist ID_Area [_Button("Area", RCDATA_16_AREA, RCDATA_16_AREA)]^C^C_area ID_Massprop [_Button("Region/Mass Properties", RCDATA_16_MASSPR, RCDATA_16_MASSPR)]^C^C_massprop [--] ID_List [_Button("List", RCDATA_16_LIST, RCDATA_16_LIST)]^C^C_list ID_Id [_Button("Locate Point", RCDATA_16_ID, RCDATA_16_ID)]'_id **TB_INSERT ID_TbInsert [_Toolbar("Insert", _Floating, _Hide, 100, 190, 1)] ID_Ddinsert [_Button("Insert Block", RCDATA_16_DINSER, RCDATA_16_DINSER)]^C^C_insert [--] ID_Xref [_Button("External Reference", RCDATA_16_XREATT, RCDATA_16_XREATT)]^C^C_xref | | **TB_LAYOUTS ID_TbLayouts [_Toolbar("Layouts", _Floating, _Hide, 100, 350, 1)] ID_LayNew [_Button("New Layout", RCDATA_16_LAYNEW, RCDATA_16_LAYNEW)]^C^C_layout _n ID_LayTemp [_Button("Layout from Template", RCDATA_16_LAYTEM, RCDATA_16_LAYTEM)]^C^C_layout _t ID_PlotSetup [_Button("Page Setup", RCDATA_16_PLTSET, RCDATA_16_PLTSET)]^C^C_pagesetup ID_VpDialog [_Button("Display Viewports Dialog", RCDATA_16_VPDLG, RCDATA_16_VPDLG)]^C^C_vports **TB_MODIFY ID_TbModify [_Toolbar("Modify", _Left, _Show, 1, 0, 1)] ID_Erase [_Button("Erase", RCDATA_16_ERASE, RCDATA_16_ERASE)]^C^C_erase ID_Copy [_Button("Copy Object", RCDATA_16_COPYOB,
321
322
Глава 10
RCDATA_16_COPYOB)]$M=$(if,$(eq,+$(substr,$(getvar,cmdnames),1,4),grip), _copy, ^C^C_copy) ID_Mirror [_Button("Mirror", RCDATA_16_MIRROR, RCDATA_16_MIRROR)] _$M=$(if,$(eq,+$(substr,$(getvar,cmdnames),1,4),grip), _mirror,^C^C_mirror) | | **TB_MODIFY_II ID_TbModifII [_Toolbar("Modify II", _Floating, _Hide, 100, 270, 1)] ID_Draworder [_Button("Draworder",RCDATA_16_DRWORD, RCDATA_16_DRWORD)]^C^C_draworder [--] ID_Hatchedit [_Button("Edit Hatch", RCDATA_16_HATEDI, RCDATA_16_HATEDI)]^C^C_hatchedit | | **TB_OBJECT_PROPERTIES ID_TbObjectP [_Toolbar("Object Properties", _Top, _Show, 0, 1, 1)] ID_CtrlColor [_Control(_Color)] [--] ID_CtrlLinet [_Control(_Linetype)] [--] ID_CtrlLineW [_Control(_Lineweight)] [--] ID_CtrlPStyl [_Control(_PlotStyle)] **TB_LAYER ID_TbLayer [_Toolbar("Layers", _Top, _Show, 1, 1, 1)] ID_Layer [_Button("Layer Properties Manager", RCDATA_16_LAYERS, RCDATA_16_LAYERS)]'_layer ID_CtrlLayer [_Control(_Layer)] ID_Ai_molc [_Button("Make Object's Layer Current", RCDATA_16_MOLC, RCDATA_16_MOLC)]^C^C_ai_molc ID_LayerP [_Button("Layer Previous", RCDATA_16_LAYERP, RCDATA_16_LAYERP)]^C^C_LayerP | | **TB_STYLES ID_TbStyles [_Toolbar("Styles", _Top, _Show, 1, 0,1)] ID_Style [_Button("Text Style Manager", RCDATA_16_TXTSTYLE, RCDATA_16_TXTSTYLE)]'_style ID_TxtStyle [_Control(_txtstyle)] [--] ID_Ddim [_Button("Dimension Style Manager", RCDATA_16_DIMSTY, RCDATA_16_DIMSTY)]'_dimstyle ID_DimStyle [_Control(_dimstyle)] | | **TB_OBJECT_SNAP ID_TbOsnap [_Toolbar("Object Snap", _Floating, _Hide, 100, 210, 1)] ID_Tracking [_Button("Temporary Tracking Point", RCDATA_16_OSNTMP,
Настройка стандартного меню AutoCAD RCDATA_16_OSNTMP)]_tt ID_From [_Button("Snap From", RCDATA_16_OSNFRO, RCDATA_16_OSNFRO)]_from [--] ID_OsnapEndp [_Button("Snap to Endpoint", RCDATA_16_OSNEND, RCDATA_16_OSNEND)]_endp | | **TB_ORBIT ID_TbOrbit [_Toolbar("3D Orbit", _Floating, _Hide, 100, 350, 1)] ID_3dpan [_Button("3D Pan", RCDATA_16_3DPAN, RCDATA_16_3DPAN)]'_3dpan ID_3dzoom [_Button("3D Zoom", RCDATA_16_3DZOOM, RCDATA_16_3DZOOM)]'_3dzoom ID_3dorbit [_Button("3D Orbit", RCDATA_16_3DORBIT, RCDATA_16_3DORBIT)]'_3dorbit | | **TB_SHADING ID_TbShading [_Toolbar("Shade", _Floating, _Hide, 100, 390, 1)] ID_2doptim [_Button("2D Wireframe", RCDATA_16_2DOPTIM, | | **TB_REFEDIT ID_TbRefedit [_Toolbar("Refedit", _Floating, _Hide, 100, 170, 1)] ID_RefEditor [_Button("Edit block or Xref", RCDATA_16_REFED_EDIT, RCDATA_16_REFED_EDIT)]^C^C_refedit; | | **TB_REFERENCE ID_TbReferen [_Toolbar("Reference", _Floating, _Hide, 100, 370, 1)] ID_Xref [_Button("External Reference", RCDATA_16_XREATT, RCDATA_16_XREATT)]^C^C_xref ID_Xattach [_Button("External Reference Attach", RCDATA_16_XATTAC, RCDATA_16_XATTAC)]^C^C_xattach ID_Xclip [_Button("External Reference Clip", RCDATA_16_XRECLI,RCDATA_16_XRECLI)]^C^C_xclip | | **TB_RENDER ID_TbRender [_Toolbar("Render", _Floating, _Hide, 100, 230, 1)] ID_Hide [_Button("Hide", RCDATA_16_HIDE, RCDATA_16_HIDE)]^C^C_hide [--] ID_Render [_Button("Render", RCDATA_16_RENDER, RCDATA_16_RENDER)]^C^C_render | | **TB_SOLIDS ID_TbSolids [_Toolbar("Solids", _Floating, _Hide, 100, 250, 1)] ID_Box [_Button("Box", RCDATA_16_BOX, RCDATA_16_BOX)]^C^C_box
323
324
Глава 10
ID_Sphere [_Button("Sphere", RCDATA_16_SPHERE, RCDATA_16_SPHERE)]^C^C_sphere ID_Cylinder [_Button("Cylinder", RCDATA_16_CYLIND, RCDATA_16_CYLIND)]^C^C_cylinder | | **TB_SOLIDS2 ID_TbSolids2 [_Toolbar("Solids Editing", _Floating, _Hide, 100, 250, 1)] ID_Union [_Button("Union", RCDATA_16_UNION, RCDATA_16_UNION)]^C^C_union ID_Subtract [_Button("Subtract", RCDATA_16_SUBTRA, RCDATA_16_SUBTRA)]^C^C_subtract ID_Intersect [_Button("Intersect", RCDATA_16_INTERS, RCDATA_16_INTERS)]^C^C_intersect | | **TB_STANDARD ID_TbStandar [_Toolbar("Standard Toolbar", _Top, _Show, 0, 0, 1)] ID_QNew [_Button("New", RCDATA_16_NEW, RCDATA_16_NEW)]^C^C_new ID_Open [_Button("Open", RCDATA_16_OPEN, RCDATA_16_OPEN)]^C^C_open ID_Save [_Button("Save", RCDATA_16_SAVE, RCDATA_16_SAVE)]^C^C_qsave | | **TB_SURFACES ID_TbSurface [_Toolbar("Surfaces", _Floating, _Hide, 100, 290, 1)] ID_Solid [_Button("2D Solid", RCDATA_16_SOLID, RCDATA_16_SOLID)]^C^C_solid ID_3dface [_Button("3D Face", RCDATA_16_3DFACE, RCDATA_16_3DFACE)]^C^C_3dface | | **TB_TEXT ID_TbText [_Toolbar("Text", _Floating, _Hide, 100, 320, 1)] ID_Mtext [_Button("Multiline Text", RCDATA_16_MTEXT, RCDATA_16_MTEXT)]^C^C_mtext ID_Dtext [_Button("Single Line Text", RCDATA_16_SINGLE_DTEXT, RCDATA_16_SINGLE_DTEXT]^C^C_dtext ID_Ddedit [_Button("Edit Text", RCDATA_16_TEXEDI, RCDATA_16_TEXEDI)]^C^C_ddedit | | **TB_UCS ID_TbUcs [_Toolbar("UCS", _Floating, _Hide, 100, 310, 1)] ID_Ucs [_Button("UCS", RCDATA_16_UCS, RCDATA_16_UCS)]^C^C_ucs ID_Dducs [_Button("Display UCS Dialog", RCDATA_16_DDUCS, RCDATA_16_DDUCS)]^C^C_+ucsman 0 | | **TB_UCSII ID_TbUcsName [_Toolbar("UCS II", _Floating, _Hide, 100, 300, 1)]
Настройка стандартного меню AutoCAD ID_Dducs [_Button("Display UCS Dialog",RCDATA_16_DDUCS, RCDATA_16_DDUCS)]^C^C_+ucsman 0 ID_UcsMove [_Button("Move UCS Origin", RCDATA_16_UCSMOVE, RCDATA_16_UCSMOVE)]^C^C_ucs _move [--] ID_UcsCombo [_Control(_UCSManager)] **TB_VIEWPOINT ID_TbViewpoi [_Toolbar("View", _Floating, _Hide, 100, 330, 1)] ID_Ddview [_Button("Named Views", RCDATA_16_DDVIEW, RCDATA_16_DDVIEW)]^C^C_view [--] ID_VpointTop [_Button("Top View", RCDATA_16_VIETOP, RCDATA_16_VIETOP)]^C^C_-view _top ID_VpointBot [_Button("Bottom View", RCDATA_16_VIEBOT, RCDATA_16_VIEBOT)]^C^C_-view _bottom | | **TB_VIEWPORTS ID_TbVpCreat [_Toolbar("Viewports", _Floating, _Hide, 100, 350, 1)] ID_VpDialog [_Button("Display Viewports Dialog", RCDATA_16_VPDLG, RCDATA_16_VPDLG)]^C^C_vports ID_VpSingle [_Button("Single Viewport", RCDATA_16_VPONE, RCDATA_16_VPONE)]$M=$(if,$(eq,$(getvar,tilemode),1), ^C^C_-vports _si,^C^C_-vports) | | **TB_WEB ID_TbWeb [_Toolbar("Web", _Floating, _Hide, 100, 380, 1)] ID_HlnkBack [_Button("Go Back", RCDATA_16_HLNK_BACK, RCDATA_16_HLNK_BACK)]'_hyperlinkBack ID_HlnkFwd [_Button("Go Forward", RCDATA_16_HLNK_FWD, RCDATA_16_HLNK_FWD)]'_hyperlinkFwd ID_HlnkStop [_Button("Stop Navigation", RCDATA_16_HLNK_STOP, RCDATA_16_HLNK_STOP)]'_hyperlinkStop ID_Browser [_Button("Browse the Web", RCDATA_16_WEB, RCDATA_16_WEB)]^C^C_browser ; **TB_ZOOM ID_TbZoom [_Toolbar("Zoom", _Floating, _Hide, 100, 350, 1)] ID_ZoomWindo [_Button("Zoom Window", RCDATA_16_ZOOWIN, RCDATA_16_ZOOWIN)]'_zoom _w ID_ZoomDynam [_Button("Zoom Dynamic", RCDATA_16_ZOODYN, RCDATA_16_ZOODYN)]'_zoom _d ID_ZoomScale [_Button("Zoom Scale", RCDATA_16_ZOOSCA, RCDATA_16_ZOOSCA)]'_zoom _s | | ***image **image_3DObjects [3D Objects]
325
326
Глава 10
[acad(Box3d,Box3d)]^C^C_ai_box [acad(Pyramid,Pyramid)]^C^C_ai_pyramid [acad(Wedge,Wedge)]^C^C_ai_wedge | | **image_poly [Set Spline Fit Variables] [acad(pm-quad,Quadric Fit Mesh)]'_surftype 5 [acad(pm-cubic,Cubic Fit Mesh)]'_surftype 6 [acad(pm-bezr,Bezier Fit Mesh)]'_surftype 8 [acad(pl-quad,Quadric Fit Pline)]'_splinetype 5 [acad(pl-cubic,Cubic Fit Pline)]'_splinetype 6 **image_vporti [Tiled Viewport Layout] [acad(vport-1,Single)]^C^C(ai_tiledvp 1 nil) [acad(vport-3v,Three: Vertical)]^C^C(ai_tiledvp 3 "_V") [acad(vport-3h,Three: Horizontal)]^C^C(ai_tiledvp 3 "_H") [acad(vport-4,Four: Equal)]^C^C(ai_tiledvp 4 nil) | | ***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 [FORMAT ]$S=ACAD.06_FORMAT [TOOLS 1 ]$S=ACAD.07_TOOLS1 [TOOLS 2 ]$S=ACAD.08_TOOLS2 [DRAW 1 ]$S=ACAD.09_DRAW1 [DRAW 2 ]$S=ACAD.10_DRAW2 [DIMNSION]$S=ACAD.11_DIMENSION [MODIFY1 ]$S=ACAD.12_MODIFY1 [MODIFY2 ]$S=ACAD.13_MODIFY2 | | // Меню SNAP_TO может вызвано на дисплеях с высоким разрешением, // обеспечивающих отображение опций объектной привязки в нижней // части экранного меню. Чтобы добавить строки в нижнюю часть // главного меню, удалите следующую строку. **SNAP_TO 28 [Endpoint]_endp [Midpoint]_mid [Intersec]_int [App Int ]_appint
Настройка стандартного меню AutoCAD | | **ASSIST 3 [Last ]_l [Previous]_p [All ]_all [Cpolygon]_cp [Wpolygon]_wp | | **01_FILE 3 [New ]^C^C_new [Open ]^C^C_open [Qsave ]^C^C_qsave [Saveas ]^C^C_saveas | | **02_EDIT 3 [Undo ]^C^C_u [Redo ]^C^C_redo [Cut ]^C^C_cutclip [Copy ]^C^C_copyclip [CopyBase]^C^C_copybase [CopyLink ]^C^C_copylink [Paste ]^C^C_pasteclip [PasteBlk]^C^C_pasteblock [PasteOri]^C^C_pasteorig [PasteSpe ]^C^C_pastespec [OLElinks]^C^C_olelinks | | **03_VIEW1 3 [Redraw ]'_redraw [Redrawal]'_redrawall [Regen ]^C^C_regen [Regenall]^C^C_regenall [Zoom ]'_zoom [Pan ]'_pan [Dsviewer]'_dsviewer [Tilemode]^C^C_tilemode [Mspace ]^C^C_mspace [Pspace ]^C^C_pspace | | **04_VIEW2 3 [Hide ]^C^C_hide [Shade ]^C^C_shademode [Render ]^C^C_render [Scene ]^C^C_scene [Light ]^C^C_light
327
328
Глава 10
[Mapping ]^C^C_setuv [Backgrnd]^C^C_background [Fog ]^C^C_fog | | **05_INSERT 3 [Ddinsert]^C^C_insert [Xref ]^C^C_xref [Image ]^C^C_image | | **06_FORMAT 3 [Layer ]'_layer [Color ]'_color [Linetype]'_linetype [Style ]'_style [Ddim ]'_dimstyle [Ddptype ]'_ddptype [Mlstyle ]^C^C_mlstyle [Units ]'_units [Thicknes]'_thickness [Limits ]'_limits [Rename ]^C^C_rename | | **ENDSCREEN | | ***TABLET1 **TABLET1STD [A-1]\ [A-2]\ [A-3]\ [A-4]\ [A-5]\ [A-6]\ [A-7]\ [A-8]\ [A-9]\ [A-10]\ | | ***TABLET2 **TABLET2STD ^C^C_regen '_zoom _e '_zoom _a '_zoom _w
Настройка стандартного меню AutoCAD
329
'_zoom _p [Draw]\ | | ***TABLET3 **TABLET3STD | | | &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 [Insert-Blocks] Символ ->, содержащийся в этой строке, определяет каскадное подменю. При выборе этого элемента из меню РОР3, программа AutoCAD отобразит соответствующее подменю рядом с основным меню. [: 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
SYMBOL-Y LOGO-2 TBLOCK-2
SYMBOL-Z LOGO-3 TBLOCK-3
Ответы на вопросы для самопроверки 1 — автоматически, 2 — 25 столбцов, 9 строк, 3 — прямоугольную, 4 — $P0=*, 5 — 11 столбцов, 9 строк, 6 — отображена на экране, 7 — к повреждению меню, 8 — восемь, 9 — 9 столбцов, 13 строк, 10 — меньше, 11 — 25 столбцов, 4 строки.
Глава 11
Геометрические фигуры и текстовые шрифты Цель занятия Познакомившись с материалом этой главы, вы научитесь: • записывать определения геометрических фигур; • записывать файлы геометрических фигур, используя длины и коды направления векторов; • компилировать и загружать файлы фигур и шрифтов; • определять формы с помощью специальных кодов; • записывать файлы текстовых шрифтов.
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 : Число или точка Specify rotation angle : Число или точка
Рис. 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.
Геометрические фигуры и текстовые шрифты
381
*210,10,PO1 005,005,005,012,006,014,006,016,006,0 *211,8,SUB1 020,007,210,030,007,210,020,0
Здесь • *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.11. Вычисление коэффициента криволинейности
Рис. 11.12. Геометрические параметры дуг, образующих данную фигуру
386
Глава 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
пробел ! “ # $ % & , ( ) * + ‘ . / 0 1 2 3 4 5 6 7
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
8 9 : ; < = > ? @ A B C D E F G H I J K L M N O
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
P Q R S T U V W X Y Z [ \ ] ^ _ ‘ a b c d e f g
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
h i j k l m n o p q r s t u v w x y z { | } ~
392
Глава 11
Пример 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) активизирует режим рисования (перо опущено), а остальные байты определяют геометрические параметры следующих семи векторов.
Строки 9, 10, 11 003,2, 009,(0,17),(-7,-11),(-2,0),(-7,11), (0,-17),(-2,0),(0,0),
Высота внутренней вертикальной линии, которая образует правую “ножку” прописной буквы “М”, равна 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 : 1 Specify width factor : <Enter> Specify obliquing angle : <Enter> Display text backwards? [Yes/No] : <Enter> Display text upside-down? [Yes/No] : <Enter> Vertical? : <Enter> ◊◊◊ Полное имя шрифта или файловое имя шрифта (TTF или SHX) : ucm.shx Высота текста : 1 Коэффициент ширины : Нажмите клавишу <Enter> Угол наклона : Нажмите клавишу <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.
406
Глава 12
Примеры Command: Command: Command: Command: Command:
(((((-
28 14) 25 7 11) 50 20 10,0) 20 30) 20,0 30,0)
возвращает 17 возвращает 7 возвращает 20,0 возвращает –10 возвращает –10,0
Умножение Формат: (* число1 число2 число3 ...)
Эта функция (*) вычисляет произведение чисел, расположенных справа от звездочки (*), т.е. выполняет операцию (число1 × число2 × число3 × ...). Если сомножители являются целыми, полученный результат также будет целым числом. Если хотя бы один из сомножителей является вещественным числом, произведение чисел также будет вещественным. Примеры Command: Command: Command: Command: Command:
(* (* (* (* (*
2 5) 2 5 3) 2 5 3 2,0) 2 -5,5) 2,0 -5,5 -2)
возвращает 10 возвращает 30 возвращает 60,0 возвращает –11 возвращает 22,0
Деление Формат: (/ число1 число2 число3 ...)
Эта функция (/) делит первое число на второе (число1/число2). Если в скобках находится более двух чисел, то первое число делится на произведение второго и всех последующих чисел [число1/(число2 × число3 ×...)]. В четвертом примере число 200 делится на произведение чисел 5,0 и 4, т.е. выполняется операция [200/(5,0 × 4)]. Примеры Command: Command: Command: Command: Command: Command:
(/ (/ (/ (/ (/ (*
30) 3 2) 3,0 2) 200,0 5,0 4) 200 -5) -200 -5,0)
возвращает 30 возвращает 1 возвращает 1,5 возвращает 10,0 возвращает –40 возвращает 40,0
Возрастающие и убывающие числа и абсолютное значение числа Возрастающие числа Формат: (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)
возвращает 0 возвращает 1,22461Е–016 возвращает 0,866027
Функция косинус (cos) Формат: (cos угол)
Функция косинус (cos) вычисляет косинус угла, выраженного в радианах. В третьем примере эта функция вычисляет косинус угла π (180 градусов) и возвращает –1,0.
408
Глава 12
Примеры (cos (cos (cos (cos
0) 0,0) pi) 1,0)
возвращает 1,0 возвращает 1,0 возвращает –1,0 возвращает 0,540302
Функция арктангенс (atan) Формат: (atan число1)
Функция atan вычисляет арктангенс числа1 и возвращает угол, выраженный в радианах. Во втором примере эта функция вычисляет арктангенс числа 1,0 и возвращает 0,785398 радиан. Примеры Command: (atan 0,5) Command: (atan 1,0) Command: (atan -1,0)
возвращает 0,463648 радиан возвращает 0,785398 радиан возвращает –0,785398 радиан
Функция atan позволяет также определить второе число. Формат: (atan число1 число2)
Если второе число определено, функция вычисляет арктангенс отношения (число1/ число2) и возвращает угол, выраженный в радианах. В первом примере первое число (0,5) делится на второе число (1,0) и функция atan вычисляет арктангенс делимого (0,5/1,0 = 0,5). Примеры Command: Command: Command: Command: Command:
(atan (atan (atan (atan (atan
0,5 1,0) 2,0 3,0) 2,0 -3,0) -2,0 3,0) -2,0 -3,0)
Command: (atan 1,0 0,0) Command: (atan -0,5 0,0)
возвращает 0,463648 радиан возвращает 0,588003 радиан возвращает 2,55359 радиан возвращает –0,588003 радиан возвращает –2,55359 радиан возвращает 1,5708 радиан возвращает –1,5708 радиан
Функция angtos Формат: (angtos угол [режим [точность]])
Функция angtos возвращает угол, выраженный в радианах, в строковом формате. Формат строкового выражения определяется параметрами режим и точность. Примеры (angtos (angtos (angtos (angtos
0,588003 0 4) 2,55359 0 4) 1,5708 0 4) -1,5708 0 2)
возвращает “33,6901” возвращает “146,3099” возвращает “90,0002” возвращает “270,00”
Использование AutoLISP
409
Примечание Функция angtos имеет формат (angtos угол [режим [точность]]), где угол — угол, выраженный в радианах, а режим — режим функции, определяемый значением системной переменной AUNITS. В программе AutoCAD существуют следующие режимы: Режим
Формат отображения
0 1 2 3 4
Десятичные градусы Градусы/минуты/секунды Градиенты Радианы Геодезические единицы
Точность — целое число, определяющее количество знаков после запятой. Степень точности определяется значением системной переменной AUPREC. Минимальное значение параметра точность — 0, его максимальное значение равно четырем. В первом примере задан угол 0,588003 радиан, режим 0 (угол выражается в градусах) и точность 4 (четыре знака после запятой). Функция возвратит значение 33,6901.
Операторы отношения Как правило, многие программы включают в себя функции, которые проверяют выполнение тех или иных условий. Если данное утверждение справедливо, программа выполняет ряд определенных операций; если же это утверждение не является истинным, выполняются другие действия или операции. Например, реляционный оператор (if (< x 5)) проверяет, является ли значение переменной x меньше 5. Проверяемые условия такого типа довольно часто используются в программировании. В следующем разделе вы познакомитесь с различными реляционными операторами, которые используются в языке программирования AutoLISP.
Функция “равно” Формат: (= элемент1 элемент2 ...)
Эта функция (=) проверяет равенство элементов, указанных в скобках (элемент1 и элемент2). Если эти элементы равны, функция возвращает значение T. Если это условие не выполняется, функция возвращает значение nil. Примеры (= (= (= (= (=
5 5) 5 4.9) 5.5 5.5 5.5) "yes" "yes") "yes" "yes" "no")
возвращает “T” возвращает “nil” возвращает “T” возвращает “T” возвращает “nil”
Функция “не равно” Формат: (/= элемент1 элемент2 ... )
Эта функция (/=) проверяет равенство элементов, указанных в скобках (элемент1 и элемент2). Если эти элементы не равны, заданное условие выполняется и функция возвращает значение T. Если данные элементы равны, функция возвращает значение nil.
410
Глава 12
Примеры (/= (/= (/= (/=
50 4) 50 50) 50 -50) "yes" "no")
возвращает “T” возвращает “nil” возвращает “T” возвращает “T”
Функция “меньше” Формат: (=элемент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
"cmdecho" 0) "dimscale" 1.5) "ltscale" 0.5) "dimcen" -0.25)
Пример 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.
Рис. 12.6. Концентрические окружности, соединенные отрезком
Функция 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
'(2.5 3 56)) '(x y z)) '((15 20) 56)) '( ))
возвращает (3 56) возвращает (Y Z) возвращает (56) возвращает “nil”
Функция 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.
Строка 9 (setq p3 (getpoint "Enter opposite corner")"(terpri)
Функция 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.
434
Глава 12
Примеры (getvar) (getvar "dimcen") (getvar "ltscale") (getvar "limmax") (getvar "limmin")
возвращает значение 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
89) -356) intnum 7) (itoa intnum) intnum 345) (setq intstrg (itoa intnum))
возвращает “89” возвращает “–356” возвращает “7” возвращает “345”
Функция rtos Функция rtos преобразует вещественное число в строковое выражение и возвращает его в виде текстовой строки. Функция rtos имеет следующий формат: (rtos число)
где • число — вещественное число, которое требуется преобразовать в строковое выражение. Примеры (rtos (rtos (setq (setq
50.6) -30.0) realstrg (rtos 5.25)) realnum 75.25) (setq realstrg (rtos realnum))
возвращает “50.6” возвращает “–30.0” возвращает “5.25” возвращает “72.25”
438
Глава 12
Функция 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))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Использование AutoLISP
441
Пояснения Строка 5 (defun dtr (a)
Функция defun, содержащаяся в этой строке, определяет функцию dtr (a), которая преобразует градусы в радианы.
Строка 6 (* a (/ pi 180.0))
Число π (pi) делится на 180, а затем полученный результат умножается на величину угла а (угол 180 градусов равен π радиан).
Строка 10 (defun c:belt(/ r1 r2 d a c1 x1 x2 c2 p1 p2 p3 p4)
Функция defun, содержащаяся в этой строке, определяет функцию belt, которая позволяет построить две окружности, соединенные касательными линиями.
Строка 18 (setq x1 (- r2 r1))
Функция setq, содержащаяся в этой строке, присваивает значение, полученное при вычислении выражения (- r2 r1), переменной x1.
Строка 19 (setq x2 (sqrt (- (* d d) (* (- r2 r1) (- r2 r1)))))
Вначале вычисляется разность значений 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"))
возвращает “Yes”
(setq num1 8) (setq num2 10) (if (> num1 num2) (setq x (- num1 num2)) (setq x (- num2 num1)) )
возвращает 2
Использование AutoLISP
445
Пример 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 (= 80 90 79)
возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________. возвращает ________ радиан. возвращает ________ радиан. возвращает ________. возвращает ________. возвращает ________. возвращает ________.
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, как загружать и запускать созданные программы.
Запуск редактора Visual LISP Главное меню: ToolsAutoLISPVisual LISP Editor Командная строка: VLIDE 1. Запустите AutoCAD.
Использование Visual LISP
461
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
469
Упражнение 2 (Общее) Введите в строку приглашения консоли Visual LISP следующие выражения (после знака _$): (+ 2 30 4 38.50) (- 20 39 32) (* 2.0 -7.6 31.25) (/ -230 -7.62 2.15) (sin 1.0472) (atan -1.0) (< 3 10) (. (Не забывайте, что имя функции следует указывать в круглых скобках.) Выполнив описанные действия, вы автоматически перейдете в окно графического редактора, а в командной строке появится приглашение на ввод высоты текста и выбор редактируемого объекта. Выделите текстовый объект и нажмите клавишу <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
Шаг 3 С помощью функции enget извлеките список параметров объекта. В девятой строке программы (setq ent (entget name)) значение списка присваивается переменной ent. Для проверки значения этой переменной используется следующая команда: Command: !ent ((-1.< Object name: 60000018> (0 . "TEXT") (8 . "0") (10 4.912227 5.36301 0.0) (40 . 0.3) (1 . "CHANGE TEXT") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "standard") (71 . 0) ) (72 . 1) (11 6.51227 5.36302 0.0) (210 0.0 0.0 1.0))
Список параметров содержит всю информацию о выделенном текстовом объекте (т.е. о строке CHANGE TEXT), но вам необходимо изменить только высоту текста. Таким образом, вы должны идентифицировать элемент, содержащий информацию, относящуюся к высоте текста (40 . 0.3), а затем выделить его из списка.
Шаг 4 Для выделения элемента, ассоциированного с кодом 40 (т.е. с высотой текста), используется функция assocc. В выражении (setq oldlist (assocc 40 ent)), содержащемся в десятой строке программы, используется функция assocc, которая выделяет значение и присваивает его переменной oldlist. Для проверки значения этой переменной используется следующая команда: Command: !oldlist (40 . 0.3)
508
Глава 14
Шаг 5 Элемент (40 . 0.3) содержит код (40), назначенный текстовым объектам, и числовое значение, определяющее высоту текста (0.3). Чтобы изменить высоту текста, необходимо заменить значение (0.3) каким-нибудь другим значением. Для решения этой задачи формируется новый список, который затем назначается переменной conlist. Процесс формирования и присвоения списка описывается в строке 11 (setq conlist (cons (car oldlist) newht)). Например, если значение, присвоенное переменной newht, равно 0.5, новый элемент будет иметь вид (40 . 0.5). Для проверки значения переменной conlist используется следующая команда: Command: !conlist (40 . 0.5)
Шаг 6 Завершив формирование нового элемента, введите его в исходный список ent, используя для этого функцию subst. Эта операция осуществляется при выполнении строки 12 (setq newlisst (subst conlist oldlist ent)). Для проверки значения переменной newlist используется следующая команда: Command: !newlist ((-1.< Object name: 60000018> (0 . "TEXT") (8 . "0") (10 4.912227 5.36301 0.0) (40 . 0.5) (1 . "CHANGE TEXT") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "standard") (71 . 0) ) (72 . 1) (11 6.51227 5.36302 0.0) (210 0.0 0.0 1.0))
Шаг 7 Последний этап — обновление базы данных чертежа. Для выполнения этой операции используется функция entmod, показанная в строке 13 (entmod newlist) этой программы.
Функции, используемые для извлечения данных Функция entnext Используя эту функцию, программист получает возможность извлекать имена основных объектов и подобъектов из базы данных. В частности, функция entnext возвращает имя следующего неудаленного или первого начерченного объекта, а функция (entnext(entnext)) — имя последующего неудаленного или следующего начерченного объекта. Функция entnext имеет такой формат: (entnext )
Функция entlast Функция entlast возвращает имя последнего неудаленного объекта, извлекая его из базы данных. Эта функция имеет следующий формат: entlast
Функция entsel Функция entsel дает возможность пользователю выбрать один из объектов базы данных.
509
Visual LISP: редактирование базы данных чертежа
Эта функция имеет следующий формат: (entsel [подсказка])
Приглашение является необязательным.
Пример 4 Напишите программу Visual LISP, которая позволит вам изменить высоту всех текстовых объектов, имеющихся на чертеже. Программа должна выводить приглашение, с помощью которого вы сможете ввести новую высоту текста.
Шаг 1: создание блок-схемы Блок-схема, показанная на рис. 14.1, описывает алгоритм создаваемой программы Visual LISP.
Рис. 14.1. Блок-схема программы для примера 4
Шаг 2: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце. Номера строк не являются частью программного кода, а используются только для ссылок. ;Эта программа изменяет высоту всех текстовых ;объектов, имеющихся на чертеже. ; (defun chgtext2 () (setvar "cmdecho" 0) (setq newht (getreal "\n Enter new text height: ")) (setq ss1 (ssget "x" (list (cons 0 "text")))) (setq index 0) (setq num (sslenght ss1)) (repeat num (setq name (ssname) ss1 index))
1 2 3 4 5 6 7 8 9 10 11
510
Глава 14 (setq ent (entget name)) (setq oldlist (assocc 40 ent)) (setq conlist (cons (car oldlist) newht)) (setq newlist (subst conlist oldlist ent)) (entmod newlist) (setq index (1 + index)) ) (setvar "cmdecho" 1) (princ)
)
12 13 14 15 16 17 18 19 20 21
Пояснения Строка 7 (setq ss1 (ssget "x" (list (cons 0 "text"))))
Функция ssget "X" выбирает текстовые объекты из базы данных чертежа. Затем функция setq присваивает набор выбранных объектов переменной ss1.
Строка 8 (setq index 0)
Функция setq присваивает переменной index значение 0. Впоследствии эта переменная используется для выбора различных объектов.
Строка 9 (setq num (sslenght ss1))
Функция sslenght определяет количество объектов, содержащихся в наборе ss1. Затем функция setq присваивает полученное значение переменной num.
Строка 10 (repeat num
Функция repeat повторит процедуру, определенную в этой функции, num раз.
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем chgtext2.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. Для того чтобы запустить программу, введите имя функции (chgtext2) в строку приглашения консоли после знака _$ и нажмите клавишу <Enter>. Не забывайте, что имя функции необходимо указывать в круглых скобках. Выполнив эти действия, вы автоматически перейдете в окно графического редактора, а в командной строке появится приглашение на ввод высоты текста. После того как вы введете высоту текста и нажмете клавишу <Enter>, высота всех текстовых объектов изменится.
Пример 5 Напишите программу Visual LISP, с помощью которой вы сможете изменить высоту текста выделенных текстовых объектов, находящихся на чертеже.
Visual LISP: редактирование базы данных чертежа
511
Шаг 1: написание программы Visual LISP На рис. 14.2 показан один из вариантов блок-схемы этой программы.
Рис. 14.2. Блок-схема программы для примера 5
Шаг 2: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце. (defun chgtext3 () (setvar "cmdecho" 0) (setq newht (getreal "\n Enter new text height: ")) (setq ss1 (ssget)) (setq index 0) (setq num (sslenght ss1)) (repeat num (setq name (ssname) ss1 index)) (setq ent (entget name)) (setq ass (assocc 0 ent)) (setq index (1 + index)) (If (= "TEXT" (cdr ass)) (progn (setq oldlist (assocc 40 ent)) (setq conlist (cons (car oldlist) newht)) (setq newlist (subst conlist oldlist ent)) (entmod newlist) ) ) ) (setvar "cmdecho" 1) (princ) )
512
Глава 14
Шаг 3: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем chgtext3.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. Для того чтобы запустить программу, введите имя функции (chgtext3) в строку приглашения консоли после знака _$ и нажмите клавишу <Enter>. Не забывайте, что имя функции необходимо указывать в круглых скобках. Выполнив эти действия, вы автоматически перейдете в окно графического редактора, а в командной строке появится приглашение на ввод высоты текста и выбор редактируемого объекта. Введите высоту текста, а затем выберите нужный объект. Высота выделенного текста изменится.
Пример 6 Напишите программу Visual LISP, с помощью которой вы сможете изменить положение центра окружности, внеся соответствующие изменения в базу данных чертежа. Эта программа должна также вывести приглашение, которое позволит пользователю определить координаты нового центра окружности.
Шаг 1: написание программы Visual LISP Откройте окно Visual LISP, выбрав команду ToolsAutoLISPVisual LISP Editor или введя выражение VLIDE в командную строку. Затем откройте текстовый редактор Visual LISP, выбрав команду New File из меню File. В окно редактора введите текст программы, приведенный в следующем абзаце. (Defun radcir () (setq p1(entsel "select the circle") p2(car p1) p3(entget p2) p4(assocc 10 p3) p5(getpoint "\n Enter the new center point of the circle: ") p6(cons 10 p5) p3(subst p6 p4 p3) );setq (entmod p3) );defun
Шаг 2: загрузка и запуск программы Visual LISP Выберите команду Save или Save As из меню File и сохраните файл программы под именем radcir.lsp. Чтобы загрузить созданную программу, выберите команду Load Text in Editor из меню Tools или щелкните на кнопке Load active edit window, которая находится на панели инструментов Tools. Чтобы запустить программу, введите имя функции (radcir) в строку приглашения консоли (после знака _$) и нажмите клавишу <Enter>. Не забывайте, что имя функции необходимо указывать в круглых скобках. Выполнив эти действия, вы автоматически перейдете в графическое окно, а в командной строке появится приглашение на выбор окружности и определение ее нового центра. Выделите окружность, а затем укажите новое положение центра этой фигуры. Положение окружности изменится.
Visual LISP: редактирование базы данных чертежа
513
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Язык программирования Visual LISP позволяет не только писать программы или создавать новые команды, но и редактировать базы данных чертежа. (Да/Нет) 2. Функция ________ дает возможность выбрать произвольное количество объектов, имеющихся на чертеже. 3. Функция ________ дает возможность выбрать из базы данных объекты определенного типа. Эта функция может использоваться даже тогда, когда объекты находятся на замороженном или выключенном слое. 4. Функция ________ определяет количество объектов, содержащихся в массиве выбранных элементов, и возвращает целое число, которое соответствует количеству найденных объектов. 5. Функция ________ возвращает имя объекта, содержащегося в заданном наборе выбранных элементов. Для обращения к объекту используется индекс, который обозначает номер объекта.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Функция ________ возвращает имя первого начерченного объекта. 2. Функция ________ возвращает имя последнего начерченного объекта. 3. Функция ________ извлекает список параметров из имени объекта. 4. Функция ________ находит определенный код в списке параметров объекта и возвращает элемент, содержащий этот код. 5. Функция ________ формирует новый список из данных элементов или списков. 6. Функция ________ заменяет элементы списка новым элементом.
Упражнения Упражнение 1 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете изменить слой выделенных объектов. Программа должна также вывести приглашение, которое позволит вам ввести новое имя слоя.
Упражнение 2 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете изменить стиль выделенных текстовых объектов, имеющихся на чертеже. Программа должна также вывести приглашение, которое позволит вам определить новый стиль текста.
Упражнение 3 (Общее) Напишите программу Visual LISP, с помощью которой вы сможете заменить слой чертежа, содержащий выделенные объекты. Программа должна вывести приглашение, которое позволит вам ввести новый слой, выделив объект, находящийся на этом слое.
Ответы на вопросы для самопроверки 1 — Да, 2 — ssget, 3 — ssget "X", 4 — sslenght, 5 — ssname.
Глава 15
Программирование диалоговых окон с помощью языка Dialog Control Language Цель занятия Познакомившись с материалом этой главы, вы научитесь: • писать программы, используя язык управления диалогом; • использовать ранее определенные атрибуты; • загружать файлы программ, написанных на языке управления диалогом (DCL); • выводить на экран новые диалоговые окна; • использовать стандартные кнопочные узлы; • управлять диалоговыми окнами с помощью функций AutoLISP; • использовать пиктограммы, кнопки и атрибуты в программах DCL.
516
Глава 15
Язык управления диалогом Файлы, написанные на языке управления диалогом (DCL — Dialog Control Language), представляют собой текстовые файлы в формате ASCII, содержащие описание диалоговых окон. В каждом файле DCL может находиться описание одного или нескольких диалоговых окон. Количество описаний диалоговых окон, определенных в файле DCL, не ограничено. Файлы DCL имеют расширение .dcl (например, ddosnap.dcl). При написании этой главы предполагалось, что вы уже знакомы с командами и системными переменными AutoCAD, а также с основами программирования на языке AutoLISP. Чтобы писать программы на языке DCL или управлять диалоговыми окнами с помощью функций AutoLISP, не обязательно быть специалистом в области программирования. Тем не менее, знание того или другого языка программирования поможет вам быстрее понять и изучить язык DCL. В этой главе вы познакомитесь с основными концепциями создания диалоговых окон, часто используемых атрибутов и пиктограмм. Подробное описание функций DCL и многочисленные примеры, содержащие пошаговое описание выполняемых действий, упрощают изучение языка управления диалогом. Для того чтобы познакомиться с функциями, о которых не рассказывается в этой главе, обратитесь к руководству AutoCAD Customization Guide, опубликованному компанией Autodesk. Чтобы писать программы на языке DCL, не требуется специальное программное или аппаратное обеспечение. С этой задачей может справиться любой текстовый редактор (при условии, что программа AutoCAD уже установлена на вашем компьютере).
Диалоговые окна Файлы, написанные на языке управления диалогом (DCL), содержат описание, определяющее внешний вид диалоговых окон, отображаемых на экране. Диалоговые окна включают в себя кнопки, раскрывающиеся списки, флаговые кнопки, переключатели, пиктограммы и другие элементы управления, организованные в строки или столбцы. В качестве примера можно привести диалоговое окно, показанное на рис. 15.1.
Рис. 15.1. Диалоговое окно Drawing Units
Программирование диалоговых окон с помощью языка Dialog Control Language
517
Вам не придется определять размеры и компоновку диалогового окна или его составляющих. Требуемые размеры окна автоматически устанавливаются при его загрузке. Само по себе диалоговое окно не может выполнять те операции, для которых оно предназначено. Функции окна определяются программой, написанной на языке AutoLISP или созданной с помощью инструментальной системы AutoCAD (ADS) или ARX. Например, когда вы загружаете диалоговое окно, а затем щелкаете на кнопке Cancel (Отмена), это не означает, что окно отменяет выполнение текущей команды. Команды, связанные с кнопками или другими элементами управления диалогового окна, обрабатываются с помощью функций, содержащихся в AutoLISP, ADS или ARX. Таким образом, для управления диалоговыми окнами требуется AutoLISP или ADS, поэтому для разработки новых или редактирования уже существующих окон вам необходимо не только разбираться в DCL, но и хорошо знать AutoLISP, а также инструментальную систему AutoCAD. Диалоговые окна не зависят от платформы, поэтому они подходят для любой системы, которая поддерживает программу AutoCAD. Тем не менее, одни и те же диалоговые окна в различных операционных системах могут выглядеть по-разному, так как внешний вид окон зависит от графического интерфейса пользователя используемой платформы. Выполнение функций, определенных в диалоговом окне, не влияет ни на диалоговые окна, ни на прикладные программы (AutoLISP или ADS), которые их используют.
Основные компоненты диалогового окна Основными компонентами диалогового окна являются элементы мозаичного изображения (пиктограммы) и само окно. Пиктограммы организовываются в строки и столбцы, которые могут иметь любую заданную конфигурацию. Элементы управления, окруженные прямоугольной рамкой, формируют компоновочные узлы, создающие древовидную структуру окна (рис. 15.2).
Рис. 15.2. Древовидная структура диалогового окна
518
Глава 15
Основные элементы мозаичного изображения, к которым относятся кнопки, раскрывающиеся списки, изображения, текстовые и списковые окна, определены функцией программирования диалоговых окон (PDB), входящей в программу AutoCAD. Кнопки диалоговых окон описаны в файле base.dcl. Компоновка и функция пиктограмм определяются атрибутами, которые назначены этим элементам. Например, высота элемента управления определяется атрибутом высоты, а содержание надписи, ассоциированной с данным элементом, — атрибутом метки. Основные компоненты диалогового окна показаны на рис. 15.3. Под этим рисунком находится список предварительно определенных элементов и их обозначения в языке DCL. Заголовок диалогового окна Метка строки Опция
Флажок
Кнопки, организованные в одну строку
Кнопка
Рис. 15.3. Компоненты диалогового окна Предопределенные элементы Кнопка Текстовое окно Образ кнопки Списковое окно Всплывающий список Переключатель (селективная кнопка) Ползунок Переключатель Столбец Блочный столбец Строка Блочная строка Столбец переключателей Блочный столбец переключателей Строка переключателей Блочная строка переключателей Изображение Текст (надпись) Разделитель
Формат DCL
button edit_box image_button list_box popup_list radio_button slider toggle column boxed_column row boxed_row radio_column boxed_radio_column radio_row boxed_radio_row image text spacer
Программирование диалоговых окон с помощью языка Dialog Control Language
519
Кнопки и текстовые элементы Кнопки В языке DCL кнопки имеют формат button. Кнопка представляет собой прямоугольное окно, напоминающее собой нажимную кнопку. Надпись на кнопке располагается во внутренней части окна. Например, на кнопке ОК, которая имеется в каждом диалоговом окне, в середине окна находится метка ОК. Когда вы щелкаете на кнопке ОК, выполняются функции, определенные в диалоговом окне, после чего это окно закрывается. В свою очередь, при щелчке на кнопке Cancel (Отмена) диалоговое окно закрывается без выполнения каких-либо операций. Примечание В каждом диалоговом окне должна быть по крайней мере одна кнопка ОК или кнопка, выполняющая подобные функции. Это даст вам возможность выйти из диалогового окна, выполнив необходимые действия.
Текстовые элементы В языке DCL текстовые элементы имеют формат text. Текстовые элементы используются для создания заголовка и отображения информации в диалоговом окне. Их применение ограничено, так как большая часть элементов управления имеет собственные атрибуты меток, которые могут быть использованы при создании надписей. Тем не менее, если вам необходимо ввести в диалоговое окно текстовую строку, можете это сделать с помощью текстового элемента. В программе AutoCAD текстовые элементы чаще всего используются в окнах предупредительных сообщений для вывода предупреждений или сообщений об ошибке. Примечание Окно предупредительных сообщений должно содержать кнопки ОК или Cancel, с помощью которых вы сможете выйти из диалогового окна.
Свойства элементов Внешний вид, размеры и функции, выполняемые тем или иным компонентом диалогового окна, зависят от заданных свойств. Например, если кнопке присвоен атрибут fixed_width, окно, формирующее этот элемент, не будет растягиваться на всю длину диалогового окна. Точно так же, атрибут height определяет высоту элемента управления, а атрибут key — имя элемента, которое в дальнейшем будет использоваться различными прикладными программами. Атрибуты состоят из двух частей: имени и присвоенного значения. Например, в выражении fixed_width = true параметр fixed_width является именем атрибута, а параметр true — значением, присвоенным этому атрибуту. Имена атрибутов выполняют ту же роль, что и имена переменных в языке программирования, поэтому значения, присваиваемые атрибутам, должны соответствовать определенному типу данных.
Типы значений Целое число. В отличие от целочисленных значений (1, 15, 22), используемых в программировании, числовые значения, присваиваемые атрибутам, могут быть как целыми, так и вещественными числами.
520
Глава 15
Примеры width = 15 height = 10
Вещественное число. Значения, присваиваемые атрибутам, должны быть дробными вещественными числами с первой цифрой. Пример aspect_ratio = 0.75
Строка в кавычках. Строковые выражения, присваиваемые атрибутам, представляют собой текстовую строку, заключенную в двойные кавычки. Примеры key = "accept" label = "OK"
Зарезервированное слово. В языке управления диалогом в качестве идентификаторов могут использоваться некоторые зарезервированные слова. В этом случае идентификаторы представляют собой буквенно-цифровое выражение, начинающееся с какойнибудь буквы. Примеры is_default = true fixed_width = true Примечание Зарезервированные слова следует вводить с учетом регистра клавиатуры. Например, выражение “is_default = true” отличается от выражения “is_default = TRUE”, так как зарезервированным словом является “true”, а не “True” или “TRUE”. Имена атрибутов, как и зарезервированные слова, чувствительны к регистру заглавных или строчных букв. Например, имя атрибута — “key”, а не “Key” или “KEY”.
Предопределенные атрибуты Чтобы упростить написание программ на языке управления диалогом, AutoCAD предоставил ряд предопределенных атрибутов, описанных в пакете программирования диалоговых окон (PDB), который поставляется вместе с программой AutoCAD. Часть атрибутов может использоваться только с элементами определенного типа, другие же подходят для элементов любого типа. Значения, назначенные в файле DCL тем или другим атрибутам, используются прикладной программой для управления элементами или диалоговыми окнами. Поэтому вы должны использовать правильные атрибуты и назначать им соответствующие значения. Ниже приведен список часто используемых предопределенных атрибутов, описанных в пакете программирования диалоговых окон (PDB). Action alignment allow_accept aspect_ratio color edit_limit edit_width fixed_height
fixed_width height is_canceled is_default key label layout list
max_value min_value mnemonic multiple_select small_increment tabs value width
Программирование диалоговых окон с помощью языка Dialog Control Language
521
Атрибуты key, label и is_default Атрибут key Формат в DCL: key Примеры: key = "accept" key = "XLimit"
Атрибут key используется для присваивания имен элементам диалоговых окон. Присвоенные имена, в свою очередь, используются в прикладных программах для управления соответствующими элементами. Имена элементов должны указываться в двойных кавычках. В определении диалогового окна может содержаться любое количество значений, присвоенных атрибуту key, но каждое из этих значений должно быть уникальным. В ранее приведенном примере (key = "accept") атрибут key получает строковое значение "accept". Если в определении диалогового окна имеется еще один атрибут key, вы должны присвоить ему какое-нибудь другое значение.
Атрибут label Формат в DCL: label Примеры label = "OK" label = "Hello DCL Users"
Иногда возникает необходимость ввести в диалоговое окно какое-нибудь обозначение. Для этого используется атрибут label, с помощью которого можно создавать надписи в блочных столбцах и строках, в группах переключателей или флажков, на отдельных кнопках, в текстовых и диалоговых окнах. Примеры наиболее частого использования атрибута label описаны в следующих разделах. Использование атрибута label в диалоговых окнах. Надписи, создаваемые с помощью атрибута label, отображаются в верхней части диалогового окна или в строке заголовка. Этот атрибут должен иметь значение, представляющее собой текстовую строку, заключенную в двойные кавычки. Использование атрибута label в диалоговых окнах является необязательным; по умолчанию диалоговое окно отображается без заголовка. Примеры welcome : dialog { label = "Sample Dialog Box";
В этом примере выражение “Sample Dialog Box” отображается в строке заголовка диалогового окна (рис. 15.4). Использование атрибута label в блочном столбце. Надпись, созданная в блочном столбце с помощью атрибута label, располагается в блоке, который находится в верхнем левом углу столбца; в этом случае блок состоит из одной строки, расположенной в верхней части столбца. В качестве метки используется строковое выражение, взятое в кавычки. По умолчанию строковое выражение представляет собой набор парных кавычек, состоящий из открывающей и закрывающей кавычек (“ ”). При использовании значения по умолчанию в диалоговом окне отображается блок, не содержащий каких-либо надписей.
522
Глава 15
Примеры : text { label = "Welcome to the world of DCL"; }
В этом примере надпись “Welcome to the world of DCL” отображается в блоке, расположенном в верхнем левом углу столбца (см. рис. 15.4). Использование атрибута label для создания надписей на кнопках. В этом случае метка отображается во внутренней части кнопки. В качестве метки используется строковое выражение, взятое в кавычки. В данном случае значение по умолчанию не используется. Примеры : button { key = "accept"; label = "OK"; }
В этом примере надпись “ОК” отображается во внутренней части кнопки и выравнивается по центру элемента.
Атрибут is_default Формат в DCL: is_default Пример is_default = true
Атрибут is_default используется при определении кнопок диалогового окна. В приведенном примере этому атрибуту присвоено значение true. Это говорит о том, что данная кнопка будет автоматически выбрана при нажатии клавиши <Enter>. Представьте, например, что вы открыли диалоговое окно и задали определенные параметры. Чтобы выйти из открытого окна, тем самым принимая заданные значения, необходимо щелкнуть на кнопке ОК. Эту операцию можно также выполнить, нажав клавишу <Enter>. Это стало возможным благодаря значению true, присвоенному атрибуту is_default. Кнопка, заданная по умолчанию, по своему внешнему виду отличается от других кнопок диалогового окна. На этой кнопке имеется хорошо заметная рамка, нарисованная вокруг надписи. Примечание В диалоговом окне может быть только одна кнопка с атрибутом is_default, имеющим значение true.
Атрибуты fixed_width и alignment Атрибут fixed_width Формат в DCL: fixed_width Пример fixed_width = true
523
Программирование диалоговых окон с помощью языка Dialog Control Language
Этот атрибут позволяет регулировать ширину элементов диалогового окна. Например, для того чтобы избежать “растягивания” элемента на всю ширину диалогового окна, атрибуту fixed_width присваивается значение true. В этом случае ширина элемента будет автоматически согласовываться с длиной содержащейся в нем текстовой строки.
Атрибут alignment Формат в DCL: alignment Примеры alignment = centered alignment = right
Значение, присвоенное атрибуту alignment, определяет горизонтальное или вертикальное положение элемента в строке или столбце. Например, для элемента, расположенного в строке, этому атрибуту может быть присвоено одно из следующих значений: left, right или centered. По умолчанию атрибут alignment имеет значение left; это обеспечивает выравнивание элемента по левому краю. Для элемента, расположенного в столбце, атрибуту alignment может быть присвоено значение top, bottom или centered. По умолчанию этот атрибут имеет значение centered.
Пример 1 Используя язык управления диалогом (DCL), напишите программу для диалогового окна, показанного на рис. 15.4. Диалоговое окно содержит две текстовые метки и кнопку ОК, которая находится в нижней части окна. Ниже приведен листинг файла DCL для диалогового окна, описанного в примере 1. Этому файлу присвоено имя dclwel1.dcl. Номера строк не являются частью программного кода, а используются только для ссылок.
Рис. 15.4. Диалоговое окно для примера 1
welcome1 : dialog { label = "Sample Dialog Box"; : text { label = "Welcome to the world DCL"; } : text { label = "Dialog Control Language"; } : button { key = "accept" label = "OK" is_default = true } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14
524
Глава 15
Пояснения Строка 1 welcome1 : dialog {
В этой строке выражение welcome1 является именем диалогового окна, которое описывается в данной программе. В конце строки находится открывающая фигурная скобка, с которой начинается определение диалогового окна.
Строка 2 label = "Sample Dialog Box";
В этой строке выражение label является атрибутом метки, а "Sample Dialog Box" представляет собой строковое значение, которое присваивается этому атрибуту. Присвоенное значение будет отображено в строке заголовка диалогового окна. Описание метки должно быть заключено в кавычки. Если эта строка будет пропущена, строка заголовка диалогового окна не будет содержать никакой информации.
Строки 3–5 : text { label = "Welcome to the world DCL"; }
Эти строки определяют текстовый элемент, содержащий описание метки. В первой строке содержится выражение text, являющееся обозначением текстового элемента. В следующей строке находится выражение label = "Welcome to the world DCL";, определяющее метку элемента, расположенную в диалоговом окне с выравниванием по левому краю. Закрывающая фигурная скобка завершает определение этого элемента.
Строки 9–13 : button { key = "accept" label = "OK" is_default = true }
Эти строки определяют атрибут элемента “button” (“кнопка”). Выражение button, содержащееся в первой строке, является обозначением всех элементов этого типа. Во второй строке содержится выражение key = "accept", которое определяет имя ASCII, используемое прикладными программами при обращении к указанному элементу. Следующая строка (is_default = true) обозначает, что этот элемент является кнопкой по умолчанию. Данная кнопка будет автоматически выбираться при нажатии клавиши <Enter>. Закрывающая фигурная скобка, содержащаяся в строке 14, завершает определение диалогового окна.
Загрузка файлов DCL Файлы DCL, как и файлы AutoLISP, можно загружать из графического редактора AutoCAD. Но при этом не забывайте, что каталог, содержащий файлы DCL, должен быть указан в пути доступа к вспомогательным файлам AutoCAD. Если путь доступа к каталогу не указан, то для обеспечения загрузки диалогового окна необходимо ввести
Программирование диалоговых окон с помощью языка Dialog Control Language
525
полное путевое имя данного файла. Каждый файл DCL может содержать определение одного или нескольких диалоговых окон. Количество диалоговых окон, которые могут быть определены в файле DCL, не ограничено. Команда, используемая для загрузки диалогового окна, имеет следующий формат: (load_dialog имя_файла)
где • load_dialog — команда загрузки диалогового окна; • имя_файла — имя файла DCL без или с файловым расширением (.dcl). Пример (load_dialog "dclwel1.dcl") или (load_dialog "dclwel1")
В этом примере dclewl1 — имя файла DCL, а .dcl — файловое расширение, характерное для файлов DCL. Примечание Загрузка программ DCL и отображение диалоговых окон, выполняемые с помощью функций load_dialog и new_dialog, приводит к “замораживанию” экрана AutoCAD. Чтобы избежать подобной ситуации, рекомендуется загружать программы DCL и выводить создаваемые диалоговые окна, используя соответствующие функции AutoLISP. (См. раздел “Использование функций AutoLISP для загрузки файлов DCL” в этой главе.)
Имена файлов можно указывать как с файловым расширением, так и без него (например, welcome1 или welcome1.dcl). Функция загрузки возвращает целочисленное значение, используемое в функциях new_dialog и unload_dialog в качестве абстрактного идентификатора. В следующем разделе это число будет называться dcl_id. Следует заметить, что использовать для обозначения идентификатора это название не обязательно; описатель может иметь любое другое имя, например, dclid или просто id.
Отображение нового диалогового окна Функция load_dialog выполняет загрузку файлов DCL, но не обеспечивает отображение диалогового окна на экране. Для этой цели используется команда new_dialog, имеющая следующий формат: (new_dialog диалоговое_окно идентификатор)
где • new_dialog — команда, отображающая диалоговое окно на экране; • диалоговое_окно — имя диалогового окна; • идентификатор — целое число, возвращаемое функцией load_dialog. Пример (new_dialog "welcome1" 1)
Как следует из этого примера, значение абстрактного идентификатора dcl_id, возвращенное функцией load_dialog, равно 1. Файл DCL, созданный в примере 1, можно загрузить с помощью команд load_dialog и new_dialog. В приведенной цепочке команд описатель dcl_id, возвращенный функцией load_dialog, имеет значение 3. На рис. 15.5 показано диалоговое окно, появившееся на экране после выполнения следующих команд:
526
Глава 15
Command: (load_dialog "dclwel1.dcl") 3 Command: (new_dialog "welcome1" 3)
Рис. 15.5. Диалоговое окно, появившееся на экране
Обратите внимание, что в этом примере кнопка OK растянута во всю ширину диалогового окна. Эта кнопка будет выглядеть гораздо лучше, если ее ширина будет соответствовать длине строки “ОК”. Данная операция может быть выполнена с помощью атрибута fixed_width = true;, имеющегося в определении этой кнопки. Можно также использовать атрибут alignment = centered, обеспечивающий выравнивание текстовой строки по центру элемента. В следующем абзаце приводится листинг файла DCL, в котором метка ОК выравнивается по центру кнопки, а ширина кнопки соответствует длине текстовой строки (рис. 15.6).
Рис. 15.6. Диалоговое окно с кнопкой ОК, имеющей фиксированную ширину
Программирование диалоговых окон с помощью языка Dialog Control Language
527
welcome2 : dialog { label = "Sample Dialog Box"; : text { label = "Welcome to the world of DCL"; } : text { label = "Hello - DCL"; } : button { key = "accept"; label = "OK"; is_default = true; fixed_width = true; // (Регулировка ширины) alignment = centered; // (Выравнивание текста по центру) } }
Использование функции AutoLISP для загрузки файлов DCL Чтобы избежать замораживания экрана, которое возникает при загрузке файлов DCL и отображении диалоговых окон, выполняемом с помощью команд DCL, можно воспользоваться следующей программой AutoLISP: (defun c:load_dcl(/ dcl_id ) (setq dcl_id (load_dialog "dclwel2.dcl")) - (загрузка файла DCL) (new_dialog "welcome2" dcl_id) - (инициализация диалогового окна) (start_dialog) - (отображение диалогового окна) (princ) )
В этой программе: • load_dcl — имя функции AutoLISP; • dclwel2 — имя файла DCL, который вы хотите загрузить; • welcome2 — имя диалогового окна, определенного в файле DCL.
Использование стандартных кнопочных субблоков В файле base.dcl содержится ряд стандартных кнопочных субблоков, используемых в файлах DCL для обеспечения совместимости различных диалоговых окон. Одной из таких предопределенных кнопок является субблок ok_cancel, используемый для ввода кнопок OK и Cancel в диалоговое окно (рис. 15.7). Перед вами листинг файла DCL (пример 1), в котором используется стандартный кнопочный субблок ok_cancel: welcome3 : dialog { label = "Sample Dialog Box"; : text { label = "Welcome to the world of DCL"; } : text { label = "Dialog Control Language"; alignment = right; } ok_cancel; }
528
Глава 15
Рис. 15.7. Диалоговое окно с кнопками OK и Cancel
Перед вами список стандартных кнопочных субблоков, предварительно определенных в файле base.dcl. Эти кнопки называются также кнопками диалогового окна, поскольку они используются для выхода из диалоговых окон. Кнопка OK • Формат в DCL: ok_only Кнопки OK и Cancel • Формат в DCL: ok_cancel Кнопки OK, Cancel и Help • Формат в DCL: ok_cancel_help
Функции AutoLISP Функция load_dialog Функция AutoLISP load_dialog используется для загрузки файла DCL, определенного в данной функции. В предсталенном примере программа AutoCAD загружает файл, который называется "dclwel1". Файловое расширение (.dcl) можно не указывать. При успешной загрузке файла DCL программа AutoCAD возвращает целочисленное значение, которое используется для идентификации диалогового окна. Формат в DCL: (load_dialog имя_файла) Примеры (load_dialog "dclwel1") (load_dialog "dclwel1.dcl")
Функция unload_dialog Функция AutoLISP unload_dialog используется для выгрузки файла DCL, определенного в этой функции. Идентификация файла выполняется по значению переменной dcl_id, определяющей файл DCL. Формат в DCL: (unload_dialog dcl_id) Пример (unload_dialog dcl_id)
Функция new_dialog Функция AutoLISP new_dialog используется для инициализации диалогового окна и его последующего отображения на экране. Обратите внимание, что в данном примере выражение "welcome1" является именем диалогового окна, а не файла DCL. Переменная dcl_id содержит целое число, возвращаемое при загрузке файла DCL. Формат в DCL: (new_dialog "диалоговое_окно" dcl_id)
Программирование диалоговых окон с помощью языка Dialog Control Language
529
Пример (new_dialog "welcome1" dcl_id)
Функция start_dialog В программе AutoCAD функция AutoLISP start_dialog используется для приема информации, введенной пользователем. Например, когда вы щелкаете мышью на кнопке ОК, функция start_dialog извлекает значение выбранного элемента и использует его для выполнения указанных операций и завершения работы диалогового окна. Формат в DCL: (start_dialog)
Функция done_dialog Функция AutoLISP done_dialog используется для удаления диалогового окна с экрана. Эта функция должна быть определена в выражении действия, как показано в приведенном примере. Формат в DCL: (done_dialog) Пример (action_tile "accept" "(done_dialog)")
Функция action_tile Функция AutoLISP action_tile используется для создания ассоциативной связи между выражением действия и элементом управления диалогового окна. В приведенном примере функция action_tile ассоциирует значение "accept" с выражением действия (done_dialog), которое завершает работу диалогового окна. В данном случае "accept" — имя элемента, назначенного кнопке OK. Формат в DCL: (action_tile имя_элемента выражение_действия) Пример (action_tile "accept" "(done_dialog)")
Использование AutoLISP для управления диалоговыми окнами Когда вы загрузите файл DCL, описанный в примере 1, а затем щелкните на кнопке ОК, то окажется, что эта кнопка не выполняет требуемых функций (т.е. не обеспечивает выход из диалогового окна). Это связано с тем, что диалоговое окно само по себе не в состоянии выполнять команды AutoCAD или функции, назначаемые различным элементам. Для управления диалоговым окном требуется соответствующая прикладная программа, написанная на языке AutoLISP или созданная в системе проектирования ADS (AutoCAD Development System). Функции, определенные в AutoLISP или ADS, могут быть использованы для загрузки файла DCL, вывода диалогового окна на экран, отображения приглашений на ввод данных, присвоения введенных значений различным элементам диалогового окна, выполнения операций, соответствующих вводимым данным, и команд AutoCAD. Использование программы AutoLISP для управления диалоговым окном описано в примере 2.
530
Глава 15
Пример 2 Напишите программу на языке AutoLISP, с помощью которой вы сможете управлять диалоговым окном и выполнять все необходимые функции (см. пример 1). Ниже представлен листинг файла DCL, описанного в примере 1. Этот файл определяет диалоговое окно welcome1, которое содержит только одну кнопку действия: "ОК". С помощью этой кнопки вы сможете выйти из диалогового окна. Как уже говорилось, диалоговое окно не сможет выполнить функцию, назначенную кнопке ОК, до тех пор, пока вы не напишите программу, обеспечивающую выполнение функций, определенных в диалоговом окне. welcome1 : dialog { label = "Sample Dialog Box"; : text { label = "Welcome to the world DCL"; } : text { label = "Dialog Control Language"; } : button { key = "accept" label = "OK" is_default = true } }
Ниже приведен листинг программы AutoLISP, которая обеспечивает загрузку файла DCL (dclwel1) и отображение диалогового окна welcome1, а также определяет функции кнопки OK. Номера строк не являются частью программного кода, а используются только для ссылок. (defun C:welcome (/ dcl_id) (setq dcl_id (load_dialog "dclwel1.dcl")) (new_dialog "welcome1" dcl_id) (action_tile "accept" "(done_dialog)") (start_dialog) (unload_dialog dcl_id) (princ) )
1 2 3 4 5 6 7 8 9 10
Пояснения Строка 1 (defun C:welcome (/ dcl_id)
В этой строке defun — функция AutoLISP, используемая для определения функции welcome. Благодаря выражению С:, стоящему перед именем определяемой фу н кции, функция welcome может выполняться таким же образом, как и обычные команды AutoCAD (т.е. из командной строки). Эта функция содержит локальную переменную dcl_id.
Программирование диалоговых окон с помощью языка Dialog Control Language
531
Строка 2 (setq dcl_id (load_dialog "dclwel1.dcl"))
Выражение (load_dialog "dclwel1.dccl"), содержащееся в этой строке, загружает файл dclwel1.dcl и возвращает положительное целое число. Функция setq присваивает полученное целочисленное значение переменной dcl_id.
Строка 3 (new_dialog "welcome1" dcl_id)
В этой строке функция AutoLISP new_dialog загружает диалоговое окно welcome1, определенное в файле DCL (строка 1). Переменная dcl_id содержит целое число, идентифицирующее файл DCL. Примечание Имя диалогового окна, указанное в программе AutoLISP (welcome1), должно совпадать с именем диалогового окна, определенного в файле DCL (welcome1).
Строки 4–6 (action_tile "accept" "(done_dialog)"
Кнопка ОК, определенная в файле DCL (пример 1), получила ASCII-имя accept (key = “accept”). Первые две строки (4 и 5) связывают кнопку ОК с выражением действия. Функция action_tile инициализирует соответствие между кнопкой ОК и выражением действия (done_dialog). При выборе кнопки ОК программа AutoLISP считывает ее значение и выполняет функцию, определенную в этом выражении. Функция done_dialog завершает работу диалогового окна.
Строка 7 (start_dialog)
Функция start_dialog дает возможность программе AutoLISP принимать информацию, вводимую пользователем в диалоговое окно.
Строка 8 (unload_dialog dcl_id)
Выражение, содержащееся в этой строке, выгружает файл DCL, идентифицированный целочисленным значением dcl_id.
Строки 9 и 10 (princ) )
Функция princ отображает на экране пустую строку. Применение этой функции позволяет предупредить вывод результатов вычислений в области командных строк. Если функция princ не будет использоваться, в командной строке отобразится значение последнего вычисленного выражения. Закрывающая скобка, содержащаяся в последней строке, завершает определение функции welcome.
532
Глава 15
Обычные и блочные строки элементов Строка (элемент row) Формат в DCL: row Файлы DCL позволяют сгруппировать несколько элементов, образуя из них составную строку или столбец, которые будут обрабатываться как один элемент. Составная строка, например, включает в себя несколько элементов, расположенных в одной горизонтальной строке.
Блочная строка Формат в DCL: boxed_row Блочная строка состоит из элементов, расположенных в одну строку и окруженных рамкой прямоугольной формы. Надпись в блочной строке обычно располагается в левом верхнем углу блока прямо на линии рамки. Если атрибут метки не определен, в диалоговом окне отображается рамка, окружающая элементы блока. В некоторых системах в зависимости от используемого графического интерфейса пользователя метка раздела может находиться внутри блока.
Столбцы и переключатели Столбец Формат в DCL: column Столбец представляет собой несколько однотипных элементов, расположенных вертикально друг над другом и объединенных в один составной элемент.
Блочный столбец Формат в DCL: boxed_column Блочный столбец представляет собой несколько однотипных элементов, сгруппированных в столбец и окруженных рамкой прямоугольной формы. Надпись в блочном столбце обычно располагается в левом верхнем углу блока прямо на линии рамки. Если атрибут метки не определен, в диалоговом окне отображается рамка, окружающая элементы блока. В некоторых системах в зависимости от используемого графического интерфейса пользователя метка раздела может находиться внутри блока.
Переключатели Формат в DCL: toggle Переключатель (флажок), используемый в диалоговых окнах, представляет собой маленькое квадратное окошко, справа от которого находится поясняющая надпись. Эта надпись является необязательной, но каждый переключатель должен иметь соответствующую метку, с помощью которой пользователь сможет узнать, какая функция назначена данному элементу. Переключатель может иметь два состояния: включено и выключено. При включении переключателя в окошке появляется “галочка” или, другими словами, метка выбора. При выключении функции метка, размещенная внутри кнопки-флажка, исчезает. Состояние кнопки определяется значением булевой (логической) переменной.
Программирование диалоговых окон с помощью языка Dialog Control Language
533
Когда переключатель находится в положении “включено”, значение булевой переменной равно 1; когда переключатель выключен, эта переменная имеет значение 0.
Атрибуты ускоряющих клавиш Формат в DCL: mnemonic Пример mnemonic = "U"
Диалоговое окно может содержать несколько элементов управления, имеющих метки различного содержания. Одним из способов выбора является выделение нужного элемента с помощью клавиш управления курсором и последующее нажатие соответствующей клавиши (чаще всего клавиши <Enter>). Эта операция может быть выполнена с помощью такого координатно-указательного устройства, как кодирующий преобразователь или стандартная мышь. При отсутствии указательного устройства выделить нужный элемент довольно сложно, в таком случае можно использовать мнемонические или ускоряющие клавиши, которые назначаются различным элементам диалогового окна. Например, ускоряющей клавишей для кнопки New является буквенная клавиша . В этом случае нажатие клавиши на клавиатуре приведет к выделению кнопки New в диалоговом окне. В качестве ускоряющей клавиши используется буквенная клавиша, которая соответствует подчеркнутой букве в строке меню или диалога. Подчеркивание буквы выполняется автоматически при определении атрибута mnemonic, относящегося к данному элементу. В метке элемента в качестве мнемонического символа может быть выбрана только одна буква, причем различным элементам диалогового окна должны быть назначены разные ускоряющие клавиши. Если в диалоговом окне имеется несколько элементов с одинаковыми подчеркнутыми буквами, то при нажатии соответствующей клавиши будет выделен только один элемент. Мнемонические символы нечувствительны к регистру клавиатуры; таким образом, для выделения кнопки New можно использовать как прописную (N), так и строчную (n) букву. Тем не менее, символы метки, выбранные вами при определении ускоряющих клавиш, должны быть напечатаны заглавными буквами. Это упростит их распознавание. Примечание Некоторые графические интерфейсы пользователей (GUI) не поддерживают использование мнемонических атрибутов. Такие системы не позволяют выделять элементы диалоговых окон с помощью соответствующих буквенных клавиш. В этом случае для выделения элементов управления используется координатно-указательное устройство.
Пример 3 Напишите программу на языке DCL для диалогового окна, с помощью которого вы сможете устанавливать различные режимы объектной привязки (рис. 15.8). Элементы управления организованы в блочную строку, состоящую из двух столбцов. Прежде чем писать программу, особенно на языке DCL, необходимо продумать организацию диалогового окна. В данном примере описывается процесс проектирования окна. Следует заметить, что при самостоятельной разработке необходимо обращать особое внимание на расположение элементов диалогового окна. Структура программы DCL во многом зависит от внешнего вида создаваемого окна. На рис. 15.8 показан один из возможных вариантов диалогового окна, описанного в примере 3. В данном диалоговом окне имеется две строки и два столбца. Первая строка содержит два столбца; во второй строке столбцов нет (рис. 15.9).
534
Глава 15
Рис. 15.8. Диалоговое окно привязки объектов
Рис. 15.9. Структура диалогового окна
Ниже представлен листинг программы для примера 3. Номера строк не являются частью программного кода, а используются только в качестве ссылок. Osnaps : dialog { label = "Running Object Snaps" : boxed_row { label = "Select Object Snaps" : column { : toggle { label = "Endpoint"; key = "Endpoint"; mnemonic = "E"; fixed_width = true; } : toggle { label = "Midpoint"; key = "Midpoint"; mnemonic = "M"; fixed_width = true; } } : column { : toggle { label = "Intersection"; key = "Intersection";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
535
Программирование диалоговых окон с помощью языка Dialog Control Language mnemonic = "I"; fixed_width = true; } : toggle { label = "Center"; key = "Center"; mnemonic = "C"; fixed_width = true; } } } ok_cancel }
23 24 25 26 27 28 29 30 31 32 33 34 35
Пояснения Строки 3 и 4 : boxed_row { label = "Select Object Snaps"
В первой строке boxed_row — предварительно определенный групповой элемент, создающий рамку вокруг элементов группы. Во второй строке выражение label = "Select Object Snaps" обеспечивает отображение метки Select Object Snaps в левом верхнем углу создаваемого раздела. Выражение label — предопределенный атрибут DCL.
Строки 5–7 : column { : toggle { label = "Endpoint";
Выражение column — предопределенный атрибут DCL, организующий элементы управления в вертикальный столбец. Другой предопределенный атрибут toggle вводит в диалоговое окно маленькое квадратное окошко (флажок), справа от которого находится текстовая надпись. Атрибут label отображает метку Endpoint, которая располагается с правой стороны флажка.
Строки 8–11 key = "Endpoint"; nemonic = "E"; fixed_width = true; }
Атрибут key присваивает элементу управления имя Endpoint. В дальнейшем присвоенное имя будет использоваться прикладной программой для управления данным элементом. Вторая строка (mnemonic = "E";) определяет ускоряющую клавишу для флаговой кнопки Endpoint. В результате этого буква “Е”, с которой начинается слово “Endpoint”, будет показана в диалоговом окне в подчеркнутом виде. Атрибут fixed_width используется для контроля над шириной элемента управления. Например, для того чтобы элемент имел фиксированную ширину, а не растягивался на всю длину диалогового окна, атрибут fixed_width должен иметь значение true. Закрывающая фигурная скобка (}), содержащаяся в следующей строке, завершает определение флажка.
536
Глава 15
Строки 31–35 } } } ok_cancel }
Закрывающая фигурная скобка, содержащаяся в строке 31, завершает определение переключателя (флажок), а закрывающая скобка в строке 32 завершает определение столбца, начатое в строке 19. Закрывающая скобка в строке 33 завершает определение элемента boxed_row (блочной строки), начинающееся в строке 3. Предопределенный элемент ok_cancel обеспечивает ввод стандартного кнопочного субблока, содержащего кнопки OK и Cancel. Закрывающая скобка в последней строке завершает определение диалогового окна. Написав программу, загрузите файл DCL и выведите на экран созданное диалоговое окно, используя для этого следующие команды. Предполагается, что файл программы сохранен под именем osnapsh.dlc. Если загрузка файла будет выполнена успешно, AutoCAD возвратит целое число. Как показано в следующем примере, целое число, возвращенное программой AutoCAD, равно 1. На рис. 15.10 показано, как будет выглядеть окно AutoCAD после загрузки созданного вами диалогового окна.
Рис. 15.10. Окно программы AutoCAD, содержащее диалоговое окно, созданное в примере 3
Программирование диалоговых окон с помощью языка Dialog Control Language
537
Загрузка программы DCL приведет к “замораживанию” AutoCAD. О том, как выйти из этого положения, вы можете узнать из примечания на стр. 7, а сейчас просто “прибейте” загруженную программу, используя для этого диспетчер задач Windows. Command: (load_dialog "osnapsh.dcl") 1 Command: (new_dialog "osnapsh" 1)
Функции AutoLISP Функции logand и logior Функции AutoLISP logand и logior используются для получения значения логической функции И (AND) и логической функции включающее ИЛИ (OR), возвращенного при обработке числового массива. Примеры использования функции logand logand logand logand logand logand logand
(2 (8 (6 (6 (1 (1
7) 15) 15 7) 15 1) 4) 5)
возвращает 2 возвращает 8 возвращает 6 возвращает 0 возвращает 0 возвращает 1
Примеры использования функции logior logior logior logior logior logior logior
(2 (8 (6 (6 (1 (1
7) 15) 15 7) 15 1) 4) 5)
возвращает 7 возвращает 15 возвращает 15 возвращает 15 возвращает 5 возвращает 5
Одной из областей использования битовых флагов являются режимы объектной привязки. Ниже приведен список битовых флагов, которые назначены различным режимам привязки объектов: Режим привязки
Битовый флаг
Режим привязки
Битовый флаг
None Endpoint Midpoint Center Node Quadrant Apparent Intersection Parallel
0 1 2 4 8 16 2048 8192
Intersection Insertion Perpendicular Tangent Nearest Quick Extension
32 64 128 256 512 1024 4096
Для определения режимов объектной привязки используется системная переменная OSMODE. Например, если этой переменной присвоить значение 4, привязка будет выполняться по центру объекта. Для того чтобы задать несколько текущих режимов объектной привязки, необходимо просуммировать соответствующие битовые флаги. Сложите бито-
538
Глава 15
вые флаги режимов привязки по конечной точке, середине и центру объекта (1 + 2 + 4 = 7), а затем присвойте полученное значение системной переменной OSMODE. Тем самым вы зададите указанные режимы объектной привязки. В языке AutoLISP имеется функция logand, которая позволяет извлекать данные, определяющие существующие режимы объектной привязки. Например, если значение системной переменной OSMODE равно 7, то используя функцию logand, вы сможете получить различные сочетания битовых флагов, описывающих те или иные режимы привязки. logand (1 7) logand (2 7) logand (4 7)
возвращает возвращает возвращает
1 2 4
Endpoint (По конечной точке) Midpoint (По середине) Center (По центру)
Функции atof и rtos Функция atof конвертирует строковое выражение в вещественное число, а функция rtos преобразует число в строку. Примеры (atof "3.5") (rtos 8.15)
возвратит возвратит
3.5 “8.1500”
Функции get_tile и set_tile Функция g e t _ t i l e извлекает текущее значение элемента диалогового окна, а функция set_tile назначает элементу управления то или другое значение. Примеры (get_tile "midpoint") (set_tile "xsnap" value)
Пример 4 Напишите программу AutoLISP, которая обеспечит работоспособность диалогового окна и выполнение функций, описанных в примере 3. Ниже приведен листинг программы AutoLISP для примера 4. Номера строк не являются частью программного кода, а используются только для ссылок. ;;Программа AutoLISP для задания режимов объектной привязки. ;;Файловое имя диалогового окна — osnapsh.dcl. (defun c:osnapsh ( / dcl_id) (setq dcl_id (load_dialog "osnapsh.dcl")) (new_dialog "osnapsh" dcl_id) ;;Извлечение существующего значения объектной привязки ;;и запись полученных значений в диалоговое окно (setq osmode (getvar "osmode")) (if (= 1 (logand 1 osmode)) (set_tile "Endpoint" "1") ) (if (= 2 (logand 2 osmode)) (set_tile "Midpoint" "1") ) (if (= 32 (logand 32 osmode)) (set_tile "Intersection" "1")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
539
Программирование диалоговых окон с помощью языка Dialog Control Language ) (if (= 4 (logand 4 osmode)) (set_tile "Center" "1") ) ;;Считывание значений, заданных элементам диалогового окна, ;;и присваивание этих значений системной переменной osmode (defun setvars () (setq osmode 0) (if (= "1" (get_tile "Endpoint")) (setq osmode (logior osmode 1)) ) (if (= "1" (get_tile "Midpoint")) (setq osmode (logior osmode 2)) ) (if (= "1" (get_tile "Intersection")) (setq osmode (logior osmode 32)) ) (if (= "1" (get_tile "Center")) (setq osmode (logior osmode 4)) ) (setvar "osmode" osmode) ) (action_tile "accept" "(setvars) (done_dialog)") (start_dialog) (princ) )
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Пояснения Строки 1 и 2 ;;Программа AutoLISP для задания режимов объектной привязки. ;;Файловое имя диалогового окна — osnapsh.dcl.
В начале этой программы содержатся строки комментариев, каждая из которых начинается точкой с запятой. AutoCAD игнорирует строки программного кода, начинающиеся с этого символа.
Строки 3–5 (defun c:osnapsh ( / dcl_id) (setq dcl_id (load_dialog "osnapsh.dcl")) (new_dialog "osnapsh" dcl_id)
Выражение defun, содержащееся в строке 3, является функцией AutoLISP, которая используется для определения функции osnapsh. Перед именем определяемой функции стоит выражение c:, поэтому функция osnapsh будет выполняться точно так же, как и команды AutoCAD. Функция osnapsh имеет одну локальную переменную (dcl_id). В строке 4 содержится функция (load_dialog "osnapsh.dcl"), которая загружает файл osnapsh.dcl и возвращает положительное целое число. Функция setq назначает полученное значение локальной переменной dcl_id. При выполнении строки 5 функция new_dialog загружает диалоговое окно "osnapsh", определенное в файле DCL
540
Глава 15
(строка 1 файла DCL). Переменная dcl_id содержит целочисленное значение, которое идентифицирует файл DCL.
Строка 8 (setq osmode (getvar "osmode"))
В этой строке содержится функция getvar "osmode", которая извлекает значение системной переменной osmode. Функция setq назначает полученное значение переменной osmode. Обратите внимание, что первое выражение osmode представляет собой имя переменной, а выражение в кавычках ("osmode") является именем системной переменной AutoCAD.
Строки 9–11 (if (= 1 (logand 1 osmode)) (set_tile "Endpoint" "1") )
Функция (logand 1 osmode), содержащаяся в строке 9, возвратит значение 1, если системная переменная OSMODE содержит битовый флаг (1), соответствующий режиму привязки к конечной точке объекта. Например, если этой системной переменной присвоено значение 7 (1 + 2 + 4 = 7), функция (logand 1 7) возвратит 1. Если значение системной переменной OSMODE равно 6 (2 + 4 = 6), функция (logand 1 6) возвратит 0. Функция if проверяет, равно ли единице значение, возвращаемое функцией (logand 1 osmode). Если функция возвращает значение T (true), выполняются команды, описанные в следующей строке. В строке 10 элементу Endpoint присваивается значение 1, что обеспечивает отображение флаговой кнопки в диалоговом окне. Закрывающая скобка, содержащаяся в строке 11, завершает определение функции if. Если функция (if (= 1 (logand 1 osmode)) возвращает значение nil, программа переходит к выполнению строки 12 этого файла.
Строки 24 и 25 (defun setvars () (setq osmode 0)
Строка 24 определяет функцию setvars, а строка 25 присваивает значение 0 переменной osmode.
Строки 26–28 (if (= "1" (get_tile "Endpoint")) (setq osmode (logior osmode 1)) )
Выражение (get_tile "Endpoint"), содержащееся в строке 26, получает значение элемента с именем Endpoint. Если флажок опции Endpoint установлен, возвращаемое значение равно 1. Если флажок этой опции снят, будет возвращено значение 0. Функция get_tile возвращает значение в виде строки (0 или 1). В строке 27 функция setq присваивает значение, возвращаемое функцией (logior osmode 1), переменной osmode. Например, если начальное значение переменной osmode равно 0, то функция (logior osmode 1) возвратит значение 1. Точно так же, если начальное значение этой переменной равно 1, функция (logior osmode 2) возвратит значение 3.
Программирование диалоговых окон с помощью языка Dialog Control Language
541
Строки 41 и 42 (action_tile "accept" "(setvars) (done_dialog)") (start_dialog)
Строка 42 (start_dialog) запускает диалоговое окно, содержащее кнопку ОК, которой присвоено имя "accept". Когда вы выбираете кнопку ОК, программа обращается к функции setvars, которая обновляет значение системной переменной OSMODE и устанавливает заданные режимы объектной привязки. После этого программа вызывает функцию done_dialog, которая закрывает диалоговое окно. При выборе кнопки Cancel диалоговое окно закрывается без изменения значения системной переменной OSMODE.
Предопределенные переключатели, организованные в столбцы и строки Одиночный переключатель Формат в DCL: radio_button Элемент radio_button представляет собой предварительно определенный переключатель, находящийся в активном состоянии. Переключатели (или селективные кнопки) могут быть организованы в строки или столбцы. Характерной особенностью этих элементов является то, что за один раз можно выбрать только один переключатель. Представьте, например, диалоговое окно, содержащее группу переключателей, позволяющих выбрать научную, десятичную или инженерную систему единиц измерения. В этом случае вы сможете воспользоваться только одной из указанных опций. Если вы выберете, например, кнопку Десятичные, все остальные кнопки будут автоматически выключены. Из-за этой особенности селективные кнопки могут использоваться только в блочных столбцах или строках. Метка, которая обычно располагается с правой стороны от переключателя, является необязательной.
Столбец предопределенных переключателей Формат в DCL: radio_column Этот элемент представляет собой предварительно определенную группу активных переключателей, организованных в вертикальный столбец. Следует заметить, что единовременно может быть выбран только один переключатель. При создании группы переключателей элементы управления располагаются вертикально друг над другом, что упрощает выбор нужной опции.
Блочный столбец селективных кнопок Формат в DCL: boxed_radio_column Блочный столбец селективных кнопок представляет собой группу вертикально расположенных переключателей, окруженных рамкой.
542
Глава 15
Строка предопределенных переключателей Формат в DCL: radio_row Этот элемент представляет собой группу предварительно определенных переключателей, организованных в горизонтальную строку. Единовременно может быть выбран только один переключатель. Строка, состоящая из нескольких переключателей и соответствующих надписей, может иметь довольно большую длину. В этом случае для выбора нужной опции необходимо переместить курсор на некоторое расстояние, так как элементы управления значительно удалены друг от друга. Поэтому при создании диалоговых окон старайтесь избегать переключателей, организованных в строки, особенно если в строке содержится больше двух переключателей.
Пример 5 Напишите программу DCL для диалогового окна, с помощью которого вы сможете устанавливать нужные единицы и задавать требуемую точность измерений (рис. 15.11). Также напишите программу на языке AutoLISP, обеспечивающую выполнение функций, описанных в этом диалоговом окне.
Рис. 15.11. Диалоговое окно для примера 5
Ниже приведен листинг программы DCL для диалогового окна, показанного на рис. 15.11. Имя диалогового окна — dwgunits. Номера строк не являются частью программного кода, а используются только для ссылок. Dwgunits : dialog { label = "Drawing Units" : row { : boxed_column { label = "Select Units"; : radio_column { : radio_button { key = "scientific"; label = "Scientific"; mnemonic = "S"; } : radio_button { key = "decimal"; label = "Decimal"; mnemonic = "D"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
543
Программирование диалоговых окон с помощью языка Dialog Control Language : radio_button { key = "engineering"; key = "Engineering" mnemonic = "E"; } } } : boxed_column { label = "Unit Precision"; : radio_column { : radio_button { key = "one"; label = "One"; mnemonic = "O"; } : radio_button { key = "two"; label = "Two"; mnemonic = "T"; } : radio_button { key = "three"; label = "Three"; mnemonic = "h"; } } } } ok_cancel }
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Пояснения Строки 4 и 5 : boxed_column { label = "Select Units";
Строка 4 определяет активный предварительно определенный элемент управления boxed_column, формирующий рамку вокруг элементов столбца. Выражение label = "Select Units", содержащееся в строке 5, обеспечивает отображение надписи Select Units в верхней части столбца. Label — предопределенный атрибут DCL.
Строки 6–8 : radio_column { : radio_button { key = "scientific";
Элемент radio_column представляет собой предопределенную группу активных переключателей, организованных в вертикальный столбец и окруженных рамкой прямоугольной формы. Элемент radio_button также является предварительно определенным переключателем, находящимся в активном состоянии. С правой стороны от селективной кнопки находится необязательная текстовая метка. Атрибут key присваивает этому эле-
544
Глава 15
менту имя scientific. В дальнейшем присвоенное имя будет использоваться прикладной программой для управления указанным элементом.
Строки 9–11 label = "Scientific"; mnemonic = "S"; }
Атрибут label обеспечивает отображение метки Scientific, которая обычно располагается справа от окошка переключателя. Вторая строка (mnemonic = "S";) определяет ускоряющую клавишу, используемую для выбора опции Scientific. В результате этого буква S, с которой начинается слово Scientific, будет отображена в диалоговом окне в подчеркнутом виде. В следующей строке содержится закрывающая фигурная скобка (}), которая завершает определение переключателя.
Строки 41–46 } } } } ok_cancel }
Закрывающая фигурная скобка, содержащаяся в строке 41, завершает определение переключателя (селективной кнопки), а закрывающая скобка в следующей строке завершает определение столбца переключателей. Закрывающая скобка в строке 43 завершает определение элемента boxed_column (блочного столбца), а закрывающая фигурная скобка в строке 44 завершает определение строки элементов, начинающееся в строке 3 файла DCL. Предопределенный элемент ok_cancel обеспечивает ввод стандартного кнопочного субблока, содержащего кнопки OK и Cancel. Закрывающая скобка в последней строке завершает определение диалогового окна. Загрузите файл DCL и выведите на экран диалоговое окно, используя следующие команды. Предполагается, что файл программы сохранен под именем dwgunits.dlc, а имя диалогового окна — dwgunits. Если загрузка файла будет выполнена успешно, AutoCAD возвратит целое число. В рассматриваемом примере программа AutoCAD возвращает число 5. На рис. 15.12 показано, как будет выглядеть диалоговое окно после загрузки программы. Command: (load_dialog "dwgunits.dcl") 5 Command: (new_dialog "dwgunits" 1)
Рис. 15.12. Диалоговое окно, созданное в примере 5
545
Программирование диалоговых окон с помощью языка Dialog Control Language
Ниже представлен листинг программы AutoLISP, которая обеспечивает загрузку, отображение и обработку диалогового окна, описанного в данном примере. Номера строк не являются частью программного кода, а используются только в качестве ссылок. ;;Программа dwgunits.lsp для установки единиц и точности ;;измерения. Файловое имя диалогового окна — dwgunits.dcl ; (defun c:dwgunits ( / dcl_id) (setq dcl_id (load_dialog "dwgunits.dcl")) (new_dialog "dwgunits" dcl_id) ; ;;Вычисление текущих значений переменных lunits и luprec ;;и включение соответствующего переключателя. ; (setq lunits (getvar "lunits")) (if ( = 1 lunits) (set_tile "scientific" "1") ) (if ( = 2 lunits) (set_tile "decimal" "1") ) (if ( = 3 lunits) (set_tile "engineering" "1") ) ; (setq luprec (getvar "luprec")) (if ( = 1 luprec) (set_tile "one" "1") ) (if ( = 2 luprec) (set_tile "two" "1") ) (if ( = 3 luprec) (set_tile "three" "1") ) ;;Считывание значений элементов radio_button ;;и присвоение этих значений переменным lunit и luprec ; (action_tile "scientific" (setq lunits 1)") (action_tile "decimal" (setq lunits 2)") (action_tile "engineering" (setq lunits 3)") ; (action_tile "one" (setq luprec 1)") (action_tile "two" (setq luprec 2)") (action_tile "three" (setq luprec 3)") (action_tile "accept" (done_dialog)") ; (start_dialog) (setvar "lunits" lunits) (setvar "luprec" luprec) (princ) )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
546
Глава 15
Пояснения Строки 1–3 ;;Программа dwgunits.lsp для установки единиц и точности измерения. ;; Файловое имя диалогового окна — dwgunits.dcl ;
Первые три строки этой программы являются строками комментариев. Каждая строка комментариев должна начинаться точкой с запятой. AutoCAD игнорирует строки, которые начинаются с этого символа.
Строки 4–6 (defun c:dwgunits ( / dcl_id) (setq dcl_id (load_dialog "dwgunits.dcl")) (new_dialog "dwgunits" dcl_id)
В строке 4 содержится функция AutoLISP defun, которая определяет функцию dwgunits, содержащую локальную переменную dcl_id. Выражение с:, стоящее перед именем функции dwgunits, обеспечивает возможность выполнения этой функции тем же способом, что и команд AutoCAD (т.е. из командной строки). Выражение (load_dialog "dwgunits.dcl"), содержащееся в следующей строке, загружает файл dwgunits.dcl и возвращает положительное целое число. Функция setq присваивает полученное значение локальной переменной dcl_id. В следующей строке содержится функция new_dialog, которая отображает диалоговое окно dwgunits, определенное в файле DCL (строка 1 файла DCL). Переменная dcl_id содержит целочисленное значение, которое идентифицирует файл DCL.
Строка 11 (setq lunits (getvar "lunits"))
В этой строке содержится функция g e t v a r "lunits", которая извлекает значение системной переменной lunits. Функция setq назначает полученное значение переменной lunits. Обратите внимание, что первое выражение lunits представляет собой имя локальной переменной, а выражение в кавычках ("lunits") является именем системной переменной AutoCAD.
Строки 12–14 (if ( = 1 lunits) (set_tile "scientific" "1") )
Функция if (функция AutoLISP) проверяет, равно ли значение переменной lunits 1. Если функция возвращает значение T (true), выполняются команды, описанные в следующей строке. Функция set_tile, содержащаяся в строке 13, присваивает элементу под именем "scientific" значение 1, что приводит к включению соответствующего переключателя. Закрывающая скобка в строке 14 завершает определение функции if. Если функция if ( = 1 lunits) возвращает значение nil, программа переходит к выполнению строки под номером 14.
Программирование диалоговых окон с помощью языка Dialog Control Language
547
Строка 22 (setq luprec (getvar "luprec"))
В этой строке содержится функция getvar "luprec", которая извлекает значение системной переменной luprec. В свою очередь, функция setq назначает полученное значение переменной luprec. Обратите внимание, что первое выражение luprec представляет собой имя локальной переменной, а выражение в кавычках ("luprec") является именем системной переменной AutoCAD.
Строки 23–25 (if ( = 1 luprec) (set_tile "one" "1") )
Функция if, содержащаяся в строке 23, проверяет, равно ли 1 значение переменной luprec. Если эта функция возвращает значение T (true), выполняются команды, описанные в следующей строке. Функция set_tile, содержащаяся в строке 24, присваивает элементу под именем "one" значение 1, что приводит к включению соответствующего переключателя (селективной кнопки). Закрывающая скобка в строке 25 завершает определение функции if. Если функция if ( = 1 luprec) возвращает значение nil, программа переходит к выполнению строки под номером 25.
Строка 36 (action_tile "scientific" (setq lunits 1)")
При включении переключателя под именем "scientific" функция setq присваивает системной переменной lunits значение 1. Эта системная переменная определяет текущую систему измерения линейных величин. Ниже представлен список числовых значений, которые могут быть назначены переменной lunits: 1
Scientific (Научная)
2
Decimal (Десятичная)
3
Engineering (Инженерная)
4
Architectural (Архитектурная)
5
Fractional (Дробная)
Строка 40 (action_tile "one" (setq luprec 1)")
При выборе переключателя под именем "one", функция setq присваивает системной переменной luprec значение 1. Эта переменная определяет точность отображения линейных размеров, т.е. количество знаков после запятой в десятичных числах или величину знаменателя дробных или архитектурных единиц.
548
Глава 15
Строки 43–47 (action_tile "accept" (done_dialog)") ; (start_dialog) (setvar "lunits" lunits) (setvar "luprec" luprec)
Кнопка ОК, находящаяся в диалоговом окне, получает имя "accept". Когда вы выбираете эту кнопку, программа выполняет функцию, которая была определена в диалоговом окне dwgunits. Функция start_dialog запускает диалоговое окно. При выполнении строк (setvar "lunits" lunits) и (setvar "luprec" luprec) значения системных переменных lunits и luprec присваиваются локальным переменным lunits и luprec, соответственно.
Текстовое окно Формат в DCL: edit_tile Текстовое окно представляет собой предопределенный активный элемент управления, позволяющий вводить и редактировать однострочные текстовые выражения. Если длина выражения превышает ширину текстового окна, вводимый текст автоматически “прокручивается” в правую или левую сторону. Метка является необязательной и обычно отображается слева от текстового окна.
Атрибуты width и edit_width Атрибут width Формат в DCL: width Пример width = 22
Атрибут width обеспечивает сохранение начальных размеров элементов диалогового окна. Этому атрибуту может быть назначено вещественное или целое число, представляющее собой количество букв или знаков, общая ширина которых соответствует требуемой длине элемента. Значение, назначенное атрибуту width, определяет минимальную ширину элемента. В приведенном примере минимальная ширина элемента равна 22. Тем не менее, при наличии свободного места элементы управления будут автоматически растягиваться во всю длину диалогового окна. Заданный размер (22) будет сохраняться только в том случае, если данному элементу назначен атрибут fixed_width. Следует заметить, что атрибут width может использоваться с любым элементом.
Атрибут edit_width Формат в DCL: edit_width Пример edit_width = 10
Программирование диалоговых окон с помощью языка Dialog Control Language
549
Атрибут edit_width, используемый с предопределенными текстовыми окнами, определяет размер этого элемента, выраженный в количестве букв или знаков, общая ширина которых равна требуемой ширине окна. Если ширина текстового окна не определена или равна 0, а атрибут fixed_width не назначен, элемент управления автоматически растягивается на всю ширину диалогового окна. При растягивании текстового окна функция PDB располагает окно и соответствующую метку с определенными интервалами, что обеспечивает выравнивание окна по правому, а метки — по левому краю.
Пример 6 Напишите программу DCL для диалогового окна, с помощью которого вы сможете задавать установки шаговой привязки к узлам сетки и параметры сетки, отображаемой в зоне лимитов (рис. 15.13). Две флаговые кнопки в верхней части диалогового окна позволяют изменять состояние режимов Snap и Grid. Кроме этого, напишите программу Рис. 15.13. Диалоговое окно для примера 6 AutoLISP, которая будет обеспечивать загрузку, отображение и выполнение функций диалогового окна. Листинг файла DCL для примера 6 следующий: dwgaids : dialog { label = "Drawing Aids"; : row { : boxed_column { label = "SNAP"; fixed_width = true; width = 22; : toggle { label = "On"; mnemonic = "O"; key = "snapon"; } : edit_box { label = "X-Spacing"; mnemonic = "X"; key = "xsnap"; edit_width = 10; } : edit_box { label = "Y-Spacing"; mnemonic = "Y"; key = "ysnap"; edit_width = 10; } } : boxed_column { label = "GRID"; fixed_width = true; width = 22; : toggle {
550
Глава 15 label = "On"; mnemonic = "n"; key = "gridon"; } : edit_box { label = "X-Spacing"; mnemonic = "S"; key = "xgrid"; edit_width = 10; } : edit_box { label = "Y-Spacing"; mnemonic = "p"; key = "ygrid"; edit_width = 10; } } } ok_cancel
}
Ниже приведен листинг программы AutoLISP для примера 6. Когда эта программа будет загружена и запущена, она загрузит диалоговое окно, выведет его на экран и обеспечит выполнение всех его функций (рис. 15.14).
Рис. 15.14. Окно программы AutoCAD с диалоговым окном для примера 6
Программирование диалоговых окон с помощью языка Dialog Control Language ;;Программа AutoLISP для диалогового окна Drawing Aids ;;Файловое имя диалогового окна — dwgaids.dcl ; (defun c:dwgaids (/ dcl_id snapmode xsnap ysnap orgsnapunit gridmode gridsnap xgrid ygrid orggridunit) (setq dcl_id (load_dialog "dwgaids.dcl")) (new_dialog "dwgaids" dcl_id) ;;Получение текущих значений переменных snapmode и snapunit ;;и присвоение этих значений элементам диалогового окна (setq snapmode (getvar "snapmode")) (if (= 1 snapmode) (set_tile "snapon" "1") (set_tile "snapon" "0") ) (setq orgsnapunit (getvar "snapunit") (setq xsnap (car orgsnapunit)) (setq ysnap (cadr orgsnapunit)) (set_tile "xsnap" (rtos xsnap)) (set_tile "ysnap" (rtos ysnap)) ; ;;Получение текущих значений переменных gridmode и gridunit ;;и присвоение этих значений элементам диалогового окна (setq gridmode (getvar "gridmode")) (if (= 1 grid mode) (set_tile "gridon" "1") (set_tile "gridon" "0")) (setq orggridunit (getvar "gridunit") (setq xgrid (car orggridunit)) (setq ygrid (cadr orggridunit)) (set_tile "xgrid" (rtos xgrid)) (set_tile "ygrid" (rtos ygrid)) ;;Считывание значений, присвоенных элементам диалогового окна ;;и изменение значений соответствующих переменных AutoCAD (defun setvars () (setq xsnap (atof (get_tile "xsnap"))) (setq ysnap (atof (get_tile "ysnap"))) (setvar "snapunit" (list xsnap ysnap)) (if (= "1" (get_tile "snapon")) (setvar "snapmode" 1) (setvar "snapmode" 0)) (setq xgrid (atof (get_tile "xgrid"))) (setq ygrid (atof (get_tile "ygrid"))) (setvar "gridunit" (list xgrid ygrid)) (if (= "1" (get_tile "gridon")) (progn (setvar "gridmode" 1) (setvar "gridmode" 0)) (setvar "gridmode" 0) ) (action_tile "accept" "(setvars) (done_dialog)") (start_dialog) (princ) )
551
552
Глава 15
Ползунки и изображения Ползунки Формат в DCL: slider Ползунок представляет собой активный предварительно определенный элемент управления, состоящий из индикатора, линейки (прямоугольной полосы), по которой перемещается ползунок, и кнопок со стрелками. Этот элемент обычно используется для получения строкового значения, которое определяется положением кнопки индикатора на линейке ползунка. Строковое значение, возвращаемое ползунком, используется прикладной программой. Например, с помощью ползунка, используемого для определения размера прицела перекрестия курсора, можно установить значение системной переменной APERTURE. Чтобы переместить ползунок в ту или другую сторону, установите на него стрелку курсора, нажмите левую кнопку мыши и, удерживая ее нажатой, перетащите курсор в нужном направлении. Для перемещения ползунка с определенным шагом используются кнопки со стрелками. Ползунки могут быть вертикальными или горизонтальными. При горизонтальном расположении линейки ползунка значения увеличиваются слева направо. Если линейка ползунка расположена вертикально, значения увеличиваются снизу вверх. Ползунок всегда возвращает целочисленные значения.
Изображения Формат в DCL: image Изображение является предопределенным элементом управления, который предназначен для отображения графической информации. Например, в диалоговых окнах этот элемент обычно используется для отображения перекрестья курсора, типов линий и текстовых шрифтов. Элемент image представляет собой прямоугольное окно, содержащее различные векторные изображения.
Атрибуты min_value, max_value, small_ increment и big_increment Атрибуты min_value и max_value Формат в DCL: min_value или max_value Примеры min_value =2 max_value = 15
Предопределенные атрибуты min_value и max_value используются для определения минимального и максимального значений, возвращаемых ползунком (т.е. элементом slider). Как показано в приведенном примере, минимальное значение равно 2, а максимальное — 15. Если эти атрибуты не будут заданы, элемент slider автоматически примет стандартные значения. По умолчанию атрибуту min_value присваивается значение 0, а атрибуту max_value — 10 000.
Программирование диалоговых окон с помощью языка Dialog Control Language
553
Атрибуты small_increment и big_increment Формат в DCL: small_increment или big_increment Примеры small_increment = 1 big_increment = 10
Значения, назначенные атрибутам small_increment и big_increment, определяют величину, на которую изменяется линейная координата ползунка при каждом щелчке на кнопке управления. Например, если величина шага равна 1, значения, возвращаемые ползунком, будут иметь приращение 1. Если значения атрибутов не определены, элемент slider автоматически примет значения, заданные по умолчанию. Значение, присваиваемое по умолчанию атрибуту small_increment, равно одной сотой (1/100) шкалы ползунка, а значение по умолчанию, назначаемое атрибуту big_increment, составляет одну десятую (1/10) этой шкалы.
Атрибуты aspect_ratio и color Атрибут aspect_ratio Формат в DCL: aspect_ratio Пример aspect_ratio = 1
Преопределенный атрибут aspect _ ratio обычно используется с каким-нибудь изображением. Под соотношением геометрических размеров понимается отношение ширины изображения к его высоте (ширина/высота). Чтобы определить размер окна изображения, необходимо назначить целое значение атрибутам ширины и высоты данного элемента. Для этого можно также определить значение одного из атрибутов (ширины или высоты), а затем присвоить целое или вещественное значение атрибуту aspect_ratio. Например, если атрибуту высоты было присвоено значение 5, а форматное соотношение (т.е. значение атрибута aspect_ratio) составляет 0,5, то ширина окна изображения будет равна 2,5 (ширина = высота × форматное соотношение). В этом случае определять атрибут ширины не обязательно.
Атрибут color Формат в DCL: color Пример color = 2
Атрибут цвета является предопределенным параметром, который используется с окном изображения для определения цвета фона. Целое число, назначаемое атрибуту цвета, определяет цветовой индекс AutoCAD. В ранее приведенном примере фон имеет желтый цвет (номер цвета 2). Цвет векторного изображения, нарисованного во внутренней части окна, определяется числовым значением, назначенным атрибуту vector_image.
554
Глава 15
Пример 7 Напишите программу DCL для диалогового окна, с помощью которого вы сможете изменять размер прицела перекрестья курсора (рис. 15.15).
Рис. 15.15. Диалоговое окно для примера 7
Диалоговое окно, показанное на рис. 15.16, содержит два столбца и две строки. В первом столбце находятся два элемента: метка (Min ... Max) и линейка ползунка. Во втором столбце имеется только один элемент — окно изображения. Во второй строке расположены кнопки OK и Cancel. Как показано на рис. 15.16, диалоговое окно содержит также метку заголовка (Aperture Size) и метку строки (Select Aperture).
Рис. 15.16. Структура диалогового окна, описанного в примере 7
Ниже представлен листинг файла DCL для примера 7. Номера строк не являются частью программного кода, а используются только для ссылок. aprtsize : dialog { label = "Aperture Size"; : boxed_row { label = "Select Aperture"; : column { fixed_width = true; : text { label = "Min Max"; alignment = centered; } : slider {
1 2 3 4 5 6 7 8 9 10 11
555
Программирование диалоговых окон с помощью языка Dialog Control Language key = "aperture_slider"; min_value = 2; max_value = 17; width = 15; height = 1; big_increment = 1; fixed_width = true; fixed_height = true; } } : image { key = "aperture_image"; aspect_ratio = 1; width = 5; color = 2; } } ok_cancel; }
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Пояснения Строки 11 и 12 : slider { key = "aperture_slider";
Выражение, содержащееся в первой строке (: slider), является началом определения ползунка (элемента slider). Ползунок представляет собой активный предопределенный элемент управления, состоящий из небольшого индикатора, линейки ползунка и кнопок со стрелками. Во второй строке (key = "aperture_slider") элементу slider присваивается имя aperture_slider.
Строки 13 и 14 min_value = 2; max_value = 17;
В первой строке содержится предопределенный атрибут min_value, определяющий минимальное значение числа, возвращаемого элементом slider. В свою очередь, предопределенный атрибут max_value определяет максимальное значение числа, возвращаемого этим элементом. Как показано в этом примере, минимальное значение числа равно 2, а максимальное — 17.
Строки 15–17 width = 15; height = 1; big_increment = 1;
Первые две строки определяют ширину и высоту элемента slider. Третья строка (big_increment = 1;) определяет величину шага, с которым будет выполняться перемещение индикатора по линейке ползунка.
556
Глава 15
Строки 22 и 23 : image { key = "aperture_image";
Выражение, содержащееся в первой строке (: image), является началом определения окна изображения. Во второй строке элементу изображения присваивается имя aperture_image.
Строки 24–26 aspect_ratio = 1; width = 5; color = 2;
В первой строке (aspect_ratio = 1;) определяется отношение ширины окна изображения к его высоте. Во второй строке (width = 5) определяется ширина окна изображения. Поскольку форматное соотношение равно 1, то высота окна также будет равна 5 (ширина/высота = форматное соотношение). В третьей строке (color = 2) фону окна изображения назначается цвет номер 2 (желтый).
Функции AutoLISP Функции dimx_tile и dimy_tile Функция AutoLISP dimx_tile используется для определения величины проекции окна изображения на ось X (x_aperture), а функция dimy_tile позволяет получить величину проекции окна на ось Y (y_aperture). В приведенных примерах выражение "aperture_image" является именем окна изображения, присвоенному этому элементу с помощью атрибута key (key = "aperture_image"). Формат: (dimx_tile tilename) или (dimy_tile tilename) Примеры (dimx_tile "aperture_image") (dimy_tile "aperture_image")
Функция vector_image Функция AutoLISP vector_image используется для вычерчивания вектора (направленной линии) в активном окне изображения. Вектор образуется при соединении точек, определенных в функции vector_image. В следующих примерах программа AutoCAD построит линию от точки 1,1 до точки 3,3 и закрасит ее красным цветом (цвет номер 1). Формат: (vector_image x1 y1 x2 y2 цвет) Пример (vector_image 1 1 3 3 1)
Здесь • 1 1 — координаты X и Y первой точки; • 3 3 — координаты X и Y второй точки; • 1 — цветовой индекс AutoCAD.
Программирование диалоговых окон с помощью языка Dialog Control Language
557
Функция fill_image Функция AutoLISP fill_image заполняет прямоугольный контур, находящийся в активном окне изображения, цветом, определенным в этой функции. В приведенном примере активное окно будет заполнено желтым цветом (цветом номер 2). Границы закрашиваемого прямоугольника определены координатами противоположных вершин — первой (x1 y1) и второй (x2 y2) точек. Формат: (fill_image x1 y1 x2 y2 цвет) Пример (fill_image 0 0 x_aperture y_aperture)
Функция start_image Функция AutoLISP start_image используется для запуска изображения, имя которого указано в этой функции. В следующем примере имя изображения "aperture_image" было присвоено этому элементу с помощью атрибута key (key = "aperture_image"). Формат: (start_image) Пример (start_image "aperture_image")
Функция end_image Функция AutoLISP end_image используется для завершения работы активного изображения, имя которого определено в функции end_image. Имя элемента изображения, описанного в следующем примере, —"aperture_image". Формат: (end_image) Пример (end_image "aperture_image")
558
Глава 15
Функция $value Функция $value является выражением действия AutoLISP, используемым для получения строкового значения, которое было присвоено тому или другому элементу диалогового окна (например, флаговой кнопке или текстовому окну). Как показано в примере 8, функция $value извлекает текущее значение активного элемента, а функция setq назначает полученное значение переменной aprt_size. Формат: $value Пример (setq aprt_size $value)
Пример 8 Напишите программу AutoLISP, которая загрузит и выведет на экран диалоговое окно, описанное в примере 7 (см. рис. 15.15), и обеспечит выполнение всех его функций. Блок-схема программы и внешний вид загруженного диалогового окна показаны на рис. 15.17 и 15.18.
Рис. 15.17. Блок-схема программы для примера 8
Ниже приведен листинг программы AutoLISP для примера 8. Номера строк не являются частью программного кода, а используются только в качестве ссылок. ;;APRTSIZE.LSP, программа AutoLISP для диалогового окна ;;Aperture Size. Имя файла DCL — APRTSIZE.DCL. ; (defun c:aprtsize () (setq dcl_id (load_dialog "aprtsize")) (new_dialog "aprtsize" dcl_id) ; ;Получение значения системной переменной "aperture", ;вычисление значений X и Y векторного изображения ;и вычерчивание вектора в окне изображения.
1 2 3 4 5 6 7 8 9 10
559
Программирование диалоговых окон с помощью языка Dialog Control Language (setq aprt_size (getvar "aperture")) (if (> aprt_size 15) (setq aprt_size 15) ) (setq x_aperture (dimx_tile "aperture_image")) (setq y_aperture (dimy_tile "aperture_image")) (set_tile "aperture_slider" (itoa aprt_size)) (setq x1 (- (/ x_aperture 2) aprt_size")) (setq x2 (+ (/ x_aperture 2) aprt_size")) (setq y1 (- (/ y_aperture 2) aprt_size")) (setq y2 (+ (/ y_aperture 2) aprt_size")) (start_image "aperture_image") (fill_image 0 0 x_aperture y_aperture) (vector_image x1 y1 x2 y1 1) (vector_image x2 y1 x2 y2 1) (vector_image x2 y2 x1 y2 1) (vector_image x1 y2 x1 y1 1) (end_image) (action_tile "aperture_slider" "(draw_size (setq aprt_size (atoi $value)))") (action_tile "accept" "(do_setvars)(done_dialog)") (start_dialog) (princ) ) ;Присвоение значения "aperture" переменной aprt_size (defun do_setvars () (setvar "aperture" aprt_size) ) ; ;Вычисление координат X и Y векторного изображения ;и вычерчивание перекрестья курсора в окне изображения. (defun draw_size (aprt_size) (setq x1 (- (/ x_aperture 2) aprt_size")) (setq x2 (+ (/ x_aperture 2) aprt_size")) (setq y1 (- (/ y_aperture 2) aprt_size")) (setq y2 (+ (/ y_aperture 2) aprt_size")) (start_image "aperture_image") (fill_image 0 0 x_aperture y_aperture) (vector_image x1 y1 x2 y1 1) (vector_image x2 y1 x2 y2 1) (vector_image x2 y2 x1 y2 1) (vector_image x1 y2 x1 y1 1) (end_image) )
Пояснения Строки 11–13 (setq aprt_size (getvar "aperture")) (if (> aprt_size 15) (setq aprt_size 15) )
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
560
Глава 15
Рис. 15.18. Окно AutoCAD с диалоговым окном, описанным в примере 8
При выполнении первой строки функция AutoLISP getvar извлекает значение системной переменной aperture, а функция setq присваивает полученное значение переменной aprt_size. Выражение, содержащееся во второй строке (if (> aprt_size 15), проверяет, не является ли значение переменной aprt_size больше 15. Если это так, выполняется третья строка (setq aprt_size 15), которая присваивает переменной aprt_size значение 15. Для того чтобы можно было отобразить векторное изображение в окне изображения, значение системной переменной aperture должно быть меньше или равно 15, так как в этом примере максимальный размер окна равен 15.
Программирование диалоговых окон с помощью языка Dialog Control Language
561
Строки 15 и 16 (setq x_aperture (dimx_tile "aperture_image")) (setq y_aperture (dimy_tile "aperture_image"))
В первой строке функция AutoLISP dimx_tile извлекает горизонтальный размер окна изображения (по оси X), а функция setq назначает полученное значение переменной x_aperture. Функция dimy_tile, в свою очередь, используется для получения вертикального размера окна (по оси Y).
Строка 17 (set_tile "aperture_slider" (itoa aprt_size))
Функция AutoLISP i t o a преобразует целочисленное значение переменной aprt_size в строковое, а функция set_tile присваивает полученное значение переменной "aperture_slider". Выражение "aperture_slider", используемое в файле DCL, является именем элемента slider.
Строки 18–21 (setq (setq (setq (setq
x1 x2 y1 y2
((+ ((+
(/ (/ (/ (/
x_aperture x_aperture y_aperture y_aperture
2) 2) 2) 2)
aprt_size")) aprt_size")) aprt_size")) aprt_size"))
Первая строка вычисляет координату X левого нижнего угла перекрестья курсора. Для ее вычисления требуется разделить расстояние x_aperture на 2, а затем из полученного значения вычесть размер aprt_size. Переменная aprt_size имеет то же значение, что и системная переменная aperture. Под величиной апертуры подразумевается расстояние от точки пересечения линий перекрестья до сторон окна апертуры, измеренное в пикселях. Во второй строке вычисляется координата X правого нижнего угла. Следующие две строки вычисляют координаты Y этих точек.
Строки 22 и 23 (start_image (fill_image 0 0 x_aperture y_aperture)
Функция start_image запускает окно изображения aperture_image, определенное в файле DCL. Функция fill_image заливает желтым цветом (цветовой индекс 2) фрагмент изображения с заданными координатами.
Строки 27 и 28 (vector_image x1 y2 x1 y1 1) (end_image)
Функция AutoLISP vector_image обеспечивает построение вектора (линии), соединяющей точку с координатами (x1, y2) с точкой, имеющей координаты (x1, y1). Функция end_image завершает работу с изображением.
562
Глава 15
Строки 29–31 (action_tile "aperture_slider" "(draw_size (setq aprt_size (atoi $value)))") (action_tile "accept" "(do_setvars)(done_dialog)")
Функция действия $value извлекает строковое значение, присвоенное активному элементу slider, а функция atoi преобразует полученное значение в целое число. Затем это значение используется функцией draw_size для построения векторного изображения перекрестья курсора. Элемент “ползунок”, определенный в файле DCL, имеет имя aperture_slider. Третья строка выполняет функцию do_setvars и закрывает диалоговое окно при выборе кнопки ОК. Функции draw_size и do_setvars определены в программе AutoLISP.
Строки 36 и 37 (defun do_setvars () (setvar "aperture" aprt_size)
Функция defun определяет функцию do_setvars. Функция setvar присваивает системной переменной aperture значение, равное значению переменной aprt_size.
Строки 42 и 43 (defun draw_size (aprt_size) (setq x1 (- (/ x_aperture 2) aprt_size))
В первой строке определяется функция draw_size с аргументом aprt_size, а во второй — вычисляется координата Х первого вектора.
Повторение пройденного материала Ответьте на следующие вопросы. 1. В каждом файле, написанном на языке управления диалогом (DCL), может содержаться описание одного или нескольких диалоговых окон. (Да/Нет) 2. Файлы DCL позволяют отказаться от определения размеров и компоновки диалоговых окон или их составляющих. (Да/Нет) 3. Диалоговые окна не зависят от платформы, поэтому они подходят для любой системы, которая поддерживает программу AutoCAD. (Да/Нет) 4. Диалоговые окна могут содержать несколько кнопок ОК. (Да/Нет) 5. Атрибутам, используемым в файлах DCL, могут назначаться как целочисленные, так и вещественные значения. (Да/Нет) 6. Зарезервированные имена, используемые в языке DCL, должны вводиться с учетом регистра клавиатуры. (Да/Нет) 7. Атрибут метки, используемый при определении кнопки, не имеет значения, присваиваемого по умолчанию. (Да/Нет) 8. В диалоговом окне может быть только одна кнопка с атрибутом is_default, имеющим значение true. (Да/Нет) 9. Функция load_dialog обеспечивает отображение диалогового окна на экране. (Да/Нет)
Программирование диалоговых окон с помощью языка Dialog Control Language
563
10. Нельзя выбрать элемент управления, используя ускоряющую клавишу, назначенную этому элементу. (Да/Нет) 11. Мнемонические символы, используемые при определении ускоряющих клавиш, чувствительны к регистру клавиатуры. (Да/Нет) 12. Битовые флаги не могут суммироваться для определения нескольких режимов объектной привязки. (Да/Нет) 13. Переключатель (селективная кнопка) является предопределенным атрибутом. (Да/Нет) 14. Группы переключателей должны быть организованы в столбцы. (Да/Нет) 15. Активное текстовое окно может быть использовано для ввода или редактирования многострочного текста. (Да/Нет) 16. Атрибут width обеспечивает автоматическое растягивание элемента на всю ширину диалогового окна. (Да/Нет) 17. Элемент slider возвращает строковое значение. (Да/Нет) 18. Форматное соотношение представляет собой отношение ширины окна изображения к его высоте. (Да/Нет) 19. Атрибут color может использоваться с окном изображения для определения цвета фона. (Да/Нет) 20. Функция vector_image может быть использована для построения векторов в окне графического редактора. (Да/Нет) 21. Функция $value используется для получения вещественных значений, присвоенных элементам диалогового окна. (Да/Нет) 22. Основные элементы управления, к которым относятся кнопки, текстовые окна и изображения, определены функцией ________, имеющейся в программе AutoCAD. 23. Метка кнопки располагается ________ окна, образующего этот элемент. 24. Атрибут ________ используется для присваивания имен элементам диалоговых окон. 25. Атрибут метки, используемый в блочном столбце, представляет собой строковое выражение, взятое в ________. 26. Атрибут ________ позволяет регулировать ширину элементов диалогового окна. 27. Команда, используемая для загрузки диалогового окна, имеет формат ________. 28. Функция AutoLISP ________ используется для инициализации диалогового окна и последующего отображения этого окна на экране. 29. Функция AutoLISP ________ используется для приема информации, введенной пользователем. 30. Функция AutoLISP ________ используется для создания ассоциативной связи между выражением действия и элементом управления диалогового окна. 31. Функция AutoLISP ________ может быть использована для получения результата выполнения логической операции AND (И). 32. Атрибут edit_width определяет размер текстового окна, выраженный в количестве ________.
564
Глава 15
33. Элемент image (“изображение”) используется для отображения ________ информации. 34. Значение, присваиваемое по умолчанию атрибуту max_value, равно ________. 35. Значение, присваиваемое по умолчанию атрибуту big_increment, равняется ___ _____ шкалы ползунка. 36. Функция AutoLISP ________ используется для заливки окна изображения определенным цветом.
Упражнения Упражнение 1 (Общее) Используя язык управления диалогом (DCL), напишите программу для диалогового окна, показанного на рис. 15.19. Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, описанных в этом окне.
Рис. 15.19. Диалоговое окно, используемое для выбора режима работы
Упражнение 2 (Общее) Напишите программу DCL для диалогового окна Isometric Snap/Grid, показанного на рис. 15.20. Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, показанных в этом окне.
Рис. 15.20. Диалоговое окно Isometric Snap/Grid
Программирование диалоговых окон с помощью языка Dialog Control Language
565
Упражнение 3 (Общее) Напишите программу DCL для диалогового окна, с помощью которого вы сможете вставлять ранее определенные блоки (рис. 15.21). Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех указанных функций. Значения, содержащиеся в текстовых окнах и определяющие координаты точки вставки, масштабный коэффициент и угол поворота, заданы по умолчанию.
Рис. 15.21. Диалоговое окно, используемое для вставки блоков
Упражнение 4 (Общее) Напишите программу DCL для диалогового окна, с помощью которого вы сможете выбирать формат отображения и точность измерения угловых величин (рис. 15.22). Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, описанных в этом окне.
Рис. 15.22. Диалоговое окно, используемое для выбора формата и точности отображения угловых величин
Глава 16
DIESEL: язык строковых выражений Цель занятия Познакомившись с материалом этой главы, вы научитесь: • использовать возможности DIESEL для настройки строки состояния; • использовать системную переменную MODEMACRO; • писать макровыражения на языке DIESEL; • применять язык AutoLISP с системной переменной MODEMACRO.
568
Глава 16
DIESEL: язык строковых выражений DIESEL (Direct Interactively Evaluated String Expression Language) — язык строковых выражений. Используя этот язык, можно отобразить определяемую пользователем текстовую строку (макровыражение) в строке состояния, изменив значение системной переменной MODEMACRO. Этой переменной присваиваются только строковые значения, что обеспечивает генерирование данных строкового типа. Писать макровыражения на языке DIESEL довольно просто, поэтому этот язык является мощным средством настройки AutoCAD. Однако следует заметить, что DIESEL работает медленно и поэтому не может использоваться так, как AutoLISP или DCL. Например, с помощью AutoLISP можно записать и присвоить требуемое значение системной переменной MODEMACRO или определить выражения MODEMACRO в файле меню. В этой главе вы найдете подробное описание функций DIESEL, а также познакомитесь со способами их использования при записи макровыражений.
Строка состояния Строка состояния находится в нижней части графического окна программы AutoCAD (рис. 16.1). В этой строке отображается необходимая информация и содержатся инструменты, позволяющие изменять состояние некоторых функций AutoCAD. Чтобы изменить текущее состояние, достаточно щелкнуть мышью на соответствующей кнопке. Например, для того чтобы отобразить линии сетки на экране, щелкните на кнопке GRID (СЕТКА). Если же требуется перейти в пространство листа, щелкните на кнопке MODEL/PAPER (МОДЕЛЬ/ЛИСТ). Строка состояния содержит следующую информацию: Полярное отслеживание Режим ортогональности Отображение сетки Шаговая привязка
Объектная привязка Объектное отслеживание Отображение линий в соответствии с толщиной Пространство модели или листа
Рис. 16.1. Строка состояния с настройками, заданными по умолчанию
Счетчик координат. Координаты, отображаемые в строке состояния, могут быть статическими или динамическими. В статической системе координат значения, выводимые в строке состояния, изменяются только при определении точки. В свою очередь, при использовании динамических координат (стандартная настройка) программа AutoCAD постоянно отображает абсолютные координаты, определяющие текущее положение курсора относительно начала координат пользовательской системы координат (ПСК). При выполнении определенных команд программа AutoCAD может также определять положение курсора в полярных координатах (длина — угол). Ниже описываются другие кнопки, имеющиеся в строке состояния. SNAP. Кнопка SNAP (ШАГ) позволяет включать или выключать режим привязки к точкам сетки с определенным настраиваемым шагом (в этом случае перемещения осуществляются по прямолинейным сегментам с заданным шагом) или к углам (вблизи определенных углов перемещения осуществляются только по сегментам с заданным шагом).
DIESEL: язык строковых выражений
569
GRID. Кнопка GRID (СЕТКА) позволяет включать или выключать сетку из точек с настраиваемым шагом, отображаемую в зоне лимитов. ORTHO. Кнопка ORTHO (ОРТО) включает или выключает режим ортогональности. Если этот режим включен, линии могут быть проведены только в вертикальном или горизонтальном направлении. POLAR. Кнопка POLAR (ОТС-ПОЛЯР) включает или выключает режим полярного отслеживания, параметры которого определяются на вкладке Polar Tracking (Полярное отслеживание) диалогового окна Drafting Settings (Настройки рисования). OSNAP. Кнопка OSNAP (ПРИВЯЗКА) позволяет включать или выключать режим постоянного действия заданных функций объектной привязки. При выключении этой кнопки текущие объектные привязки временно отключаются. Состояние режима OSNAP (Off (Откл.) или On (Вкл.)) не влияет на использование обычных объектных привязок. OTRACK. Кнопка OTRACK (ОТС-ОБЪЕКТ) позволяет включать или выключать режим объектного отслеживания, благодаря которому программа AutoCAD может использовать полярное отслеживание от промежуточной точки, указываемой с применением объектной привязки. LWT. Кнопка LWT (ТОЛЩИНА) включает или выключает режим отображения толщины элементов чертежа. Толщина линии — это ширина, с которой линия будет выводиться на внешнее устройство. MODEL/PAPER. Кнопка MODEL/PAPER (МОДЕЛЬ/ЛИСТ) позволяет переключаться между пространствами модели и листа. Когда вы работаете в пространстве модели, в строке состояния отображается кнопка MODEL. При переходе в пространство листа вместо нее появляется кнопка PAPER.
Системная переменная MODEMACRO Системная переменная MODEMACRO может быть использована для отображения новой текстовой строки в строке состояния. С помощью этой переменной можно также вывести значение, возвращаемое макровыражением, написанным на языке DIESEL. (С этим языком вы познакомитесь в следующих разделах этой главы.) MODEMACRO — системная переменная AutoCAD, поэтому для того чтобы присвоить этой переменной какое-либо значение, можно ввести выражение MODEMACRO в командную строку или воспользоваться командой SETVAR. Представьте, например, что вам необходимо ввести в строку состояния выражение “Customization AutoCAD”. Для этого введите выражение SETVAR в командную строку и нажмите клавишу <Enter>. Когда появится приглашение на ввод имени системной переменной, введите MODEMACRO и нажмите клавишу <Enter> еще раз. Теперь можно ввести текст, который вы хотите отобразить в строке состояния. Как только вы введете “Customization AutoCAD” и нажмете клавишу <Enter>, в строке состояния появится новое выражение. Command: MODEMACRO ◊◊◊ Команда: MODEMACRO
или Command: SETVAR Variable name or ?: MODEMACRO
570
Глава 16
Enter new value for MODEMACRO, or . for none : Customization AutoCAD ◊◊◊ Команда: SETVAR Имя переменной или?: MODEMACRO Новое значение MODEMACRO или точка (.), если его нет : Customization AutoCAD
Можно также ввести выражение MODEMACRO в командную строку, а затем ввести текст, который вы хотите отобразить в строке состояния. Command: MODEMACRO Enter new value for MODEMACRO, or . for none : Customization AutoCAD ◊◊◊ Команда: MODEMACRO Новое значение MODEMACRO или точка (.), если его нет : Customization AutoCAD
Измененное значение системной переменной MODEMACRO сохранится до тех пор, пока вы не введете новое значение, не начнете новый или не откроете уже существующий чертеж. Если вы хотите отобразить в строке состояния стандартный текст, при появлении приглашения Enter new value for MODEMACRO, or . for none : введите точку (.). Значение, присвоенное системной переменной MODEMACRO, не сохраняется ни в чертеже, ни в конфигурационных или системных файлах. Command: MODEMACRO Enter new value for MODEMACRO, or . for none : .
Настройки строки состояния Инструментальные средства, содержащиеся в строке состояния, можно разделить на две части: область переключения режимов и счетчик координат. Область переключения режимов содержит следующие кнопки: Snap (Шаг), Grid (Сетка), Ortho (Орто), Polar Tracking (Полярное отслеживание), Object Snap (Объектная привязка), Object Tracking (Объектное отслеживание), Lineweight (Толщина линий) и Model Space (Модельное пространство) (см. рис. 16.1). Счетчик координат отображает координаты X, Y и Z, которые определяют положение курсора на графическом экране. Чтобы привести строку состояния в соответствие с вашими потребностями, присвойте системной переменной MODEMACRO требуемое значение. Значение, назначенное этой переменной, выравнивается по левому краю строки состояния, которая располагается в нижней части окна программы AutoCAD. Количество символов, которые могут отобразиться в строке состояния, определяется характеристиками вашего монитора и размерами окна AutoCAD. Поле счетчика координат не изменяется и не редактируется. Информация, отображаемая в строке состояния, может принести немало пользы. Поэтому выбирая данные, которые вы собираетесь вывести в этой строке, необходимо соблюдать определенную осмотрительность. Например, работая над каким-либо проектом, можете ввести в строку состояния название этого проекта. Если во время работы используется несколько размерных стилей, в строке состояния можно отобразить имя текущего стиля (DIMSTYLE). Точно так же, если у вас имеется несколько текстовых файлов,
DIESEL: язык строковых выражений
571
набранных различными шрифтами, строка состояния позволит вам отобразить имя текущего текстового стиля (TEXTSTYLE) и высоту используемого шрифта (TEXTSIZE). Иногда во время работы с трехмерными чертежами возникает необходимость контролировать направление взгляда на текущем видовом экране (VIEWDIR). Чтобы упростить эту задачу, можете отобразить координаты камеры в строке состояния. Таким образом, характер информации, отображаемой в этой строке, зависит от требований, предъявляемых к определенному чертежу. AutoCAD дает возможность настроить строку состояния и вывести информацию, касающуюся данного проекта.
Макровыражения, написанные на языке DIESEL Чтобы присвоить системной переменной MODEMACRO определенное значение, можно также использовать макровыражения, написанные на языке DIESEL. Макровыражения DIESEL похожи на функции AutoLISP, но имеют некоторые отличия. Например, имя чертежа можно получить с помощью оператора AutoLISP (getvar dwgname). В языке DIESEL для выполнения подобной операции используется макровыражение $(getvar,dwgname). Тем не менее, это выражение, в отличие от соответствующей функции AutoLISP, возвращает только строковые значения. Макровыражение DIESEL имеет следующий формат: $(имя_функции, аргумент1, аргумент2, ...)
Пример $(getvar,dwgname)
В этом примере getvar — имя строковой функции DIESEL, а dwgname — ее аргумент. Использование пробелов, разделяющих различные элементы макровыражений DIESEL, не допускается. Например, нельзя ставить пробел между знаком доллара ($) и открывающей круглой скобкой, или между запятой и аргументом dwgname. Все макровыражения должны начинаться со знака доллара ($). Следующий пример иллюстрирует использование макровыражения DIESEL для определения строки состояния и назначения системной переменной MODEMACRO соответствующего значения.
Пример 1 Используя команду MODEMACRO, переопределите строку состояния и выведите на экран следующую информацию: • имя проекта (Cust-Acad); • имя чертежа (DEMO); • имя текущего слоя (OBJ). Обратите внимание, что в этом примере проект называется Cust-Acad, чертеж имеет имя DEMO, а текущий слой — имя OBJ. Прежде чем ввести команду MODEMACRO, нужно определить способ получения требуемой информации из базы данных чертежа. Например, имя чертежа (Cust-Acad) представляет собой определяемое пользователем имя, которое позволяет узнать название текущего проекта. Однако название проекта не сохраняется в базе данных чертежа. Для получения имени чертежа обычно используется строковая функция getvar, записанная следующим образом: $(getvar,dwgname). С помощью функции getvar можно также
572
Глава 16
получить имя текущего слоя — $(getvar,clayer). Определив способ извлечения нужной информации, создайте новую строку состояния, изменив значение системной переменной MODEMACRO. В нашем примере для определения требуемой строки состояния будет использоваться следующее выражение DIESEL: Command: MODEMACRO Enter new value for MODEMACRO, or . for none : Cust-Acad N:$(GETVAR,dwgname)L:$(GETVAR,clayer)
Пояснения Cust-Acad
Cust-Acad — имя проекта, которое вы хотите отобразить в строке состояния. N:$(GETVAR,dwgname)
В нашем примере N: — аббревиатура, используемая для обозначения имени чертежа. Функция getvar извлекает имя чертежа, содержащееся в системной переменной dwgname, и отображает его в строке состояния, рядом с выражением N:. L:$(GETVAR,clayer)
В этой строке L: — аббревиатура, используемая для обозначения имени слоя. Функция getvar извлекает имя текущего слоя, сохраненное в системной переменной dwgname, и отображает его в строке состояния. Новая строка состояния показана на рис. 16.2. Имя проекта Имя чертежа Имя слоя
Рис. 16.2. Строка состояния, определенная в примере 1
Пример 2 Используя команду MODEMACRO, переопределите строку состояния таким образом, чтобы отобразить следующую информацию (рис. 16.3): • имя текущего текстового стиля; • размер шрифта; • общее затраченное пользователем время, выраженное в минутах. В этом примере для обозначения текстового стиля, размера шрифта и общего затраченного времени используются аббревиатуры TSTYLE:, TSIZE: и ETM: соответственно. Command: MODEMACRO Enter new value for MODEMACRO, or . for none : TSTYLE:$(GETVAR,TEXTSTYLE) TSIZE:$(GETVAR,TEXTSIZE) ETM: $(FIX,$(*,60,$(*,24,$(GETVAR,TDUSRTIMER))))
DIESEL: язык строковых выражений
573
Пояснения TSTYLE:$(GETVAR,TEXTSTYLE)
Функция getvar извлекает имя текущего текстового стиля, содержащееся в системной переменной TEXTSTYLE, и отображает его в строке состояния, рядом с выражением TSTYLE:. TSIZE:$(GETVAR,TEXTSIZE)
Функция getvar извлекает текущий размер текста, который хранится в системной переменной TEXTSIZE, и отображает его в строке состояния, рядом с выражением TSIZE:.
Текущий текстовый стиль Размер шрифта Затраченное пользователем время (в минутах)
Рис. 16.3. Строка состояния, определенная в примере 2
ETM:$(FIX,$(*,60,$(*,24,$(GETVAR,TDUSRTIMER))))
Функция getvar извлекает общее затраченное пользователем время из системной переменной TDUSRTIMER. Полученное значение имеет следующий формат: .
Пример 0,03206400 (время в днях)
Чтобы выразить это время в минутах, вначале преобразуйте его в часы, умножив значение, извлеченное из системной переменной TDUSRTIMER, на 24 (количество часов в сутках). Затем выразите это время в минутах, умножив результат произведения на 60 (количество минут в одном часе). Для того чтобы получить количество минут в виде целого числа без дробной части, преобразуйте полученное значение в целое число, используя для этого строковую функцию FIX. Пример Предположим, что значение, возвращенное системной переменной TDUSRTIMER, равно 0,03206400. Это — затраченное пользователем время, выраженное в днях. Выразите это время в минутах, выполнив следующие вычисления, а затем преобразуйте полученный результат в целое число. • 0,03206400 дней × 24 = 0,769536 часов; • 0,769536 часов × 60 = 46,17216 минут; • целая часть числа 46,17216 = 46.
574
Глава 16
Использование переменной MODEMACRO с функциями AutoLISP Иногда выражения DIESEL могут иметь довольно большую длину (в качестве иллюстрации можно привести примеры 1 или 2). Ввод подобного выражения с клавиатуры не только отнимает немало времени, но и повышает вероятность появления ошибки. Кроме этого, если используется несколько различных строк состояния, то для перехода к новой строке вам приходится каждый раз набирать соответствующее выражение DIESEL. Подобное занятие трудоемко и довольно утомительно. Чтобы упростить изменение отображаемой строки состояния, попробуйте написать макровыражение DIESEL, используя функции AutoLISP. Это упростит загрузку написанной программы и поможет избежать ошибок, которые могут быть допущены при наборе выражений DIESEL. Следующий пример иллюстрирует использование языка AutoLISP для написания выражения DIESEL, с помощью которого вы сможете присвоить новое значение системной переменной MODEMACRO.
Пример 3 Напишите программу AutoLISP, которая позволит вам переопределить значение, присвоенное системной переменной MODEMACRO, и отобразить следующую информацию в строке состояния: • имя текущего текстового стиля; • размер шрифта; • общее затраченное пользователем время, выраженное в минутах. В этом примере для обозначения стиля текста, размера шрифта и времени, затраченного пользователем, используются аббревиатуры TSTYLE:, TSIZE: и ETM: соответственно. Ниже приведен листинг программы AutoLISP для примера 3. Файловое имя этой программы — etm.lsp. Номера строк не являются частью программного кода, а используются только для ссылок. (defun c:etm() (setvar "MODEMACRO" (strcat "TSTYLE:$(gertvar,textstyle)" "TSIZE:$(getvar,textsize)" "ETM:$(fix,#(*,60,$(*,24, $(getvar,tdusrtimer)))) ) ) )
1 2 3 4 5 6 7 8 9 10
Пояснения Строка 3 (strcat
Функция AutoLISP strcat связывает строковые значения, определенные в строках 4–7, и возвращает одну общую строку, которая представляет собой выражение DIESEL, используемое командой MODEMACRO.
DIESEL: язык строковых выражений
575
Строка 4 "TSTYLE:$(gertvar,textstyle)"
Эта строка представляет собой выражение DIESEL, содержащее строковую функцию gertvar, которая получает значение системной переменной textstyle и заменяет выражение $(gertvar,textstyle) именем текущего текстового стиля. Например, при использовании текстового стиля STANDARD эта строка возвратит выражение “TSTYLE: STANDARD”. Данное выражение заключено в кавычки и поэтому является строкой.
Строки 6 и 7 "ETM:$(fix,#(*,60,$(*,24, $(getvar,tdusrtimer))))"
Выражение, содержащееся в этих двух строках, возвращает ETM: и количество времени, выраженное в минутах. Выражение fix — строковая функция DIESEL, используемая для преобразования вещественного числа в целое. Чтобы загрузить программу AutoLISP (файл etm.lsp), используйте следующие команды. В этом примере файловое имя программы совпадает с именем функции (ЕТМ). Command: (load "ETM") ETM Command: ETM
Использование выражений DIESEL в различных меню Можно также определить выражение DIESEL в экранном, планшетном, выпадающем или кнопочном меню. В этом случае при выборе элемента меню системная переменная MODEMACRO автоматически получает определенное значение, а в окне программы отображается новая строка состояния. Следующий пример иллюстрирует использование выражения DIESEL в экранном меню.
Пример 4 Напишите определение экранного меню, содержащего несколько макросов DIESEL, используемых для отображения следующей информации в строке состояния (рис. 16.4). Макрос_1
Макрос_2
Макрос_3
Имя проекта
Ширина полилинии
Dimtad (вертикальность текста относительно размерной линии)
Имя чертежа
Радиус сопряжения
Dimtix (размещение размерных чисел между выносными линиями)
Имя текущего слоя
Величина смещения
Dimscale (глобальный масштабный коэффициент)
Ниже представлен листинг файла экранного меню, содержащего определение трех макросов DIESEL. Чтобы загрузить меню, введите в командную строку команду MENU, а затем — имя соответствующего файла. При выборе первого элемента меню (DIESEL1) в левом нижнем углу экрана отобразится новая строка состояния.
576
Глава 16
***MENUGROUP=MENU1 ***POP1 [*DIESEL*] [DIESEL1:]^C^CMODEMACRO;$M=CustAcad,N:$(GETVAR,DWGNAME),+ L:$(GETVAR,CLAYER); [DIESEL2:]^C^CMODEMACRO;$M=PLWID:$(GETVAR,PLINEWID),+ FRAD:$(GETVAR,FILLETRAD),OFFSET:$(GETVAR,OFFSETDIST),+ LTSCLAE:$(GETVAR,LTSCALE); [DIESEL3:]^C^CMODEMACRO;$M=DTAD:S(GETVAR,DIMTAD),+ DTIX:$(GETVAR,DIMTIX),DSCALE:$(GETVAR,DIMSCALE);
Рис. 16.4. Строка состояния для примера 4
Системная переменная MACROTRACE MACROTRACE — системная переменная AutoCAD, которая обычно используется для отладки выражений DIESEL. По умолчанию значение этой переменной равно 0 (Off). Включение средств отладки происходит путем присваивания системной переменной MACROTRACE значения 1 (On). При этом системная переменная MACROTRACE вычисляет все имеющиеся выражения DIESEL и отображает полученные результаты в области командной строки. Например, если во время одного сеанса определяется несколько различных выражений DIESEL, они будут вычислены одновременно и в командной строке появятся соответствующие сообщения.
DIESEL: язык строковых выражений
577
Пример Command: MACROTRACE Enter new value for MODEMACRO, or . for none : $(getvar,dwgname),$(getvar clayer)
Обратите внимание, что в этом выражении пропущена запятая между getvar и clayer. При включении средств отладки, т.е. при присвоении системной переменной MACROTRACE значения 1, в области командной строки появится следующее сообщение: Eval: $(GETVAR,DWGNAME) ====>UNNAMED Eval: $(GETVAR,CLAYER) Err: $(GETVAR,CLAYER)??
Полученное сообщение позволяет определить характер и местоположение допущенной ошибки. Как показано в этом примере, при вычислении первой части выражения DIESEL возвращается имя чертежа (unnamed), а попытка вычисления второй части приводит к получению сообщения об ошибке. Это указывает на наличие ошибки во второй части выражения DIESEL. Чтобы определить характер и причину допущенной ошибки, воспользуйтесь следующей таблицей. Сообщение об ошибке
Описание
$? $?(func,??) $(func)?? $(++)
Синтаксическая ошибка Аргумент, не подходящий для данной функции Неизвестная функция Выходная строка имеет слишком большую длину
Строковые функции DIESEL Функции DIESEL, так же как и функции AutoLISP, могут использоваться для выполнения математических операций, извлечения нужных данных из базы данных чертежа и отображения полученных значений в строке состояния в предварительно определенной последовательности. Например, с помощью этих функций можно складывать, вычитать, умножать или делить различные числа. Можно также получить значения некоторых системных переменных, а затем отобразить их в строке состояния. Максимальное количество параметров, которые могут содержаться в выражении DIESEL, равно 10. В это число входят также имена функций. Перед вами несколько примеров наиболее частого применения строковых функций DIESEL.
Функция “сложение” Формат: $(+,число1,число2,число3,...) Эта функция (+) вычисляет сумму чисел, находящихся справа от знака “плюс” (+). Слагаемые могут быть целыми или вещественными. Примеры $(+,2,5) $(+,2,5,50.75)
возвращает 7 возвращает 57.75
Примечание Чтобы проверить правильность вычислений, можно присвоить выражение DIESEL системной переменной MODEMACRO.
578
Глава 16
Command: MODEMACRO Enter new value for MODEMACRO, or . for none : $(+,2,5)
Программа AutoCAD возвратит значение 7, которое будет отображено в строке состояния. Необходимо отметить, что значения, возвращаемые строковыми функциями DIESEL, также являются строковыми.
Функция “вычитание” Формат: $(-,число1,число2,число3,...) Эта функция (-) вычитает второе число из первого числа. Если функция содержит три и больше аргументов, второй и все последующие аргументы суммируются и полученная сумма вычитается из первого числа. Примеры $(-,28,14) $(-,25,7,11.5)
возвращает 14 возвращает 6.5
Функция “умножение” Формат: $(*,число1,число2,число3,...) Эта функция (*) вычисляет произведение чисел, находящихся справа от знака “звездочка”. Примеры $(*,2,5) $(*,2,5,3.0) $(*,2,5,3.25)
возвращает 10 возвращает 30 возвращает 32.5
Функция “деление” Формат: $(/,число1,число2,число3,...) Эта функция (/) делит первое число на второе. Если функция содержит три и больше аргументов, первое число делится на произведение второго и всех последующих чисел. Примеры $(/,3,2) $(/,3.0,2,) $(/,200,5,4) $(/,200.0,5.5) $(/,200,-5) $(/,-200,-5.0)
возвращает 1.5 возвращает 1.5 возвращает 10 возвращает 36.36363636 возвращает –40 возвращает 40
Реляционные операторы В макровыражениях DIESEL иногда используются функции, проверяющие выполнение тех или иных условий. Если функция возвращает значение “true” (“истина”), выполняется одна операция; если возвращается значение “false” (“ложь”), выполняется другая операция. В следующих разделах вы познакомитесь с реляционными операторами, используемыми в выражениях DIESEL.
Функция “равно” Формат: $(=,число1,число2)
DIESEL: язык строковых выражений
579
Эта функция (=) проверяет равенство указанных чисел. Если эти числа равны, заданное условие выполняется и функция возвращает значение 1. Если же условие не выполняется, функция возвращает значение 0. Примеры $(=,5,5) $(=,5,4.9) $(=,5,-5)
возвращает 1 возвращает 0 возвращает 0
Функция “не равно” Формат: $(!=,число1,число2) Эта функция (!=) проверяет неравенство двух чисел. Если числа неравны, заданное условие выполняется и функция возвращает значение 1. В противном случае функция возвращает значение 0. Примеры $(!=,50,4) $(!=,50,50) $(!=,50,-50)
возвращает 1 возвращает 0 возвращает 1
Функция “меньше” Формат: $(= 6050 And Room 26072
В примере 6 описывается процесс формирования нового запроса, создаваемого с помощью различных вкладок редактора Query Editor.
Пример 6 Создайте новый запрос для таблицы базы данных Computer и подготовьте запрос SQL, используя опции различных вкладок редактора Query Editor. 1. Откройте окно DBCONNECT MANAGER, щелкните правой кнопкой мыши на имени таблицы Computer и выберите из контекстного меню команду New Query (Новый запрос). На экране появится диалоговое окно New Query (Новый запрос), показанное на рис. 18.23. Для вызова диалогового окна можно также воспользоваться кнопкой New Query, которая находится в верхней части окна DBCONNECT MANAGER.
Рис. 18.23. Диалоговое окно New Query
2. По умолчанию новый запрос получает имя ComputerQuery1. Если вас это устраивает, щелкните на кнопке Continue (Продолжить), которая находится в нижней части окна New Query (Новый запрос). На экране появится диалоговое окно Query Editor (Редактор запроса). 3. Перейдите на вкладку Quick Query (рис. 18.24), выберите элемент Item_Type из спискового окна Field (Поле), а также элемент = Equel из раскрывающегося списка Operator (Оператор) и введите выражение CPU в текстовое окно Value (Значение). Это значение можно ввести, щелкнув на кнопке Look up value (Найти значение) и выбрав соответствующий элемент в диалоговом окне Column Values (Значения столбца). Чтобы сохранить запрос, щелкните на кнопке Store (Сохранить). Примечание Чтобы просмотреть созданный запрос, щелкните на кнопке Execute (Выполнить), которая находится в правой части диалогового окна Query Editor. Следует заметить, что при выполнении запроса диалоговое окно редактора закрывается, поэтому для продолжения работы вам придется создать новый запрос.
Организация доступа к внешним базам данных
637
Рис. 18.24. Диалоговое окно Query Editor (вкладка Quick Query)
4. Перейдите на вкладку Range Query (рис. 18.25) и выберите элемент Room из спискового окна Field (Поле). Введите значение 6050 в текстовое окно From (От) и значение 6150 в текстовое окно Through (До). Нужные значения можно ввести, щелкнув на кнопке Look up value (Найти значение) и выбрав соответствующие элементы в диалоговом окне Column Values (Значения столбца). Сохраните запрос, щелкнув на кнопке Store (Сохранить). 5. Перейдите на вкладку Query Builder и введите элемент Item_Type в списковое окно Show Fields (Показать поля), выбрав его в списковом окне Fields in table: (Поля в таблице:) и щелкнув на кнопке Add (Добавить). Перейдите в область таблицы и измените значения полей Operator (Оператор), Value (Значение), Logical (Логический) и введите критерий группировки, как показано на рис. 18.26. Для этого необходимо щелкнуть мышью в ячейке таблицы и выбрать требуемое значение из соответствующего раскрывающегося списка или списка опций. Затем сохраните запрос, щелкнув на кнопке Store (Сохранить). 6. Перейдите на вкладку SQL Query, на которую будут автоматически перенесены ранее определенные критерии отбора. Опции этой вкладки дают возможность создавать запросы, используя записи нескольких таблиц. Но для нашего примера это не подходит. Выберите элемент Computer из спискового окна Table (Таблица), Tag_Number из спискового окна Fields (Поля), элемент >= Greater than or equal to (>= Больше или равно) из раскрывающегося списка Operator (Оператор) и введите значение 26072 в текстовое окно Values (Значения). Можно также ввести требуемые значения, щелкнув на кнопке [...], которая находится в нижней части диалогового окна (рис. 18.27). Чтобы сохранить запрос, щелкните на кнопке Store (Сохранить). 7. Чтобы проверить синтаксис операторов SQL, щелкните на кнопке Check (Проверить). На экране появится окно Information, содержащее соответствующее сообщение. Если вы хотите отобразить окно Data View, которое содержит набор записей, отвечающих ранее определенным критериям отбора, щелкните на кнопке Execute (Выполнить).
638
Глава 18
Рис. 18.25. Диалоговое окно Query Editor (вкладка Range Query)
Рис. 18.26. Диалоговое окно Query Editor (вкладка Query Builder)
Рис. 18.27. Диалоговое окно Query Editor (вкладка SQL Quick)
Организация доступа к внешним базам данных
639
Примечание Наборы записей, удовлетворяющих тем или иным критериям отбора, можно просматривать во время создания запросов.
Импорт и экспорт запросов SQL Иногда приходится использовать в чертежах запросы, созданные другими пользователями, или наоборот, передавать свои запросы кому-нибудь другому. Программа AutoCAD дает вам возможность не только импортировать, но и экспортировать сохраненные запросы. Совместно используемые запросы играют немаловажную роль при создании набора общих инструментов для членов команды, участвующих в разработке проекта. Примечание При выполнении команды ToolsdbConnect (СервисdbConnect) в строке меню появляется меню dbConnect. Если этого не произошло, введите в командную строку выражение MENULOAD. На экране появится диалоговое окно Menu Customization (Настройка меню). Перейдите на вкладку Menu Group (Группа меню), щелкните на кнопке Browse (Обзор) и, используя открывшееся окно, просмотрите содержимое каталога Support. Выделите файл dbcon.mnu и щелкните на кнопке Open (Открыть). Затем щелкните на кнопке Load (Загрузить), которая находится в нижней части диалогового окна Menu Customization. Теперь перейдите на вкладку Menu Bar (Строка меню) и выберите dbConnect из раскрывающегося списка Menu Group (Группа меню). После этого выберите элемент dbConnect из спискового окна Menus (Меню) и щелкните на кнопке Insert (Вставить). Выбранное меню появится в строке меню.
Чтобы экспортировать набор запросов из текущего чертежа, необходимо выполнить следующие действия. 1. Откройте диалоговое окно Export Query Set (Экспорт набора запросов), выбрав команду QueriesExport Query Set (ЗапросыЭкспорт набора запросов) из меню dbConnect. Используя раскрывающийся список Look In (Папка), выберите каталог, в котором вы хотите сохранить набор запросов. 2. Введите имя набора шаблонов в текстовое окно File Name (Имя файла) и сохраните запрос в выбранном каталоге, щелкнув на кнопке Save (Сохранить). Импортирование набора запросов в текущий чертеж выполняется следующим образом. 1. Откройте диалоговое окно Import Query Set (Импорт набора запросов), выбрав команду QueriesImport Query Set (ЗапросыИмпорт набора запросов) из меню dbConnect (рис. 18.22). 2. Импортируйте выбранный набор в текущий чертеж, щелкнув на кнопке Open (Открыть). Если имя импортируемого запроса совпадает с именем запроса, связанного с текущим чертежом, AutoCAD выводит окно предупредительных сообщений, с помощью которого вы сможете присвоить данному запросу уникальное имя.
Формирование наборов выбора путем отбора связей В программе AutoCAD имеется функция, которая дает возможность находить объекты на чертеже, связанные с какими-либо неграфическими данными. Например, мож-
640
Глава 18
но определить местоположение объекта, связанного с первой строкой таблицы Computer, или объектов, связанных с первой и второй строками этой таблицы. Эта функция позволяет не только выделить определенный объект, но и сформировать набор выбранных объектов. Для формирования итеративных наборов выбора, состоящих из графических объектов AutoCAD и записей базы данных, используется функция Link Select, представляющая собой одну из расширенных возможностей редактора запросов Query Рис. 18.28. Возможные отношения или операции над множествами Editor. Процесс формирования итеративного набора начинается с создания запроса или выбора графического объекта AutoCAD. Исходный набор выбранных объектов называется множеством А. Чтобы уточнить или детализировать критерии отбора, необходимо создать дополнительный запрос или выделить еще один объект. Второй набор выбора называется множеством В. Для формирования окончательного набора выбранных объектов требуется определить отношения между множествами А и В. Схематические изображения возможных отношений или операций над множествами показаны на рис. 18.28.
Выбор Эта операция используется для создания исходного запроса или набора выбора, состоящего из графических объектов. Уточнение или изменение сформированного набора выполняется с помощью последующих операций Link Select (Отбор связей).
Объединение Эта операция используется для добавления нового запроса или набора выбранных объектов к уже существующему набору. Операция объединения возвращает все записи, принадлежащие множеству А или множеству В.
Пересечение При этой операции выполняется пересечение нового набора выбора и уже существующего или запущенного набора выбранных объектов. Операция пересечения возвращает только записи, принадлежащие как множеству А, так и множеству В.
Вычитание А–В Эта операция используется для вычитания элементов нового набора выбранных объектов из уже существующего набора.
Вычитание В–А Эта операция используется для вычитания элементов существующего набора выбора из нового набора выбранных объектов. В результате выполнения операции отбора связей (Link Select) формируется новый набор выбранных объектов, который становится множеством А. Для его дальнейшей детализации создается новый набор выбора, называемый множеством В, после чего выполняется следующая операция.
Организация доступа к внешним базам данных
641
Процесс детализации набора выбранных объектов, выполняемый с помощью функции Link Select, описывается в следующем примере. 1. Откройте диалоговое окно Link Select (Отбор связей), выбрав команду LinksLink Select (СсылкиОтбор связей) из меню dbConnect (рис. 18.29).
Рис. 18.29. Диалоговое окно Link Select
2. Создайте новый набор выбора, выбрав элемент Select (Выделение) из раскрывающегося списка Do (Выполнить). Затем из раскрывающегося списка Using (Использовать) выберите шаблон ссылки. 3. Чтобы создать новый запрос или набор выбора, состоящий из графических объектов, выберите переключатель Use Query (Использовать запрос) или Select in Drawing < (Выбрать на чертеже). 4. Если вы хотите детализировать критерии отбора, щелкните на кнопке Execute (Выполнить). Чтобы добавить запрос или набор графических объектов, щелкните на кнопке Select (Выбрать). 5. Снова выберите элемент Select (Выбрать) из раскрывающегося списка Do (Выполнить). 6. Создайте множество В, выполнив действия, описанные в пп. 2–4, а затем завершите операцию отбора, щелкнув на кнопке Finish (Готово). Примечание Чтобы создать новый запрос, выберите переключатель Use Query (Использовать запрос). Если же вы хотите выделить на чертеже графический объект, используя его как набор выбора, выберите переключатель Select in Drawing < (Выделить на чертеже). Чтобы отобразить результаты операции отбора в окне Data View (Панель данных), установите флажок опции Indicate records in data view (Показать записи на панели данных). Если установить флажок опции Indicate objects in drawing (Указать объекты на чертеже), AutoCAD отобразит набор связанных графических объектов на чертеже.
642
Глава 18
Сохранение ссылок ASE в формате AutoCAD 2000 или в формате более поздних версий В AutoCAD 2000 и других, более поздних версиях этой программы ссылки стали сохраняться в новом формате. Поэтому если вы собираетесь работать со ссылками в программе AutoCAD 2004/2006, вам придется их конвертировать в формат AutoCAD 2000 или более поздних версий. Кроме этого необходимо создать конфигурационный файл AutoCAD 2004/2006, содержащий сведения об источнике данных, на который ссылаются существующие связи. Когда вы открываете чертеж, созданный в одной из предыдущих версий, AutoCAD выполняет автоматическое преобразование имеющихся данных. В тех случаях, когда автоматическое преобразование данных невозможно или формат существующего источника данных не соответствует формату AutoCAD 2004/2006, используется диалоговое окно Link Conversation. В процессе преобразования связей AutoCAD записывает адрес источника данных в файл соответствия asi.ini и применяет этот адрес для дальнейшего использования исходного источника данных. Чтобы перевести связи AutoCAD R13 или R14 в формат AutoCAD 2000 или более поздних версий, необходимо выполнить следующие действия. 1. Откройте диалоговое окно Link Conversation, показанное на рис. 18.30, выбрав команду Link Conversation из меню dbConnect. 2. Используя опции раздела Old Link Format, определите следующие параметры: • формат конвертируемых связей (R12 или R13/R14); • имена Environment (Среда), Catalog (Каталог), Schema (Схема) и Table (Таблица); • путевое имя ссылки, формат которой вы хотите изменить.
Рис. 18.30. Диалоговое окно Link Conversation
Организация доступа к внешним базам данных
643
3. Используя опции раздела New Link Format, определите следующие параметры: • имя источника данных AutoCAD 2004/2006 (например, jet_dbsamples); • имена Environment (Среда), Catalog (Каталог), Schema (Схема) и Table (Таблица); • имя шаблона ссылки AutoCAD 2004/2006. 4. Чтобы завершить процесс преобразования, щелкните на кнопке Apply (Применить), а затем на кнопке OK.
Сохранение ссылок AutoCAD 2004/2006 в формате R13/R14 Ссылки, созданные в программе AutoCAD 2004/2006, могут быть сохранены в формате R13 или R14 (формат R12 для сохранения ссылок AutoCAD 2004/2006 не используется). Для этого, сохраняя файл чертежа, выберите команду Save As (Сохранить как) и укажите нужный формат (R13 или R14). AutoCAD автоматически сохранит ссылки, имеющиеся на чертеже, в формате одной из ранних версий.
Задания для самопроверки Заполните пропуски и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Группа горизонтально расположенных данных называется ________. 2. Группа вертикально расположенных данных (атрибутов) называется ________. 3. Для подключения к таблице внешней базы данных используется диспетчер ____. 4. Таблица внешней базы данных может быть отредактирована во время работы в программе AutoCAD. (Да/Нет) 5. Окно Data View позволяет изменять ширину столбцов, сортировать, скрывать или замораживать содержащиеся в них данные. (Да/Нет) 6. При сохранении чертежа в программе AutoCAD содержащиеся в нем ссылки не сохраняются. (Да/Нет) 7. Для отображения записей, связанных с объектами чертежа, в программе AutoCAD используются ________. 8. В программе AutoCAD используются метки следующих типов: ______ и ______. 9. AutoCAD позволяет не только импортировать, но и экспортировать шаблоны связей и меток. (Да/Нет) 10. Аббревиатура ASE обозначает ________.
Повторение пройденного материала Ответьте на следующие вопросы. 1. Операторы SQL дают возможность обращаться к базе данных и извлекать информацию, соответствующую заданным критериям отбора. (Да/Нет) 2. Назовите основные элементы таблицы. 3. Что такое база данных? 4. Что такое система управления базами данных (СУБД)? 5. Строка таблицы также называется ________. 6. Столбец таблицы иногда называется ________.
644
Глава 18
7. При определении местоположения и связывании строки элемент _____________ выполняет такую же функцию, как и метка идентификатора. 8. В текущий момент времени можно обрабатывать только одну строку таблицы. Такая строка называется ________. 9. Диалоговое окно редактора запросов Query Editor содержит четыре вкладки, которые называются ________, ________, ________ и ________. 10. Во время формирования запроса можно возвращаться на предыдущие вкладки диалогового окна, не опасаясь, что ранее установленные параметры будут заменены значениями, заданными по умолчанию. (Да/Нет) 11. Запрос можно выполнить, установив критерии отбора на одной из вкладок редактора Query Editor. (Да/Нет) 12. Функция отбора связей (Link Select) представляет собой ______ возможность редактора Query Editor, которая используется для формирования итеративных наборов выделения, состоящих из графических объектов AutoCAD и записей базы данных. 13. В процессе преобразования связей AutoCAD записывает адрес источника данных в файл ________. 14. Ссылки, созданные в программе AutoCAD 2004/2006, ________ быть сохранены в формате R12.
Упражнения Упражнение 1 (Общее) Выполняя это упражнение, откройте окно DBCONNECT MANAGER, выберите таблицу Employee из источника данных jet_dbsamples и отредактируйте шестую строку таблицы (EMP_ID = 1006, Keyser). Затем введите в эту таблицу еще одну строку, сделайте ее текущей и просмотрите содержащиеся в ней данные. Строка, введенная в таблицу, содержит следующие значения: EMP_ID LAST_NAME FIRST_NAME Gender TITLE Department ROOM
1064 Joel Billy M Marketing Execute Marketing 6071
Упражнение 2 (Общее) Откройте таблицу Inventory из источника данных jet_dbsamples и сформируйте запрос SQL, использовав все вкладки редактора запросов Query Editor. Отбор записей должен выполняться по следующим критериям: 1. Тип продукции — Furniture. 2. Стоимость — от 200 до 650. 3. Изготовитель — Office master.
Ответы на вопросы для самопроверки 1 — строки, 2 — столбцы, 3 — dbConnect, 4 — Да, 5 — Да, 6 — Нет, 7 — выноски, 8 — свободные, прикрепленные, 9 — Да, 10 — AutoCAD SQL Environment.
Глава 19
Вычисление математических и геометрических выражений Цель занятия Познакомившись с материалом этой главы, вы научитесь: • работать с калькулятором; • использовать вещественные, целые, векторные числа и цифровые выражения; • использовать режимы привязки при вычислении выражений; • определять радиус объектов и координаты точек, находящихся на линии; • правильно применять калькулятор; • использовать переменные AutoLISP и координатный фильтр.
646
Глава 19
Геометрическая счетная машина Геометрическая счетная машина (Geometry Calculator) представляет собой приложение ADS, которое может использоваться в качестве калькулятора, работающего в оперативном режиме. С помощью этого калькулятора можно вычислять векторные, вещественные и целочисленные выражения. Кроме этого, счетная машина дает возможность обращаться к существующим геометрическим фигурам, используя три символа, с которых начинается имя стандартной функции объектной привязки AutoCAD (например, MID, CEN или END). Калькулятор может использоваться для вычисления арифметических и векторных выражений. Например, с помощью счетной машины можно легко вычислить такое выражение, как 3.5^12.5*[234*log(12.5)-3.5*cos(30)]. Результаты вычислений выводятся в командной строке программы AutoCAD. Второе применение калькулятора состоит в присвоении значений переменным AutoLISP. Например, можно ввести переменную AutoLISP в арифметическое выражение, а затем присвоить ей значение, полученное при его вычислении. Чтобы вызвать функцию CAL, введите выражение CAL или 'CAL (для прозрачного использования) в командную строку.
Вещественные, целочисленные и векторные выражения Вещественные и целочисленные выражения Вещественное выражение состоит из вещественных чисел и/или функций и соединяющих их арифметических операторов. В свою очередь, целочисленное выражение состоит из целых чисел и/или функций, которые объединены арифметическими операторами. Список арифметических операторов приведен в следующей таблице: Оператор
Операция
Пример
+
Сложение чисел
2 + 3
-
Вычитание чисел
15.5 - 3.754
*
Умножение чисел
12.34 * 4
/
Деление чисел
345.5/2.125
^
Возведение в степень
25.5^2.5
()
Группировка выражений
4.5 + (4.35^2)
Пример Command: CAL Инициализация... >>Expression: (4.5 + (4.35^2)) 23.4225
Вычисление математических и геометрических выражений
647
Векторные выражения Векторное выражение содержит координаты точек и векторов, числа и функции, соединенные следующими операторами: Оператор
Операция/Пример
+
Сложение векторов
[a,b,c] + [x,y,z] = [a+x, b+y, c+z] [2,4,5] + [5,4,7] = [2+5, 4+4, 3+7] = [7.0 8.0 10.0] -
Вычитание векторов
[a,b,c] - [x,y,z] = [a-x, b-y, c-z] [2,4,5] - [5,4,7.5] = [2-5, 4-4, 3-7.5] = [-3.0 0.0 -4.5] *
Умножение вектора на вещественное число
a * [x,y,z] = [a*x, a*y, a*z] 3*[2,8,3.5] = [3*2, 3*8, 3*3.5] = [6.0 24.0 10.5] /
Деление вектора на вещественное число
[x,y,z]/a = [x/a, y/a, z/a] [4,8,4.5]/2 = [4/2, 8/2, 4.5/2] = [2.0 4.0 2.25] &
Умножение векторов
[a,b,c] & [x,y,z] = [(b*z)-(c*y), (c*x)-(a*z), (a*y)-(b*x)] [2,4,6] & [3,5,8] = [(4*8)-(6*5), (6*3)-(2*8), (2*5)-(4*3)] = [2.0 2.0 -2.0] ()
Группировка выражений
a+(b^c)
Пример Command: CAL Инициализация... >>Expression: [2,4,3]-[5,4,7.5] -3.0 0.0 4.5
Математические функции Геометрическая счетная машина (CAL) поддерживает следующие математические функции: Функция
Описание
sin(угол)
Вычисляет синус угла
cos(угол)
Вычисляет косинус угла
tan(угол)
Вычисляет тангенс угла
asin(число)
Вычисляет арксинус угла (Число должно быть в пределах от –1 до 1)
acos(число)
Вычисляет арккосинус угла (Число должно быть в пределах от –1 до 1)
atan(число)
Вычисляет арктангенс угла
ln(число)
Вычисляет натуральный логарифм числа
log(число)
Вычисляет десятичный логарифм числа
648
Глава 19
Функция
Описание
exp(число)
Вычисляет натуральный показатель степени
exp 10(число)
Вычисляет десятичный показатель степени
sqr(число)
Вычисляет корень числа
sqrt(число)
Вычисляет квадратный корень числа
abs(число)
Вычисляет абсолютное значение числа
round(число)
Округляет число до ближайшего целого числа
trunc(число)
Возвращает целую часть числа
r2d(угол)
Преобразует угол, заданный в радианах, в градусы
d2r(угол)
Преобразует угол, заданный в градусах, в радианы
pi
Постоянная π, значение которой равно 3,14159
Пример Command: CAL Инициализация... >>Expression: Sin(60) 0.866025
Использование режимов привязки Иногда при вычислении выражений функция CAL используется вместе с различными режимами привязки. В этом случае на экране появляется приглашение, дающее возможность выделить нужный объект. Значение, возвращаемое при выделении объекта, используется при вычислении выражения. Например, если в функцию CAL ввести выражение (cen+end)/2, то калькулятор вначале отобразит приглашение на выбор объекта для привязки к центру (CENter), а затем — на выбор объекта для привязки к конечной точке (ENDpoint). Координаты точек, полученных при выделении этих объектов, будут просуммированы и разделены на 2. Возвращенное значение представляет собой координаты точки, которая находится на середине линии, соединяющей центр выделенной окружности и конечную точку второго объекта. Перед вами список режимов привязки функции CAL и соответствующих режимов объектной привязки AutoCAD: Режимы привязки CAL
Режимы привязки AutoCAD
END
ENDpoint (конечная точка)
EXT
EXTension (точка продолжения)
INS
INSert (точка вставки)
INT
INTersection (точка пересечения)
MID
MIDpoint (средняя точка)
CEN
CENter (центр дуги, окружности или эллипса)
NEA
NEArest (ближайшая точка)
NOD
NODe (узловая точка)
QUA
QUAdrant (точка квадранта)
PAR
PARallel (параллельно объекту)
PER
PERpendicular (перпендикулярно объекту)
TAN
TANgent (точка касания)
Вычисление математических и геометрических выражений
649
Пример 1 В этом примере режимы привязки CAL будут использоваться для получения числовых значений (координат точек), с помощью которых вы сможете построить отрезок Р3Р4. Предполагается, что окружность и отрезок Р1Р2 уже начерчены (рис. 19.1).
Рис. 19.1. Пример использования режимов привязки CAL
Command: Щелкните на кнопке Line (Отрезок) Specify first point: 'CAL >> Expression: (cen+end)/2 >>Select entity for CEN snap: Выберите окружность >>Select entity for END snap: Выберите конечную точку отрезка Р1Р2 Specify next point or [Undo]: 'CAL >> Expression: (cen+end)/2 >>Select entity for CEN snap: Выберите окружность >>Select entity for END snap: Выберите вторую конечную точку отрезка Р1Р2
Теперь для завершения чертежа соедините точку Р4 с точкой Р1 и точку Р3 с точкой Р2, как показано на рис. 19.1. Функция 'CAL инициализирует геометрический калькулятор. Одинарная кавычка ('), стоящая перед именем функции, делает ее выполнение прозрачным (т.е. незаметным для пользователя). При выполнении выражения (cen+end)/2 в командной строке появится приглашение на выделение объектов, которые будут использоваться для привязки по центру (CEN) и конечной точке (END). После выделения этих объектов калькулятор просуммирует соответствующие координаты, а затем разделит полученное число на 2. Координаты, возвращенные функцией CAL, принадлежат точке, расположенной на середине линии, соединяющей центр окружности с первым концом отрезка.
Определение радиуса геометрической фигуры Для вычисления радиусов графических объектов используется функция rad. Такими объектами являются окружность, дуга, эллипс или кривая линия.
Пример 2 В этом примере дана окружность, имеющая определенный радиус (R). Вам необходимо начертить вторую окружность, радиус которой составляет 0,75 радиуса исходной окружности (0.75*R), как показано на рис. 19.2.
650
Глава 19
Рис. 19.2. Вычисление радиуса объекта
Command: CIRCLE Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Выберите точку Р2 Specify radius of circle or [Diameter] <current>: 'CAL >>Expression: 0.75*rad >>Select circle, arc or polyline segment for RAD function: Выберите данную окружность ◊◊◊ Команда: CIRCLE Центр круга или [3T/2T/KKP (кас кас радиус)]: Выберите точку Р2 Радиус круга или [Диаметр]: 'CAL >>Выражение: 0.75*rad >>Выделите окружность, дугу или фрагмент полилинии для функции RAD: Выберите данную окружность
Теперь в ответ на приглашение калькулятора (>>Expression) можно ввести имя функции. В нашем примере это выражение 0.75*rad. Функция rad приглашает пользователя выбрать объект, после чего вычисляет радиус выбранной фигуры. Полученное значение умножается на 0,75. Произведение радиуса и коэффициента 0,75 определяет величину радиуса новой окружности.
Определение положения точки на линии Для построения точки, находящейся на линии, соединяющей две указанные точки, и расположенной на определенном расстоянии от одной из них, используются функции pld и plt. Функция pld имеет формат pld(p1,p2,dist). Эта функция позволяет построить точку, расположенную на линии Р1Р2 и удаленную на расстояние dist от точки Р1. Например, если функция pld записана в виде pld(p1,p2,0.7), а расстояние между точками Р1 и Р2 равно 1,5, калькулятор разместит точку на линии Р1Р2 на расстоянии 0,7 от точки Р1. Функция plt имеет формат plt(p1,p2,t). С помощью этой функции можно построить точку на линии Р1Р2, разделив ее на два пропорциональных отрезка, соотношение длин которых определяется параметром t. Если t=0, построенная точка будет располо-
Вычисление математических и геометрических выражений
651
жена в точке Р1. Точно так же, если t=1, данная точка попадает в точку Р2. Тем не менее, если t больше 0, но меньше 1 (0>Выражение: pld(end,end,0.5) >>Выделите объект для привязки END: Выберите точку Р1 >>Выделите объект для привязки END: Выберите точку Р2 Радиус круга или [Диаметр] : Введите радиус
В свою очередь функция plt(end,end,0.5) запросит пользователя выделить конечные точки дуги Р3Р4, после чего возвратит точку, расположенную на расстоянии 0,5*d от точки Р3.
652
Глава 19
Command: Щелкните на кнопке Circle (Окружность), которая находится на панели инструментов Draw (Рисование) Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: plt(end,end,0.5) >>Select entity for END snap: Выберите точку Р3 >>Select entity for END snap: Выберите точку Р4 Specify radius of circle or [Diameter] <current>: Введите радиус ◊◊◊ Команда: CIRCLE Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL >>Выражение: plt(end,end,0.5) >>Выделите объект для привязки END: Выберите точку Р3 >>Выделите объект для привязки END: Выберите точку Р4 Радиус круга или [Диаметр] : Введите радиус
Определение угла Функция ang используется для определения величины угла, образованного двумя линиями. С помощью этой функции можно также определить угол между линией и положительной осью Х. Функция ang может иметь следующие форматы (рис. 19.4): ang(v) ang(p1,p2) ang(apex,p1,p2) ang(apex,p1,p2,p)
Рис. 19.4. Определение величины угла
Функция ang(v) Функция ang(v) используется для вычисления угла, образованного вектором и положительной осью Х. Предположим, что вектор имеет координаты [2,2,0]. Зная координаты вектора, можно найти величину угла:
Вычисление математических и геометрических выражений
653
Command: CAL >>Expression: v=[2,2,0] (Определение вектора v) Command: CAL >>Expression: ang(v) (v — ранее определенный вектор) 45.0 ◊◊◊ Команда: CAL >>Выражение: v=[2,2,0] (Определение вектора v) Команда: CAL >>Выражение: ang(v) (v — ранее определенный вектор) 45.0
Вектор v образует с положительной осью Х угол, равный 45 градусам.
Функция ang(р1,р2) Функция ang(р1,р2) используется для вычисления угла, образованного отрезком Р1Р2 и положительной осью Х. Предположим, что начальная и конечные точки отрезка имеют координаты (1,1,0) и (4,4,0) соответственно: Command: CAL >>Expression: р1=[1,1,0] (Определение вектора р1) Command: CAL >>Expression: р2=[4,4,0] (Определение вектора р2) Command: CAL >>Expression: ang(р1,р2) 45.0
Если линия уже начерчена, можно определить величину угла, используя следующую функцию: Command: CAL >>Expression: ang(end,end) >>Select entity for END snap: Выберите первый конец отрезка Р1Р2 >>Select entity for END snap: Выберите второй конец отрезка Р1Р2 31.7134 (Угол, возвращенный этой функцией) ◊◊◊ Команда: CAL >>Выражение: ang(end,end) >>Объект для привязки END: Выберите первый конец отрезка Р1Р2 >>Объект для привязки END: Выберите первый конец отрезка Р1Р2 31.7134 (Угол, возвращенный функцией)
Функция ang(apex,p1,p2) Функция ang(apex,p1,p2) используется для вычисления угла, образованного лучами (apex,P1) и (apex,P2), выходящими из одной точки (см. рис. 19.4). В этом случае для определения величины угла необходимо выполнить следующие команды: Command: CAL >>Expression: ang(end,end,end) >>Select entity for END snap: Выберите первую конечную точку (вершину угла)
654
Глава 19
>>Select entity for END snap: Выберите вторую конечную точку (Р1) >>Select entity for END snap: Выберите третью конечную точку (Р2) 51.41459 (Угол, возвращенный функцией) ◊◊◊ Команда: CAL >>Выражение: ang(end,end,end) >>Объект для привязки END: Выберите первую конечную точку (вершину угла) >>Объект для привязки END: Выберите вторую конечную точку (Р1) >>Выделите объект для привязки END: Выберите третью конечную точку (Р2) 51.41459 (Угол, возвращенный функцией)
Функция ang(apex,p1,p2,р) Функция ang(apex,p1,p2,р) может быть использована для вычисления угла, образованного лучами (apex,p1) и (apex,p2), выходящими из одной точки. Последняя точка (р) используется для определения ориентации угла.
Определение координат точки пересечения Для определения местоположения точки пересечения линий Р1Р2 и Р3Р4 можно воспользоваться следующей функцией: ill(p1,p2,p3,p4)
Точки Р1 и Р2 принадлежат одной линии, а точки Р3 и Р4 принадлежат второй линии, как показано на рис. 19.5. При использовании этой функции рекомендуется отключить режим объектной привязки.
Пример 4 В этом примере вы построите окружность, центр которой находится в точке пересечения линий Р1Р2 и Р3Р4. Предполагается, что эти линии уже начерчены на чертеже (рис. 19.5). Выключите режим объектной привязки, а затем определите местоположение точки пересечения и начертите окружность с центром в этой точке, используя следующие команды: Command: Щелкните на кнопке Circle (Окружность) Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: ill(end,end,end) >>Select entity for END snap: Выберите точку Р1 >>Select entity for END snap: Выберите точку Р2 >>Select entity for END snap: Выберите точку Р3 >>Select entity for END snap: Выберите точку Р4 Specify radius of circle or [Diameter] <current>: Введите радиус ◊◊◊ Команда: CIRCLE Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL >>Выражение: ill(end,end,end,end) >>Объект для привязки END: Выберите точку Р1
Вычисление математических и геометрических выражений >>Объект для >>Объект для >>Объект для Радиус круга
привязки END: привязки END: привязки END: или [Диаметр]
655
Выберите точку Р2 Выберите точку Р3 Выберите точку Р4 : Введите радиус
Рис. 19.5. Нахождение точки пересечения
Совет Вместо выражения ill(end,end,end,end) может использоваться сокращенная запись этой функции — ille. В этом случае для определения точки пересечения необходимо ввести координаты четырех конечных точек, выбрав их на чертеже.
Способы применения геометрического калькулятора В этом разделе содержится несколько примеров, иллюстрирующих различные способы применения геометрического калькулятора.
Пример 5 В этом примере вы построите окружность, центр которой находится на середине линии, соединяющей точки Р2 и Р4 (рис. 19.6). Для определения местоположения центра окружности используются режимы привязки калькулятора. Например, середина отрезка находится с помощью выражения (end+end)/2. Существует другой способ определения центра окружности, состоящий в использовании функции mee, как показано на рис. 19.6. Command: Щелкните на кнопке Circle (Окружность), которая находится на панели инструментов Draw (Рисование) Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: mee >>Select entity for MEE: Выберите точку Р2 >>Select entity for MEE: Выберите точку Р4 Specify radius of circle or [Diameter] <current>: Введите радиус
656
Глава 19
Рис. 19.6. Использование функции mee
Пример 6 В этом примере вы построите окружность, которая является касательной к данной линии. Радиус окружности равен 0,5. Построенная окружность должна проходить через выделенную точку, показанную на рис. 19.7.
Рис. 19.7. Использование функции nee
Чтобы построить окружность, касательную к данной линии, необходимо прежде всего определить местоположение центра окружности, находящегося на расстоянии 0,5 единиц от выделенной точки. Эта задача может быть выполнена с помощью функции nor(p1,p2), которая возвращает единичный вектор, направленный перпендикулярно к линии Р1Р2. Для решения этой задачи можно также использовать сокращенную функцию nee. Эта функция автоматически приглашает выделить две точки, лежащие на данной линии. Для определения координат центра окружности единичный вектор нормали необходимо умножить на радиус окружности. Command: Щелкните на кнопке Circle на панели инструментов Draw Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: NEA+0.5*nee >>Select entity for NEA snap: Выберите точку на отрезке
Вычисление математических и геометрических выражений
657
>>Select one endpoint for NEA snap: Выберите одну из конечных точек данного отрезка >>Select another endpoint for NEA snap: Выберите вторую конечную точку данного отрезка Specify radius of circle or [Diameter] <current>: 0.5 ◊◊◊ Команда: CIRCLE Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL >>Выражение: NEA+0.5*nee >>Объект для привязки NEA: Выберите точку на отрезке >>Конечная точка для привязки NEA: Выберите одну из конечных точек данного отрезка >>Вторая конечная точка для привязки NEA: Выберите вторую конечную точку данного отрезка Радиус круга или [Диаметр] : 0.5
Пример 7 В этом примере строится окружность с центром, лежащим на данной линии. Радиус окружности составляет 0,25 от длины отрезка. Предполагается, что линия уже начерчена на чертеже (рис. 19.8).
Рис. 19.8. Использование функции dee
Чтобы определить радиус окружности, умножьте длину отрезка на 0,25. Длина отрезка, в свою очередь, может быть получена с помощью выражения dist(p1,p2) или сокращенной функции dee. При использовании функции dee калькулятор автоматически запрашивает координаты концов отрезка, определяемые выделением конечных точек на чертеже. Эта функция работает точно так же, как и функция dist(end,end). Command: Щелкните на кнопке Circle на панели инструментов Draw Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: Укажите точку на линии Specify radius of circle or [Diameter] <current>: 'CAL >>Expression: 0.25*dee >>Select one endpoint for DEE snap: Выберите одну из конечных точек данного отрезка >>Select another endpoint for DEE snap: Выберите вторую конечную точку данного отрезка
658
Глава 19
Использование переменных AutoLISP Геометрический калькулятор позволяет использовать переменные AutoLISP в арифметических выражениях. Кроме этого с помощью калькулятора можно присваивать этим переменным те или другие значения. Переменные AutoLISP могут иметь целочисленное, вещественное, а также двух- или трехкоординатное значение. С использованием переменных AutoLISP вы познакомитесь в следующем примере.
Пример 8 В этом примере будут построены две окружности, смещенные относительно середины отрезка, соединяющего центры ранее начерченных окружностей, на 0,5 единиц. Дано: две окружности разных диаметров. Чтобы определить местоположение центра верхней окружности, вначале необходимо найти координаты середины отрезка, соединяющего центры данных окружностей. Эта задача может быть решена путем определения переменной midpoint = (cen+cen)/2. В свою очередь, для того, чтобы задать величину смещения, можно определить вторую переменную: offset = [0,0.5]. Координаты центра верхней окружности могут быть получены при сложении двух переменных (midpoint+offset) (рис. 19.9).
Рис. 19.9. Сложение двух ранее определенных векторов
Command: CAL >>Expression: midpoint=(cen+cen)/2 >>Select entity for CEN snap: Выберите первую окружность. >>Select entity for CEN snap: Выберите вторую окружность. Command: CAL >>Expression: offset=[0,0.5] Command: Щелкните на кнопке Circle на панели инструментов Draw Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: (midpoint+offset) Specify radius or [Diameter] <current>: Введите радиус
Вычисление математических и геометрических выражений
659
◊◊◊ Команда: CAL >>Выражение: midpoint=(cen+cen)/2 >>Объект для привязки CEN: Выберите первую окружность. >>Объект для привязки CEN: Выберите вторую окружность. Команда: CAL >>Выражение: offset=[0,0.5] Команда: Щелкните на кнопке Circle на панели инструментов Draw Центр круга или [3T/2T/KKP (кас кас радиус)]: 'CAL >>Выражение: (midpoint+offset) Радиус круга или [Диаметр] : Введите радиус
Чтобы определить местоположение центра нижней окружности, необходимо вычесть значение переменной offset из значения переменной midpoint: Command: Щелкните на кнопке Circle на панели инструментов Draw Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: 'CAL >>Expression: (midpoint-offset) Specify radius or [Diameter] <current>: Введите радиус
Те же результаты можно получить, используя следующее выражение AutoLISP: Command: (Setq NEWPORT "(CEN+CEN)/2+[0,0.5]") Command: Щелкните на кнопке Circle на панели инструментов Draw Specify center point for circle or [3P/2P/Ttr (tan tan radius)]: (cal NEWPORT) (Вызов ранее определенного выражения) >>Select entity for CEN snap: Выбор первой окружности. >>Select entity for CEN snap: Выбор второй окружности.
Координатные фильтры Для получения координат точки используются следующие функции: Функция
Описание
xyof(p)
Получает координаты X и Y точки (p) и возвращает точку; координата Z автоматически устанавливается в нуль
xzof(p)
Получает координаты X и Z точки (p) и возвращает точку; координата Y автоматически устанавливается в нуль
yzof(p)
Получает координаты Y и Y точки (p) и возвращает точку; координата X автоматически устанавливается в нуль
xof(p)
Получает координату X точки (p) и возвращает точку; координаты Y и Z автоматически устанавливаются в нуль
yof(p)
Получает координату Y точки (p) и возвращает точку; координаты X и Z автоматически устанавливаются в нуль
zof(p)
Получает координаты Z точки (p) и возвращает точку; координаты X и Y автоматически устанавливаются в нуль
rxof(p)
Получает координату X точки (p)
ryof(p)
Получает координату Y точки (p)
rzof(p)
Получает координату Z точки (p)
660
Глава 19
Пример 9 В этом примере нужно построить линию, используя координатные фильтры для определения координат и точек. Предположим, что на чертеже уже начерчены две линии, как показано на рис. 19.10. Чтобы провести линию, необходимо определить координаты ее конечных точек. Координату Х первой точки можно определить по точке Р1, а координату Y — по точке Р2. Для получения координат используйте фильтр-функцию rxof(end), с помощью которой вы сможете определить координату X, и фильтр-функцию ryof(end), позволяющую определить координату Y. Чтобы получить координаты второй конечной точки, отфильтруйте координаты X и Y точки Р3, а затем прибавьте смещение 0,25 единицы, определяя вектор [0.25,0,0].
Рис. 19.10. Использование координатного фильтра для построения отрезка
Command: Щелкните на кнопке Line (Отрезок) Specify first point: 'CAL >>Expression: [rxof(end),ryof(end)] >>Select entity for END snap: Выберите точку Р1. >>Select entity for END snap: Выберите точку Р2. Specify next point or [Undo]: 'CAL >>Expression: rxof(end)+[0.25,0,0] >>Select entity for END snap: Выберите точку Р3. ◊◊◊ Команда: Щелкните на кнопке Line (Отрезок) Первая точка: 'CAL >>Выражение: [rxof(end),ryof(end)] >>Объект для привязки END: Выберите точку Р1. >>Объект для привязки END: Выберите точку Р2. Следующая точка или [Отменить]: 'CAL >>Выражение: rxof(end)+[0.25,0,0] >>Объект для привязки END: Выберите точку Р3.
Преобразование единиц измерения Для преобразования формата линейных и угловых величин и перевода числовых значений из одной системы единиц в другую используется функция cvunit. Например, с помощью этой функции можно перевести футы в дюймы, метры в сантиметры или
Вычисление математических и геометрических выражений
661
наоборот. При этом можно преобразовывать как числовые значения, так и координаты точек. Доступные единицы измерения определены в файле acad.unt, представляющем собой файл в формате ASCII. Выражения cvunit имеют следующий синтаксис: cvunit(числовое значение, из каких единиц, в какие единицы)
Примеры Command: CAL >>Expression: cvunit(100,cm,inch) >>Expression: cvunit(100,feet,meter) >>Expression: cvunit(1,feet,inch)
возвращает 39.3701 возвращает 30.48 возвращает 12.0
Дополнительные функции Перед вами перечень дополнительных функций калькулятора. Описание, приведенное в соседнем столбце таблицы, позволяет получить представление о возможном применении этих функций. Функция
Описание
abs(число)
Вычисляет абсолютное значение числа
abs(v)
Вычисляет длину вектора v
ang(v)
Вычисляет угол, образованный положительной осью X и вектором v
ang(p1,p2)
Вычисляет угол, образованный положительной осью X и линией p1-p2
cur
Определяет координаты точки, используя текущее положение графического курсора
cvunit(val,from,to)
Переводит данное значение (val) из одной системы единиц измерения (from) в другую (to)
dee
Определяет расстояние между конечными точками отрезка; эквивалентна функции dist(end,end)
getvar(“переменная”)
Возвращает значение системной переменной AutoCAD
ill(p1,p2,p3,p4)
Возвращает координаты точки пересечения линий p1-p2 и p3-p4
ille
Возвращает координаты точки пересечения отрезков, построенных по четырем конечным точкам; эквивалентна функции ill(end,end,end,end)
mee
Возвращает координаты середины отрезка, соединяющего две конечные точки; эквивалентна функции (end+end)/2
nee
Возвращает единичный вектор, перпендикулярный отрезку, соединяющему две конечные точки; эквивалентна функции nor(end,end)
nor
Возвращает единичный вектор, перпендикулярный дуге или окружности
nor(v)
Возвращает единичный вектор, расположенный в плоскости XY и направленный перпендикулярно вектору v
nor(p1,p2)
Возвращает единичный вектор, расположенный в плоскости XY и направленный перпендикулярно отрезку p1-p2
nor(p1,p2,p3)
Возвращает единичный вектор, перпендикулярный к плоскости, которая определена точками p1,p2 и p3
pld(p1,p2,dist)
Определяет местоположение точки, лежащей на линии p1-p2 и удаленной от точки p1 на расстояние dist
plt(p1,p2,t)
Определяет местоположение точки, лежащей на линии p1-p2 и удаленной от точки p1 на расстояние t*dist. (Примечание. Если t=0, эта точка совпадает с точкой p1; если t=1, она попадает в точку p2)
662
Глава 19
Функция
Описание
rad
Определяет радиус выделенного объекта
rot(p,org,ang)
Возвращает точку, повернутую на угол ang относительно точки org
u2w(p)
Определяет местоположение точки относительно МСК (WCS) из текущей ПСК (UCS). (Примечание. МСК (WCS) — внешняя (мировая) система координат; ПСК (UCS) — пользовательская система координат)
vec(p1,p2)
Вычисляет вектор, направленный из точки p1 в точку p2
vec1(p1,p2)
Вычисляет единичный вектор, направленный из точки p1 в точку p2
vee
Вычисляет вектор по двум конечным точкам; эквивалентна функции
vec(end,end) vee1
Вычисляет единичный вектор по двум конечным точкам; эквивалентна функции vec1(end,end)
w2u(p)
Определяет местоположение точки относительно ПСК из текущей МСК
Задания для самопроверки Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы. 1. Вещественное выражение состоит из вещественных чисел и/или функций и соединяющих их арифметических операторов. (Да/Нет) 2. Режимы привязки могут использоваться с функциями калькулятора для вычисления выражений. (Да/Нет) 3. Функция ill может использоваться для определения местоположения точки пересечения двух линий. (Да/Нет) 4. Функция dee используется для определения местоположения точки пересечения двух линий. (Да/Нет) 5. Длину отрезка можно определить с помощью функции dist(p1,p2) или сокращенной функции ________. 6. Функция xzof(p) извлекает координаты ________ точки P и возвращает точку; координата Y автоматически устанавливается в нуль (0.0). 7. Функция nor(v) возвращает ________, расположенный в плоскости XY и направленный перпендикулярно вектору v. 8. Функция ang(v) используется для вычисления угла, образованного положительной осью ________ и вектором v. 9. Функция ________ может использоваться для вычисления угла, образованного положительной осью X и линией P1P2. 10. Сокращенная функция nee эквивалентна функции ________.
Повторение пройденного материала Выберите правильный ответ. 1. Калькулятор дает возможность обращаться к имеющимся геометрическим фигурам с использованием стандартных функций объектной привязки AutoCAD. (Да/Нет)
Вычисление математических и геометрических выражений
663
2. Калькулятор не позволяет присваивать переменным AutoLISP те или другие значения. (Да/Нет) 3. Функция rad используется для определения радиуса выделенного объекта. (Да/Нет) 4. Функция ang(v) используется для вычисления угла, образованного положительной осью Х и линией Р1Р2. (Да/Нет) 5. Какая из перечисленных функций используется для вычисления абсолютного значения числа? a) б) в) г)
abs(real) abs(P1,P2) abs(val) Никакая
6. Какая из перечисленных функций используется для получения координат X и Y точки и возвращения точки? a) б) в) г)
xyof(p) zxof(p) xy(p) Никакая
7. Какая из перечисленных функций используется для определения местоположения точки, лежащей на отрезке Р1Р2 и удаленной на расстояние d от точки Р1? a) б) в) г)
plt(p1,p2,d) pld(p1,p2,d) plt(p2,p1,d) Никакая
8. Какая из перечисленных функций используется для получения координаты Y точки и возвращения точки? a) б) в) г)
xyof(p) xof(p) yof(p) Никакая
9. Укажите сокращенную форму функции vec(end,end). a) б) в) г)
vee eve vem Никакая
10. Функция ________ возвращает единичный вектор, перпендикулярный отрезку, соединяющему две конечные точки. 11. Функция ________ может использоваться для получения радиуса выделенного объекта. 12. Функция ________ возвращает точку, повернутую на угол ang относительно точки org. 13. Функция pld имеет формат ________. 14. Функция plt имеет формат ________. 15. Для определения величины угла, образованного двумя отрезками, используется функция ________.
664
Глава 19
Упражнения Упражнение 1 (Общее) Постройте фигуру, показанную на рис. 19.11. Определите длину (L), высоту (H) и ширину фигуры (TL), используя вещественные операторы геометрического калькулятора.
Упражнение 2 (Общее) Постройте фигуру, показанную на рис. 19.12; размеры фигуры произвольны. Постройте окружность с центром в точке Р3, которая находится на середине отрезка, соединяющего точки Р1 и Р2. Определите местоположение центра окружности, используя для этого соответствующую функцию калькулятора. Точки Р1 и Р2, в свою очередь, являются средними точками верхней и нижней сторон трапеции.
Рис. 19.11. Рисунок к упражнению 1
Рис. 19.12. Рисунок к упражнению 2
Упражнение 3 (Общее) Постройте фигуру, показанную на рис. 19.13; размеры фигуры произвольны. 1. С помощью функций калькулятора определите местоположение точки Р3, находящейся на середине отрезка, соединяющего точки Р1 и Р2. В свою очередь, точки Р1 и Р2 являются средними точками верхней и нижней сторон этой фигуры. 2. Определите местоположение точки Р4, лежащей на перпендикуляре к отрезку Р1Р2 и удаленной от него на расстояние 0,25 единиц. 3. Постройте окружность с центром в точке Р4.
Самостоятельная работа 1 (Общая) Постройте фигуру, показанную на рис. 19.14; размеры фигуры произвольны. 1. Постройте окружность с центром в точке Р3. Используя функции калькулятора, определите местоположение точки Р3, находящейся на середине отрезка, соединяющего точки Р1 и Р2. В свою очередь, точки Р1 и Р2 являются средними точками верхней и нижней сторон этой фигуры.
Вычисление математических и геометрических выражений
665
2. Постройте окружность, радиус которой равен 0,75 радиуса ранее построенной окружности. Центром этой окружности является точка Р5, которая находится на середине отрезка, соединяющего точки Р3 и Р4.
Рис. 19.13. Рисунок к упражнению 3
Рис. 19.14. Рисунок к самостоятельной работе 1
Ответы на вопросы для самопроверки 1 — Да, 2 — Да, 3 — Да, 4 — Нет, 5 — dee, 6 — X и Z, 7 — единичный вектор, 8 — положительной осью Х, 9 — ang(p1,p2), 10 — nor(p1,p2).
Приложение А
Системные требования и установка AutoCAD Системные требования Персональный компьютер, на который устанавливается программа AutoCAD 2004/ 2005/2006, должен удовлетворять следующим минимальным требованиям: 1. Операционная система: Windows NT 4.0 с пакетом обновлений SP 6a или выше (для AutoCAD 2004), Windows 2000 с SP 4, Windows XP (Home, Professional или Tablet PC). 2. Оперативная память — 256 Мбайт (рекомендуется). 3. Процессор Pentium III или более поздней версии с частотой от 500 Мгц (для AutoCAD 2004) до 800 МГц или выше (для AutoCAD 2005/2006). 4. Свободное пространство на жестком диске для установки — 300 Мбайт. 5. Не менее 64 Мбайт свободного места для файла подкачки. 6. Дополнительная оперативная память на каждый сеанс одновременного использования AutoCAD — 10 Мбайт. 7. Свободное дисковое пространство, требуемое во время инсталляции для хранения временных файлов, удаляемых при завершении установки — 2,5 Мбайт. 8. Четырехскоростной (или более) привод CD-ROM для начальной установки. 9. Монитор с разрешением экрана 1024×768 и качеством цветопередачи True Color (минимум). 10. Стандартная мышь или координатно-указательное устройство (с драйвером Wintab). 11. Web-браузер Microsoft Internet Explorer 6.0. 12. Последовательный порт (для цифровых преобразователей и некоторых графопостроителей). 13. Звуковая плата для мультимедийного обучения.
Системные требования и установка AutoCAD
667
Дополнительное аппаратное обеспечение: 1. Принтер. 2. Графопостроитель. 3. Цифровой планшет.
Установка AutoCAD Теперь процесс инсталляции стал более простым, что позволяет установить программу AutoCAD гораздо быстрее. Кроме этого, процедура установки имеет большую совместимость с другими инсталляционными процедурами Windows. Ниже описаны основные действия, которые необходимо выполнить для установки AutoCAD 2004 (другие версии этой программы устанавливаются точно так же). 1. Прежде всего, вставьте установочный диск AutoCAD 2004 в дисковод для компактдисков. 2. Если функция AutoPlay (Автовоспроизведение) включена, на экране автоматически откроется диалоговое окно AutoCAD 2004 и в вашей системе будет установлена программа-мастер InstallShield Wizard. (AutoPlay (Автовоспроизведение) — функция Windows, которая автоматически запускает так называемые исполняемые файлы, т.е. файлы с расширением .exe. Чтобы отключить эту функцию, нажмите клавишу <Shift> при вставке компакт-диска в накопитель CD-ROM или измените соответствующие параметры вашего дисковода.) Если характеристики вашей системы отвечают минимальным требованиям, предъявляемым к аппаратному обеспечению, на экране появится диалоговое окно Welcome (Добро пожаловать). 3. Щелкните на кнопке Install (Установить). На экране появится диалоговое окно AutoCAD 2004 Setup, открытое на странице Welcome to AutoCAD 2004 Installation Wizard. Щелкните на кнопке Next (Далее) и на экране отобразится следующее диалоговое окно, которое называется Autodesk Software License Agreement (Лицензионное соглашение). 4. Прочитайте лицензионное соглашение, выберите I accept (Согласен), а затем щелкните на кнопке Next (Далее), чтобы продолжить процесс установки; на экране появится диалоговое окно Serial Number (Серийный номер). 5. Введите серийный номер, а затем щелкните на кнопке Next (Далее). (Серийный номер продукта находится на коробке дистрибутивного компакт-диска AutoCAD 2004.) Если введенные данные верны, на экране появится диалоговое окно User Information (Информация о пользователе). Введите все необходимые данные, а затем щелкните на кнопке Next (Далее). 6. В следующем диалоговом окне Select Installation Type (Тип установки) выберите наиболее подходящий тип установки (Typical (Обычная), Full (Полная), Compact (Минимальная) или Custom (Выборочная)). Если на жестком диске достаточно свободного места, выберите переключатель Full (Полная установка). В этом случае на вашем компьютере будут установлены все компоненты программы AutoCAD. Щелкните на кнопке Next (Далее). На экране появится диалоговое окно Destination Folder (Каталог установки). 7. Выберите каталог, в который будет установлена программа AutoCAD. По умолчанию эта программа устанавливается в папку C:\Program Files\AutoCAD 2004.
668
Приложение А
Чтобы выбрать какую-нибудь другую папку, щелкните на кнопке Browse (Обзор) и перейдите в нужный каталог. Чтобы открыть страницу Choose Text Editor (Текстовый редактор), щелкните на кнопке Next (Далее). 8. По умолчанию в качестве стандартного текстового редактора выбирается Notepad (Блокнот). На этой странице также находится флаговая кнопка, с помощью которой вы сможете создать пиктограмму и отобразить ее на рабочем столе. Щелкните на кнопке Next (Далее); на экране появится диалоговое окно Start Installation (Начало установки). 9. Если введенная вами информация верна, щелкните на кнопке Next (Далее). Программа инсталляции скопирует программные файлы на жесткий диск, а затем, когда установка будет завершена, отобразит диалоговое окно Setup Complete (Установка завершена). Чтобы завершить процесс инсталляции, щелкните на кнопке Finish (Готово).
Приложение Б
Команды AutoCAD Команда 3D
Описание
3DARRAY
Копирование объектов, располагаемых в виде трехмерного прямоугольного или полярного массива. Опции: • R — прямоугольный трехмерный массив; • P — полярный массив
Построение трехмерной многогранной сети в форме стандартной поверхности. Опции: • B — построение прямоугольной призмы; • C — построение каркасной модели конической формы; • DI — построение трехмерной многогранной сети в форме тарелки (нижняя половина сферы) путем определения центра и диаметра или радиуса фигуры; • DO — построение трехмерной многогранной сети в форме тарелки (верхняя половина сферы) путем определения центра и диаметра или радиуса фигуры; • M — построение многогранной сетки путем определения ее вершин и размеров М и N; • P — построение трехмерного тетраэдра или пирамиды путем определения точек нижнего основания и вершины или точек верхнего основания фигуры; • S — построение многогранной сети сферической формы путем определения центра, а также диаметра или радиуса фигуры; • T — построение многогранной сети тороидальной формы; для этого определяется центр, а также внутренний и наружный диаметры или радиусы кольца; • W — построение многогранной каркасной модели клиновидной формы; для этого определяется угол, высота, длина и ширина создаваемой фигуры
670
Приложение Б
Команда 3DCLIP
Описание
3DCONFIG
Настройка параметров трехмерной графики (появилась в AutoCAD 2004)
3DCORBIT
Запуск интерактивной трехмерной визуализации фигуры и установка режима постоянного вращения вида
3DDISTANCE
Моделирование эффекта приближения или удаления камеры по отношению к объекту чертежа
3DDWFPUBLISH
Сохранение трехмерных изображений в формате DWF (появилась в AutoCAD 2006)
3DFACE
Построение трехмерной поверхности, имеющей три или четыре грани. Опции: • First point (Первая точка); • I — Invisible (Невидимый)
3DMESH
Построение многоугольной сетки путем определения ее вершин и размеров М и N
3DORBIT
Управление интерактивным визуальным отображением трехмерных объектов в области чертежа
3DORBITCTR
Просмотр объектов в орбитальном режиме, с заданием точки центра вращения (появилась в AutoCAD 2004)
3DPAN
Перемещение вида в горизонтальном и вертикальном направлении или по диагонали
3DPOLY
Построение трехмерной ломаной линии (полилинии), состоящей из прямолинейных отрезков. Опции: • точка — проведение линии к определенной точке; • C — замыкание трехмерной ломаной линии соединением первой и последней точек; • U — удаление последнего сегмента
3DSIN
Отображение диалогового окна, с помощью которого вы сможете импортировать определенные объекты, содержащиеся в файле 3D Studio
3DSOUT
Отображение диалогового окна, с помощью которого вы сможете экспортировать объекты AutoCAD, имеющие определенные поверхностные характеристики, в файлы 3D Studio
3DSWIVEL
Имитация эффекта поворота камеры, закрепленной на штативе
3DZOOM
Уменьшение или увеличение масштаба трехмерного вида
ABOUT
Вывод на экран номера версии AutoCAD, серийного номера и другой информации
ACISIN
Импорт файла ASCII ACIS в текущий чертеж AutoCAD
ACISOUT
Экспорт выделенных твердотельных объектов AutoCAD в файл формата ASCII ACIS
ADCCLOSE
Закрытие Центра управления (Design Center) AutoCAD
ADCENTER
Вызов Центра управления AutoCAD
ADCNAVIGATE
Использование структуры Центра управления AutoCAD для перемещения в определенный файл, папку или сетевой ресурс
ALIGN
Выравнивание объектов относительно других двух- или трехмерных объектов путем их перемещения или поворота
Установка режима интерактивной трехмерной визуализации и отображение окна Adjust Clipping Planes (Регулировка секущих плоскостей)
Команды AutoCAD
671
Команда AMECONVERT
Описание
APERTURE
Изменение размера прицела объектной привязки
APPLOAD
Вызов диалогового окна, обеспечивающего загрузку и выгрузку приложений типа AutoLISP, ADS и ARX при запуске программы
ARC
Построение дуги любого размера. По умолчанию для этого требуется определить две конечных точки и точку, лежащую на дуге. Опции: • A — прилежащий угол; • C — средняя точка; • D — исходное направление; • E — конечная точка; • L — длина хорды; • R — радиус
ARCHIVE
Архивация всех файлов, относящихся к текущему набору листов (появилась в AutoCAD 2005)
AREA
Вычисление площадей и периметров различных объектов и областей, образованных последовательно определенными точками. Опции: • A — режим сложения; • F — первая точка (площадь, задаваемая определенными точками); • O — площадь объекта; • S — режим вычитания
ARRAY
Создание определенного числа копий выделенного объекта с помощью диалогового окна Array (Массив), содержащего вкладки Rectangular Array (Прямоугольный массив) и Polar Array (Полярный Массив)
ARX
Загрузка, выгрузка и получение информации об ARX-приложениях
ASSIST
Управление окном активной помощи. Активная помощь — система справочной информации, работающая в динамическом режиме и автоматически выводящая справку по активной команде или открытому диалоговому окну
ATTDEF
Создание описания атрибута (характеристик атрибута). Опции: • I — режим Invisible: атрибут остается невидимым; • C — режим Constant: атрибут имеет постоянное значение; • V — режим Verify: проверка правильности значений атрибута; • P — режим Preset: атрибуту присваивается значение, заданное по умолчанию
ATTDISP
Глобальное управление видимостью атрибутов. Опции: • ON — атрибуты делаются видимыми; • OFF — атрибуты делаются невидимыми; • N — сохранение текущей видимости атрибутов
ATTEDIT
Изменение значений атрибутов в пределах одного блока или блоков. Опции: • Y — да (один атрибут за один раз); • N — нет (все атрибуты одновременно)
Конвертирование моделей АМЕ (AutoCAD версии R12) в твердотельные объекты AutoCAD
672
Приложение Б
Команда ATTEXT
Описание
ATTREDEF
Переопределение существующего блока и обновление связанных с ним атрибутов
ATTSYNC
Синхронизация атрибутов. Замена всех блочных вставок текущими значениями атрибутов
AUDIT
Выявление ошибок на чертеже. Опции: • Y — исправление ошибки; • N — сообщение об ошибке без ее исправления
BACKGROUND
Создание фона для операции тонирования
BASE
Задание базовой точки вставки для текущего чертежа
BATTMAN
Отображение окна Block Attribute Manager (Диспетчер атрибутов блоков), используемого для изменения и исправления атрибутов блоков в текущем чертеже
BHATCH
Нанесение ассоциативной штриховки внутри замкнутого контура с использованием диалогового окна Boundary Hatch and Fill (Штриховка и заливка по контуру). Также обеспечивается возможность предварительного просмотра и корректировка границ. Опции: • I — внутренняя точка; • P — свойства; • S — выделение; • R — удаление изолированных участков; • А — расширенная
BEDIT
Редактирование блоков и внешних ссылок; назначение операций, требуемых для создания динамических блоков (появилась в AutoCAD 2006)
BACTION
Ввод дополнительных операций в описание динамического блока (появилась в AutoCAD 2006)
BACTIONSET
Переопределение набора выбора объектов, связанных с указанными операциями (появилась в AutoCAD 2006)
BACTIONTOOL
Определение изменений геометрии ссылок динамического блока путем редактирования свойств, определяемых пользователем (появилась в AutoCAD 2006)
BASSOCIATE
Связывание неподдерживаемых операций с параметрами (появилась в AutoCAD 2006)
BATTORDER
Определение порядка перечисления атрибутов (появилась в AutoCAD 2006)
BAUTHORPALETTE
Отображение окна Block Authoring Palettes (появилась в AutoCAD 2006)
BAUTHORPALETTECLOSE
Закрытие окна Block Authoring Palettes (появилась в AutoCAD 2006)
BCLOSE
Закрытие окна Block Editor (появилась в AutoCAD 2006)
Извлечение значений атрибутов из чертежа. Опции: • C — CDF: формат с разделительными запятыми; • D — DXF: формат обмена чертежными графическими данными; • S — SDF: формат с разделительными пробелами; • O — объекты чертежа
Команды AutoCAD
673
Команда BCYCLEORDER
Описание
BGRIPSET
Создание, восстановление и удаление ручек, связанных с параметрами (появилась в AutoCAD 2006)
BLOCKUPTABLE
Создание таблицы поиска для описаний динамических блоков (появилась в AutoCAD 2006)
BPARAMETER
Добавление параметров в описания динамических блоков (появилась в AutoCAD 2006)
BSAVE
Сохранение описания блока (появилась в AutoCAD 2006)
BASAVEAS
Сохранение описания блока (появилась в AutoCAD 2006)
BVHIDE и BVSHOW
Изменение режима видимости объектов в описаниях динамических блоков (появилась в AutoCAD 2006)
BVSTATE
Создание, установка, переименование и удаление режимов видимости в динамических блоках (появилась в AutoCAD 2006)
'BLIPMODE
Изменение внешнего вида маркеров, отображаемых на экране при выборе точки. Опции: • ON — отображение меток маркера; • OFF — метки маркера не отображаются
BLOCK
Создание описания блока, сформированного из набора различных объектов. Опции: • ? — перечисление имен ранее определенных блоков
BLOCKICON
Формирование растрового образца для просмотра блока, созданного в предыдущих версиях AutoCAD
BMPOUT
Создание растрового изображения чертежа и сохранение содержимого экрана в файле с расширением .bmp
BOUNDARY
Создание полилинии или контура, определяющего замкнутую область. Опции: • A — расширенные опции
BOX
Построение трехмерного твердотельного параллелепипеда, основание которого параллельно плоскости XY. Опции: • C — вершина параллелепипеда; • CE — центр параллелепипеда
BREAK
Удаление определенных частей объекта или разрыв линии между точками. Опции: • F — повторное определение начальной точки
BROWSER
Запуск стандартного Web-браузера, определенного в системном реестре
'CAL
Вычисление арифметических и геометрических выражений
CAMERA
Установка расположения камеры и определение цели
Изменение циклической последовательности ручек в ссылках динамических блоков (появилась в AutoCAD 2006)
674
Приложение Б
Команда CHAMFER
Описание
CHANGE
Изменение свойств выделенных объектов. Опции: • C — точка перехода — изменение линий, окружностей, текста, определений атрибутов, блоков; • P — изменение таких свойств, как цвет, угол возвышения, слой, тип линии, толщина
CHECKSTANDARDS
Проверка чертежа на соответствие стандартам, которые связаны с текущим чертежом. При вызове этой команды на экране появляется диалоговое окно Check Standards (Нормоконтроль)
CHPROP
Изменение свойств выделенных объектов. Опции: • C — изменение цвета; • LA — изменение слоя; • LT — изменение типа линии; • S — изменение масштабного коэффициента типа линии; • LW — изменение веса линии; • T — изменение толщины линии; • PL — изменение стиля вычерчивания выделенных объектов
CIRCLE
Построение окружностей с помощью одного из существующих методов. Опции: • C — построение окружности по центру и диаметру (или радиусу); • 3P — построение по трем точкам, лежащим на окружности; • 2P — построение окружности по двум концам диаметра; • TTR — построение окружности по радиусу и двум касательным
CLOSE
Закрытие текущего рисунка, если с момента последнего сохранения не было внесено никаких изменений, или вывод запроса на сохранение чертежа
CLOSEALL
Закрытие всех открытых чертежей. Если файлы чертежей содержат несохраненные данные, вам придется определить, нужно ли сохранять изменения, внесенные в чертежи
COLOR
Установка цвета для вновь создаваемых объектов. Опции: • числовое значение — установка цвета по номеру (1–255); • имя — установка цвета по имени; • Byblock — текущие настройки цветов определяются параметрами вставляемого блока; • Bylayer — объекты наследуют цвет слоя, на котором они нарисованы
COMMANDLINE
Отображение области командных строк (появилась в AutoCAD 2006)
COMMANDLINEHIDE
Удаление области командных строк с экрана (появилась в AutoCAD 2006)
COMPILE
Компиляция файлов форм и файлов шрифтов PostScript
Соединение непараллельных линий с помощью наклонной линии (построение фаски). Опции: • A — размеры фаски определяются длиной наклонного участка и углом скоса; • D — задание размеров фаски; • P — построение фасок во всех углах полилинии; • T — построение фасок путем обрезки граней; • М — метод обрезки (Trim)
Команды AutoCAD
675
Команда CONE
Описание
CONVERT
Преобразование двумерных полилиний и ассоциативных штриховок, созданных в AutoCAD R13 или более ранних версиях
CONVERTCTB
Преобразование таблиц цветозависимых стилей печати в таблицы именованных стилей
CONVERTPSTYLES
Перенастройка текущего рисунка с цветозависимых стилей печати на именованные или наоборот
COPY
Создание копии выделенного объекта без удаления исходного объекта. Метод копирования, используемый по умолчанию, состоит в определении базовой точки. Опции: • M — создание нескольких копий объекта при однократном выполнении команды COPY (КОПИРОВАТЬ)
COPYBASE
Копирование объектов в буфер обмена с указанием базовой точки
COPYCLIP
Копирование выделенных объектов в буфер обмена
COPYHIST
Копирование строк из текстового окна в буфер обмена
COPYLINK
Копирование текущего вида в буфер обмена для вставки его в другой рисунок или документ другого приложения OLE
CUI
Настройка различных параметров пользовательского интерфейса; заменяет команды MENU, TOOLBAR и CUSTOMIZE (появилась в AutoCAD 2006)
CUIEXPORT/ CUIIMPORT
Передача данных настройки пользовательского интерфейса в файлы .cui (появилась в AutoCAD 2006)
CUILOAD/CUIUNLOAAD
Загрузка/выгрузка “неполных” файлов .cui (появилась в AutoCAD 2006)
CUTCLIP
Копирование объектов в буфер обмена с удалением их из рисунка
CYLINDER
Построение трехмерного твердотельного цилиндра. Опции: • центр — построение цилиндра с круглым основанием; • E — построение конуса, имеющего основание эллиптической формы
DBCCLOSE
Закрытие диспетчера связи с базами данных dbConnect Manager
DBLCLKEDIT
Определение функции двойного щелчка. Если установлено значение ON, при двойном щелчке на объекте отображается окно свойств, окно редактирования или соответствующее диалоговое окно. При установке значения OFF двойной щелчок на объекте не вызывает никаких ответных действий
DBCONNECT
Отображение окна dbConnect Manager, выполняющего роль интерфейса между программой AutoCAD и таблицами внешних баз данных
DBLIST
Вывод на экран информации из базы данных обо всех объектах рисунка
DDEDIT
Отображение диалогового окна, используемого для редактирования текстов, размерных текстов и описаний атрибутов
DDPTYPE
Отображение диалогового окна, позволяющего установить режим отображения точек и определить величину объектов-точек
Построение трехмерного твердотельного конуса. Опции: • центр — построение конуса с круглым основанием; • E — построение конуса с основанием эллиптической формы
676
Приложение Б
Команда DDVPOINT
Описание
DELAY
Задание паузы при выполнении пакета команд. Другими словами, выполнение следующей команды откладывается на определенное время
DIM и DIM1
Переход в режим нанесения размеров и предоставление возможности использовать соответствующие подкоманды предыдущих версий AutoCAD
DIMALIGNED
Простановка параллельного линейного размера, выровненного по объекту или определенным точкам
DIMANGULAR
Простановка углового размера
DIMARC
Измерение длин дуг и криволинейных сегментов (появилась в AutoCAD 2006)
DIMBASELINE
Простановка базового размера. Этот размер может быть как линейным, так и угловым или ординатным
DIMCENTER
Простановка маркера центра и нанесение центровых линий в окружности или на дуге
DIMCONTINUE
Простановка размерной цепи. Новый размер начинается от второй выносной линии предыдущего или выделенного размера. Этот размер может быть как линейным, так и угловым или ординатным
DIMDIAMETER
Простановка диаметра окружности или дуги
DIMDISASSOCIATE
Преобразование ассоциативных размеров, относящихся к связанным с ними объектам, в неассоциативные
DIMEDIT
Редактирование размерного текста и выносных линий. Опции: • H — расположение размерного текста задается по умолчанию; • N — изменение размерного текста; • R — поворот размерного текста на заданный угол; • O — выносные линии проводятся под углом к объекту
DIMHORIZONTAL
Простановка горизонтальных размеров (появилась в AutoCAD 2004)
DIMJOGGED
Размещение размерной линии радиуса, показанной с изломом; используется при нанесении размеров радиусов очень большой величины (появилась в AutoCAD 2004)
DIMLINEAR
Простановка линейного размера
DIMORDINATE
Простановка ординатного размера
DIMOVERRIDE
Переопределение значений системных размерных переменных, относящихся к данному размеру. При этом текущий размерный стиль не изменяется
DIMRADIUS
Простановка радиуса окружности или дуги
DIMREASSOCIATE
Преобразование размеров в ассоциативные путем ассоциирования этих размеров с выделенными объектами
DIMREGEN
Дополнительная регенерация ассоциативных размеров
DIMROTATED
Нанесение размерных чисел при различных наклонах размерных линий (появилась в AutoCAD 2004)
Задание направления взгляда в трехмерном пространстве с помощью соответствующего диалогового окна
Команды AutoCAD
677
Команда DIMSTYLE
Описание
DIMTEDIT
Перемещение и поворот размерного текста. Опции: • A — изменение угла поворота размерного текста; • H — положение размерного текста определяется параметрами, заданными по умолчанию; • С — размерный текст выравнивается по центру размерной линии; • L — размерный текст выравнивается по левому краю; • R — размерный текст выравнивается по правому краю
DIMVERTICAL
Простановка вертикальных размеров (появилась в AutoCAD 2004)
DIST
Измерение расстояния и угла между двумя точками
DIVIDE
Расстановка блоков или точек (маркеров) по длине или периметру объекта и деление объекта на определенное количество равных отрезков. Опции: • B — расстановка блоков в виде маркеров
DONUT
Построение широкой полилинии в форме кольца, имеющего определенный внутренний и наружный диаметры
DRAGMODE
Управление отображением объектов при их перемещении с помощью соответствующих команд. Опции: • ON — перемещение разрешается; • OFF — возможность перемещения игнорируется; • A — разрешается перетаскивать везде, где это возможно
DRAWINGRECOVERY/ DRAWINGRECOVERYHIDE
Отображение (и закрытие) окна Drawing Recovery Manager (появилась в AutoCAD 2006)
DRAWORDER
Изменение порядка вывода растровых изображений и других объектов на экран
DSETTINGS
Задание параметров шаговой привязки, сетки, полярного и объектного отслеживания
DSVIEWER
Вызов окна Aerial View (Общий вид)
Создание новых и модификация существующих размерных стилей. Опции: • R — изменение значения системной размерной переменной; • S — сохранение текущих значений размерных системных переменных; • ST — отображение текущих значений размерных системных переменных; • V — отображение текущих значений системных переменных, относящихся к данному размерному стилю; • A — модификация выделенных размерных объектов; • ? — перечисление именованных размерных стилей
678
Приложение Б
Команда DVIEW
Описание
DWGPROPS
Задание и просмотр свойств текущего рисунка
DXBIN
Импорт двоичных файлов в специальной кодировке
EATTEDIT
Отображение окна Enhanced Attribute Editor (Редактор атрибутов), используемого для редактирования атрибутов блоков. С помощью этого редактора можно изменить атрибуты, значения, положение, выравнивание и другие параметры блоков
EATTEXT
Извлечение атрибутов блоков и их копирование в файл чертежа. Преимуществом этой команды является то, что при ее использовании для извлечения атрибутов блоков файл шаблона не требуется. При вызове команды EATTEXT на экране появляется окно мастера Attribute Extraction Wizard, которое проводит вас через пошаговую процедуру извлечения атрибутов
EDGE
Изменение видимости кромок трехмерной грани. По умолчанию выделенная грань является скрытой. Опции: • D — режим визуального отображения невидимых граней в выделенном виде
EDGESURF
Построение трехмерной многоугольной сети с четырьмя смежными гранями, определяющими поверхность Кунса
ELEV
Задание уровня и высоты выдавливания вновь создаваемых объектов
ELLIPSE
Построение эллипса или эллиптической дуги с помощью различных опций. По умолчанию используется метод построения эллипса по двум главным осям. Опции: • A — построение эллиптической дуги; • C — определение центра эллипса; • I — построение изометрической окружности в текущей изометрической плоскости
ETRANSMIT
Создание массива чертежных файлов и шрифтов для передачи в электронном виде. При этом конечный файл преобразуется в EXE-файл, а архивный файл, сжатый с помощью архиватора ZIP, копируется в указанную папку
ERASE
Удаление выделенных объектов из рисунка
EXPLODE
Расчленение сложных составных объектов (к ним относятся блоки, размеры, полилинии, трехмерные твердотельные объекты, области, многоугольные сети, мультилинии) на составляющие их элементы
Установка параллельных проекций и видов в перспективе. Опции: • CA — определение положения камеры вращением вокруг объекта (цели); • TA — определение положения цели вращением вокруг камеры; • D — установка расстояния между камерой и целью; • PO — определение положения цели и камеры; • PA — панорамирование изображения; • Z — увеличение/уменьшение масштаба изображения; • TW — наклон вида относительно линии взгляда; • CL — отсечение передней или задней части вида; • H — удаление невидимых линий на выделенных объектах; • OFF — отключение перспективного отображения объекта; • U — отмена последней операции DVIEW
Команды AutoCAD
679
Команда EXPORT
Описание
EXTEND
Продление объектов до пересечения с другими объектами. Опции: • P — определение режима проецирования, например, UCS или View; • E — продление объекта до предполагаемой или существующей границы; • U — отмена последней операции
EXTRUDE
Создание тела путем выдавливания двумерного объекта в указанном направлении. По умолчанию следует определить высоту выдавливания, которое выполняется по положительной Z-оси. Опции: • P — определение пути выдавливания
FIELD
Размещение автоматически обновляемого текстового поля на чертеже (появилась в AutoCAD 2005)
FILL
Управление закрашиванием мультилиний, полос, твердотельных объектов или широких полилиний. Опции: • ON — включение режима закрашивания; • OFF — выключение режима закрашивания
FILLET
Создание плавного перехода от одной грани визуализуемого объекта к другой путем скругления углов (т.е. построения дуг определенного радиуса). При использовании метода, заданного по умолчанию, требуется определить два объекта. Опции: • P — скругление углов всей полилинии; • R — определение радиуса сопряжения; • T — обрезка граней для построения дуги сопряжения.
FILTER
Создание фильтров многократного использования для выбора объектов на основе их свойств
FIND
Поиск, замена, выбор и показ текста на рисунке с помощью диалогового окна
FOG
Управление туманом и затемнением, используемыми для имитации удаленности объектов
GRADIENT
Заполнение областей градиентными заливками (появилась в AutoCAD 2006)
GRAPHSCR
Переключение из текстового окна в графический экран
GRID
Включение и отключение сетки на текущем видовом экране. Опции: • Шаг сетки по X — определение расстояния между узлами сетки; • ON — включение сетки с текущим шагом; • OFF — выключение сетки; • S — установка расстояния между узлами сетки в соответствии с текущим шагом привязки; • А — установка различных значений шага по осям X и Y
Экспорт объектов в файлы различных форматов с помощью диалогового окна
680
Приложение Б
Команда GROUP
Описание
HATCH
Заполнение указанной области штриховкой по выбранному образцу. Опции: • ? — перечисление шаблонов штриховки, описанных в файле acad.pat; • имя — выбор образца штриховки по имени шаблона, определенного в файле acad.pat; • U — создание определяемого пользователем шаблона штриховки (после буквы U иногда ставится запятая и указывается стиль штриховки); • S — закрашивание объекта чистым цветом (т.е. одинаково окрашенными пикселями)
HATCHEDIT
Вызов диалогового окна для редактирования нанесенной штриховки. С помощью этого окна можно выбрать тип и шаблон штриховки, установить необходимые свойства, а затем применить их к выделенному блоку. Опции: • D — удаление ассоциативного качества из ассоциативной штриховки; • S — изменение стиля штриховки; • P — определение новых свойств штриховки
HELP ()
Вызов справочной системы
HIDE
Регенерация трехмерной модели с подавлением невидимых линий
HLSETTINGS
Настройка параметров отображения скрытых линий (появилась в AutoCAD 2004)
HYPERLINK
Создание гипертекстовой связи с графическим объектом или изменение существующей гиперссылки с помощью диалогового окна
HYPERLINKOPTIONS
Управление видимостью курсора и выводом подсказок для гиперссылок. Опции: • Y — отображение курсора и подсказок для гиперссылок; • N — курсор и подсказки не отображаются
ID
Определение координат точки в текущей ПСК
IMAGE
Вставка изображения в файл текущего чертежа AutoCAD
IMAGEADJUST
Управление яркостью, контрастностью и обесцвечиванием выделенного изображения
IMAGEATTACH
Присоединение нового графического объекта и его определения
IMAGECLIP
Создание контуров подрезки растровых изображений
Создание и изменение выделенных групп, представляющих собой именованные наборы объектов. Опции: • ? — перечисление имен и описаний всех объектов данной группы; • O — изменение порядка расположения объектов в группе; • А — ввод новых объектов в группу; • R — удаление объектов из группы; • E — расчленение группы на компонентные объекты; • REN — присвоение нового имени существующей группе; • S — определение возможности выбора группы; • C — создание новой группы
Команды AutoCAD
681
Команда IMAGEFRAME
Описание
IMAGEQUALITY
Управление качеством отображения графических изображений. Опции: • H — высокое качество изображений; • D — низкое качество изображений
IMPORT
Импорт файлов различных форматов в программу AutoCAD
INK...
Группа команд, которые дают возможность вносить правку и использовать перьевой ввод данных в версиях AutoCAD c поддержкой TabletPC (появилась в AutoCAD 2006)
INKBORDERDISPLAY
Выбор режима отображения рамки вокруг объектов правки (появилась в AutoCAD 2006)
INKCOLOR
Определение цвета чернил (появилась в AutoCAD 2006)
INKGESTURE
Включение режима перьевого ввода данных (появилась в AutoCAD 2006)
INKHILITE
Выбор режима выделения (появилась в AutoCAD 2006)
INKOLECREATE
Создание связанных и внедренных OLE-объектов правки (появилась в AutoCAD 2006)
INKPENWIDTH
Определение ширины пера (появилась в AutoCAD 2006)
INKRECO
Преобразование правки в текст путем распознавания рукописного текста (появилась в AutoCAD 2006)
INKRLINE
Включение/отключение режима правки (появилась в AutoCAD 2006)
INKTRANSPARENCY
Выбор режима правки (появилась в AutoCAD 2006)
INSERT
Вставка в текущий рисунок предопределенного именованного блока или другого рисунка
INSERTOBJ
Вставка предварительно связанного или внедренного объекта
INTERFERE
Выделение всех пересекающихся твердых тел и создание нового сложного тела, занимающего общий объем нескольких тел
INTERSECT
Создание нового сложного твердого тела, состоящего из пересекающихся областей нескольких твердых тел
ISOPLANE
Выбор изометрической плоскости, используемой в качестве текущей плоскости ортогонального чертежа. Опции: • L — левая плоскость; • T — верхняя плоскость; • R — правая плоскость
JPGOUT
Экспорт рисунков в файл формата JPEG (появилась в AutoCAD 2004)
JOIN
Объединение открытых объектов для создания одного объекта или нескольких замкнутых объектов (появилась в AutoCAD 2006)
JUSTIFYTEXT
Изменение способа привязки и выравнивания текста. При использовании этой команды расположение текста не изменяется
Управление видимостью границ контуров подрезки изображения. Опции: • ON — отображение контуров изображений; • OFF — сокрытие контуров изображений
682
Приложение Б
Команда LAYER
Описание
LAYERP
Возврат к предыдущему состоянию слоев. Эта команда отменяет изменения, сделанные во время последнего использования команды LAYERS. Тем не менее, команда LAYERP имеет некоторые ограничения. В частности, она не позволяет отменить переименование или удаление уже существующих или создание новых слоев
LAYERPMODE
Управление изменениями слоев при возврате к предыдущему состоянию слоев. Опции: • ON — отслеживание внесенных изменений
LAYOUT
Создание нового листа или переименование, копирование, сохранение или удаление уже существующего. Опции: • C — копирование листа; • D — удаление листа; • N — создание нового листа; • T — создание нового шаблона; • R — переименование листа; • SA — сохранение листа; • S — установка текущего листа; • ? — отображение списка всех существующих листов
LAYOUTWIZARD
Вызов Мастера компоновки нового листа
LAYTRANS
Трансляция выбранного слоя в слой определенного стандарта
LEADER
Построение выносных линий, соединяющих пояснительные надписи с поясняемыми элементами. Выносная линия отводится от определенной точки или линий видимого и невидимого контура и заканчивается полкой, на которой располагается соответствующая надпись. Внешний вид создаваемой линии-выноски зависит от выбранных вами опций. Опции: • A — надпись располагается над полкой линии-выноски; • F — изменение типа выносной линии (кривая или прямая линия, стрелка); • U — удаление последней вершины ломаной линии
Создание новых и изменение уже существующих слоев. Опции: • ? — отображение списка ранее определенных слоев; • М — создание текущего слоя; • S — определение уже существующего слоя в качестве текущего; • N — создание одного или нескольких новых слоев; • ON — включение определенных слоев; • OFF — выключение определенных слоев; • C — установка цвета определенного слоя; • L — установка типа линии определенного слоя; • LW — изменение веса линии; • P — управление печатью видимых слоев; • PS — установка стиля печати для данного слоя; • F — замораживание слоя, обеспечивающее его невидимость; • T — размораживание ранее замороженного слоя; • LO — блокировка слоев, предотвращающая их редактирование; • U — снятие блокировки определенных слоев
Команды AutoCAD
683
Команда LENGTHEN
Описание
LIGHT
Управление источниками света в пространстве модели с помощью соответствующих опций диалогового окна. Это окно позволяет создавать или удалять источники света, а также изменять их параметры и управлять системой цветов, используемой в данном чертеже. Для этого используется ряд диалоговых окон, с помощью которых устанавливаются все необходимые параметры (расположение и удаленность источников света, характеристики точечных источников света)
LIMITS
Определение границ чертежа (и размеры сетки WCS) для текущего пространства листа. Опции: • Lower — определение координат левого нижнего и правого верхнего углов; • ON — включение контроля над границами чертежа; • OFF — отключение контроля лимитов
LINE
Построение прямолинейных отрезков любой длины путем определения начальной и конечной точек. Опции: • Нажатие клавиши <Enter> — определение начальной точки; • U — удаление последнего отрезка; • C — замыкание многоугольного контура
LINETYPE
Определение параметров линий, загрузка новых типов линий и их применение к создаваемым объектам. Кроме этого создание и запись новых определений типов линий в файл библиотеки. Опции: • ? — перечисление типов линий, имеющихся в данном файле; • C — создание нового определения типа линии; • L — загрузка уже существующего определения типа линии, установка типов линий для нового объекта; • S — установка текущего типа линии
LIST
Получение информации о выбранных объектах (тип, слой, координаты X, Y и Z, толщина линии и т.д.)
LOAD
Загрузка форм, содержащихся в файле форм, которые будут использоваться командой SHAPE
LOGFILEOFF
Выключение режима записи в файл журнала
LOGFILEON
Запись содержимого текстового окна в файл журнала
LSEDIT
Редактирование объектов ландшафта
LSLIB
Управление библиотеками объектов ландшафта
LSNEW
Вставка в рисунок реалистичных элементов ландшафта, таких как деревья или кусты
Изменение длин определенных объектов и величины прилежащих углов дуг. Опции: • DE — удлинение объекта на определенную величину; • P — изменение длины объекта на определенную часть от его общей длины; • T — изменение длины объекта до определенной величины; • DY — длина объекта изменяется в соответствии с перемещением его конечных точек
684
Приложение Б
Команда LTSCALE
Описание
LWEIGHT
Задание текущего веса линий, установка опций отображения и выбор единиц измерения веса линий
MARKUP/MARKUPCLOSE
Вызов и закрытие окна Markup Set Manager (появилась в AutoCAD 2005)
MASSPROP
Вычисление и отображение массовых и инерционных характеристик двух- и трехмерных объектов. Отображаемые параметры: площадь, периметр, координаты вершин ограничивающего прямоугольника, координаты центра тяжести. Для компланарных областей указываются также центробежный момент инерции, радиус инерции и моменты инерции, вычисляемые относительно различных осей координат. Для твердотельных объектов указываются масса и объем, а также все характеристики компланарных областей
MATCHCELL
Копирование свойств ячейки таблицы в другие ячейки (появилась в AutoCAD 2005)
MATCHPROP
Копирование свойств объекта в другие объекты
MATLIB
Отображение диалогового окна Materials Library (Библиотека материалов), в котором показаны все предопределенные материалы (список материалов) и материалы, имеющиеся в выбранной библиотеке (библиотечный список). С помощью этого окна можно также импортировать и экспортировать материалы из одного списка в другой
MEASURE
Расстановка точек или блоков по длине или периметру объекта с заданными интервалами. Опции: • B — расстановка блоков, используемых в качестве маркеров
MENU
Загрузка заказного файла меню в область меню. Файл меню содержит командные строки, записанные в соответствии с синтаксической структурой меню
MENULOAD
Отображение диалогового окна Menu Customization (Настройка меню), с помощью которого можно загрузить или добавить файлы фрагментарных меню в существующий файл основного меню (исключена из AutoCAD 2006)
MENUUNLOAD
Отображение того же диалогового окна, как и при использовании команды MENULOAD (исключена из AutoCAD 2006). Это окно может также использоваться для выгрузки файла фрагментарного меню
MINSERT
Вставка нескольких копий ранее начерченных именованных блоков с расположением их в виде прямоугольного массива. Опции: • ? — вывод списка определений именованных блоков; • ~ — отображение диалогового окна
MIRROR
Зеркальное отображение объектов чертежа относительно указанной оси
Задание глобального масштаба типов линий, что позволяет изменить относительную длину штрихов и точек
Команды AutoCAD
685
Команда MIRROR3D
Описание
MLEDIT
Отображение диалогового окна Multiline Edit Tools (Средства редактирования мультилиний), с помощью которого можно создавать и редактировать пересечения, образованные несколькими параллельными линиями. Это диалоговое окно позволяет создавать различные типы крестообразных, Т-образных и угловых соединений, а также разрезать и соединять сегменты, принадлежащие одной мультилинии
MLINE
Построение нескольких параллельных линий (мультилиний). Опции: • J — Justification (Выравнивание) — способ построения мультилинии, соединяющей две точки; • S — Scale (Масштаб) — установка ширины мультилинии; • ST — установка стиля мультилинии
MLSTYLE
Отображение диалогового окна Multiline Styles, с помощью которого можно создать новый стиль мультилинии, сделать определенный стиль текущим, сохранить, переименовать и ввести дополнительный стиль в текущий список, добавить описание и загрузить нужный стиль из файла библиотеки. Это окно позволяет также изменять свойства элементов (количество, величина смещения, цвет, тип линии) и мультилинии (форма начальных и оконечных элементов, угол, цвет фона)
MODEL
Переключение с вкладки пространства листа на вкладку Model (эта вкладка становится текущей)
MOVE
Перемещение объектов из одной точки в другую путем определения величины смещения
MREDO
Отмена действия команды UNDO (появилась в AutoCAD 2004)
MSLIDE
Создание файла слайда из текущего изображения на экране
MSPACE
Переключение из поля листа в видовой экран пространства листа
MTEXT
Создание многострочного текста внутри окна определенного размера. Отображение диалогового окна, позволяющего определять различные параметры многострочного текста
MULTIPLE
Многократное повторение следующей команды (до ее отмены)
Зеркальное отображение объектов чертежа относительно определенной плоскости. Опции: • 3points — плоскость зеркального отображения определяется тремя точками; • O — плоскость зеркального отображения определена плоскостью двумерного объекта; • L — в качестве плоскости зеркального отображения принимается плоскость, использованная в предыдущем случае; • Z — плоскость зеркального отображения определяется точкой на плоскости и точкой на оси Z; • V — плоскость зеркального отображения определяется точкой, лежащей на плоскости видового экрана; • XY/YZ/ZX — плоскость зеркального отображения принадлежит одной из стандартных плоскостей
686
Приложение Б
Команда MVIEW
Описание
MVSETUP
Задание параметров и оформление листа. Работа команды MVSETUP зависит от значения системной переменной TILEMODE. Когда эта переменная получает значение ON (1), устанавливается масштаб чертежа, определяются единицы измерения и размеры листа, а также вычерчивается ограничивающий прямоугольник. Если системной переменной TILEMODE присваивается значение OFF (0), создается набор плавающих видовых экранов. Опции (TILEMODE OFF): • A — выравнивание одного видового экрана по другому; изображение на экране дисплея может перемещаться под указанным углом, в горизонтальном или вертикальном направлении, или поворачиваться на определенный угол; • C — создание видового экрана; • S — определение масштаба объектов в текущем видовом экране; • O (Options) — задание параметров слоя, переопределение лимитов чертежа, установка единиц измерения, присоединение таблицы перекрестных ссылок; • T — создание рамки и формы для заполнения основной надписи; • U — отмена предыдущей операции
NETLOAD
Загрузка файлов .dll, написанных в среде программирования Microsoft .Net Framework (появилась в AutoCAD 2005)
NEW
Вызов диалогового окна, позволяющего создать новый файл чертежа
NEWSHEETSET
Вызов мастера New Sheetset (появилась в AutoCAD 2005)
OFFSET
Построение подобных кривых, концентрических окружностей и параллельных линий, расположенных на определенном расстоянии от исходного объекта. Опции: • значение — определение величины смещения; • T (Through) — построение подобного объекта, проходящего через определенную точку
OLELINKS
Обновление, изменение и разрыв имеющихся OLE-связей
Создание и включение плавающих видовых экранов, а также определение их количества и схемы размещения на экране. По умолчанию для создания нового видового экрана требуется определить координаты его диагональных углов. Опции: • ON — видовой экран включен; • OFF — видовой экран отключен; • H (Hideplot) — подавление линий невидимого контура во время печати; • F (Fit) — создание одного видового экрана, полностью заполняющего область экрана; • L — блокировка выбранного видового экрана; • O — определение замкнутого контура, преобразуемого в видовой экран; • P — создание видового экрана неправильной формы; • 2 — деление указанной области на два видовых экрана, расположенных горизонтально или вертикально; • 3 — деление указанной области на три видовых экрана; • 4 — деление указанной области на четыре видовых экрана; • R (Restore) — восстановление конфигурации одного из видовых экранов
Команды AutoCAD
687
Команда OLESCALE
Описание
OOPS
Восстановление объектов, стертых последней командой ERASE (СТЕРЕТЬ)
OPEN
Вызов диалогового окна Select File (Выбор файла), с помощью которого можно открыть существующий файл чертежа. В этом диалоговом окне отображается каталог, список содержащихся в нем файлов, имя и тип выбранного файла, а также его миниатюрное изображение
OPENDWFMARKUP
Открытие файлов разметки .dwf в программе AutoCAD, а затем загрузка диалогового окна Markup Set Manager (появилась в AutoCAD 2005)
OPENSHEETSET
Загрузка наборов листов в текущий чертеж (появилась в AutoCAD 2005)
OPTIONS
Вызов диалогового окна Options (Настройки), с помощью которого можно настраивать параметры рабочей среды AutoCAD
ORTHO
Включение режима ортогональности, в котором курсор перемещается только в вертикальном или горизонтальном направлениях и выравнивается по сетке. Опции: • ON — включение режима ортогональности; • OFF — выключение режима ортогональности
OSNAP
Определение точного положения точки на объекте заданием текущих режимов объектной привязки. Опции: • END — ближайшая конечная точка дуги (дуги и линии, в том числе сегменты полилинии), эллиптической дуги, луча, мультилинии или отрезка и ближайшая точка полосы, твердотельного объекта или трехмерной грани; • MID — средняя точка дуги, эллиптической дуги, кривой линии, эллипса, луча, твердотельного объекта, прямой линии, мультилинии или отрезка; • INT — точка пересечения отрезков, дуги, кривых и прямых линий, эллиптических дуг, эллипсов, лучей, мультилиний или окружностей; • EXT — точка продолжения объекта; • APP — точка мнимого пересечения двух отрезков, дуги, кривых и прямых линий, эллиптических дуг, эллипсов, лучей, мультилиний или окружностей или их продолжений (т.е. пересекаются только проекции объектов на текущую плоскость построений); • CEN — центр дуги, эллиптической дуги, эллипса или окружности; • QUA — точка квадранта дуги, окружности или эллипса (это точки, расположенные на 0°, 90°, 180° и 270°); • PER — точка, лежащая на перпендикуляре к дуге, эллиптической дуге, эллипсу, кривой или прямой линии, лучу, мультилинии, отрезку, окружности или твердотельному объекту; • TAN — точка касания к дуге, эллиптической дуге, эллипсу или окружности; • NOD — узловая точка; • INS — точка вставки текста, блока, формы или атрибута; • NEA — ближайшая точка дуги, эллиптической дуги, эллипса, кривой или прямой линии, луча, мультилинии, отрезка или окружности; • QUI — первая точка привязки; • NON — без использования объектной привязки
Вызов диалогового окна свойств OLE-объектов
688
Приложение Б
Команда PAGESETUP
Описание
PAN
Панорамирование (перемещение изображения)
PARTIALCUI
Загрузка файлов .cui в AutoCAD (появилась в AutoCAD 2006)
PARTIALOAD
Дополнительная загрузка геометрии в частично открытый рисунок
PARTIALOPEN
Загрузка в текущий рисунок геометрии с выбранного вида или слоев
PASTEBLOCK
Вставка содержимого буфера обмена Windows с преобразованием в блок
PASTECLIP
Вставка содержимого буфера обмена Windows
PASTEORIG
Вставка объектов, скопированных в буфер обмена, в другой рисунок с теми же координатами, которые они имели в исходном рисунке
PASTESPEC
Вставка данных из буфера обмена Windows с возможностью управления их форматом
PCINWIZARD
Вызов Мастера импорта параметров печати из РСР- и РС2-файлов для вкладки Model или текущего листа
PEDIT
Редактирование полилиний, полигональных и многогранных сетей. Опции (двумерная полилиния): • C — замыкание многоугольной полилинии; • O — удаление замыкающего отрезка; • J — объединение нескольких отрезков в одну полилинию; • W — установка одинаковой ширины; • E — редактирование вершин полилинии (первая вершина отмечается знаком Х); редактирование вершин включает в себя перемещение знака X к следующей или предыдущей вершине, добавление новой вершины, создание разрыва в указанной точке, перемещение вершины, восстановление, выпрямление и присоединение тангенциально направленного отрезка к текущей вершине; • F — преобразование ломаной линии в кривую путем замены каждого прямолинейного сегмента двумя дугами; • S — использование вершины в качестве основы для сплайновой кривой; • L — генерирование типа линии в непрерывный шаблон; • U — отмена предыдущей операции. Опции (трехмерная полилиния): • C — замыкание многоугольного контура; • O — удаление замыкающего отрезка; • E — редактирование вершин; используются те же подопции, что и при редактировании вершин двумерной (плоской) полилинии, за исключением подопции, относящейся к присоединению тангенциального отрезка к текущей вершине; • S — использование вершины в качестве основы для сплайновой кривой; • D — удаление сплайновой кривой до ее управляющей основы; • U — отмена предыдущей операции; • X — выход
Вызов диалогового окна Page Setup Manager, с помощью которого задается устройство печати, формат бумаги и другие параметры для листов файла чертежа
Команды AutoCAD Команда PEDIT
Описание
689
Редактирование многогранных сетей. Опции: • E — редактирование вершин (первая вершина отмечается знаком X); редактирование вершин включает в себя перемещение знака X на следующую или предыдущую вершину, перемещение маркера X на следующую или предыдущую вершину в N-направлении, перемещение маркера X на следующую или предыдущую вершину в М-направлении и регенерацию многогранной сети; • S — преобразование сети в плавную поверхность; • D — восстановление многогранной сети; • Mclose — закрытие M-направления полилиний; • Mopen — открытие M-направления полилиний; • Nclose — закрытие N-направления полилиний; • Nopen — открытие N-направления полилиний; • U — отмена операций редактирования, выполненных во время всего сеанса PEDIT
PFACE
Создание трехмерной многогранной сети
PLAN
Установка вида в плане заданной пользовательской системы координат (ПСК). Опции: • C — вид в плане текущей ПСК; • U — вид в плане определенной ПСК; • W — вид в плане внешней системы координат (ВКС)
PLINE
Построение двумерной полилинии. По умолчанию при использовании этой команды создается полилиния, соединяющая две определенные точки. Опции: • A (Режим дуги) — добавление дуговых сегментов к полилинии; дуговой сегмент начинается из конечной точки предыдущего сегмента полилинии и может быть построен определением конечной точки дуги, прилежащего угла, центра и начального направления дуги, полуширины и радиуса дуги; можно также замкнуть многоугольный контур дуговым сегментом, отменить предыдущую операцию или перейти в режим отрезка; • C — замыкание полилинии; • H — установка полуширины; • L — построение полилинии определенной длины; • U — удаление последнего сегмента полилинии; • W — определение ширины следующего сегмента
PLOT
Вызов диалогового окна Plot (Печать), с помощью которого можно вывести рисунок на принтер или в файл. Используя ряд диалоговых окон, можно выбрать устройство печати, установить различные параметры, определить область печати и размеры листа, установить ориентацию чертежа, масштаб печати и начало координат. Кроме этого можно напечатать вид или определенную часть чертежа, а также предварительно просмотреть чертеж перед выводом на печать
PLOTSTAMP
Ввод в чертеж дополнительных служебных надписей. Дополнительные текстовые надписи называются штампом и не отображаются при предварительном просмотре чертежа
PLOTSTYLE
Установка текущего стиля печати для новых объектов чертежа или назначение стиля печати для выбранных объектов
690
Приложение Б
Команда PLOTTERMANAGER
Описание
PNGOUT
Экспорт текущего вида в файл формата PNG (появилась в AutoCAD 2004)
POINT
Создание объекта-точки, расположенного в определенном месте
POLYGON
Построение правильного многоугольника (замкнутой полилинии), имеющего определенное число сторон. Опции: • C — определение центра многоугольника. Подопции: • I — вписанный в окружность определенного радиуса; • C — описанный вокруг окружности; • E — определение одной из сторон многоугольника
PREVIEW
Просмотр внешнего вида чертежа, который будет получен в процессе печати
PROPERTIES
Отображение окна Properties (Свойства) и управление свойствами объектов чертежа
PROPERTIESCLOSE
Закрытие окна Properties (Свойства)
PSETUPIN
Импорт набора параметров листа из другого файла рисунка во вновь создаваемый лист
PSPACE
Переключение из видового экрана пространства листа в поле листа
PUBLISH
Создание наборов многолистных чертежей для публикации в одном многолистном файле формата DWF (Design Web Format) или файле печати, или для передачи на печатающее устройство
PUBLISHTOWEB
Создание Web-страницы в формате HTML, включающей в себя текстовые надписи и определенные чертежи. Можно также указать листы чертежа, которые будут включены в создаваемую Web-страницу. Вызов этой команды приводит к запуску мастера Publish to Web, который проведет вас через процесс создания Web-страницы
PURGE
Очистка рисунка от неиспользуемых именованных объектов. Опции: • B — удаление неиспользуемых блоков; • D — удаление неиспользуемых размерных стилей; • LA — удаление неиспользуемых слоев; • LT — удаление неиспользуемых типов линий; • P — удаление неиспользуемых стилей печати; • SH — удаление неиспользуемых файлов форм; • ST — удаление неиспользуемых текстовых стилей; • М — удаление неиспользуемых стилей мультилиний; • А — удаление всех неиспользуемых объектов
QDIM
Быстрое нанесение размеров на объекты чертежа
QLEADER
Быстрое построение выносной линии и создание надписи
QNEW
Быстрое создание нового файла AutoCAD
QSAVE
Быстрое сохранение текущего рисунка без запроса файлового имени
QSELECT
Быстрое создание наборов объектов на основе определенных критериев отбора
Вызов диспетчера плоттеров Plotter Manager, запуск мастера Add-A-Plotter Wizard и редактора конфигурации плоттеров Plotter Configuration Editor
Команды AutoCAD
691
Команда QTEXT
Описание
‘QUICKCALC/ ’QCCLOSE QUIT
Вызов и закрытие окна QuickCalc (появилась в AutoCAD 2006)
RAY
Построение полубесконечной линии (луча), используемой в качестве конструкционной линии (линии построения)
RECOVER
Восстановление поврежденного рисунка
RECTANG
Построение полилинии в форме прямоугольника путем определения противоположных диагональных углов
REDEFINE
Восстановление встроенной команды AutoCAD, ранее отмененной при выполнении команды UNDEFINE
REDO
Отмена действия последней команды UNDO
REDRAW
Обновление содержимого текущего видового экрана, куда входит удаление пятнышек, точек и случайных пикселей, и перерисовка отсутствующих частей объектов
REDRAWALL
Перерисовка или очистка содержимого всех видовых экранов
REFCLOSE
Сохранение или отказ от изменений, произведенных в ходе редактирования вхождений блоков и ссылок
REFEDIT
Выбор внешней ссылки для редактирования
REFSET
Добавление и исключение объектов из рабочего набора при редактировании вхождений блоков и внешних ссылок
REGEN
Регенерация рисунка и перерисовка содержимого текущего видового экрана
REGENALL
Регенерация рисунка и перерисовка всех видовых экранов
REGENAUTO
Управление автоматической регенерацией рисунка. Опции: • ON разрешить автоматическую регенерацию; • OFF запретить автоматическую регенерацию
REGION
Создание области (двумерной замкнутой области) из набора выбранных объектов
REINIT
Повторная инициализация портов ввода-вывода, дигитайзера (цифрового преобразователя), монитора и файла параметров для AutoCAD
RENAME
Изменение имен объектов. Опции: • B — переименование блока; • D — переименование размерного стиля; • LA — изменение имени слоя; • LT — переименование типа линии; • S — переименование стиля; • U — переименование пользовательской системы координат (ПСК); • VI — переименование вида; • VP — переименование конфигурации видового экрана
Управление показом текста и атрибутов объекта и их выводом на принтер без вычерчивания текстовых элементов. Опции: • ON — отображение текста в виде ограничивающего прямоугольника; • OFF — отключение режима быстрого отображения текста
Завершение сеанса работы с AutoCAD без сохранения внесенных изменений
692
Приложение Б
Команда
Описание
RENDER
Вызов диалогового окна Render, с помощью которого можно создать реалистично выглядящее изображение, выполнив тонирование трехмерной каркасной модели или твердотельного объекта. При этом можно выполнить тонирование текущей сцены или отдельных объектов. Диалоговое окно позволяет также управлять картой цветов и тонированием различных материалов
REPLAY
Просмотр изображений в форматах BMP, TGA и TIFF
RESETBLOCK
Возврат ссылок динамических блоков к значениям по умолчанию (появилась в AutoCAD 2006)
RESUME
Продолжение прерванного сценария
REVCLOUD
Создание замкнутой полилинии в форме облака. Опции: • Object (Объект) — преобразование замкнутого контура в полилинию, имеющую форму облака; • Arc Length (Длина дуги) — определение минимальной и максимальной длин дуг, используемых при построении полилинии в форме облака
REVOLVE
Создание твердотельного объекта вращением двумерной (плоской) фигуры (многоугольника, полилинии в форме замкнутого контура, окружности, эллипса, кольца и т.д.). Опции: • две точки — определение оси вращения; • O — определение оси вращения выделением существующего отрезка или сегмента полилинии; • X — использование положительной оси Х в качестве оси вращения; • Y — использование положительной оси Y в качестве оси вращения
REVSURF
Создание многогранной сети вращением профиля или кривой линии вокруг определенной оси
RMAT
Вызов диалогового окна Materials (Материалы), которое позволяет управлять материалами, используемыми для тонирования объектов. С помощью ряда диалоговых окон можно создавать новые или модифицировать уже существующие материалы. Для этого достаточно изменить числовое значение и цвет соответствующего материала. Цветовой индекс AutoCAD можно прикрепить с помощью слоя или цветового круга с палитрой цветов
RMLIN
Копирование пометок, сделанных во время редактирования текста, и их вставка в текущий чертеж для просмотра комментариев в электронном виде. Выделения правки (RML — Redline Markup Language) располагаются на отдельном слое, который носит название MARKUP
ROTATE
Поворот объектов чертежа вокруг заданной точки. Опции: • угол — поворот объекта на указанный угол; • R — поворот объекта на угол приведения
Команды AutoCAD
693
Команда
Описание
ROTATE3D
Поворот объектов вокруг пространственной оси. Опции: • 2points — ось поворота задана двумя определенными точками; • A (Axis by object) — ось поворота совпадает с осью объекта; • L — поворот объекта вокруг оси, указанной во время предыдущей операции; • V — ось поворота совпадает с направлением взгляда; • X/Y/Z — ось поворота совпадает с указанной осью координат (ось X, ось У, ось Z)
RPREF
Вызов диалогового окна Rendering Preferences, которое используется для настройки режимов тонирования, управления картой цветов, определения стандартного поведения команды RENDER и установки параметров выводимого изображения. Кроме этого, предоставляется ряд вспомогательных диалоговых окон, с помощью которых можно определить тип используемого затенения и внешний вид граней трехмерных объектов. Можно также установить цвет и форматное соотношение выходного файла
RSCRIPT
Создание бесконечно повторяющегося сценария
RULESURF
Создание многогранной сети, которая представляет собой линейчатую поверхность, соединяющую две кривые
SAVE
Сохранение рисунка под текущим или заданным именем
SAVEAS
Сохранение рисунков, не имевших имени, или сохранение текущего рисунка с переименованием
SAVEIMG
Вызов диалогового окна Save Image, используемого для сохранения тонированных изображений в файлах. Имеется также ряд вспомогательных диалоговых окон, с помощью которых можно сжать изображения и сохранить их в формате TGA или TIFF
SCALE
Изменение размера существующих объектов. По умолчанию определяется величина масштабного коэффициента. Опции: • R — масштабирование объекта выполняется в соответствии с базовой и новой длиной
SCALELISTEDIT
Редактирование списка масштабных коэффициентов (появилась в AutoCAD 2006)
SCALETEXT
Изменение масштаба существующего текста. После масштабирования первоначальное расположение текста не изменяется
SCENE
Управление различными сценами (определенными видами) в пространстве модели. Используя ряд диалоговых окон, можно вывести список сцен, имеющихся в текущем чертеже, добавить новые или удалить уже существующие сцены, изменить их имена и расположение источников света
SCRIPT
Выполнение последовательности команд из пакетного (командного) файла
694
Приложение Б
Команда SECTION
Описание
SECURITYOPTIONS
Управление паролем и цифровой подписью (появилась в AutoCAD 2004)
SELECT
Создание текущего набора, состоящего из выбранных объектов. Опции: • AU — автоматический выбор; • А (режим Add) — добавление объектов к текущему набору; • ALL — выбор всех объектов; • BOX — выбор объектов, попавших внутрь ограничивающего прямоугольника или пересекшихся с его границей; • C — выбор объектов, лежащих внутри области или пересекающихся с областью, определенной двумя точками; • CP — выбор объектов, лежащих внутри многоугольника или пересекающихся с многоугольником, созданным путем определения точек вокруг объектов; • F — выбор объектов, пересекающих границы выделенной области; • G — выбор объектов, входящих в определенную группу; • L — выбор недавно созданных объектов; • М — выбор объектов без из выделения; • P — выбор недавно созданного набора; • R (режим Remove) — удаление объектов, содержащихся в текущем наборе; • SI — выбор первого объекта или набора объектов; • U — удаление недавно добавленного объекта из текущего набора; • W — выбор объектов, полностью попавших в область, определенную двумя точками; • WP — выбор объектов, полностью попавших в область, определенную точками, лежащими вокруг объектов
SETIDROPHANDLER
Задание параметров загрузки файлов из Интернета в рисунок AutoCAD (появилась в AutoCAD 2004)
SETUV
Наложение текстур на поверхности объектов
SETVAR
Изменение значений системных переменных. Опции: • ? — получение списка системных переменных с их текущими значениями
Создание области путем пересечения тел плоскостью. Опции: • 3points — определение трех точек на секущей плоскости; • O — секущая плоскость совпадает с объектом; • Z — секущая плоскость перпендикулярна (нормальна) плоскости вида; • V секущая плоскость совпадает с плоскостью вида или текущего видового экрана; • XY — секущая плоскость совпадает с плоскостью XY пользовательской системы координат; • YZ — секущая плоскость совпадает с плоскостью YZ пользовательской системы координат; • ZX — секущая плоскость совпадает с плоскостью ZX пользовательской системы координат
Команды AutoCAD Команда
Описание
SHADEMODE
Раскрашивание объектов чертежа на текущем видовом экране. Опции:
695
• 2D — отображение объектов с помощью отрезков и кривых линий, образующих их контуры; • 3D — отображение объектов с помощью отрезков и кривых линий, образующих их контуры; • 3D wireframe — отображение объектов в виде трехмерных каркасных моделей; • H — подавление линий, образующих невидимые поверхности объектов; • F — раскрашивание поверхностей, соединяющих грани многоугольной призмы; • G — раскрашивание объектов и сглаживание углов; • L — объединение опций Flat Shaded и Wireframe; • O — объединение опций Gouraud Shaded и Wireframe SHAPE
Вставка предопределенных форм. Опции: • ? — получение списка имеющихся форм
SHEETSET/ SHEETSETHIDE
Вызов и сворачивание окна Sheetset Manager (появилась в AutoCAD 2005)
SHELL
Получение доступа к командам операционной системы во время работы в AutoCAD
SHOWMAT
Получение списка типов материалов и методов их присвоения выбранным объектам
SIGVALIDATE
Проверка электронной цифровой подписи, хранящейся в чертеже (появилась в AutoCAD 2004)
SKETCH
Рисование коротких смежных сегментов от руки. Опции: • P (Pen) — выполнение эскиза с помощью опущенного или поднятого пера; • X — отображение отчета о количестве начерченных временных линий и выход из команды SKETCH; • Q — удаление временных линий и последующий выход из команды SKETCH; • R — преобразование временных линий в постоянные; • E — удаление фрагмента временной линии; • C — опускание пера, используемого для выполнения эскиза; • точка (.) — проведение прямой линии из конечной точки линии эскиза до точки текущего положения курсора (пера)
696
Приложение Б
Команда
Описание
SLICE
Разрезание твердотельных объектов с помощью секущих плоскостей. Опции: • 3points — разрезание секущей плоскостью, определенной тремя точками; • O — разрезание плоскостью, проведенной через двумерный объект (эллипс, окружность, эллиптическая дуга, плоская сплайновая кривая или полилиния); • Z — разрезание плоскостью, определенной точкой, лежащей на оси Z; • V — разрезание плоскостью, параллельной плоскости вида текущего видового экрана; • XY — разрезание плоскостью, проходящей параллельно плоскости XY; • YZ — разрезание плоскостью, проходящей параллельно плоскости YZ; • ZX — разрезание плоскостью, проходящей параллельно плоскости ZX
'SNAP
Ограничение перемещения курсора определенными интервалами. Опции: • • • • •
ON — включение режима привязки; OFF — отключение режима привязки; А — установка различных значений шага привязки по осям X и Y; R — поворот сетки привязки на указанный угол; S — установка стиля шаговой привязки (стандартный или изометрический); • T — определение варианта привязки (шаговая или угловая) SOLDRAW
Построение профилей и сечений на видовых экранах, созданных командой SOLVIEW
SOLID
Создание многоугольников, закрашенных чистым цветом (т.е. цветом, образованным одинаково окрашенными пикселями)
SOLIDEDIT
Редактирование граней и ребер твердотельных объектов
SOLPROF
Создание профилей трехмерных твердотельных объектов
SOLVIEW
Создание связанных плавающих видовых экранов для размещения видов и сечений твердотельных объектов
SPACETRANS
Пересчет длин из единиц одной рабочей среды AutoCAD (пространства модели или листа) в единицы другой среды
SPELL
Орфографическая проверка надписей, существующих в текущем чертеже. При обнаружении неоднозначного слова открывается диалоговое окно, которое отображает варианты написания этого слова либо разрешает заменить текущее слово другим или добавить это слово в словарь
SPHERE
Построение трехмерной твердотельной сферы. Опции: • R — радиус сферы; • D — диаметр сферы
Команды AutoCAD
697
Команда SPLINE
Описание
SPLINEDIT
Редактирование сплайновых объектов. Опции: • F — редактирование данных, используемых при подборе кривой по точкам. Подопции: • А — добавление точек сглаживания; • C — замыкание открытой сплайновой кривой; • O — открытие замкнутой сплайновой кривой; • D — удаление точек сглаживания; • M — перемещение точек сглаживания; • P — удаление данных подбора кривой по точкам из базы данных; • T — изменение касательных, проведенных к начальной и конечной точкам сплайновой кривой; • L — изменение величины допуска для подбора сплайновой кривой по точкам; • X — выход из опций редактирования данных; • C — замыкание открытой сплайновой кривой; • O — открытие замкнутой сплайновой кривой; • М (Move Vertex) — изменение положения опорной (контрольной) точки сплайновой кривой; • R — повышение точности сплайновой кривой добавлением опорных точек, изменением порядка их расположения, увеличением или уменьшением веса линии; • E — реверсирование направления сплайновой кривой; • U — отмена предыдущей операции SPLINEDIT
STANDARDS
Конфигурирование стандартов, используемых в текущем чертеже
STATS
Вызов диалогового окна Statistics (Статистика), содержащего статистические данные по тонированию объектов текущего чертежа. Это окно используется также для сохранения статистических данных в файле
STATUS
Вывод на экран статистической информации о рисунке, режимах и границах
STLOUT
Сохранение твердотельных объектов в двоичном или ASCII-файле формата STL
STRETCH
Растягивание объектов (отрезков, дуг и полилиний) путем перемещения конечных точек
STYLE
Вызов диалогового окна Text Style (Стиль текста), используемого для создания и редактирования текстовых стилей
STYLESMANAGER
Вызов диалогового окна диспетчера стилей печати
Построение плавной сплайновой кривой. Опции: • точка — определение точек сплайновой кривой. Подопции: • точка — построение сегментов сплайновой кривой путем определения новых точек; • C — замыкание сплайновой кривой; • F (Fit tolerance) — изменение допуска на подбор сплайновой кривой по точкам; • O — преобразование двух- или трехмерных сплайноподобных полилиний в сплайновые кривые
698
Приложение Б
Команда SUBSTRACT
Описание
SYSWINDOWS
Управление окнами документов. Эта команда эквивалентна стандартным опциям меню Window (Окно), используемым в приложениях Windows
TABLE
Вставка форматированных таблиц в рисунки (появилась в AutoCAD 2005)
TABLEDIT
Редактирование текста в ячейках таблиц; для редактирования таблицы используются другие методы (появилась в AutoCAD 2005)
TABLEEXPORT
Экспорт таблиц в виде файлов данных формата CSV (появилась в AutoCAD 2005)
TABLESTYLE
Создание и редактирование табличных стилей (появилась в AutoCAD 2005)
TABLET
Настройка и калибровка планшета в соответствии с системой координат пространства листа. Опции: • ON — включение планшетного режима; • OFF — выключение планшетного режима; • CAL — калибровка планшета; • CFG — конфигурирование области планшетного меню и экранной области планшета
TABSURF
Создание многогранной сети, представляющей собой поверхность сдвига, созданную по определяющей кривой и вектору направления
TEXT
Создание однострочных текстовых надписей в динамическом режиме. Опции: • начальная точка — определение начальной точки текстового объекта; • J — управление выравниванием текста. Подопции: • A — определение высоты и ориентации текста; • F — размещение текста в определенной области; • C — выравнивание текста по центру; • М — горизонтальное выравнивание; • R — выравнивание по правому краю; • TL — выравнивание по левому верхнему краю; • TC — выравнивание по центру верхнего края; • TR — выравнивание по правому верхнему краю; • ML — выравнивание по середине левого края; • MC — выравнивание по центру средней части; • MR — выравнивание по середине правого края; • BL — выравнивание по левому нижнему краю; • BC — выравнивание по центру нижнего края; • BR — выравнивание по правому нижнему краю; • S — задание текстового стиля, определяющего внешний вид текстовых символов
TEXTTOFRONT
Размещение надписей и размерного текста поверх перекрывающих их объектов (появилась в AutoCAD 2005)
TEXTSCR
Переход в текстовое окно из графического экрана AutoCAD
TIFOUT
Экспорт текущего видового экрана в файл формата TIFF (появилась в AutoCAD 2004)
Создание области или твердотельного объекта сложной формы путем вычитания одной области из другой (или одного тела из другого)
Команды AutoCAD
699
Команда
Описание
TIME
Получение сведений о дате и времени создания чертежа. При этом также указывается дата и время последнего обновления текущего чертежа и предоставляются средства управления датчиком общего затраченного времени. Опции: • D — отображение времени и даты последнего изменения; • O — включение таймера общего затраченного времени; • OFF — выключение таймера общего затраченного времени; • R — установка таймера в состояние "0"
TINSERT
Вставка блока или фрагмента чертежа в ячейку таблицы (появилась в AutoCAD 2005)
TOLERANCE
Вызов диалогового окна Geometric Tolerance (Допуски форм), используемого для указания на чертежах допусков формы и расположения поверхностей
TOOLBAR
Отображение, подавление и настройка панелей инструментов
TOOLPALETTES
Загрузка панели ToolPalettes (Палитры инструментов), с помощью которой можно вставить блоки или нанести штриховку на объекты текущего чертежа
TOOLPALETTESCLOSE
Выгрузка панели ToolPalettes
TORUS
Построение твердотельного тора. Опции: • R — радиус тора; • D — диаметр тора. (Эта поверхность образуется вращением окружности вокруг оси, лежащей в плоскости окружности. Поэтому при построении тора указывается радиус (или диаметр) окружности вращения и радиус (или диаметр) окружности, формирующей эту поверхность.)
TRACE
Построение полос (полилиний постоянной ширины)
TRANSPARENCY
Управление прозрачностью пикселей растровых изображений
TRAYSETTINGS
Управление значками в области уведомлений Windows (появилась в AutoCAD 2004)
TREESTAT
Отображение текущего пространственного индекса рисунка, который определяет положение объектов в пространстве листа или модели. Пространственный индекс включает в себя номер узла, количество объектов, глубину ветвей дерева и т д.
TRIM
Обрезка объекта по кромке, заданной другими объектами. Опции: • P — установка режима проекции; • E — управление обрезкой объектов по неявному ребру; • U — отмена предыдущей операции команды TRIM; • O — определение объекта обрезки; • U — отмена последней операции
700
Приложение Б
Команда
Описание
UCS
Установка и управление пользовательскими системами координат (ПСК). Опции: • W — преобразование текущей ПСК во внешнюю систему координат; • N — создание новой ПСК; • М — перемещение начала координат; • G — определение одной из шести ортографических ПСК; • P — восстановление предыдущей ПСК; • R — восстановление сохраненной ПСК и назначение ее текущей; • S — сохранение текущей ПСК под определенным именем; • D — удаление определенных ПСК из списка; • А — применение настроек текущей ПСК; • ? — получение списка имен пользовательских систем координат
UCSICON
Управление формой, видимостью и расположением пиктограммы ПСК. Опции: • ON — отображение пиктограммы пользовательской системы координат; • OFF — подавление пиктограммы ПСК; • А — изменение пиктограммы ПСК на всех активных видовых экранах; • N — отображение пиктограммы ПСК в левом нижнем углу; • OR — отображение пиктограммы ПСК в начале координат текущей системы координат; • P — вызов диалогового окна UCS Icon (Пиктограмма ПСК) для установки параметров, относящихся к пиктограмме ПСК
UCSMAN
Управление пользовательскими системами координат
UNDEFINE
Переопределение внутренней команды AutoCAD одноименной командой приложения
UNDO
Отмена действия одной или нескольких команд. Опции: • N — отмена действия определенного количества ранее выполненных команд (отмена выполнения команд меню обеспечивается командой U); • C — ограничение или блокировка команды UNDO; • BE — формирование группы команд, выполняемой как одна операция; • E — завершение формирования группы; • M (Mark) — установка маркера в данных об отмене команд; • B (Back) — отмена всех операций до появления маркера
UNION
Создание области или твердотельного объекта сложной формы путем объединения нескольких областей или нескольких тел
UNITS
Управление форматом и точностью линейных и угловых единиц
UPDATEFIELD
Обновление выделенных полей (появилась в AutoCAD 2005)
UPDATETHUMBSNOW
Обновление изображений образцов в диалоговом окне Sheet Set Manager (появилась в AutoCAD 2005)
VBAIDE
Вызов редактора Visual Basic
VBALOAD
Загрузка глобального проекта VBA в текущий сеанс AutoCAD
VBAMAN
Загрузка, выгрузка, сохранение, создание, внедрение и извлечение проектов VBA
Команды AutoCAD
701
Команда
Описание
VBARUN
Запуск макроприложений VBA
VBASTMT
Выполнение VBA-выражения в командной строке AutoCAD
VBAUNLOAD
Выгрузка глобального проекта VBA
VIEW
Вызов диалогового окна View (Вид), которое позволяет сохранить графические данные, отображенные на экране, и вывести их в форме именованного вида
VIEWPLOTDETAILS
Вывод отчета об ошибках и успешном завершении печати (появилась в AutoCAD 2005)
VIEWERS
Задание точности аппроксимации объектов на текущем видовом экране
VLISP
Отображение интерактивной среды разработки Visual LISP (IDE)
VPCLIP
Подрезка видовых экранов в пространстве листа
VPLAYER
Управление видимостью слоев в отдельных видовых экранах. Опции: • ? — получение списка замороженных слоев, имеющихся в определенном видовом экране; • F — замораживание слоев в текущем, в определенном или во всех видовых экранах; • T — размораживание слоев в текущем, определенном или во всех видовых экранах; • R — видимость слоев остается заданной по умолчанию; • N — создание новых слоев, замороженных во всех видовых экранах; • V (Viewport Visibility Default) — управление замораживанием и размораживанием слоев
VPMAX/VPMIN
Увеличение или уменьшение числа выбранных видовых экранов в окне AutoCAD (появилась в AutoCAD 2005)
VPOINT
Задание направления взгляда для трехмерного вида. Опции: • Нажатие клавиши <Enter> — отображение компаса и трехосной системы координат, с помощью которых можно изменять направление взгляда; • V — определение точки, относительно которой выполняется проецирование предмета; • R — создание нового направления взгляда путем определения двух углов
VPORTS
Деление графического экрана на определенное количество видовых экранов
VSLIDE
Отображение слайда существующего растрового изображения в текущем видовом экране
VTOPTIONS
Управление переходом от одного вида к другому во время панорамирования и зумирования (появилась в AutoCAD 2006)
WBLOCK
Запись определений блока или объекта в отдельный файл рисунка
702
Приложение Б
Команда WEDGE
Описание
WHOHAS
Выдача информации о владельце выбранного рисунка
WIPEOUT
Создание многоугольной незаполненной области, закрывающей определенную часть рисунка
WMFIN
Импорт метафайла Windows
WMFOPTS
Задание опций для команды WMFIN
WMFOUT
Экспорт объектов в метафайл Windows
WORKSPACE
Управление рабочими пространствами и настройками из командной строки (появилась в AutoCAD 2006)
WSSAVE
Сохранение текущего пользовательского интерфейса как именованного рабочего пространства (появилась в AutoCAD 2006)
WSSETTINGS
Определение рабочих пространств, отображаемых в меню Workspace (появилась в AutoCAD 2006)
XATTACH
Вставка внешних ссылок в текущий рисунок
XBIND
Внедрение неграфических объектов (символов) внешней ссылки в рисунок
XCLIP
Задание контура подрезки для внешней ссылки или блока и установка передней и задней плоскостей обрезки. Опции: • ON — отображение отсекаемого фрагмента; • OFF — отображение всей геометрии внешней ссылки, контур подрезки при этом игнорируется; • C — установка передней и задней плоскостей подрезки; • D — удаление контура подрезки; • P — автоматическое вычерчивание полилинии, совпадающей с контуром подрезки; • N — определение прямоугольного или многоугольного контура подрезки
XLINE
Построение бесконечных прямых (конструкционных линий). Опции: • точка — определение точки, через которую проходит бесконечная прямая; • H — построение горизонтальной бесконечной прямой; • V — построение вертикальной бесконечной прямой; • А — построение бесконечной прямой, проходящей под определенным углом; • B — построение биссектрисы (бесконечной прямой линии, проходящей через вершину угла и делящей угол пополам); • O — построение бесконечной прямой, параллельной другому линейному объекту
Построение твердотельного клиновидного объекта, одна из граней которого проходит под заданным углом. Опции: • точка — определение первого угла клина. Подопции: • точка — определение второго угла клина; • C — построение клина со сторонами равной длины; • L — построение клина определенной длины, ширины и высоты; • CE — построение клина с определенной центральной точкой
Команды AutoCAD
703
Команда XOPEN
Описание
XPLODE
Разбиение составного объекта на составляющие объекты с возможностью назначения цветов, слоев и типов линий образующимся объектам. Опции: • G — изменение выбранных объектов. Подопции: • E — расчленение всего составного объекта; • А — установка цвета, типа линии, слоя составляющих элементов; • C — установка цвета; • LA — установка слоя; • LT — установка типа линии; • I — установка всех параметров в соответствии со свойствами исходного объекта; • IS — последовательное изменение выбранных объектов
XREF
Управление внешними ссылками с помощью диспетчера Xref Manager
ZOOM
Увеличение или уменьшение видимого размера объектов на текущем видовом экране. Опции: • значение — Scale (X/XP) — изменение видимого размера объектов на определенную величину; • Scale X — отображение объектов в текущем масштабе; • Scale XP — отображение объектов в соответствии с масштабом пространства листа бумажному пробелу; • А — отображение всего чертежа в текущем видовом экране; • C — центрирование чертежа по указанной центральной точке; • D — отображение выбранного фрагмента чертежа в текущем видовом экране; • E — отображение всего рисунка; • S — отображение объектов в заданном масштабе; • W — отображение области, попавшей в рамку, определенную указанными противоположными вершинами; • Realtime (В реальном масштабе) — интерактивное увеличение или уменьшение размера объектов с помощью координатно-указательного устройства
Открытие выбранного файла рисунка внешней ссылки в отдельном файле. Если внешняя ссылка содержит вложенные внешние ссылки, то открывается наиболее глубокая внешняя ссылка выбранного объекта
Приложение В
Системные переменные AutoCAD Системная переменная ACADLSPASDOC
Значение Целое число
ACADPREFIX
Строка
ACADVER
Строка
ACISOUTVER
Целое число
AFLAGS
Целое число
ANGBASE
Вещественное число
Описание Эта переменная определяет режим загрузки файла acad.lsp, который может загружаться в каждый чертеж или только в первый чертеж, открытый во время работы с AutoCAD Переменная ACADPREFIX содержит пути поиска файлов поддержки и драйверов, определенные переменной окружения AutoCAD. При необходимости могут быть добавлены разделители путей поиска. Эта переменная имеет атрибут “только для чтения” Переменная ACADVER содержит номер версии AutoCAD. Эта переменная отличается от переменной заголовка $ACADVER (DXF-файл), в которой хранится номер уровня базы данных рисунка. Эта переменная имеет атрибут “только для чтения” Переменная ACISOUTVER содержит код ACIS-версии SAT-файлов, создаваемых командой ACISOUT. Начальное значение этой переменной — 40 Переменная AFLAGS определяет сумму установленных битовых флагов для команды ATTDEF. Начальное значение этой переменной — 0. В основном переменная AFLAGS имеет следующие значения: 0 — значение параметра не определено, 1 — невидимое, 2 — постоянное, 4 — проверочное, 8 — предварительно заданное Переменная ANGBASE определяет направление нулевого угла в текущей ПСК. Эта переменная сохраняется в текущем рисунке и имеет начальное значение 0,0000
Системные переменные AutoCAD
705
Системная переменная ANGDIR
Значение Целое число
Описание Переменная ANGDIR определяет направление отсчета углов в текущей ПСК. Эта переменная сохраняется в рисунке и имеет начальное значение 0. Значение 0 — отсчет углов против часовой стрелки, 1 — отсчет углов по часовой стрелке
APBOX
Целое число
Переменная APBOX определяет состояние прицела автопривязки (AutoSnap). Значение 0 — подавление прицела автопривязки, 1 — отображение прицела автопривязки (начальное значение)
APERTURE
Целое число
Переменная APERTURE определяет размер прицела перекрестия курсора в пикселях. Значение этой переменной сохраняется в системном реестре. Ее начальное значение равно 10
APSTATE
Целое число
Эта переменная определяет состояние переменной APBOX . Ее начальное значение равно 0
AREA
Вещественное число
В этой переменной содержится последнее значение площади, вычисленное с помощью команды AREA, LIST или DBLIST. Переменная AREA имеет атрибут “только для чтения”. Для получения более подробной информации можно воспользоваться командой SETVAR
ASSISTSTATE
Целое число
Переменная ASSISTSTATE сообщает об открытой информационной палитре Info Palette и имеет атрибут “только для чтения” (появилась в AutoCAD 2005). Ее начальное значение — 0
ATTDIA
Целое число
Переменная ATTDIA используется для определения режима команды INSERT при вводе значений атрибутов (значения могут вводиться с помощью диалогового окна или из командной строки). Значение этой переменной сохраняется в текущем рисунке. Начальное значение — 0. Значение 0 — значения атрибутов могут быть определены из командной строки, 1 — значения атрибутов могут быть определены в диалоговом окне
ATTMODE
Целое число
Переменная ATTMODE определяет режим видимости атрибутов. Значение этой переменной сохраняется в текущем рисунке. 0 — режим отображения атрибутов выключен, 1 — обычный (начальное значение), 2 — включен
ATTREQ
Целое число
Переменная ATTREQ определяет, использует ли команда INSERT при вставке блоков значения атрибутов, заданные по умолчанию. 0 — использование значений атрибутов, заданных по умолчанию, 1 (начальное значение) — определение значений атрибутов с помощью диалогового окна или командной строки (в зависимости от значения переменной ATTDIA)
AUDITCTL
Целое число
Переменная AUDITCTL определяет режим создания протокола проверки (файла с расширением .adt) при выполнении команды AUDIT. Значение этой переменной сохраняется в системном реестре. 0 — запись файла .adt не разрешена (начальное значение), 1 — запись файла .adt разрешена
706
Приложение В
Системная переменная AUNITS
Значение Целое число
AUPREC
Целое число
AUTOSNAP
Целое число
BACKGROUNDPLOT
Целое число
BACKZ
Вещественное число
BACTIONCOLOR
Целое число
BDEPENDENCYHIGHLIGHT Целое число
BGRIPOBJCOLOR
Целое число
BGRIPOBJSIZE
Целое число
BINDTYPE
Целое число
Описание Переменная AUNITS определяет используемые единицы измерения угловых величин. Значение этой переменной сохраняется в текущем рисунке. 0 — десятичные градусы (начальное значение), 1 — градусы/минуты/секунды, 2 — градусы (астрономические), 3 — радианы, 4 — маркшейдерские единицы Переменная AUPREC определяет точность измерения угловых величин (число десятичных знаков после запятой). Значение этой переменной сохраняется в текущем рисунке, а ее начальное значение равно 0 Переменная AUTOSNAP используется для управления маркером и подсказкой, а также для включения и выключения магнита автопривязки. Начальное значение этой переменной равно 7. Значение 0 — выключение маркера, подсказки и магнита автопривязки, 1 — включение маркера, 2 — включение подсказки, 4 — включение магнита автопривязки Эта переменная определяет режим фоновой печати и публикации; во время выполнения сценариев игнорируется (появилась в AutoCAD 2005). 0 — печать в приоритетном режиме; публикация в приоритетном режиме, 1 — печать в фоновом режиме; публикация в приоритетном режиме, 2 — печать в приоритетном режиме; публикация в фоновом режиме (начальное значение), 3 — печать в фоновом режиме; публикация в фоновом режиме Переменная BACKZ определяет величину смещения задней секущей плоскости от плоскости цели для текущего видового экрана (в условных единицах). Можно также определить расстояние от задней секущей плоскости до точки наблюдения (точки расположения камеры), вычтя значение BACKZ из расстояния между точкой расположения камеры и плоскостью цели. Значение этой переменной сохраняется в текущем рисунке Эта переменная определяет цвет, который назначается именам операций, отображаемым в окне Block Editor (появилась в AutoCAD 2006). Начальное значение этой переменной равно 7 Эта переменная определяет режим выделения зависимых объектов при выборе параметров, операций или ручек в окне Block Editor (появилась в AutoCAD 2006). 0 — не выделяются; 1 — выделяются (начальное значение) Эта переменная определяет цвет ручек, отображаемых в окне Block Editor (появилась в AutoCAD 2006). Начальное значение этой переменной равно 141 Эта переменная определяет размер ручек, отображаемых в окне Block Editor (появилась в AutoCAD 2006). Значение этой переменной может изменяться от 1 до 255. Ее начальное значение — 8 Эта переменная определяет форму имен зависимых символов при внедрении внешних ссылок и при редактировании вхождений. Значение переменной не сохраняется. 0 — выполнение связывания в обычном режиме (начальное значение), 1 — выполнение связывания в режиме вставки
Системные переменные AutoCAD Системная переменная BLIPMODE
Значение Целое число
BLOCKEDITLOCK
Целое число
BLOCKEDITOR
Целое число
BPARAMETERCOLOR
Целое число
BPARAMETERFONT
Целое число
BPARAMETERSIZE
Целое число
BTMARKDISPLAY
Целое число
BVMODE
Целое число
CALCINPUT
Целое число
CDATE
Вещественное число Строка
CECOLOR
CELTSCALE
Вещественное число
CELTYPE
Строка
707
Описание Переменная BLIPMODE используется для определения режима видимости маркеров. Значение этой переменной сохраняется в текущем рисунке. 0 — маркеры не видны (начальное значение), 1 — маркеры видны Переменная BLOCKEDITLOCK используется для определения состояния динамических блоков во время редактирования (появилась в AutoCAD 2006). 0 — разблокирован (начальное значение), 1 — заблокирован Переменная BLOCKEDITOR используется для вывода сообщения об открытии окна Block Editor (появилась в AutoCAD 2006). Ее начальное значение — 0 Переменная BPARAMETERCOLOR определяет цвет параметров, отображаемых в окне Block Editor (появилась в AutoCAD 2006). Ее начальное значение равно 7 Переменная BPARAMETERFONT определяет имя шрифта, который используется для названий параметров и операций, отображаемых в окне Block Editor (появилась в AutoCAD 2006). Ее начальное значение — ”Simplex.shx” Переменная BPARAMETERSIZE определяет размер шрифта для названий параметров и операций, отображаемых в окне Block Editor (появилась в AutoCAD 2006). 1 — минимальный, 255 — максимальный. Начальное значение — 12 Переменная BTMARKDISPLAY определяет режим отображения маркеров набора значений (появилась в AutoCAD 2006). 0 — маркеры видны, 1 — маркеры не видны (начальное значение) Переменная BVMODE определяет состояние невидимых объектов, отображаемых в окне Block Editor (появилась в AutoCAD 2006). 0 — невидимые (начальное значение), 1 — “серые” (видимые, но недоступные для использования) Переменная CALCINPUT определяет режим вычисления формул и глобальных постоянных в диалоговых окнах (появилась в AutoCAD 2006). 0 — не вычисляются, 1 — вычисляются после нажатия клавиши <End> (начальное значение) Переменная CDATE содержит текущую дату и время и имеет атрибут “только для чтения” Переменная CECOLOR определяет текущий цвет создаваемых объектов. Значение этой переменной сохраняется в рисунке. Ее начальное значение — BYLAYER (256) Переменная CELTSCALE определяет текущий масштаб типа линий. Значение этой переменной сохраняется в рисунке. Начальное значение — 1.0000 Переменная CELTYPE определяет тип линии, который будет использоваться в создаваемых объектах. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — ByLayer (Послою)
708
Приложение В
Системная переменная CELWEIGHT
Значение Целое число
CENTERMT
Целое число
CHAMFERA
Вещественное число
CHAMFERB
Вещественное число
CHAMFERC
Вещественное число
CHAMFERD
Вещественное число
CHAMMODE
Целое число
CIRCLERAD
Вещественное число
CLAYER
Строка
CLISTATE
Целое число
CMDACTIVE
Целое число
CMDECHO
Целое число
Описание Переменная CELWEIGHT определяет толщину линий создаваемых объектов. Значение этой переменной сохраняется в текущем рисунке. 1 —толщина линий имеет значение ByLayer (Послою) (начальное значение), 2 — толщина линий имеет значение ByBlock (Поблоку), 3 — толщина линий имеет значение Default (По умолчанию) (определяется системной переменной LWDEFAULT) Переменная CENTERMT определяет поведение нецентрированного многострочного текста, растягиваемого с помощью угловых ручек (появилась в AutoCAD 2006). 0 — центральная ручка перемещается в том же направлении (начальное значение), 1 — центральная ручка остается на месте; обе боковые ручки перемещаются в направлении растягивания Переменная CHAMFERA определяет первый размер фаски. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.5000 Переменная CHAMFERB определяет второй размер фаски. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.5000 Переменная CHAMFERC задает длину фаски. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 1.0000 Переменная CHAMFERD задает угол фаски. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000 Переменная CHAMMODE определяет текущий метод создания фасок. 0 — фаска строится по двум размерам (начальное значение), 1 — для построения фаски требуется указать длину фаски и угол скоса Переменная CIRCLERAD определяет радиус окружности, заданный по умолчанию. Начальное значение этой переменной — 0.0000 Переменная CLAYER определяет текущий слой. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0 Переменная CLISTATE указывает, активна ли командная строка (появилась в AutoCAD 2006). Ее начальное значение — 1 Переменная CMDACTIVE содержит битовый код, который указывает, активны ли в данный момент обычная команда, прозрачная команда, пакет команд (сценарий) или диалоговое окно. В основном эта переменная имеет следующие значения: 1 — активна только обычная команда, 2 — активны как обычная, так и прозрачная команды, 4 — активен сценарий (пакет команд), 8 — активно диалоговое окно, 16 — активен AutoLISP Переменная CMDECHO определяет режим эхо-вывода (отображения подсказок AutoCAD) при выполнении функций AutoLISP. Значение этой переменной сохраняется в системном реестре. 0 — отображение подсказок блокировано, 1 — отображение подсказок разрешено (начальное значение)
Системные переменные AutoCAD
709
Системная переменная CMDINPUTHISTORYMAX
Значение Целое число
Описание Эта переменная определяет максимальное число ранее введенных команд, сохраняемых в истории; используется вместе с системной переменной INPUTHISTORYMODE (появилась в AutoCAD 2006). Ее начальное значение — 20
CMDNAMES
Строка
Переменная CMDNAMES отображает английское имя активной обычной команды или прозрачной команды. Эта переменная имеет атрибут “только для чтения”
CMLJUST
Целое число
Переменная CMLJUST определяет текущий тип расположения мультилиний. Значение этой переменной сохраняется в системном реестре. 0 — выравнивание по верхнему краю, 1 — выравнивание по середине (начальное значение), 2 — выравнивание по нижнему краю
CMLSCALE
Вещественное число
Переменная CMLSCALE определяет текущий масштаб построения мультилиний. Например, в масштабе 3,0 генерируется мультилиния, ширина которой в три раза больше ширины, заданной в определении стиля. Если масштабный коэффициент равен 0, мультилиния превращается в обычную одинарную линию. Отрицательное значение масштабного коэффициента приводит к зеркальному отображению линий. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 1.0000
CMLSTYLE
Строка
Переменная CMLSTYLE определяет текущий стиль мультилиний, который используется для построения мультилиний. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — “STANDARD”
COMPASS
Целое число
Переменная COMPASS определяет режим показа трехмерного компаса на текущем видовом экране. 0 — выключение трехмерного компаса, 1 — включение трехмерного компаса
COORDS
Целое число
Переменная COORDS определяет режим обновления координат в статусной строке. Значение этой переменной сохраняется в текущем рисунке. 0 — обновление координат выполняется только после выбора точки, 1 — постоянное обновление абсолютных координат (начальное значение), 2 — постоянное обновление абсолютных координат, а также отображение соответствующих значений при запрашивании угла и расстояния от последней точки
CPLOTSTYLE
Строка
Эта переменная используется для определения текущего стиля печати для создаваемых объектов. Определенные значения AutoCAD — ByLayer (Послою), ByBlock (Поблоку), Normal (Обычный) и User Defined (Определяемый пользователем)
CPROFILE
Строка
Переменная CPROFILE отображает имя текущего профиля. Ее значение сохраняется в системном реестре. Начальное значение этой переменной — “Unnamed Profile”. Эта переменная имеет атрибут “только для чтения”
710
Приложение В
Системная переменная CROSSINGCOLOR
Значение Целое число
Описание Эта переменная определяет цвет секущей рамки (появилась в AutoCAD 2006). Ее начальное значение — 3
CTAB
Строка
Переменная CTAB возвращает название текущей вкладки в рисунке (Model или один из листов). Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения”
CTABLESTYLE
Строка
Переменная CTABLESTYLE определяет имя текущего табличного стиля (появилась в AutoCAD 2005). Ее начальное значение —”Standard”
CURSORSIZE
Целое число
Эта переменная определяет размер перекрестия курсора в процентном отношении к размеру экрана. Начальное значение — 5
CVPORT
Целое число
Переменная CVPORT определяет идентификационный номер активного видового экрана. Изменение значения этой переменной приводит к изменению текущего видового экрана, если выполняются следующие условия: 1 — определенный идентификационный номер принадлежит активному видовому экрану, 2 — перемещение курсора к определенному видовому экрану не заблокировано выполняемой командой (начальное значение), 3 — планшетный режим отключен. Значение этой переменной сохраняется в текущем рисунке
DATA
Вещественное число
Переменная DATA содержит текущую дату в юлианском представлении и время, отображаемое в виде дробного числа. Эта переменная имеет атрибут “только для чтения”
DBMOD
Целое число
Переменная DBMOD содержит битовый код, определяющий состояние изменений в рисунке с момента последнего сохранения. Эта переменная имеет атрибут “только для чтения”. В основном переменная DBMOD имеет следующие значения: 0 — без изменений, 1 — база данных объекта изменена, 2 — таблица идентификаторов изменена, 4 — переменная базы данных изменена, 8 — окно изменено, 16 — вид изменен
DCTCUST
Строка
Переменная DCTCUST показывает путь и имя файла текущего вспомогательного словаря проверки орфографии. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — “ ”
DCTMAIN
Строка
Переменная DCTMAIN содержит имя файла текущего основного орфографического словаря. Обычно этот файл располагается в каталоге \Support. По умолчанию основной орфографический словарь может быть определен с помощью команды SETVAR. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — “ ”
DEFLPLSTYLE
Строка
Переменная DEFLPSTYLE определяет стиль печати по умолчанию для новых слоев. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — “ ”
Системные переменные AutoCAD
711
Системная переменная DEFPLSTYLE
Значение Строка
Описание Переменная DEFPLSTYLE определяет стиль печати по умолчанию для новых объектов. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — ByLayer (Послою)
DELOBJ
Целое число
Переменная DELOBJ определяет режим сохранения или удаления примитивов, используемых для создания других объектов, из базы данных чертежа. Значение этой переменной сохраняется в текущем рисунке. 1 — удаление примитивов из базы данных чертежа (начальное значение), 0 — сохранение примитивов в базе данных чертежа
DEMANDLOAD
Целое число
Эта переменная определяет, как будет реагировать AutoCAD при обнаружении на чертеже объектов, созданных другими приложениями (т.е. будет ли AutoCAD выводить запрос на загрузку исходного приложения). Начальное значение — 3
DIASTAT
Целое число
Значение, содержащееся в переменной DIASTAT, определяет режим выхода из последнего диалогового окна. Эта переменная имеет атрибут “только для чтения”. 0 — отмена, 1 — OK
DIMADEC
Целое число
Переменная DIMADEC используется для определения точности угловых размеров. Начальное значение равно 1. Значение –1 — количество десятичных знаков, отображаемых в угловых размерах, соответствует значению переменной DIMDEC. 0–8 — количество десятичных знаков, отображаемых в угловых размерах, соответствует значению переменной DIMADEC
DIMALT
Переключатель Переменная DIMALT определяет возможность простановки размеров в альтернативных единицах измерения. Начальное значение этой переменной — Off (0). Чтобы упростить задание размеров в альтернативных единицах, присвойте переменной DIMALT значение On (1). Значение этой переменной сохраняется в текущем рисунке
DIMALTD
Целое число
Переменная DIMALTD (DIMension ALTernate units Decimal places) определяет количество десятичных знаков (десятичную точность) в альтернативных единицах измерения (если переменная DIMALT имеет значение On). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 2
DIMALTF
Вещественное число
Переменная DIMALTF (DIMension ALTernate units scale Factor) определяет коэффициент пересчета для альтернативных единиц измерения. При генерировании значений, заданных в альтернативных единицах измерения, все линейные размеры будут умножаться на указанный коэффициент (при условии, что переменная DIMALT имеет значение On). Начальное значение переменной DIMALTF — 25,4. Значение этой переменной сохраняется в текущем рисунке
DIMALTRND
Вещественное число
Переменная DIMALTRND определяет точность округления альтернативных единиц измерения. Ее начальное значение — 0.00. Значение этой переменной сохраняется в текущем рисунке
712
Приложение В
Системная переменная DIMALTTD
Значение Целое число
Описание Переменная DIMALTTD определяет количество десятичных знаков в значениях допусков альтернативных единиц измерения. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 2
DIMALTTZ
Целое число
Переменная DIMALTTZ управляет режимом подавления нулей в допусках альтернативных единиц измерения. Эта переменная позволяет также учитывать влияние преобразований “вещественное число/строковое значение”, выполняемых с помощью функций rtos и angtos языка AutoLISP. Значение переменной DIMALTTZ сохраняется в текущем рисунке. 0 — подавление нулей в допусках футов и дюймов (начальное значение), 1 — отображение нулей в допусках футов и дюймов, 2 — отображение нулей в допусках футов и подавление нулей в допусках дюймов, 3 — отображение нулей в допусках дюймов и подавление нулей в допусках футов. Значения переменной в пределах от 0 до 3 влияют только на размеры, заданные в футах и дюймах. Тем не менее, прибавив 4 к вышеуказанным значениям, вы сможете подавить ведущие нули во всех десятичных размерах. Добавление 8 позволяет подавить нулевые младшие разряды десятичных чисел. Добавление 12 (4 и 8) приводит к подавлению как ведущих, так и конечных нулей
DIMALTU
Целое число
Переменная DIMALTU устанавливает формат единиц для всех видов альтернативных размеров, за исключением угловых. Значение этой переменной сохраняется в текущем рисунке. 1 — научные, 2 — десятичные (начальное значение), 3 — инженерные, 4 — архитектурные (находящиеся в стеке), 5 — дробные (находящиеся в стеке), 6 — архитектурные, 7 — дробные, 8 — установочные параметры Windows
DIMALTZ
Целое число
Переменная DIMALTZ управляет режимом подавления нулей в альтернативных единицах измерения. Эта переменная позволяет также учитывать влияние преобразований “вещественное число/строковое значение”, выполняемых с помощью функций rtos и angtos языка AutoLISP. Значение переменной DIMALTZ сохраняется в текущем рисунке. 0 — подавление нулей в допусках футов и дюймов (начальное значение), 1 — отображение нулей в допусках футов и дюймов, 2 — отображение нулей в допусках футов и подавление нулей в допусках дюймов, 3 — отображение нулей в допусках дюймов и подавление нулей в допусках футов. Значения переменной в пределах от 0 до 3 влияют только на размеры, заданные в футах и дюймах. Тем не менее, прибавив 4 к вышеуказанным значениям, вы сможете подавить ведущие нули во всех десятичных размерах. Добавление 8 позволяет подавить нулевые младшие разряды десятичных чисел. Добавление 12 (4 и 8) приводит к подавлению как ведущих, так и конечных нулей
Системные переменные AutoCAD Системная переменная DIMAPOST
DIMASO
DIMASSOC
DIMASZ
DIMATFIT
Значение Строка
713
Описание Переменная DIMAPOST определяет текстовую строку (префикс и/или суффикс), которая присоединяется ко всем размерам, заданным в альтернативных единицах измерения, за исключением угловых. Значение переменной DIMAPOST сохраняется в текущем рисунке. Эта переменная имеет начальное значение “ ”. Чтобы блокировать существующий суффикс или префикс, присвойте этой переменной значение “.” (точка) Переключатель Переменная DIMASO определяет режим ассоциативности размерных объектов. Значение этой переменной сохраняется в текущем рисунке (но не в размерном стиле). Off (0) — создаваемые размеры не ассоциативны по своей природе и поэтому никакой связи между размерами и точками на объекте не существует. Элементы размеров — размерные стрелки, выносные и размерные линии, размерные текст и тому подобное — вычерчиваются в виде отдельных объектов; On (1) — создаваемые размеры ассоциативны по своей природе (начальное значение), поэтому между размерами и точками на объекте существует определенная связь. При редактировании какоголибо объекта (например, при обрезке или вытягивании) связанные с ним размеры также изменяются. Кроме этого может быть сохранен внешний вид ассоциативных размеров при редактировании объектов, выполняемом с помощью команд STRETCH или TEDIT. Например, вертикальный ассоциативный размер сохранится в виде вертикального размера даже после операции редактирования. Ассоциативные размеры всегда генерируются с параметрами настройки, установленными в размерном стиле Целое число Эта переменная используется для управления режимом ассоциативной связи размеров и измеряемых объектов рисунка. 0 — расчленение размеров на составляющие элементы, 1 — создание неассоциативных размеров, 2 — создание размеров, ассоциативных по своей природе (начальное значение) Вещественное Переменная DIMASZ (DIMension Arrowhead SiZe) число определяет величину стрелок на концах размерной линии и линии-выноски при значении переменной DIMTSZ, равном 0. Величина блока, используемого для стрелок на концах размерных линий и линийвыносок, заданная значением переменной DIMBLK, также определяется переменной DIMASZ. Эта переменная имеет также несколько опций, определяющих положение размерных линий и текста по отношению к выносным линиям. Значение переменной DIMASZ сохраняется в текущем рисунке; ее начальное значение — 0,18 единиц Целое число Переменная DIMATFIT определяет режим размещения размерного текста и стрелок при недостатке места для стрелок и текста на размерных линиях. Значение этой переменной сохраняется в текущем рисунке. 0 — размещение размерного текста и стрелок за выносными линиями, 1 — вынос стрелок, а затем размерного текста, 2 — вынос размерного текста, а затем стрелок, 3 — вынос стрелок или размерного текста (начальное значение)
714
Приложение В
Системная переменная DIMAUNIT
Значение Целое число
DIMAZIN
Целое число
DIMBLK
Строка
DIMBLK1
Строка
DIMBLK2
Строка
DIMCEN
Вещественное число
Описание Переменная DIMAUNIT определяет формат единиц измерения для угловых размеров. Значение этой переменной сохраняется в текущем рисунке. 0 — десятичные градусы, 1 — градусы/минуты/секунды, 2 — градусы (астрономические), 3 — радианы, 4 — маркшейдерские единицы Переменная DIMAZIN используется для подавления нулей в угловых размерах. Значение этой переменной сохраняется в текущем рисунке. 0 — отображение ведущих и конечных нулей (начальное значение), 1 — подавление ведущих нулей в десятичных размерах, 2 — подавление конечных нулей в десятичных размерах, 3 — подавление ведущих и конечных нулей Переменная DIMBLK используется для замены заданной по умолчанию стрелки, находящейся на конце размерной линии или линии-выноски. Для замены стандартной стрелки используется определяемый пользователем блок, который представляет собой заказную стрелку или какой-нибудь другой символ. Имя блока присваивается переменной DIMBLK (DIMension BLocK). Значение переменной сохраняется в текущем рисунке. Ее начальное значение — “ ”. Чтобы исключить имя существующего блока, присвойте переменной значение “.” (точка) Переменная DIMBLK1 определяет внешний вид стрелки на первом конце размерной линии. Эта опция может использоваться только при включенной переменной DIMSAH (DIMension Separate Arrow). Этой переменной, также как и в случае DIMBLK, присваивается имя определяемого пользователем блока. Для исключения имени существующего блока достаточно присвоить переменной значение “.” (точка). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “ ” Переменная DIMBLK2 определяет внешний вид стрелки на втором конце размерной линии. Эта опция может использоваться только при включенной переменной DIMSAH (DIMension Separate Arrow). Этой переменной, также как и в случае DIMBLK, присваивается имя определяемого пользователем блока. Для исключения имени существующего блока достаточно присвоить переменной значение “.” (точка). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “ ” Переменная DIMCEN (DIMension CENter) определяет режим нанесения маркеров центра и центровых линий окружностей и дуг в командах DIMCENTER, DIMDIAMETER и DIMRADIUS. Переменная DIMCEN принимает заданное расстояние в качестве аргумента. Конечный результат определяется ее значением. Значение переменной DIMCEN сохраняется в текущем рисунке. Ее начальное значение — 0.0900. Значение 0 — маркеры центра или центровые линии не вычерчиваются, >0 — отображение маркеров центра, размер которых определяется значением переменной DIMCEN.
Системные переменные AutoCAD Системная переменная
Значение
DIMCLRD
Целое число
DIMCLRE
Целое число
DIMCLRT
Целое число
DIMDEC
Целое число
DIMDLE
Вещественное число
715
Описание Например, если эта переменная имеет значение 0.250, на экране отобразится маркер центра, длина штрихов которого будет равна 0,2500 единицы, 0 обеспечивает печать текста, стрелок и других масштабируемых объектов, имеющих номинальную величину
720
Приложение В
Системная переменная DIMSE2
DIMSHO
Значение Описание Переключатель Переменная DIMSE2 (DIMension Suppress Extension line 2) используется для подавления второй выносной линии. Когда эта переменная включена (т.е. имеет значение On), вторая выносная линия не вычерчивается. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — Off Переключатель Переменная DIMSHO (DIMension SHOw dragged dimensions) используется для переопределения размерных объектов при их перемещении. Когда эта переменная включена, вычисление перемещаемых ассоциативных размеров выполняется в динамическом режиме. Значение переменной DIMSHO сохраняется в текущем рисунке, а не в размерном стиле. Ее начальное значение — On (1). Динамическое отслеживание перемещаемых размерных объектов приводит к снижению быстродействия компьютера, поэтому в некоторых ситуациях переменной DIMSHO необходимо присваивать значение Off (0). Следует заметить, что при использовании координатноуказательного устройства для определения длины линии-выноски диаметрального или радиального размера, значением переменной DIMSHO пренебрегают. В этом случае используется динамическое протаскивание объекта
DIMSOXD
Переключатель Для того чтобы разместить размерный текст между выносными линиями, вы должны присвоить переменной DIMTIX значение On. Чтобы подавить изображение размерной линии за пределами соответствующих выносных линий, присвойте переменной DIMSOXD (DIMension Suppress Outside eXtension Dimension lines) значение On. Если переменная DIMTIX включена, DIMSOXD выключена, а между выносными линиями недостаточно места для построения размерных линий, то размерные линии будут вычерчены за пределами выносных линий. В том случае, если обе переменные DIMTIX и DIMSOXD включены, размерные линии будут полностью подавлены. DIMSOXD работает только тогда, когда DIMTIX включена. Значение переменной DIMSOXD сохраняется в текущем рисунке. Ее начальное значение — Off (Отключено)
DIMSTYLE
Строка
Переменная DIMSTYLE используется для отображения имени текущего размерного стиля. Размерный стиль может быть изменен с помощью команды DDIM или DIMSTYLE. Значение переменной DIMSTYLE сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения”
DIMTAD
Целое число
Переменная DIMTAD (DIMension Text Above Dimension line) управляет вертикальностью размещения размерного текста относительно размерной линии. DIMTAD работает только тогда, когда размерный текст размещается между выносными линиями и выравнивается по размерной линии или располагается за пределами выносных линий. Значение этой переменной сохраняется в текущем рисунке.
Системные переменные AutoCAD Системная переменная
DIMTDEC
DIMTFAC
DIMTIH
DIMTIX
Значение
721
Описание 0 — размерный текст размещается между выносными линиями и выравнивается по центру (начальное значение), 1 — размерный текст размещается над размерной линией, расположенной между выносными линиями. Исключением является ситуация, когда размерная линия проводится под углом, а размерный текст, размещенный между выносными линиями, должен располагаться горизонтально. Для этого переменной DIMTIH присваивается значение 1. Расстояние между размерной линией и базовой линией нижней строки текста определяется преобладающим значением переменной DIMGAP. 2 — размерный текст смещается к концу размерной линии, который является наиболее отдаленным от определяющих точек, 3 — размещение размерного текста приводится в соответствие с Японским промышленным стандартом (JIS — Japanese Industrial Standard) Целое число Переменная DIMTDEC определяет количество десятичных знаков для значений допусков в основных единицах измерения. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 4 Вещественное Переменная DIMTFAC (DIMension Tolerance scale число FACtor) определяет масштабный коэффициент значений допусков, высота текста которых рассчитывается по высоте размерного текста, заданного переменной DIMTXT. Предположим, что значение переменной DIMTFAC равно 1.0 (значение, заданное по умолчанию). В этом случае высота текста значений допусков будет равна высоте размерного текста. Если эта переменная имеет значение 0.50, высота текста значений допусков будет равна половине высоты размерного текста. Значение переменной DIMTFAC сохраняется в текущем рисунке. Ее начальное значение — 1.0000. Не забывайте, что масштабирование значений допусков возможно только в том случае, когда переменная DIMTOL включена, а значения переменных DIMTM и DIMTP не равны, или когда переменная DIMLIM включена Переключатель Переменная DIMTIH (DIMension Text Inside Horizontal) определяет положение размерного текста линейных и угловых размеров, радиусов и диаметров. Значение этой переменной учитывается только при размещении размерного текста между выносными линиями. On — если переменная DIMTIH включена (по умолчанию), размерный текст, находящийся между выносными линиями, располагается горизонтально; Off — если переменная DIMTIH выключена, размерный текст выравнивается по размерной линии Переключатель Переменная DIMTIX используется для принудительного размещения размерного текста между выносными линиями. Значение этой переменной сохраняется в текущем рисунке. On — когда переменная DIMTIX включена, размерный текст размещается между выносными линиями даже в том случае, если он обычно располагается за их пределами, Off (начальное значение) — если DIMTIX выключена, размещение текста будет определяться типом размеров.
722
Приложение В
Системная переменная
Значение
Описание Например, при простановке линейных или угловых размеров размерные числа будут размещаться между выносными линиями (при наличии свободного места). В то же время, при простановке радиусов или диаметров размерный текст всегда выносится за пределы измеряемого объекта
DIMTM
Вещественное число
Переменная DIMTM определяет нижнюю границу допусков размерного текста. Допуском называется разница между наибольшим и наименьшим предельными размерами или абсолютная величина алгебраической разницы между верхним и нижним отклонениями. Допуск или предельные отклонения размеров отображаются только в том случае, если системная переменная DIMTOL или DIMLIM включена. Переменная DIMTM (DImension Tolerance Minus) определяет величину нижнего отклонения, а переменная DIMTP (DIMension Tolerance Plus) — величину верхнего отклонения поля допуска. Этим переменным можно присваивать как положительные, так и отрицательные значения. Если переменная DIMTOL включена, а переменные DIMTM и DIMTP имеют одинаковые значения, в программе AutoCAD после значения допуска появляется символ “с”. Если переменные DIMTM и DIMTP содержат разные значения, верхнее отклонение поля допуска отображается над нижним отклонением. Кроме этого перед положительным значением переменной DIMTP ставится знак “плюс” (+). При определении нижнего отклонения поля допуска (DIMTM) отображается отрицательное значение введенной вами величины (ставится знак “минус”, если вводится положительное значение, и знак “плюс”, если отрицательное). Если предельные отклонения размеров равны нулю, знак не ставится. Значение переменной DIMTM сохраняется в текущем рисунке. Ее начальное значение 0.0000
DIMTMOVE
Целое число
Переменная DIMTMOVE определяет правила перемещения размерного текста при редактировании. Значение этой переменной сохраняется в текущем рисунке. 0 — размерная линия перемещается вместе с размерным текстом (начальное значение), 1 — перемещаемый размер ставится на полке линиивыноски, 2 — при перемещении размерного текста линия-выноска не используется
DIMTOFL
Переключатель Если переменная DIMTOFL включена, размерная линия проводится между выносными линиями даже тогда, когда размерный текст размещается за пределами выносных линий. Когда DIMTOFL выключена, то при простановке радиусов или диаметров размерная линия со стрелками проводится внутри дуги или окружности, а сам размер указывается на полке линии-выноски. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — Off (Отключено)
Системные переменные AutoCAD
723
Системная переменная DIMTOH
Значение
Описание
DIMTOL
Переключатель Переменная DIMTOL (DIMension with TOLerance) используется для простановки допусков в основных размерах. Переменные DIMTM и DIMTP определяют значения нижней и верхней границы допусков. Если переменная DIMTOL включена, предельные отклонения размеров указываются непосредственно после текста, заданного по умолчанию (т.е. после номинального размера). При включении DIMTOL переменная DIMLIM получает значение Off (Отключено). Значение переменной DIMTOL сохраняется в текущем рисунке. Ее начальное значение — Off (Отключено)
DIMTOLJ
Целое число
Переменная DIMTOLJ используется для вертикального выравнивания допусков по отношению к тексту номинальных размеров. Значение этой переменной сохраняется в текущем рисунке. 0 — нижняя часть, 1 — середина (начальное значение), 2 — верхняя часть
DIMTP
Вещественное число
Переменная DIMTP (DIMension Tolerance Plus) определяет верхнюю границу допусков размерного текста. Допуском называется разница между наибольшим и наименьшим предельными размерами или абсолютная величина алгебраической разницы между верхним и нижним отклонениями. Допуск или предельные отклонения размеров отображаются только в том случае, если системная переменная DIMTOL или DIMLIM включена. Если переменная DIMTOL включена, а переменные DIMTM и DIMTP имеют одинаковые значения, в программе AutoCAD после значения допуска появляется символ “с”. Если переменные DIMTM и DIMTP содержат разные значения, верхнее отклонение поля допуска отображается над нижним отклонением. Кроме этого перед положительным значением переменной DIMTP ставится знак “плюс” (+). Значение переменной DIMTP сохраняется в текущем рисунке. Ее начальное значение — 0.0000
Переключатель Переменная DIMTOH (DIMension Text Outside Horizontal) управляет режимом ориентации размерного текста за пределами выносных линий. Если DIMTOH включена, размерный текст размещается горизонтально независимо от положения размерной линии. В том случае, если переменная DIMTOH выключена, текст размера выравнивается по размерной линии. Следует заметить, что DIMTOH выполняет ту же роль, что и переменная DIMTIH, и отличается только тем, что определяет ориентацию размерного текста не внутри выносных линий, а за их пределами. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — On (Включено)
724
Приложение В
Системная переменная DIMTSZ
Значение Вещественное число
DIMTVP
Вещественное число
DIMTXSTY
Строка
DIMTXT
Вещественное число
DIMTZIN
Целое число
Описание Переменная DIMTSZ определяет размер косой черты (засечки), изображаемой вместо стрелки в линейных размерах, радиусах и диаметрах (например, в архитектурных проектах). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000. Значение 0 — вычерчивание стрелок, >0 — замена стрелок косыми черточками (засечками). Величина засечки вычисляется по формуле DIMTSZ*DIMSCALE. Следовательно, если глобальный масштабный коэффициент DIMSCALE равен единице, то величина засечки равна значению DIMTSZ. Эта переменная также используется для определения положения размерной линии и текста по отношению к выносным линиям Переменная DIMTVP (DIMension Text Vertical Position) определяет вертикальное положение размерного текста (над или под размерной линией). В некоторых случаях эта переменная заменяет переменную DIMTAD, которая также используется для определения вертикальности размерного текста. Значение переменной DIMTVP учитывается только в том случае, когда DIMTAD выключена. Вертикальное расположение размера обеспечивается за счет смещения размерного текста. Величина вертикального смещения определяется как произведение высоты размерного текста и значения DIMTVP. Если значение переменной DIMTVP равно 1.0, DIMTVP функционирует как DIMTAD. Тем не менее, если значение DIMTVP меньше, чем 0.70, размерная линия разбивается на два сегмента, что обеспечивает размещение размерного текста. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000 Переменная DIMTXTSTY определяет текстовый стиль проставляемых размеров. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “STANDARD” Переменная DIMTXT используется для определения высоты размерного текста, если используемый текстовый стиль не имеет фиксированную высоту. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.1800 Переменная DIMTZIN управляет режимом подавления нулей в значениях допусков. Значение переменной DIMTZIN сохраняется в текущем рисунке. 0 — подавление нулей в допусках футов и дюймов (начальное значение), 1 — отображение нулей в допусках футов и дюймов, 2 — отображение нулей в допусках футов и подавление нулей в допусках дюймов, 3 — отображение нулей в допусках дюймов и подавление нулей в допусках футов. Значения переменной в пределах от 0 до 3 влияют только на размеры, заданные в футах и дюймах. Тем не менее, прибавив 4 к вышеуказанным значениям, вы сможете подавить ведущие нули во всех десятичных размерах. Добавление 8 позволяет подавить нулевые младшие разряды десятичных чисел. Добавление 12 (4 и 8) приводит к подавлению как ведущих, так и конечных нулей
Системные переменные AutoCAD
725
Системная переменная DIMUNIT
Значение Целое число
Описание Переменная DIMUNIT определяет формат единиц измерения для всех видов размеров, кроме угловых. 1 — научные, 2 — десятичные, 3 — инженерные, 4 — архитектурные (находящиеся в стеке), 5 — дробные (находящиеся в стеке), 6 — архитектурные, 7 — дробные, 8 — установочные параметры Windows
DIMUPT
Переключатель Эта переменная определяет режим действия курсора при пользовательском расположении текста. Значение переменной DIMUPT сохраняется в текущем рисунке. 0 (Off) — курсор определяет только положение размерной линии (начальное значение), 1 (On) — курсор определяет положение как размерной линии, так и размерного текста
DIMZIN
Целое число
Переменная DIMZIN (DIMension Zero Inch) управляет подавлением дюймовой части в размерах, представляющих собой целое число футов, или подавлением футовой части в размерах, величина которых менее одного фута. Значение переменной DIMZIN сохраняется в текущем рисунке. 0 — подавление нулевых футов и дюймов (начальное значение), 1 — отображение нулевых футов и дюймов, 2 — отображение нулевых футов и подавление нулевых дюймов, 3 — отображение нулевых дюймов и подавление нулевых футов. Если размер содержит футовую и дробную дюймовую часть, число дюймов указывается даже в том случае, когда их количество равно нулю. Например, такого размера, как 1'-2/3" не существует. Этот размер должен быть отображен в виде 1'-0 2/3". Значения переменной в пределах от 0 до 3 влияют только на размеры, заданные в футах и дюймах. Тем не менее, прибавив 4 к вышеуказанным значениям, вы получаете возможность подавлять ведущие нули во всех десятичных размерах. Например, число 0.2600 отобразится как .2600. Добавление 8 позволит вам подавить нулевые младшие разряды десятичных чисел. В этом случае число 4.9600 превратится в 4.96. Добавление 12 (4 и 8) приводит к подавлению как ведущих, так и конечных нулей. Например, число 0.2300 превратится .23
DISPSILH
Целое число
Переменная DISPSILH управляет режимом показа кромок силуэта твердотельных объектов в каркасном режиме. Значение этой переменной сохраняется в текущем рисунке. 0 — кромки силуэта твердотельного объекта не отображаются (начальное значение), 1 — отображение кромок силуэта твердотельного объекта
DISTANCE
Вещественное число
Переменная DISTANCE содержит последнее расстояние, вычисленное командой DIST. Эта переменная имеет атрибут “только для чтения”
DONUTID
Вещественное число
Переменная DONUTID содержит последний внутренний диаметр кольца, задаваемый при построении кольца по умолчанию. Начальное значение этой переменной — 0.5000
726
Приложение В
Системная переменная DONUTOD
Значение Вещественное число
DRAGMODE
Целое число
DRAGP1
Целое число
DRAGP2
Целое число
DRAWORDERCTL
Целое число
DRSTATE
Целое число
DTEXTED
Целое число
DWGCHECK
Целое число
DWGCODEPAGE
Строка
Описание Переменная DONUTOD содержит последний наружный диаметр кольца, задаваемый при построении кольца по умолчанию. Следует заметить, что значение этой переменной должно быть больше нуля. В том случае, если DONUTID имеет большее значение, чем DONUTOD, значения, присвоенные этим переменным, меняются местами. Начальное значение переменной DONUTOD — 1.0000 Переменная DRAGMODE используется для установки режима перетаскивания объектов во время редактирования чертежа. 0 — перетаскивание объектов заблокировано, 1 — перетаскивание объектов разрешено, 2 — автоматический режим (начальное значение). Значение этой переменной сохраняется в текущем рисунке Переменная DRAGP1 используется для установки частоты регенерации объекта при его отслеживании. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 10 Переменная DRAGP2 используется для установки частоты регенерации объекта при быстром отслеживании. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 25 Переменная DRAWORDERCTL определяет последовательность вывода графических данных (появилась в AutoCAD 2005). 0 — восстановление заданной последовательности вывода только после регенирования или повторного открытия рисунка, 1 — вывод данных в ранее заданной последовательности, 2 — наследование последовательности вывода исходного объекта, 3 — сочетание опций 1 и 2 (начальное значение) Переменная DRSTATE определяет режим отображения окна Drawing Recovery (появилась в AutoCAD 2006). Ее начальное значение — 0 Переменная DTEXTED используется для определения пользовательского интерфейса команды DTEXT/TEXT (появилась в AutoCAD 2006). 0 — непосредственное редактирование текста (начальное значение), 1 — вызов диалогового окна Переменная DWGCHECK позволяет определить, редактировался ли рисунок в последний раз программой, отличной от AutoCAD. Значение этой переменной сохраняется в системном реестре. 0 — подавление отображения диалогового окна (начальное значение), 1 — отображение диалогового окна Переменная DWGCODEPAGE содержит кодовую страницу чертежа. При создании нового чертежа этой переменной присваивается системная кодовая страница, которая поддерживается программой AutoCAD. Используя системную переменную SYSCODEPAGE, можно присвоить переменной DWGCODEPAGE любое значение или оставить ее неопределенной. Значение переменной DWGCODEPAGE сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения”
Системные переменные AutoCAD Системная переменная DWGNAME
Значение Строка
DWGPREFIX
Строка
DWGTITLED
Целое число
DYNDIGRIP
Целое число
DYNDIVIS
Целое число
DYNMODE
Целое число
DYNPICOORDS
Целое число
DYNPIFORMAT
Целое число
DYNPIVIS
Целое число
727
Описание Переменная DWGNAME содержит имя чертежа, заданное пользователем. В том случае, если чертежу не было присвоено какое-либо имя, переменная DWGNAME определяет этот чертеж как безымянный. Имя чертежа включает в себя буквенное обозначение диска и имя каталога, если данные параметры были определены. Эта переменная имеет атрибут “только для чтения” Переменная DWGPREFIX содержит буквенное обозначение диска и имя каталога, в котором находится текущий рисунок. Эта переменная имеет атрибут “только для чтения” Переменная DWGTITLED определяет, было ли присвоено имя текущему рисунку. 0 — указывает на то, что чертеж является безымянным, 1 — указывает на то, что чертеж является именованным Переменная DYNDIGRIP определяет режим отображения динамических размеров при растягивании объекта с помощью ручек (DYNDIVIS = 2) (появилась в AutoCAD 2006). 0 — не отображаются, 1 — конечные размеры, 2 — изменяющиеся линейные размеры, 4 — абсолютные угловые размеры, 8 — изменяющиеся угловые размеры, 16 — радиусы дуг и окружностей. Начальное значение этой переменной — 31 (сумма битовых кодов) Переменная DYNDIVIS определяет порядок отображения динамических размеров при растягивании объекта с помощью ручек (появилась в AutoCAD 2006). 0 — первый (в циклической последовательности), 1 — два первых (в циклической последовательности), 2 — все (как определено переменной DYNDIGRIP). Ее начальное значение — 1 Переменная DYNMODE используется для управления опциями динамического ввода (чтобы включить скрытые режимы, щелкните на кнопке DYN в строке состояния) (появилась в AutoCAD 2006). -3 — оба режима скрыты, -2 — режим размерного ввода скрыт (начальное значение), -1 — режим ввода с помощью указателя скрыт, 0 — отключены, 1 — режима ввода с помощью указателя включен, 2 — режим размерного ввода включен, 3 — оба режима включены Переменная DYNPICOORDS определяет тип координат, вводимых с помощью указателя (появилась в AutoCAD 2006). 0 — относительные (начальное значение), 1 — абсолютные Переменная DYNPIFORMAT определяет тип координат, вводимых с помощью указателя (появилась в AutoCAD 2006). 0 — полярные координаты (начальное значение), 1 — прямоугольные координаты Переменная DYNPIVIS определяет режим отображения указателя динамического ввода данных (появилась в AutoCAD 2006). 0 — при вводе данных в ответ на запрос на выбор точек, 1 — при появлении запроса на выбор точек (начальное значение), 2 — всегда
728
Приложение В
Системная переменная DYNPROMPT
Значение Целое число
DYNTOOLTIPS
Целое число
EDGEMODE
Целое число
ELEVATION
Вещественное число
ENTERPRISEMENU
Строка
EXPERT
Целое число
EXPLMODE
Целое число
Описание Переменная DYNPROMPT определяет режим отображения запроса в контекстном окне указателя динамического ввода данных (появилась в AutoCAD 2006). Ее начальное значение — 0 Переменная DYNTOOLTIPS определяет тип контекстных окон указателей, изменяющихся при изменении настроек внешнего вида (появилась в AutoCAD 2006). 0 — только поля значений Dynamic Input, 1 — контекстные окна всех указателей (начальное значение) Переменная EDGEMODE управляет способом определения режущих и граничных кромок в командах TRIM и EXTEND. 0 — в этом случае выбранная кромка используется без удлинения, 1 — объект обрезается или удлиняется до воображаемого продолжения режущих или граничных кромок (начальное значение) Переменная ELEVATION определяет действующий уровень (смещение по текущей оси Z) построения объектов в текущем видовом экране. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000 Эта переменная содержит путь и имя файла .cui (появилась в AutoCAD 2006). Ее начальное значение — “ “ Переменная EXPERT определяет режим сложности выводимых подсказок. 0 — вывод всех подсказок (начальное значение), 1 — подавление подсказок “About to regen, proceed?” и “Really want to turn the current layer off?”, 2 — подавление ранее указанных подсказок, а также подсказок “Block already de-fined. Redefine it?” (команда BLOCK) и “A drawing with this name already exists. Overwrite it?” (команды SAVE и WBLOCK), 3 — подавление ранее указанных подсказок, а также подсказок, генерируемых командой LINETYPE при загрузке уже загруженного типа линии или создания уже существующего типа линии, 4 — подавление ранее указанных подсказок, а также подсказок, генерируемых командами UCS Save и VPORTS Save в том случае, если предлагаемое вами имя уже существует, 5 — подавление ранее указанных подсказок, а также подсказок, генерируемых командами DIMSTYLE (опция Save) и DIMOVERRIDE в том случае, если предлагаемый вами размерный стиль уже существует. При подавлении той или иной подсказки выполнение соответствующей операции происходит так, как при вводе Y. Команда EXPERT может влиять на макрокоманды меню, сценарии, программы AutoLISP и командные функции Переменная EXPLMODE определяет возможность расчленения блоков, имеющих разные масштабные коэффициенты, с помощью команды EXPLODE. Значение этой переменной сохраняется в текущем рисунке. 0 — неравномерно масштабированные блоки не могут быть расчленены, 1 — неравномерно масштабированные блоки могут быть расчленены (начальное значение)
Системные переменные AutoCAD Системная переменная EXTMAX
Значение Двумерная точка
EXTMIN
Двумерная точка
EXTNAMES
Целое число
FACETRATIO
Целое число
FACETRES
Вещественное число
FIELDDISPLAY
Целое число
FIELDEVAL
Целое число
729
Описание Переменная EXTMAX содержит координаты правой верхней точки области чертежа. Эта область увеличивается при построении новых объектов, а уменьшается только при использовании команд ZOOM All и ZOOM Extents. Значение переменной EXTMAX сохраняется в открытом рисунке, а координаты точки передаются в мировую систему координат текущего пространства Переменная EXTMIN содержит координаты левой нижней точки области чертежа. Эта область увеличивается при построении новых объектов, а уменьшается только при использовании команд ZOOM All и ZOOM Extents. Значение переменной EXTMIN сохраняется в открытом рисунке, а координаты точки передаются в мировую систему координат текущего пространства Переменная EXTNAMES используется для определения параметров имен именованных объектов (таких как слои, типы и веса линий), хранящихся в символьных таблицах. Значение этой переменной сохраняется в текущем рисунке. 0 — использование параметров AutoCAD 14, поддерживающих создание имен длиной не более 31 символа, 1 — использование параметров AutoCAD 2000, поддерживающих создание имен длиной до 255 символов (начальное значение) Переменная FACETRATIO устанавливает форматное соотношение ячеек многогранных сетей, определяющих форму цилиндрических и конических твердотельных объектов ACIS. Значение этой переменной не сохраняется. 0 — создание ячейки N×1 для цилиндрических и конических твердотельных объектов ACIS (начальное значение), 1 — создание ячейки N×М для цилиндрических и конических твердотельных объектов ACIS Переменная FACETRES регулирует гладкость раскрашенных и тонированных объектов, а также объектов с подавленными линиями невидимого контура. Этой переменной могут присваиваться значения в диапазоне от 0.010 до 10.0 (начальное значение — 0.5). Значение переменной FACETRES сохраняется в текущем рисунке Переменная FIELDDISPLAY управляет фоном текстовых полей (появилась в AutoCAD 2005). 0 — не отображается, 1 — серый фон (начальное значение) Переменная FIELDEVAL определяет режим обновления полей (появилась в AutoCAD 2005). 0 — не обновляются, 1 — обновляются при выполнении команды OPEN, 2 — обновляются при выполнении команды SAVE, 4 — обновляются при выполнении команды PLOT, 8 — обновляются при выполнении команды ETRANSMITE, 16 — обновляются при регенировании рисунка. Ее начальное значение — 31 (сумма битовых кодов)
730
Приложение В
Системная переменная FILEDIA
Значение Целое число
Описание Переменная FILEDIA подавляет отображение диалоговых окон выбора файлов. Значение этой переменной сохраняется в системном реестре. 0 — диалоговые окна выбора файлов заблокированы. Тем не менее, программа AutoCAD позволяет вызывать нужные диалоговые окна при вводе тильды (~) в строку приглашения. Это относится также к функциям AutoLISP и ADS. 1 — диалоговые окна выбора файлов доступны, за исключением тех случаев, когда выполняется сценарий или программа AutoLISP/ADS (начальное значение)
FILLETRAD
Вещественное число
Переменная FILLETRAD содержит текущий радиус сопряжения. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.5000
FILLMODE
Целое число
Переменная FILLMODE определяет режим закраски мультилиний, полос, фигур, всех штриховок (в том числе сплошных) и полилиний ненулевой ширины при использовании команды SOLID. Значение этой переменной сохраняется в текущем рисунке. 0 — объекты не закрашены, 1 — объекты закрашены (начальное значение)
FONTALT
Строка
Переменная FONTALT определяет имя альтернативного шрифта, который будет использоваться в том случае, если файл указанного шрифта не найден. При отсутствии определенного альтернативного шрифта программа AutoCAD выведет соответствующее предупреждение. Значение переменной FONTALT сохраняется в системном реестре. Ее начальное значение — simplex.shx
FONTMAP
Строка
Переменная FONTMAP определяет файл соответствия шрифтов, который будет использоваться в том случае, если определенный файл шрифта не найден. В строках этого файла содержатся исходный и подстановочный шрифты, разделенные точкой с запятой (;). Значение переменной FONTMAP сохраняется в системном реестре. Ее начальное значение — Acad.fmp
FRONTZ
Вещественное число
Переменная FRONTZ определяет величину смещения передней секущей плоскости для текущего видового экрана (в единицах текущего рисунка). Чтобы определить расстояние между передней секущей плоскостью и точкой расположения камеры, необходимо вычесть значение FRONTZ из расстояния от камеры до объекта. Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения”
FULLOPEN
Целое число
Переменная FULLOPEN является индикатором полного или частичного открытия текущего рисунка. Эта переменная имеет атрибут “только для чтения”. Значение переменной FULLOPEN не сохраняется. 0 — указывает на частичное открытие рисунка, 1 — указывает на полное открытие рисунка
Системные переменные AutoCAD Системная переменная FULLPLOTPATH
Значение Целое число
GRIDMODE
Целое число
GRIDUNIT
Двумерная точка
GRIPBLOCK
Целое число
GRIPCOLOR
Целое число
GRIPDYNCOLOR
Целое число
GRIPHOT
Целое число
GRIPS
Целое число
GRIPSIZE
Целое число
HALOGAP
Целое число
HANDLES
Целое число
731
Описание Переменная FULLPLOTPATH определяет формат файлового имени документа, посылаемого пользователем на спулер печатающего устройства (появилась в AutoCAD 2006). 0 — только файловое имя чертежа, 1 — полное путевое имя и файловое имя чертежа (начальное значение) Переменная GRIDMODE определяет текущее состояние режима GRID (Сетка). Значение этой переменной сохраняется в текущем рисунке. 0 — сетка выключена (начальное значение), 1 — сетка включена Переменная GRIDUNIT определяет размер ячейки сетки на текущем видовом экране по осям X и Y. Изменение шага сетки по той или иной оси проявляется только после использования команды REDRAW или REGEN. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.5000,0.5000 Переменная GRIPBLOCK определяет режим показа ручек внутри блоков. Значение этой переменной сохраняется в системном реестре. 0 — ручка назначается точке вставке данного блока (начальное значение), 1 — ручки назначаются объектам, находящимся внутри блока Переменная GRIPCOLOR определяет цвет невыбранных ручек и может принимать значения в диапазоне от 1 до 255. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 5 Переменная GRIPDYNCOLOR определяет цвет пользовательских ручек динамических блоков (появилась в AutoCAD 2006). Ее начальное значение — 140 Переменная GRIPHOT определяет цвет выбранных ручек и может принимать значения в диапазоне от 1 до 255. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 1 Переменная GRIPS определяет режим показа ручек выбранных объектов при выполнении операций Stretch (Растянуть), Move (Перенести), Rotate (Повернуть), Scale (Масштаб) и Mirror (Зеркало). Значение этой переменной сохраняется в системном реестре. 0 — ручки заблокированы, 1 — ручки разблокированы (начальное значение) Переменная GRIPSIZE определяет размер ручек в пикселях и может принимать значения в диапазоне от 1 до 255. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 3 Эта переменная используется для определения величины допуска на размеры видимых объектов для команды HIDE. Начальное значение этой переменной — 0 Переменная HANDLES всегда включена (т.е. имеет значение 1), что позволяет использовать ручки объектов в приложениях. Значение этой переменной сохраняется в текущем рисунке. Переменная HANDLES имеет атрибут “только для чтения”
732
Приложение В
Системная переменная HIDEPRECISION
Значение Целое число
Описание Переменная HIDEPRECISION определяет точность скрытия невидимых линий и раскрашивания. Вычисление скрытия может быть выполнено с двойной или одинарной точностью. 0 — одинарная точность; используется меньший объем памяти, 1 — двойная точность; используется больший объем памяти
HIDETEXT
Переключатель Эта переменная определяет режим скрытия текстов при выполнении команды HIDE. OFF — отображение текста, ON — скрытие текста
HIGHLIGHT
Целое число
Переменная HIGHLIGHT определяет режим подсветки объектов при выборе. На объекты, выделенные с помощью ручек, значение этой переменной не влияет
HPANG
Вещественное число
Переменная HPANG определяет угол наклона образца штриховки. Начальное значение этой переменной — 0
HPBOUND
Вещественное число
Переменная HPBOUND определяет тип объекта, создаваемого командами ВНАТСН и BOUNDARY. Значение этой переменной сохраняется в текущем рисунке. 0 — создание области, 1 — создание полилинии (начальное значение)
HPDOUBLE
Целое число
Переменная HPDOUBLE управляет режимом двойного штрихования (крест-накрест) для определяемых пользователем шаблонов. 0 — удвоение образца штриховки заблокировано (начальное значение), 1 — удвоение образца штриховки разрешено
HPDRAWORDER
Целое число
Переменная HPDRAWORDER определяет последовательность вывода штриховок и заливок (появилась в AutoCAD 2005). 0 — не влияет, 1 — позади других объектов, 2 — впереди других объектов, 3 — за контуром штриховки (начальное значение), 4 — перед контуром штриховки
HPGAPTOL
Целое число
Переменная HPGAPTOL определяет величину допустимого зазора контура штриховки (появилась в AutoCAD 2005). Значение этой переменной может изменяться от 0 (начальное значение) до 5 000 единиц
HPINHERIT
Целое число
Переменная HPINHERIT определяет способ копирования начальной точки штриховки из источника в целевые объекты, выполняемого командой MATCHPROP (появилась в AutoCAD 2006). 0 — как определено переменной HPORIGIN (начальное значение), 1 — как определено параметрами штриховки исходного объекта
HPNAME
Строка
Переменная HPNAME определяет имя образца штриховки, заданного по умолчанию. Имя образца должно содержать не более 34 символов. Использование пробелов в имени образца не допускается. Если значения по умолчанию не существует, переменная возвращает пустую строку (“ ”). Если вы не хотите устанавливать значение по умолчанию, введите точку (.). Начальное значение этой переменной — “ANSI31”
Системные переменные AutoCAD Системная переменная HPOBJWARNING
Значение Целое число
HPORIGIN
Вещественное число
HPORIGMODE
Целое число
HPSCALE
Вещественное число
HPSEPARATE
Целое число
HPSPACE
Вещественное число
HYPERLINKBASE
Строка
IMAGEHLT
Целое число
INDEXCTL
Целое число
INETLOCATION
Вещественное число
733
Описание Переменная HPOBJWARNING определяет максимальное количество контуров штриховки, которые могут быть выбраны пользователем до появления предупреждающего сообщения AutoCAD (появилась в AutoCAD 2006). Эта переменная может принимать значения в диапазоне от 1 до 107 374 823. Ее начальное значение — 10 000 Переменная HPORIGIN определяет начальную точку штриховки, задаваемую по умолчанию (появилась в AutoCAD 2006). Ее начальное значение — 0,0 Переменная HPORIGMODE определяет положение начальной точки штриховки, задаваемой по умолчанию (появилась в AutoCAD 2006). 0 — определяется переменной HPORIGIN (начальное значение), 1 — левый нижний угол прямоугольного контура штрихуемой области, 2 — правый нижний угол прямоугольного контура штрихуемой области, 3 — правый верхний угол прямоугольного контура штрихуемой области, 4 — левый верхний угол прямоугольного контура штрихуемой области, 5 — центральная точка прямоугольного контура штрихуемой области Переменная HPSCALE определяет масштаб шаблона штриховки, заданного по умолчанию. Эта переменная не может принимать нулевое значение. Начальное значение переменной HPSCALE — 1.0000 Переменная HPSEPARATE определяет количество штриховок, создаваемых в нескольких контурах (появилась в AutoCAD 2006). 0 — создается только одна штриховка (начальное значение), 1 — создается несколько отдельных штриховок Переменная HPSPACE определяет расстояние между штриховыми линиями по умолчанию для пользовательских штриховок. Эта переменная не может принимать нулевое значение. Начальное значение переменной HPSCALE — 1.0000 Переменная HYPERLINKBASE определяет путь, используемый для всех относительных гиперссылок. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “ ” (пустая строка) Переменная IMAGEHLT определяет режим подсветки растровых изображений при их выделении. Значение этой переменной сохраняется в системном реестре. 0 — подсветка контура выделяемого растрового изображения (начальное значение), 1 — подсветка всего растрового изображения Эта переменная определяет режим создания и сохранения слоевого и пространственного индексов в рисунке. 0 — индексы не создаются (начальное значение), 1 — создание слоевого индекса, 2 — создание пространственного индекса, 3 — создание слоевого и пространственного индексов Эта переменная содержит URL-адрес Web-браузера, используемый командой BROWSER. Начальное значение переменной — www.autodesk.com/acaduser
734
Приложение В
Системная переменная INPUTHISTORYMODE
Значение Целое число
INSBASE
Двумерная точка
INSNAME
Строка
INSUNITS
Целое число
INSUNITSDEFSOURCE
Целое число
INSUNITSDEFTARGET
Целое число
INTELLIGENTUPDATE
Целое число
ISAVEBAK
Целое число
Описание Эта переменная содержит сумму битовых кодов, которые определяют содержание и местоположение архива данных, введенных пользователем (появилась в AutoCAD 2006). 0 — введенные данные не отображаются, 1 — данные отображаются в командной строке и в контекстном окне указателя динамического ввода (для выбора команд используются клавиши “стрелка вверх” и “стрелка вниз”), 2 — текущая команда отображается в меню быстрого выбора команд, 4 — все введенные команды отображаются в меню быстрого выбора команд, 8 — мерцающее изображение последних данных, введенных в чертеж. Начальное значение этой переменной — 15 Эта переменная содержит координаты базовой точки вставки, устанавливаемой командой BASE. Эта точка определяется в координатах ПСК текущего пространства. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000,0.0000,0.0000 Переменная INSNAME устанавливает имя блока по умолчанию для команды INSERT. Если вы не хотите задавать имя блока по умолчанию, введите точку (.). Начальное значение этой переменной — “ ” Переменная INSUNITS определяет единицы измерения для блоков и растровых изображений, вставляемых из Центра управления AutoCAD. Значение этой переменной сохраняется в текущем рисунке. 0 — неопределенное (начальное значение), 1 — дюймы, 2 — футы, 3 — мили, 4 — миллиметры, 5 — сантиметры, 6 — метры, 7 — километры, 8 — микродюймы, 9 — милы (одна тысячная дюйма), 10 — ярды, 11 — ангстремы, 12 — нанометры, 13 — микроны, 14 — дециметры, 15 — декаметры, 16 — гектометры, 17 — гигаметры, 18 — астрономические единицы, 19 — световые годы, 20 — парсеки Переменная INSUNITSDEFSOURCE определяет единицы измерения, используемые в файле-источнике. Допустимые значения этой переменной находятся в диапазоне от 0 до 20. Ее начальное значение — 0. Значение переменной сохраняется в системном реестре Переменная INSUNITSDEFTARGET определяет единицы измерения, используемые в целевом рисунке. Допустимые значения этой переменной находятся в диапазоне от 0 до 20. Ее начальное значение — 0. Значение переменной сохраняется в системном реестре Переменная INTELLIGENTUPDATE указывает частоту обновления графических данных, выраженную в кадрах в секунду; значение этой переменной может изменяться от 0 (“выключено”) до 100 кадр/с (появилась в AutoCAD 2006). Ее начальное значение — 20 Эта переменная позволяет повысить скорость добавочного копирования, что имеет особое значение для больших рисунков в Windows. 0 — резервная копия рисунка (файл с расширением .bak) не создается, 1 — создается резервная копия рисунка (начальное значение)
Системные переменные AutoCAD
735
Системная переменная ISAVEPERCENT
Значение Целое число
Описание Эта переменная определяет размер неиспользуемого пространства внутри рисунка, при превышении которого выполняется полное сохранение. Начальное значение — 50
ISOLINES
Целое число
Переменная ISOLINES определяет число образующих (изолиний) на криволинейных участках поверхности объекта. Эта переменная может принимать значения в пределах от 0 до 2047. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 4
LASTANGLE
Вещественное число
Переменная LASTANGLE содержит конечный угол последней построенной дуги, лежащей в плоскости XY текущей пользовательской системы координат (ПСК) данного пространства. Эта переменная имеет атрибут “только для чтения”
LASTPOINT
Двумерная точка
Переменная LASTPOINT содержит координаты последней указанной точки в текущей ПСК. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000,0.0000,0.0000
LASTPROMPT
Строка
Переменная LASTPROMPT содержит последний текст, выведенный в командную строку. Ее начальное значение — “ ”
LAYERFILTERALERT
Целое число
Переменная LAYERFILTERALERT определяет режим удаления фильтров слоев, количество которых больше 99 (появилась в AutoCAD 2006). 0 — “выключено”, 1 — удаление всех фильтров без предупреждения (диалоговое окно Layer Properties Manager открыто), 2 — вывод рекомендации по удалению всех фильтров (диалоговое окно Layer Properties Manager открыто), 3 — отображение диалогового окна для выбора удаляемых фильтров, имеющихся в открытом чертеже. Начальное значение этой переменной — 2
LAYOUTREGENCTL
Целое число
Эта переменная определяет режимы регенерации изображений на вкладках листов при переходе в различные среды. Начальное значение — 2. Значение 0 — регенерация рисунков выполняется при каждом переключении на другую вкладку, 1 — регенерация рисунков на вкладке Model и на последнем активном листе, 3 — регенерация рисунков выполняется только при первом переключении на данную вкладку
LENSLENGTH
Вещественное число
Переменная LENSLENGTH определяет фокусное расстояние (в миллиметрах) при построении перспективной проекции в текущем видовом экране. Значение этой переменной сохраняется в текущем рисунке
LIMCHECK
Целое число
Эта переменная определяет режим проверки выхода за лимиты рисунка. Значение этой переменной сохраняется в текущем рисунке. 0 — объект может быть построен за пределами рисунка (начальное значение), 1 — объект не может быть построен за пределами рисунка
736
Приложение В
Системная переменная LIMMAX
Значение Двумерная точка
LIMMIN
Двумерная точка
LISPINIT
Целое число
LOCALE
Строка
LOCKUI
Целое число
LOGFILEMODE
Целое число
LOGFILENAME
Строка
LOGFILEPATH
Строка
LOGINNAME
Строка
LTSCALE
Вещественное число
Описание Переменная LIMMAX содержит координаты правого верхнего угла зоны лимитов рисунка в мировой системе координат (МСК). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 12.0000,9.0000 Переменная LIMMIN содержит координаты левого нижнего угла зоны лимитов рисунка в мировой системе координат (МСК). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000,0.0000 Эта переменная определяет режим сохранения в памяти функций и переменных (LISP-символов) при открытии нового рисунка (в одно-документном режиме). Значение переменной LISPINIT сохраняется в системном реестре. 0 — сохранение значений функций и переменных AutoLISP, 1 — значения функций и переменных AutoLISP действительны только в текущем рисунке (начальное значение) Переменная LOCALE показывает код ISO используемой версии AutoCAD. Начальное значение этой переменной — “Перечень” (меняется в зависимости от страны) Переменная LOCKUI содержит сумму битовых кодов, определяющих положение и размер окон и панелей инструментов (появилась в AutoCAD 2006). Чтобы временно разблокировать окно или панель, нажмите клавишу . 0 — окна и панели инструментов разблокированы (начальное значение), 1 — панели инструментов, находящиеся в фиксированном состоянии, блокированы, 2 — окна, находящиеся в фиксированном состоянии, блокированы, 4 — плавающие инструментальные панели блокированы, 8 — плавающие окна блокированы Эта переменная определяет режим записи содержимого текстового окна в файл журнала (с расширением .log). 0 — системный журнал не поддерживается (начальное значение), 1 — системный журнал поддерживается Эта переменная определяет имя файла системного журнала (вместе с путем) для текущего рисунка. Начальное значение — C:\Program Files\ AutoCAD 2004\acad.log Переменная LOGFILEPATH определяет путь к файлам системных журналов всех рисунков текущего сеанса. Начальное значение изменяется в зависимости от места установки программы AutoCAD и сохраняется в системном реестре Переменная LOGINNAME содержит системное имя пользователя, определенное при конфигурировании программы AutoCAD, выполненной во время первой загрузки Переменная LTSCALE определяет глобальный масштаб типов линий. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 1.0000
Системные переменные AutoCAD Системная переменная LUNITS
Значение Целое число
LUPREC
Целое число
LWDEFAULT
Перечень
LWDISPLAY
Целое число
LWUNITS
Целое число
MAXACTVP
Целое число
MAXSORT
Целое число
MBUTTONPAN
Целое число
MEASUREINIT
Целое число
737
Описание Переменная LUNITS устанавливает систему измерения линейных единиц. Значение этой переменной сохраняется в текущем рисунке. 1 — научные единицы, 2 — десятичные единицы (начальное значение), 3 — технические единицы, 4 — архитектурные единицы, 5 — дробные единицы Переменная LUPREC определяет точность отображения линейных величин (число десятичных разрядов). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 4 Переменная LWDEFAULT определяет значение, соответствующее весу линии DEFAULT. Вес линии, заданный по умолчанию, может иметь любое подходящее значение (в миллиметрах) Переменная LWDISPLAY определяет режим отображения весов линий на вкладке Model (Модель) или Layout (Лист). Значение этой переменной сохраняется в текущем рисунке. 0 — вес линий не отображается (начальное значение), 1 — отображение веса линий Переменная LWUNITS определяет единицы измерения для весов линий (дюймы или миллиметры). Значение этой переменной сохраняется в системном реестре. 0 — дюймы, 1 — миллиметры (начальное значение) Переменная MAXACTVP определяет максимальное количество видовых экранов, которые могут быть активны одновременно. Начальное значение этой переменной — 48 Переменная MAXSORT определяет максимальное количество строк, которое можно отсортировать в диалоговых окнах при выводе списков. Если общее число элементов превышает максимальное количество строк, сортировка элементов не выполняется. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 200 Переменная MBUTTONPAN определяет поведение третьей кнопки или колесика координатно-указательного устройства (мыши). Значение этой переменной сохраняется в системном реестре. 0 — поддерживает действия, определенные в файле меню AutoCAD (.mnu), 1 — поддерживает панорамирование, выполняемое с помощью левой кнопки и колесика координатно-указательного устройства (начальное значение) Переменная MEASUREINIT определяет систему единиц измерения (английская или метрическая), а также образцы штриховки и типы линий, используемые в новых рисунках. Значение этой переменной сохраняется в текущем рисунке. 0 (начальное значение) — английская (AutoCAD использует образцы штриховки и типы линий ANSI), 1 — метрическая (AutoCAD использует образцы штриховки и типы линий ISO)
738
Приложение В
Системная переменная MEASUREMENT
Значение Целое число
MENUCTL
Целое число
MENUECHO
Целое число
MENUNAME
Строка
MIRRTEXT
Целое число
MODEMACRO
Строка
MSOLESTATE
Вещественное число
MTEXTED
Строка
Описание Переменная MEASUREMENT определяет систему единиц измерения (английская или метрическая), а также образцы штриховки и типы линий, используемые в новых рисунках. Значение этой переменной сохраняется в текущем рисунке. 0 (начальное значение) — английская (AutoCAD использует образцы штриховки и типы линий ANSI), 1 — метрическая (AutoCAD использует образцы штриховки и типы линий ISO) Переменная MENUCTL определяет режим смены страниц экранного меню. Значение этой переменной сохраняется в системном реестре. 0 — при вводе команд с клавиатуры страницы экранного меню не меняются, 1 — смена страниц экранного меню выполняется при вводе команд с клавиатуры (начальное значение) Переменная MENUECHO определяет сумму битовых флагов управления эхо-выводом и запросами меню. Эта переменная может иметь следующие значения: 0 — начальное значение, 1 — подавление эхо-вывода пунктов меню, 2 — отображение системных подсказок при подавлении меню, 4 — переключатель эховывода пунктов меню заблокирован, 8 — отображение строк ввода-вывода и средств отладки макросов DIESEL Переменная MENUNAME содержит имя MENUGROUP. В том случае, если первичное меню не имеет имени MENUGROUP, а местоположение файла не определено в настройках среды AutoCAD, в файл меню включается его путевое имя. Значение этой переменной сохраняется в заголовке приложения. Переменная MENUNAME имеет атрибут “только для чтения” Переменная MIRRTEXT определяет режим симметрирования текста в команде MIRROR. Значение этой переменной сохраняется в текущем рисунке. 0 — направление текста сохраняется, 1 — зеркальное отображение текста (начальное значение) Переменная MODEMACRO используется для отображения текстовой строки или выражения DIESEL в строке состояния. В этой строке может быть отображено имя текущего рисунка, метка времени/даты или название текущего режима. Начальное значение этой переменной — “ ” Переменная MSOLESTATE управляет размерами текстосодержащих OLE-объектов, вставленных в пространстве модели (появилась в AutoCAD 2005). -1 — определяется значением PLOTSCALE, 0 — определяется значением DIMSCALE, >0 — определяется величиной масштабного коэффициента. Ее начальное значение — 1.0 Переменная MTEXTED определяет имя программы, которая должна использоваться для редактирования многострочных текстовых объектов. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — “Internal” (встроенный)
Системные переменные AutoCAD
739
Системная переменная NOMUTT
Значение Целое краткое
Описание Переменная NOMUTT определяет режим полного подавления сообщений в командной строке при работе пакетов и функций AutoLISP. Значение этой переменной не сохраняется. 0 — отображение сообщений в обычном режиме (начальное значение), 1 — подавление отображаемых сообщений
OBSCUREDCOLOR
Целое число
Эта переменная используется для установки цвета и видимости линий невидимого контура пространственных или плоских моделей, которые становятся видимыми только при вызове команд HIDE или SHADEMODE. Начальное значение этой переменной — 0 (видимость линий выключена). Чтобы сделать линии невидимого контура видимыми, присвойте этой переменной номер какого-либо цвета
OBSCUREDLTYPE
Целое число
Эта переменная используется для установки типа линий для линий невидимого контура. Начальное значение этой переменной — 0. Переменная может иметь следующие значения: 1 — сплошная, 2 — штриховая, 3 — пунктирная, 4 — линия с короткими штрихами, 5 — линия со средними штрихами, 6 — линия с длинными штрихами, 7 — линия со сдвоенными короткими штрихами, 8 — линия со сдвоенными средними штрихами, 9 — линия со сдвоенными длинными штрихами, 10 — линия со штрихами средней длины, 11 — редко стоящие точки
OFFSETDIST
Вещественное число
Переменная OFFSETDIST используется для определения величины текущего смещения. Если значение этой переменной меньше нуля, величина смещения определяется в сквозном режиме. Если значение переменной больше нуля, установленная величина смещения становится заданной по умолчанию. Начальное значение этой переменной — 1.0000
OFFSETGAPTYPE
Целое число
Переменная OFFSETGAPTYPE определяет метод обработки соединений соседних сегментов командой OFFSET. Значение этой переменной сохраняется в системном реестре. 0 — заполнение промежутков за счет удлинения соседних сегментов (начальное значение), 1 — заполнение промежутков дуговыми сегментами, радиус которых равен величине смещения, 2 — заполнение промежутков наклонными отрезками
OLEFRAME
Целое число
Переменная OLEFRAME управляет видимостью рамки вокруг OLE-объектов (появилась в AutoCAD 2005). 0 — рамка не отображается и не печатается, 1 — рамка не отображается и не печатается, 2 — рамка отображается, но не печатается (начальное значение)
OLEHIDE
Целое число
Переменная OLEHIDE определяет режим показа и печати OLE-объектов в AutoCAD. Значение этой переменной сохраняется в системном реестре. 0 — все OLE-объекты являются видимыми (начальное значение), 1 — OLE-объекты видны в пространстве листа, 2 — OLE–объекты видны в пространстве модели, 3 — OLE-объекты невидимы
740
Приложение В
Системная переменная OLEQUALITY
Значение Целое число
Описание Переменная OLEQUALITY определяет уровень качества, заданный по умолчанию, для внедренных OLE-объектов. Значение этой переменной сохраняется в системном реестре. 0 — качество штрихового рисунка, типа внедренной электронной таблицы, 1 — текстовое качество типа внедренного документа Word (начальное значение), 2 — графическое качество типа внедренной секторной диаграммы, 3 — фотографическое качество, 4 — уровень высококачественной фотографии
OLESTARTUP
Целое число
Переменная OLESTARTUP определяет режим загрузки родительских приложений для встроенных OLE-объектов при печати. Значение этой переменной сохраняется в текущем рисунке. 0 — приложение-источник OLE-объектов не загружается (начальное значение), 1 — загрузка родительских приложений для OLE-объектов при печати
ORTHOMODE
Целое число
Переменная ORTHOMODE определяет текущее состояние режима ортогональности отрезков, линий и полилиний. Значение этой переменной сохраняется в текущем рисунке. 0 — режим ортогональности выключен (начальное значение), 1 — режим ортогональности включен
OSMODE
Целое число
Переменная OSMODE определяет текущий режим объектной привязки, используя следующие битовые коды: 0 — режим объектной привязки NONe (начальное значение), 1 — режим объектной привязки ENDpoint, 2 — режим объектной привязки MIDpoint, 4 — режим объектной привязки CENter, 8 — режим объектной привязки NODe, 16 — режим объектной привязки QUAdrant, 32 — режим объектной привязки INTersection, 64 — режим объектной привязки INSertion, 128 — режим объектной привязки PERpendicular, 256 — режим объектной привязки TANgent, 512 — режим объектной привязки NEArest, 1024 — режим объектной привязки QUIck, 2048 — режим объектной привязки APPint. Если вам необходимо определить несколько режимов объектной привязки, введите сумму соответствующих значений. Например, чтобы определить режим привязки по узлу и центру объекта, присвойте переменной OSMODE значение 12 (4+8). Значение этой переменной сохраняется в текущем рисунке
OSNAPCOORD
Целое число
Эта переменная определяет режим подавления текущих режимов объектной привязки координатами, введенными в командную строку. 0 — текущие настройки объектной привязки переопределяют данные, введенные с клавиатуры, 1 — данные, введенные с клавиатуры, подавляют настройки объектной привязки, 2 — данные, введенные с клавиатуры, подавляют настройки объектной привязки за исключением параметров, определенных в сценариях (начальное значение)
Системные переменные AutoCAD Системная переменная OSNAPHATCH
Значение Целое число
OSNAPNODELEGACY
Целое число
OSNAPZ
Целое число
PAPERUPDATE
Целое число
PDMODE
Целое число
PDSIZE
Вещественное число
PEDITACCEPT
Целое число
PELLIPSE
Целое число
741
Описание Переменная OSNAPHATCH определяет режим объектной привязки к штриховке (появилась в AutoCAD 2005). 0 — объектная привязка к штриховке отключена (начальное значение), 1 — объектная привязка к штриховке включена Переменная OSNAPNODELEGACY определяет возможность привязки объектов к точке вставки многострочного текста (появилась в AutoCAD 2005). Ее начальное значение — 1 Переменная OSNAPZ используется для определения режима объектной привязки в направлении Z (появилась в AutoCAD 2006). 0 — использование координаты Z (начальное значение), 1 — использование текущих настроек уровня и высоты Переменная PAPERUPDATE определяет режим вывода предупреждений при печати чертежа, размеры которого не соответствуют формату листа, заданному по умолчанию. Значение этой переменной сохраняется в системном реестре. 0 — вывод предупреждения, если размеры листа, заданные в чертеже, не поддерживаются графопостроителем (начальное значение), 1 — установка размеров чертежа в соответствии с форматом листа, определенным в файле конфигурации графопостроителя Переменная PDMODE определяет текущий режим отображения точечных объектов (точек). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0 Переменная PDSIZE определяет размер точечного объекта. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000. Значение 0 — размер точки составляет 5 процентов от высоты графического символа, >0 — в этом случае введенное значение определяет абсолютный размер точки, . Если вывод подсказки подавлен, выбранный объект будет автоматически преобразован в полилинию. 0 — вывод подсказки (начальное значение), 1 — подавление подсказки Переменная PELLIPSE определяет тип эллипсов, создаваемых с помощью команды ELLIPSE. Значение этой переменной сохраняется в текущем рисунке. 0 — построение точного эллипса (начальное значение), 1 — построение эллипса в виде совокупности полилиний
742
Приложение В
Системная переменная PERIMETR
Значение Вещественное число
PFACEVMAX
Целое число
PICKADD
Целое число
PICKAUTO
Целое число
PICKBOX
Целое число
PICKDRAG
Целое число
PICKFIRST
Целое число
PICKSTYLE
Целое число
Описание Переменная PERIMETR содержит последнее значение периметра, вычисленное командой AREA, DBLIST или LIST. Эта переменная имеет атрибут “только для чтения” Переменная PFACEVMAX определяет максимальное число вершин, приходящихся на каждую грань объекта. Эта переменная имеет атрибут “только для чтения” Переменная PICKADD используется для управления аддитивным выбором объектов. Значение этой переменной сохраняется в системном реестре. 0 — переменная PICKADD заблокирована, 1 — переменная PICKADD разблокирована (начальное значение). К набору выделения добавляются все объекты, выбранные с помощью того или другого метода. Если вы хотите удалить объекты из набора выделения, нажмите клавишу <Shift>, и удерживая ее нажатой, выделите нужные объекты Переменная PICKAUTO используется для управления возможностью автоматического создания рамки выбора при появлении подсказки “Select object” и щелчке мышью на свободном месте. Значение этой переменной сохраняется в системном реестре. 0 — переменная PICKAUTO заблокирована, 1 — переменная PICKAUTO разблокирована (начальное значение) и рамка выбора автоматически создается при появлении подсказки “Select object” Переменная PICKBOX определяет половинную высоту прицела выбора объектов (в пикселях). Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 3 Переменная PICKDRAG определяет способ создания рамки выбора: 0 — в этом случае для создания рамки выбора необходимо щелкнуть мышью в одном, а затем в другом углу окна (начальное значение), 1 — в этом случае для создания рамки выбора необходимо щелкнуть мышью в одном углу окна, а затем, удерживая кнопку мыши (координатно-указательного устройства) нажатой, переместить курсор в другой угол окна и отпустить кнопку. Значение этой переменной сохраняется в системном реестре Переменная PICKFIRST определяет метод предварительного выбора объектов, который позволяет вначале выделить объект, а затем вызвать требуемую команду редактирования. 0 — переменная PICKFIRST заблокирована, 1 — переменная PICKFIRST разблокирована (начальное значение) Переменная PICKSTYLE определяет режим выбора объектов с помощью групп и с помощью ассоциативной штриховки. Значение этой переменной сохраняется в текущем рисунке. 0 — выбор объектов с помощью групп и ассоциативной штриховки невозможен, 1 — выбор объектов с помощью групп (начальное значение), 2 — выбор объектов с помощью ассоциативной штриховки, 3 — выбор объектов с помощью групп и с помощью ассоциативной штриховки
Системные переменные AutoCAD Системная переменная PLATFORM
Значение Строка
PLINEGEN
Целое число
PLINETYPE
Целое число
PLINEWID
Вещественное число
PLOTID
Строка
PLOTOFFSET
Целое число
PLOTROTMODE
Целое число
PLOTTER
Целое число
743
Описание Переменная PLATFORM определяет платформу (операционную систему) AutoCAD. Эта переменная имеет атрибут “только для чтения”. Существуют следующие платформы: Microsoft Windows — Sun/SPARCstation, 386 DOS Extender — DECstation, Apple Macintosh — Silicon Graphics Iris Indigo Переменная PLINEGEN определяет образец типа линии, генерируемого в вершинах двумерных полилиний. Значение этой переменной не влияет на полилинии с плавно изменяющимися сегментами. 0 — полилинии генерируются с разрывами в каждой вершине (начальное значение), 1 — тип линии генерируется в виде непрерывного образца, проходящего через вершины полилинии. Значение переменной PLINEGEN сохраняется в текущем рисунке Эта переменная определяет тип двумерных полилиний (компактных или подробных), создаваемых программой AutoCAD. 0 — команда PLINE создает полилинии в старом формате, 1 — команда PLINE создает оптимизированные полилинии, 2 — команда PLINE создает оптимизированные полилинии и преобразует полилинии в чертежах, созданных в ранних версиях программы AutoCAD Эта переменная содержит ширину двумерной полилинии, заданную по умолчанию. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000 Переменная PLOTID содержит описание текущего графопостроителя. Для изменения конфигурации печатающего устройства введите полное или частичное описание графопостроителя. Значение переменной PLOTID сохраняется в системном реестре. Ее начальное значение — “ ” Переменная PLOTOFFSET используется для задание базы смещения печати (появилась в AutoCAD 2005). 0 — от края печатной области (начальное значение), 1 — от края листа Переменная PLOTROTMODE используется для определения ориентации чертежа. Значение этой переменной сохраняется в текущем рисунке. 0 — фактическая область печати выравнивается по левому нижнему углу при повороте на 0 градусов, по верхнему левому углу при повороте на 90 градусов, по верхнему правому углу при повороте на 180 градусов и по нижнему правому углу при повороте на 270 градусов; 1 — левый нижний угол фактической области печати выравнивается по левому нижнему углу листа бумаги (начальное значение) Переменная PLOTTER содержит целое число, назначенное графопостроителю в процессе конфигурирования. Этой переменной может быть присвоено любое значение, находящееся в пределах от 0 до числа сконфигурированных графопостроителей. Например, если у вас есть 6 плоттеров, допустимыми значениями являются 0, 1, 2, 3, 4 и 5.
744
Приложение В
Системная переменная
Значение
PLQUIET
Целое число
POLARADDANG
Строка
POLARANG
Вещественное число
POLARDIST
Вещественное число
POLARMODE
Целое число
POLYSIDES
Целое число
Описание Чтобы перейти к другому графопостроителю, введите целое число, назначенное этому печатающему устройству. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 0 Переменная PLQUIET управляет выводом необязательных диалоговых окон и сообщений о некритических ошибках при пакетной печати и выполнении пакетных файлов. Значение этой переменной сохраняется в системном реестре. 0 — вывод диалоговых окон и сообщений о некритических ошибках при пакетной печати (начальное значение), 1 — регистрация сообщений о некритических ошибках и подавление диалоговых окон Переменная POLARADDANG содержит значения определяемых пользователем углов в полярной системе координат. Можно ввести до 10 дополнительных углов. Каждый угол может содержать до 25 символов, разделенных точкой с запятой (;). Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 0 Переменная POLARANG определяет величину приращения угла отслеживания в полярной системе координат. Основные значения этой переменной — 90 (начальное значение), 45, 30, 22.5, 18, 15, 10 и 5. Значение переменной POLARANG сохраняется в системном реестре Переменная POLARDIST определяет шаг привязки в полярной системе координат, когда системная переменная SNAPSTYL имеет значение 1 (полярная привязка). Значение переменной POLARDIST сохраняется в системном реестре. Ее начальное значение — 0.0000 Переменная POLARMODE используется для управления режимами полярного и объектного отслеживания. Значением этой переменной является сумма четырех битовых флагов. Измерение углов в полярной системе координат: 0 — измерение полярных углов относительно текущей ПСК (абсолютные углы), 1 — измерение полярных углов относительно выбранного объекта (относительные углы); режимы объектного отслеживания: 0 — только ортогональное отслеживание, 2 — использование полярного отслеживания в режимах объектного отслеживания; использование дополнительных углов отслеживания в полярной системе координат: 0 — нет, 4 — да. Запрашивание точек объектного отслеживания: 0 — автоматическое запрашивание, 8 — запрашивание при нажатии клавиши <Shift>. Значение переменной POLARMODE сохраняется в системном реестре. Ее начальное значение — 1 Переменная POLYSIDES определяет число сторон многоугольника, предлагаемое по умолчанию командой POLYGON. Эта переменная может принимать значения в диапазоне от 3 до 1024. Ее начальное значение — 4
Системные переменные AutoCAD
745
Системная переменная POPUPS
Значение Целое число
Описание Переменная POPUPS определяет состояние ранее сконфигурированного видеомонитора. Эта переменная имеет атрибут “только для чтения". 0 — диалоговые окна, строка меню, выпадающие и пиктограммные (мозаичные) меню не поддерживаются, 1 — диалоговые окна, строка меню, выпадающие и пиктограммные меню поддерживаются
PREVIEWEFFECT
Целое число
Переменная PREVIEWEFFECT определяет внешние параметры режима предварительного просмотра выбранных объектов (появилась в AutoCAD 2006). 0 — пунктирные линии, 1 — толстые сплошные линии, 2 — толстые пунктирные линии (начальное значение)
PREVIEWFILTER
Целое число
Переменная PREVIEWFILTER содержит сумму битовых кодов, которые определяют режим исключения выбранных объектов во время предварительного просмотра (появилась в AutoCAD 2006). 0 — объекты не исключаются, 1 — исключение объектов на блокированных слоях (начальное значение), 2 — исключение объектов во внешних ссылках, 4 — исключение таблиц, 8 — исключение многострочного текста, 16 — исключение образцов штриховки, 32 — исключение групп
PRODUCT
Строка
Эта переменная отображает имя программного продукта, которым в данном случае является AutoCAD
PROGRAM
Строка
Эта переменная отображает имя программы, которой в данном случае является AutoCAD
PROJECTNAME
Строка
Эта переменная содержит текущее имя проекта. Ее начальное значение — “ ” (пустая строка)
PROJMODE
Целое число
Переменная PROJMODE определяет режим проецирования для операций обрезки и удлинения. 0 — установка трехмерного режима (без проецирования), 1 — проецирование на плоскость XY текущей ПСК (начальное значение), 2 — проецирование на текущую плоскость просмотра
PROXYGRAPHICS
Целое число
Эта переменная определяет режим сохранения объектов-заместителей в рисунке. 0 — изображение не сохраняется, 1 — изображение сохраняется (начальное значение)
PROXYNOTICE
Целое число
Эта переменная определяет режим вывода сообщений при открытии рисунка, содержащего объекты, созданные каким-либо другим приложением. 0 — предупреждение о наличии объектов-заместителей не выводится, 1 — вывод предупреждения о наличии объектов-заместителей (начальное значение)
PROXYSHOW
Целое число
Эта переменная определяет режим показа объектовзаместителей в рисунке. 0 — объекты-заместители не отображаются, 1 — показ графических изображений имеющихся объектов-заместителей (начальное значение), 2 — отображение только ограничивающих прямоугольников, построенных по контуру объектов-заместителей
746
Приложение В
Системная переменная PROXYWEBSEARCH
Значение Целое число
Описание Эта переменная определяет режим поиска программы Object Enabler, используемой для обработки объектов-заместителей. 0 — поиск программы Object Enabler не выполняется (независимо от параметров, установленных в диалоговом окне AutoCAD 2004 Today), 1 — поиск программы Object Enabler при наличии подключения к Web-узлу Autodesk Point A (начальное значение), для этого открывать окно AutoCAD 2004 Today не обязательно; 2 — определение количества неудачных попыток подключения к Web-узлу Autodesk Point A при поиске программы Object Enabler
PSLTSCALE
Целое число
Переменная PSLTSCALE определяет режим масштабирования типов линий в пространстве листа. Значение этой переменной сохраняется в текущем рисунке. 0 — масштабирование типов линий не разрешено. Длины штрихов типов линий зависят от единиц измерения, заданных в том пространстве, в котором были построены данные объекты, 1 — масштаб типов линий зависит от масштаба видового экрана (начальное значение). В том случае, если переменной TILEMODE присвоено значение 0, длины штрихов зависят от единиц измерения пространства листа (даже если объекты находятся в пространстве модели)
PSTYLEMODE
Целое число
Переменная PSTYLEMODE определяет, какой тип стилей печати (цветозависимые или именованные) используется в текущем рисунке. Значение этой переменной сохраняется в текущем рисунке. 0 — использование именованного стиля печати в текущем рисунке (начальное значение), 1 — использование цветозависимого стиля печати в текущем рисунке. Эта переменная имеет атрибут “только для чтения”
PSTYLEPOLICY
Целое число
Переменная PSTYLEPOLICY определяет режим связи цвета объекта с его стилем печати. Новое значение, присвоенное этой переменной, влияет только на вновь создаваемые рисунки. Значение этой переменной сохраняется в системном реестре. 0 — цвет объекта и стиль печати не связаны между собой, 1 — стиль печати связан с цветом объекта (начальное значение)
PSVPSCALE
Вещественное число
Переменная PSVPSCALE определяет масштабный коэффициент для всех вновь создаваемых видовых экранов. Масштаб видового экрана определяется как отношение единиц пространства листа к единицам пространства модели вновь создаваемого видового экрана. Если значение переменной равно 0, масштаб изменяется с тем, чтобы рисунок уместился на странице. Величина масштабного коэффициента должна быть положительной. Значение переменной PSVPSCALE не сохраняется. Ее начальное значение — 0
PUCSBASE
Строка
Переменная PUCSBASE содержит имя ПСК, на которой базируются ортогональные системы координат (только для пространства листа). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “ ”
Системные переменные AutoCAD
747
Системная переменная QCSTATE
Значение Целое число
Описание Переменная QCSTATE определяет режим отображения окна QuickCalc (появилась в AutoCAD 2006). Ее начальное значение — 0
QTEXTMODE
Целое число
Переменная QTEXTMODE используется для управления режимом быстрого (контурного) отображения текста. Значение этой переменной сохраняется в текущем рисунке. 0 — режим быстрого отображения текста выключен (начальное значение), 1 — режим быстрого отображения текста включен. Текстовые фрагменты заменяются контурами соответствующей формы
RASTERDPI
Целое число
Переменная RASTERDPI управляет преобразованием миллиметров или дюймов в пиксели и наоборот; может принимать значения в диапазоне от 100 до 32 767 (появилась в AutoCAD 2006). Ее начальное значение — 300
RASTERPREVIEW
Целое число
Переменная RASTERPREVIEW определяет возможность сохранения растровых образцов для предварительного просмотра вместе с исходным рисунком. Значение этой переменной сохраняется в системном реестре. 0 — растровые образцы рисунка не создаются, 1 — создание растровых образцов рисунка (начальное значение)
RECOVERYMODE
Целое число
Переменная RECOVERYMODE определяет режим записи данных чертежа для его восстановления после отказов программного обеспечения (появилась в AutoCAD 2006). 0 — данные не записываются, 1 — данные записываются; окно Drawing Recovery не отображается, 2 — данные записываются; окно Drawing Recovery отображается автоматически (начальное значение)
REFEDITNAME
Строка
Переменная REFEDITNAME определяет имя внешней ссылки или блока, редактируемого в данный момент командой REFEDIT. Значение этой переменной не сохраняется. Ее начальное значение — “ ”. Эта переменная имеет атрибут “только для чтения”
REGENMODE
Целое число
Переменная REGENMODE определяет режим автоматической регенерации рисунка. Значение этой переменной сохраняется в текущем рисунке. 0 — функция REGENAUTO выключена, 1 — функция REGENAUTO включена
RE-INIT
Целое число
Переменная RE-INIT содержит сумму битовых флагов, которая определяет режим повторной инициализации портов ввода-вывода, графопостроителя, дигитайзера, монитора и перезагрузки файла acad.pgp. Для этого используются следующие битовые флаги: 0 — переинициализация не разрешена (начальное значение), 1 — переинициализация порта цифрового преобразователя (дигитайзера), 2 — переинициализация порта плоттера, 4 — переинициализация дигитайзера, 8 — переинициализация монитора, 16 — переинициализация PGP-файла. Можно также определить сразу несколько различных переинициализаций, введя сумму битовых флагов
748
Приложение В
Системная переменная REMEMBERFOLDERS
Значение Целое число
Описание Эта переменная используется для определения пути к файлам рисунков, указываемого по умолчанию в диалоговых окнах Select File (Выбор файла) и Save (Сохранить). 0 — во всех диалоговых окнах используется начальная часть путевого имени, 1 — сохранение и дальнейшее использование последнего использованного пути
RTDISPLAY
Целое число
Эта переменная используется для управления показом растровых изображений при панорамировании и зуммировании в реальном масштабе времени (команды ZOOM и PAN). 0 — отображение всего содержимого растрового изображения, 1 — отображение только контура растрового изображения (начальное значение)
SAVEFILE
Строка
Переменная SAVEFILE содержит имя файла автоматического сохранения. Эта переменная имеет атрибут “только для чтения”. Ее начальное значение — auto.sv$
SAVEFILEPATH
Строка
Переменная SAVEFILEPATH определяет путь к папке, используемой для автоматического сохранения файлов во время сеанса AutoCAD. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — C:\Temp\
SAVENAME
Строка
Переменная SAVENAME содержит имя файла, под которым сохранен текущий рисунок (вместе с путем). Эта переменная имеет атрибут “только для чтения”
SAVETIME
Целое число
Переменная SAVETIME определяет интервал автоматического сохранения рисунка (в минутах). Ее начальное значение — 120. Значение 0 — функция автоматического сохранения заблокирована, >0 — сохранение рисунка выполняется через определенные интервалы. Запуск таймера SAVETIME происходит при внесении изменений в текущий рисунок. Вызов команд SAVE, SAVEAS и QSAVE приводит к сбросу и повторному запуску таймера. В программе AutoCAD рисунок сохраняется под файловым именем auto.sv$
SCREENBOXES
Целое число
Переменная SCREENBOXES определяет количество строк экранного меню, отображаемых в области графического экрана. Если экранное меню заблокировано, эта переменная получает нулевое значение. В течение сеанса редактирования, проводимого в операционных системах, поддерживающих изменение размеров графического экрана AutoCAD, значение переменной SCREENBOXES и конфигурация экранного меню может быть изменена. Эта переменная имеет атрибут “только для чтения”
SCREENMODE
Целое число
Переменная SCREENMODE содержит битовый код, определяющий состояние экрана AutoCAD (графический или текстовый). Эта переменная имеет атрибут “только для чтения”. Существуют следующие битовые коды: 0 — текстовый режим, 1 — графический режим, 2 — текстовый и графический режимы
Системные переменные AutoCAD
749
Системная переменная SCREENSIZE
Значение Описание Вторая отметка Переменная SCREENSIZE определяет размер текущего видового экрана в пикселях (по осям Х и Y). Эта переменная имеет атрибут “только для чтения”
SDI
Целое число
Эта переменная определяет режим работы программы AutoCAD (однодокументный или многодокументный). Значение переменной SDI сохраняется в системном реестре. 0 — работа в многодокументном режиме (начальное значение), 1 — выключение многодокументного интерфейса, 2 — блокировка многодокументного интерфейса (только для чтения), 3 — блокировка многодокументного интерфейса (только для чтения)
SELECTIONAREA
Целое число
Переменная SELECTIONAREA определяет режим использования закрашенной области выбора (появилась в AutoCAD 2006). Ее начальное значение — 1
SELECTIONAREAOPACITY Целое число
Эта переменная определяет степень прозрачности закрашенной области выбора и может принимать значения от 0 (прозрачная) до 100 (непрозрачная) (появилась в AutoCAD 2006). Ее начальное значение —25
SELECTIONPREVIEW
Целое число
Переменная SELECTIONPREVIEW определяет режим предварительного просмотра выбранных объектов (появилась в AutoCAD 2006). 0 — отключен, 1 — включен, если команды неактивны, 2 — включен, если команды выдают запрос на выбор объектов (начальное значение)
SHADEDGE
Целое число
Переменная SHADEDGE используется для управления режимом показа ребер и граней при тонировании изображения. Значение этой переменной сохраняется в текущем рисунке. 0 — грани затенены, ребра не выделены, 1 — грани затенены, а ребра нарисованы в фоновом цвете, 2 — грани не затенены, а ребра выполнены в цвете объекта, 3 — грани выполнены в цвете объекта, а ребра имеют цвет фона (начальное значение)
SHADEDIF
Целое число
Переменная SHADEIF содержит код отношения рассеянной освещенности к освещенности диффузного отражения. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 70
SHORTCUTMENU
Целое число
Переменная SHORTCUTMENU определяет режим доступа (Default, Edit или Command) к контекстным меню, имеющимся в области чертежа. Значение этой переменной сохраняется в системном реестре. Ее начальное значение — 11. Переменная может использовать следующие битовые коды: 0 — блокировка всех режимов доступа (Default, Edit и Command) к контекстным меню и восстановление традиционного поведения версии R14, 1 — включение режима доступа Default, 2 — включение режима доступа Edit, 4 — включение режима доступа Command. В этом случае доступ к контекстным меню может быть получен при активизации какой-либо команды, 8 — включение режима доступа Command только при возможности вызова опций той или иной команды из командной строки
750
Приложение В
Системная переменная SHOWLAYERUSAGE
Значение Целое число
SHPNAME
Строка
SKETCHINC
Вещественное число
SKPOLY
Целое число
SNAPANG
Вещественное число
SNAPBASE
Двумерная точка
SNAPISOPAIR
Целое число
SNAPMODE
Целое число
SNAPSTYL
Целое число
SNAPTYPE
Целое число
Описание Переменная SHOWLLAYERUSAGE определяет режим отображения значков использования слоя в диалоговом окне диспетчера Layer Properties Manager (появилась в AutoCAD 2006). Ее начальное значение — 1 Переменная SHPNAME определяет имя формы, заданное по умолчанию. Начальное значение этой переменной — “ ”. Если вы не хотите задавать имя по умолчанию, введите точку (.) Переменная SKETCHINC определяет длину сегментов, создаваемых с помощью команды SKETCH. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.1000 Переменная SKPOLY определяет тип линий (отрезки или полилинии), генерируемых командой SKETCH. Значение этой переменной сохраняется в текущем рисунке. 0 — генерирование отрезков (начальное значение), 1 — генерирование полилиний Переменная SNAPANG определяет угол поворота сетки шаговой привязки (в текущей ПСК) для текущего видового экрана. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0. Изменение этой переменной проявится только после перерисовки содержимого текущего видового экрана Переменная SNAPBASE определяет координаты начальной точки сетки шаговой привязки для текущего видового экрана (в текущей ПСК). Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000,0.0000. Изменение этой переменной проявится только после перерисовки содержимого текущего видового экрана Переменная SNAPISOPAIR содержит код текущей плоскости изометрии для текущего видового экрана. Значение этой переменной сохраняется в текущем рисунке. 0 — левая (начальное значение), 1 — верхняя, 2 — правая Переменная SNAPMODE определяет текущее состояние режима шаговой привязки (SNAP). Значение этой переменной сохраняется в текущем рисунке. 0 — режим шаговой привязки заблокирован (начальное значение), 1 — включение режима шаговой привязки на текущем видовом экране Переменная SNAPSTYL определяет стиль шаговой привязки на текущем видовом экране. Значение этой переменной сохраняется в текущем рисунке. 0 — стандартный (начальное значение), 1 — изометрический Переменная SNAPTYPE определяет тип шаговой привязки для текущего видового экрана. Значение этой переменной сохраняется в системном реестре. 0 — сетка или стандартная шаговая привязка (начальное значение), 1 — шаговая привязка в полярной системе координат
Системные переменные AutoCAD Системная переменная SNAPUNIT
Значение Двумерная точка
SOLIDCHECK
Целое число
SORTENTS
Целое число
SPLFRAME
Целое число
SPLINESEGS
Целое число
SPLINETYPE
Целое число
751
Описание Переменная SNAPUNIT определяет параметры сетки шаговой привязки (шаг привязки по X и Y) в текущем видовом экране. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.5000,0.5000. Изменение этой переменной проявится только после перерисовки содержимого текущего видового экрана Эта переменная используется для включения и выключения проверки целостности тел в текущем сеансе AutoCAD. Значение этой переменной не сохраняется. 0 — выключение проверки целостности тел, 1 — включение проверки целостности тел (начальное значение) Переменная SORTENTS определяет порядок сортировки объектов с использованием следующих значений: 0 — функция сортировки объектов заблокирована, 1 — сортировка при выборе объектов, 2 — сортировка при выполнении объектной привязки, 4 — сортировка при перерисовке, 8 — сортировка при создании слайдов с помощью команды MSLIDE, 16 — сортировка при регенерации, 32 — сортировка при выводе на печать, 64 — сортировка при выводе в формате PostScript. Можно также выбрать несколько опций, введя сумму соответствующих значений. Начальное значение этой переменной — 96. Это значение определяет выполнение сортировки объектов при печати и выводе данных в формате PostScript Переменная SPLFRAME определяет режим отображения каркасов сплайнов, сглаженных сплайнами полилиний и сглаженных сетей. Значение этой переменной сохраняется в текущем рисунке. 0 (начальное значение) — сглаженные сплайнами полилинии не отображаются. Поверхность сглаживания многогранной сети отображается, тогда как определяющая сеть не отображается. Невидимые ребра трехмерных граней или многогранные сети не отображаются, 1 — отображение сглаженных сплайнами полилиний, а также невидимых ребер трехмерных граней и многогранных сетей. Поверхность сглаживания многогранной сети не отображается, тогда как определяющая сеть отображается Переменная SPLINESEGS определяет число прямолинейных сегментов, используемых для создания каждого сплайна. Другими словами, с помощью этой переменной можно управлять гладкостью кривой. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 8. Это значение обеспечивает формирование достаточно гладкой кривой, для регенерации которой не требуется большого количества времени. Чем больше значение этой переменной, тем выше гладкость формируемой кривой. При этом увеличивается время регенерации и размер файла чертежа Переменная SPLINETYPE определяет тип сглаживающей кривой, генерируемой при выборе опции Spline команды PEDIT. Значение этой переменной сохраняется в текущем рисунке. 5 — генерирование квадратичной B-сплайновой кривой, 6 — генерирование кубической B-сплайновой кривой (начальное значение)
752
Приложение В
Системная переменная SSFOUND
Значение Строка
SSLOCATE
Целое число
SSMAUTOOPEN
Целое число
SSMPOLLTIME
Целое число
SSMSHEETSTATUS
Целое число
SSMSTATE
Целое число
SURFTAB1
Целое число
SUTFTAB2
Целое число
Описание Переменная SSMFOUND определяет путь и файловое имя набора листов (появилась в AutoCAD 2005). Ее начальное значение — “ “ Переменная SSMLOCATE определяет состояние файлов набора листов при открытии рисунка, ассоциированного с набором листов, (появилась в AutoCAD 2005). 0 — не открываются, 1 — открываются автоматически (начальное значение) Переменная SSMAUTOOPEN определяет, будет ли запускаться диспетчер Sheet Set Manager при открытии рисунка, ассоциированного с набором листов (SSLOCATE = 1). Эта переменная появилась в AutoCAD 2005. Ее начальное значение — 1 Переменная SSMPOLLTIME определяет длительность временного интервала между автоматическими обновлениями строки состояния в наборах листов (появилась в AutoCAD 2006). Значения этой переменной могут изменяться в диапазоне от 20 до 600 секунд (SSMSHEETSTATUS = 2). Ее начальное значение — 60 Переменная SSMSHEETSTATUS определяет режим обновления строки состояния в наборах листов (появилась в AutoCAD 2006). 0 — автоматическое обновление отключено, 1 — обновляется при загрузке или обновлении набора листов, 2 — обновляется при загрузке или обновлении набора листов, а также через заданные промежутки времени, определенные переменной SSMPOLLTIME (начальное значение) Переменная SSMSTATE сообщает, активен ли диспетчер Sheet Set Manager (появилась в AutoCAD 2005). Эта переменная имеет атрибут “только для чтения”. Ее начальное значение — 0 Переменная SURFTAB1 определяет число поверхностей соединения, создаваемых по определяющей кривой командами TABSURF и RULESURF. Эта переменная также определяет плотность сети в направлении М для команд REVSURF и EDGESURF. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 6. В том случае, если в качестве определяющей кривой используется отрезок, дуга, окружность, сглаженная сплайновая полилиния или эллипс, определяющая кривая делится на сегменты, число которых соответствует значению переменной SURFTAB1. Кроме этого, если определяющая кривая является полилинией (не сглаженной сплайном), линии табуляции генерируются в конце сегментов данной полилинии. Дуговые сегменты также делятся на отрезки, число которых соответствует значению переменной SURFTAB1 Переменная SURFTAB2 определяет плотность сети в направлении N для команд REVSURF и EDGESURF. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 6
Системные переменные AutoCAD Системная переменная SURFTYPE
Значение Целое число
SURFU
Целое число
SURFV
Целое число
SYSCODEPAGE
Строка
TABLEINDICATOR
Целое число
TABMODE
Целое число
TARGET
Трехмерная точка
TBCUSTOMIZE
Целое число
TDCREATE
Вещественное число
TDINDWG
Вещественное число
TDUCREATE
Вещественное число
TDUPDATE
Вещественное число
753
Описание Переменная SURFTYPE определяет тип поверхности сглаживания, которая используется опцией Smooth команды PEDIT. Значение этой переменной сохраняется в текущем рисунке. 5 — квадратичная B-сплайновая поверхность, 6 — кубическая B-сплайновая поверхность (начальное значение), 8 — поверхность Безье Переменная SURFU определяет плотность многогранных сетей в направлении М. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 6 Переменная SURFV определяет плотность многогранных сетей в направлении N. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 6 Переменная SYSCODEPAGE содержит системную кодовую таблицу, заданную в файле acad.xmx. Эта переменная имеет атрибут “только для чтения”. Значение переменной сохраняется в текущем рисунке Переменная TABLEINDICATOR определяет режим отображения буквенных обозначений столбцов и номеров строк во время редактирования таблицы (появилась в AutoCAD 2006). Ее начальное значение — 1 Переменная TABMODE используется для управления режимом Tablet (Планшет). 0 — режим Tablet заблокирован (начальное значение), 1 — режим Tablet разблокирован Переменная TARGET определяет положение цели в координатах ПСК на текущем видовом экране. Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения” Переменная TBCUSTOMIZE определяет возможность настройки панелей инструментов и других элементов пользовательского интерфейса (появилась в AutoCAD 2005). Ее начальное значение — 1 Переменная TDCREATE содержит дату и время (местное) создания текущего рисунка. Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения” Переменная TDINDWG содержит общее время редактирования. Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения” Переменная TDUCREATE содержит дату и время (всемирное) создания текущего рисунка. Значение переменной сохраняется в текущем рисунке. Эта переменная имеет атрибут “только для чтения” Переменная TDUPDATE содержит дату и время (местное) последнего сохранения или модификации рисунка. Эта переменная имеет атрибут “только для чтения”. Значение переменной сохраняется в текущем рисунке
754
Приложение В
Системная переменная TDUSRTIMER
Значение Вещественное число
TDUUPDATE
Вещественное число
TEMPPREFIX
Строка
TEXTEVAL
Целое число
TEXTFILL
Целое число
TEXTQLTY
Вещественное число
TEXTSIZE
Вещественное число
TEXTSTYLE
Строка
THICKNESS
Вещественное число
Описание Переменная TDUSRTIMER содержит пользовательский счетчик использованного времени. Эта переменная имеет атрибут “только для чтения”. Значение переменной сохраняется в текущем рисунке Переменная TDUUPDATE содержит дату и время (всемирное) последнего сохранения или модификации рисунка. Эта переменная имеет атрибут “только для чтения”. Значение переменной сохраняется в текущем рисунке Переменная TEMPPREFIX содержит имя каталога, используемого для хранения временных файлов. Сюда также включен разделитель путей. Эта переменная имеет атрибут “только для чтения” Переменная TEXTEVAL определяет режим обработки текстовых выражений. 0 — все ответы, возвращаемые при запросе текстовых строк и атрибутов, считаются литеральными константами (начальное значение), 1 — в том случае, если текстовая строка начинается символом “(” или “!”, она обрабатывается как выражение AutoLISP. Значение переменной TEXTEVAL не влияет на выполнение команды TEXT. Команда TEXT воспринимает все введенные данные в качестве литералов Переменная TEXTFILL определяет режим заливки текста, выполненного шрифтами True Туре, при печати, экспорте и тонировании. Значение этой переменной сохраняется в системном реестре. 0 — текстовые фрагменты отображаются в виде контуров, 1 — текст отображается в виде заполненного изображения (начальное значение) Переменная TEXTQLTY определяет качество начертания шрифтов True Type, Bitstream и Abode Type 1 при выводе текстов на печать, экспорте и тонировании. Чем выше значение этой переменной, тем выше качество начертания и ниже скорость отображения и печати. С другой стороны, чем ниже значение этой переменной, тем ниже качество начертания и выше скорость отображения и печати текста. Эта переменная сохраняется в текущем рисунке и может принимать значения в диапазоне от 0 до 100.0. Ее начальное значение — 50 Переменная TEXTSIZE определяет высоту букв, предлагаемую по умолчанию для нового однострочного текста. Но это возможно только в том случае, если текстовый стиль имеет нефиксированную высоту букв. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.2000 Переменная TEXTSTYLE содержит имя текущего текстового стиля. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — “STANDARD” Переменная THICKNESS определяет текущую трехмерную высоту. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0000
Системные переменные AutoCAD Системная переменная TILEMODE
Значение Целое число
TOOLTIPS
Целое число
TOOLTIPMERGE
Целое число
TRACEWID
Вещественное число
TRACKPATH
Целое число
TREEDEPTH
Целое число
755
Описание Переменная TILEMODE определяет способ ввода данных в пространство листа и режим функционирования видовых экранов AutoCAD. Значение этой переменной сохраняется в текущем рисунке. 0 — доступ к пространству листа и объектам видового экрана разрешен. Очистка графического экрана и вывод запроса на определение видовых экранов с помощью команды MVIEW, 1 (начальное значение) — включение режима совместимости с версией AutoCAD 10. Автоматический переход в режим мозаичного видового экрана (Tiled Viewport) и восстановление предыдущей конфигурации активного видового экрана. Объекты видового экрана в пространстве листа не отображаются. Команды MSPACE, PSPACE, VPLAYER и MVIEW заблокированы Переменная TOOLTIPS используется для управления выводом всплывающих подсказок. 0 — вывод всплывающих подсказок выключен, 1 — вывод всплывающих подсказок разрешен (начальное значение) Переменная TOOLTIPMERGE определяет режим объединения всплывающих подсказок во время динамического отображения (появилась в AutoCAD 2006). Ее начальное значение — 0 Переменная TRACEWID определяет ширину полосы, задаваемую по умолчанию. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 0.0500 Переменная TRACKPATH используется для управления показом пунктирных линий при полярном и объектном отслеживании. Значение этой переменной сохраняется в системном реестре. 0 — полноэкранное отображение линии объектного отслеживания (начальное значение), 1 — отображение линии объектного отслеживания только от заданной точки до точки расположения курсора, 2 — линия полярного отслеживания не отображается, 3 — линия полярного или объектного отслеживания не отображается Переменная TREEDEPTH определяет максимальную глубину ветвления пространственного индекса. Значение этой переменной сохраняется в текущем рисунке. Ее начальное значение — 3020. Значение 0 — пространственный индекс полностью подавлен. В этом случае объекты обрабатываются в том порядке, в каком они расположены в базе данных, поэтому значение переменной SORTENTS можно не определять, >0 — переменная TREEDEPTH разблокирована. Можно ввести целое число, содержащее до четырех знаков. Две первые цифры указывают на глубину ветвления пространства модели, а две вторые цифры — на глубину ветвления пространства листа.