Николай Полещук
AutoCAD _ 2ОО4 разработка
приложений и адаптация
ее
Николай Полещук
разработка приложений и адаптация
Санкт-Петербург «БХВ-Петербург> 2004
Содержание Проекты и FAS-приложения VL Х-приложения Выполнение команд AutoCAD из программы пользователя Программа рисования штампа чертежа Оформление функций пользователя Б пиле новых команд AutoCAD Работа с примитивами Доступ к табличным данным и неграфлческим объектам Расширенные данные Команды работы с расширенными данными Другие способы хранения данных ActiveX Функции, реализующие ActiveX Новые типы данных Реакторы Применение СОМ Построение таблицы спецификации с импортом данных из файла Excel 2002 Анализ методов и свойств приложения Excel Тестовый файл книги Excel Тексты программ Анализ программ Экспорт данных в таблицу Excel 2002 Текст программы Анализ программы Интеграция приложений Дополнительные средства меню Express
236 239 245 247 250 251 252 254 257 257 259 259 260 261 263 264 264 266 268 274 277 277 280 2S2 282
Глава 3. ObjectARX
284
Структура пакета Настройка проекта в среде VisuaJ Studio .NET Создание проекта Параметры компилятора Параметры компоновщика Пример программы Использование проектов приложений, написанных для предыдущей версии ObjectARX Мастер ObjectARX Панель ObjecrARXAddln Виды ARX-приложений, создаваемых с помощью Мастера ObjectARX Создание команд и функций Загрузка и выгрузка ARX-приложений Библиотеки Стандартные примеры Об использовании языка С#
285 285 286 ,289 29 J 293
Глава 4. VBA
312
Выполнение отдельных выражений VBA Поддержка ActiveX
312 314
296 297 297 298 302 309 309 3JO 311
Содержание Среда VBA Меню Панели инструментов Проекты и их элементы Макросы Модули и процедуры Формы Типы данных Обычные типы Массивы Специальные типы Область действия Константы Создание формы Элементы управления Отображение диалогового окна Пример приложения Модуль программного кода Добавление программного кола работы с формой Защита приложения Автоматическая загрузка приложений
314 315 316 317 318 319 319 322 322 323 323 324 324 324 325 326 326 326 329 331 334
Глава 5. Delphi
335
Об использовании Delphi при работе с AutoCAD Общие замечания Когда можно использовать Delphi для работы с AutoCAD? Когда не нужно использовать Delphi? Применение OLE-контейнера "Слепой" доступ к AutoCAD Использование библиотеки типов Пошаговая инструкция для использования библиотеки типов Использование метода SendCommand Разработка приложения-сервера Пошаговая инструкция Тестирование СОМ-сервера Подключение СОМ-сервера к LISP Итоги Пример сочетания технологий Delphi, AutoCAD и XML Резюме
335 336 336 337 -337 ЗЗН 340 341 347 349 349 361 363 366 366 3*I
ЧАСТЬ Ц. АДАПТАЦИЯ AUTOCAD
373
Глава 6. Меню
375
Файлы меню Базовое меню.... Фрагментное меню Разделы меню
375 376 377 379
Содержание Падающие меню Добавление заголовка в строку меню Удаление заголовка из строки меню Панели инструментов Редактирование панелей Создание новой панели Контекстные меню Схема работы контекстных меню Экранное меню Активация экранного меню Уровни Средства смены меню... Использование комбинации "Н Графические меню Кнопочные меню Планшетные меню Структура заголовков и пунктов меню Структура заголовка Сгруктура пункта меню , Элемент Control Средства редактирования файла acad.mns Раздел ACCELERATORS Раздел HELPSTRINGS MNL-файл Язык DIESEL Для программиста Функция menugroup Функция menucmd . Средства ActiveX Глава 7. Диалоговые окна Язык DCL Директивы Директива описания диалога Элементы диалога Типы элементов Элементы с кнопкой выхода Атрибуты элементов Открытие и закрытие диалоговых окон Функция loati^dialog Функция unload_dialag Функция new dialog Функция $iart_dialog функция t!one_dialog Функция ierm_dialog Пример вызова диалогового окна Функции, работающие с элементами диалога Функция actionjile Функция modejile
380 380 -.381 382 384 389 391 391 393 393 394 398 398 399 400 400 401 401 402 404 405 406 408 409 409 411 411 411 413 414 414 415 418 422 422 423 424 427 427 428 428 429 429 430 430 431 431 433
Содержание Функция setjile Функция gef_tile Функция ger_aitr. Функция client_data_tile Переменные действия Функции, работающие со списками Функция siartjist Функция addjist Функция endjist Функции, работающие с графическими элементами Функция srartjmage Функция endjmage Функция fi!I_image Функция slide^image Функция veclorjmage Функция dimxjile Функция dimy_tile Дополнительные приемы программирования диалоговых окон Временный выход из диалогового окна Вложенные диалоговые окна Применение паролей
433 438 439 439 439 441 44! 442 442 442 442 443 443 444 444 445 445 446 446 448 450
Глава 8. Пользовательские формы, шрифты, штриховки и типы линий
451
Формы Описание формы Компиляция формы Команда MKSHAPE Встаека формы Удаление загруженных форм Дополнительные средства работы с формами в Express Tools Для программиста Шрифты-Штрихоики Типы линий Описание простого типа линии Описание сложного типа линии Команда MKLTYPE
451 451 454 454 454 455 456 456 457 458 459 460 460 462
Глава 9. Настройка системы
463
Настройка путей доступа Пути доступа К вспомогательным файлам Пути поиска рабочих файлов поддержки Пути доступа К драйверам устройств Пути доступа к файлам проектон Адрес начаньной страницы, имена файлов конфигурации, меню, справочной системы, сервера лицензий Имена файлов редактора, словаря и шрифтов Имена файла печати, программы фоновой печати и раздела пролога
464 465 466 466 -466 -466 467 468
S
Содержание Пути к файлам поддержки печати
469
Путь поиска приложений ObjectARX
469
Папка для файла автосохранения Палки для альбомов цветов Пути к файлам источников данных Параметры шаблона нового рисунка Папки с файлами инстру ментальны ч палитр Расположение файла журнала Папка для временных файлов Папка для временных файлов внешних ссылок
469 469 470 470 470 471 471 471
Папка для поиска текстур Папка для связанных файлов Настройка экрана Элементы окна
471 471 472 472
Элементы вкладок листов
476
Экранное разрешение Производительность отображения
479 480
Размер перекрестия Затенение при редактировании вхождений внешних ссылок и блоков
Настройка открытия и сохранения
Сохранение файлов Меры предосторожности при сохранении Открытие файлов Работа с внешними ссылками Работа с ARX-приложения ми
Настройка печати Параметры печати для новых рисунков по умолчанию Общие параметры печати
48! 481
482
,
482 483 485 485 485
487 487 488
Стили печати по умолчанию для новых рисунков Настройка общесистемных характеристик Текущая система трехмерной графики Текущее устройство указания Регенерация вкладок Параметры подключения к базам данных Общие параметры
489 490 490 493 493 493 494
Дополнительные настройки пользователя Соответствие стандартам Windows Двойной щелчок Масштаб при перетаскивании Отображение значков гиперссылок Ввод координат Способы сортировки объектов.
495 495 497 497 498 498 498
Ассоциативные размеры Параметры невидимых линий и отображения весов
Настройка привязки и отслеживания Параметры автопривязки Размер маркера автопривязки Параметры автоотслеживания
499 499
500 .500 502 502
Содержание Векторы отслеживания Размер прицела автопривязки Настройка режимов выбора Размер прицела выбора Режимы выбора Размер ручек Режим использования и цвет ручек Настройка профилей Настройка меню Express Настройка строки состояния
502 502 503 503 503 504 504 505 507 507
Глава 10. Планшет
511
Планшетные меню Настройка планшета Калибровка планшета Кнопочные меню Для программиста
511 513 515 515 515
Глава П. Коллективная работа
516
Команда MEETNOW (ДОСТУП) Передача файлов проекта Диспетчер ссылок Команда PUBLISH (ПУБЛ) Пароль и цифровая подпись Работа с Интернетом Просмотр Web-страниц Публикация в Интернете Команда SETIDROPHANDLER (ТЗАГРТИП) Операции С адресами Интернета Доступ к сайтам фирмы Autodesk Служба Communication Center
516 516 520 521 523 530 530 530 538 539 540 541
Глава 12. Работа с базами данных и электронными таблицами
544
Доступ к БД Диспетчер подключения к БД Меню dbConnecl (Базы данных) Перечень команд работы с БД Для программиста Создание UDL-файла Microsoft Access Использование ODBC Создание в операционной системе источника данных для ODBC Обход ODBC Microsoft Excel Подключение Просмотр и редактирование таблиц БД Управление просмотром таблицы Контекстные меню...
544 545 547 550 552 552 554 554 560 560 561 562 562 564 566
JO
Содержание Управление печатью
573
Форматирование Редактирование таблицы Меню Data View (Просмотр данных) Связывание объектов чертежа с записями базы
-
Шаблон связи Создание связи Просмотр связей
573 574 576 578
....578 .,
580 582
Параметры просмотра связей Редактирование и удаление связен Управление связями Ярлыки Шаблон ярлыка
584 586 590 595 595
Создание ярлыка Управление ярлыками SQL-запросы
598 598 599
Создание запроса Простой запрос Запрос по интервалу Формирователь Составление запросов на языке SQL
599 601 603 603 605
Выполнение запроса
606
Редактирование и удаление запросов
607
Запрос по шаблону связи Выбор по связи
607 607
Файлы запросов Ограничения драйверов OLE DB
,.
611 612
Другие способы работы с базами данных и электронными таблицами
612
Послесловие
613
Предметный указатель
614
Предисловие Эта книга предназначена в первую очередь для тех, кто уже давно работает в системе AutoCAD и хочет расширить свои знания, изучая тонкости системы и знакомясь с такими элементами программирования, как Visual LISP, VBA, Visual Studio .NET, ActiveX, COM, DCL, DIESEL. Данная книга выпускается издательством "БХВ-Петербург" в серии "В подлиннике" и является третьей из книг этой серии, посвященных системе AutoCAD фирмы Autodesk (США). Предыдущими книгами были "AutoCAD 2002" и "AutoCAD 2004" (последняя вышла совсем недавно и в этой книге много ссылок на ее главы). Настоящее издание по сути является продолжением книги "AutoCAD 2004", Книга может служить справочным пособием для тех, кто хочет лучше разобраться во взаимоотношениях различных компонентов системы и почувствовать, какие дополнительные инструменты и настройки можно добавить самому. • В этом издании, для того чтобы читателю легче было увидеть отличия системы AutoCAD 2004 от AutoCAD 2002, абзацы, содержащие сведения о новшествах и изменениях, оформлены в виде врезок, аналогично данному абзацу. Книга разделена на две части и 12 глав. Часть ! посвящена большой и сложной проблеме - разработке приложений, функционирующих под управлением системы AutoCAD. Даются подробные сведения об объектной модели AutoCAD и средах программирования на трех основных языках: LISP, Basic и C++. Здесь же приводится информация о применении нетрадиционного средства разработки — языка Pascal (в среде Delphi). В части II разбираются вопросы настройки и адаптации таких элементов системы AutoCAD, как меню, панели инструментов, формы, шрифты, стили л и н и й , штриховки. Описывается процесс настройки и калибровки планшета (дигитайзера). Рассматриваются также проблемы взаимодействия
J2
__^
Предисловие
групп пользователей, заказчиков и исполнителей и возможности работы с Интернетом (в том числе публикации па сайтах). В тексте используются следующие обозначения: П имена английских и русских команд даются в верхнем регистре, например: CONVERTPOLY (ПОЛКОНВЕРТ); П имена системных переменных приводятся в верхнем регистре, например: PEDITACCEPT; П типы примитивов представлены в верхнем регистре, например: WIPEOUT: П названия диалоговых окон, опций команд выделены полужирным шрифтом, их русские аналоги — обычным шрифтом, например: Value (Значение): П наименования режимов рисования выделяются полужирным шрифтом в верхнем регистре (русские аналоги — без полужирного выделения), например: POLAR (ОТС-ПОЛЯР); О определяемые термины и ссылки на другие главы и разделы выделены курсивом, например: объект, метод; П сообщения системы на английском языке приводятся в строку полужирным курсивом, русский текст — курсивом. Автор выражает благодарность Сергею Александровичу Зуеву (г. Курган) за предоставление материалов главы 5 об использовании Delphi.
часть I Разработка приложений Глава 1.
Средства разработки приложений и объектная модель
Глава 2.
Visual LISP
Глава 3.
ObjectARX
Глава 4.
VBA
Глава 5.
Delphi
ГЛАВА 1
Средства разработки приложений и объектная модель Система AutoCAD предоставляет программистам и опытным пользователям обширные возможности создавать свои приложения и строить на базе графического процессора новые системы автоматизированного проектирования. Примерами таких систем могут служить специализированные пакеты, разработанные самой фирмой Autodesk (Mechanical Desktop, Architectural Desktop, Land Development Desktop и т. д.).
Обзор средств программирования Вместе с системой AutoCAD поставляются среда разработки на языке LISP (Visual LISP) и среда разработки на языке Basic (VBA, или Visual Basic for Applications). В главе 2 разбираются вопросы программирования на языке LISP в среде Visual LISP, а также проблемы создания FAS- и VLX-приложеиий. Кроме того, дополнительную информацию вы можете найти в следующих книгах: Полещук Н. Н. "Visual LISP и секреты адаптации AutoCAD" 1 , Полещук Н. Н. "AutoCAD Developer's Guide to Visual LISP"^ Отдельно от системы AutoCAD распространяется пакет ObjectARX 2004, который содержит необходимые описания и библиотеки для программирования на языке C++ (при этом требуется среда Microsoft Visual С версии 7.0). Пакет ObjectARX 2004 или его предыдущие версии любой пользователь может получить бесплатно, зайдя на сайт www.autodesk.com/objectarx/ и заполнив специальную анкету. По предлагаемому лицензионному соглашению вы имеете право установить данный пакет бесплатно на одном компьютере. 1
Полещук Н. Н. Visual LISP И секреты адаптации AutoCAD. — СПб.: БХВ-Петербург, 2001.
2
Polcshchuk N. N. AutoCAD Developer's Guide to Visual LISP. - Wayne: A-L1ST. 2001.
16
Часть I. Разработка приложений
В главе 3 настоящей книги рассмотрены основы разработки приложений с применением ObjectARX (они называются ARX-приложениями), в том числе специальный инструмент — мастер ARX-приложений (ObjectARX Wizard). В главе 4 изучаются основы применения в среде AutoCAD языка Basic (VBA) и создания DVB-приложении. Из нетрадиционных средств программирования в AutoCAD стоит упомянуть язык Java (проект AJaX). Система создания приложений с помощью Java разработана Берндом Фиксом и находится в стадии апробации. В качестве связки используется ObjectARX. В главе 5, материал для которой подготовил Зуев Сергей Александрович, инженер-строитель из г. Кургана, рассмотрены проблемы использования Delphi для разработки приложений, функционирующих в среде AutoCAD. Поскольку для приложений, написанных на Visual LISP, и для ADSприложений (это приложения, написанные на языке С, но для ранних версий системы AutoCAD, до появления ObjectARX), можно создавать специальные файлы диалоговых окон (DCL-файлы), в главе /рассмотрен используемый в них язык DCL. Появились разработки, позволяющие автоматизировать процессы написания DCL-файлов. Отметим здесь пакет ObjectDCL канадской фирмы 3rd Day Software. Сайт фирмы находится по адресу www.objectdcl.com. С этого сайта вы можете загрузить 30-дневную версию ObjectDCL. Пользователь может применять традиционные или нетрадиционные средства для разработки своих приложений, однако в любом случае ему придется изучить язык Visual LISP (не обязательно полностью), поскольку в командной строке и в меню системы AutoCAD допускаются только команды с опциями и выражения на языке LISP (они должны начинаться и заканчиваться круглыми скобками). Кроме того, все приложения программно могут быть загружены только с помощью LISP-выражений. Таким образом, каждый, кто приступает к программированию в среде AutoCAD, должен хотя бы какое-то время уделить изучению Visual LISP. Этот язык, как показывает практика, легко осваивают и непрограммисты.
Объектная модель AutoCAD Система AutoCAD разработана с учетом концепции СОМ (СОМ — Component Object Model, модель компонентных объектов) фирмы Microsoft, что позволяет обращаться к объектам AutoCAD из других систем и их приложений и, наоборот, к объектам других систем из системы AutoCAD (см. примеры в разд. "Применение СОМ" е главе 2). СОМ — это спецификация метода создания компонентов, из которых можно строить приложения. Благодаря СОМ система AutoCAD поддерживает технологию ActiveX (точнее. ActiveX Automation), которая реализует идеологию объектно-ориентирован-
Глава 1. Средства разработки приложений и объектная модель
17
ного программирования и позволяет оперировать не байтами, числами, а объектами прикладной среды и работать с ними на языке, подобном языку обычных манипуляций. В технологии ActiveX объектная модель работающего приложения представляется как совокупность объектов, свойств, методов и событий. Для каждого из элементов этой модели имеется своя реализация в виде данных специальных типов (структур) и операций, обеспечивающих взаимодействие с пользователем.
Объекты и семейства Объекты (objects) ActiveX в системе AutoCAD рассматриваются как иерархия, содержащая не только примитивы, но и прочие элементы (таблицы, словари и т. д.). Однотипные объекты объединяются в семейства (collections). Приводимые далее наименования элементов иерархии используются в системах программирования. Корневым элементом такой иерархии является объект Application (или AcadApplication), остальные находятся на более низких уровнях. Application является родительским объектом для объектов preferences (настройки) и VBE (среда разработки приложений на VBA, которая тоже оформлена как объект), а также следующих семейств: О Documents (документы); "3 мепиБэг (строка меню); О MenuGroups (группы меню). Объект Preferences, в свою очередь, является родительским для объектов различных видов настроек системы AutoCAD. Семейство Documents включает объекты типа Document — открытые документы (рисунки). В семейство MenuGroups входят объекты типа MenuGroup (группа меню), а в семейство Мепиваг — объекты типа РорирМегш (падающие и контекстные меню). Эта иерархия раскрывается дальше. Объект MenuGroup содержит семейства PopupMenus (падающие и контекстные меню) и Toolbars (панели инструментов). Затем следуют цепочки: 3 PopupMenus — РорирМегш (падающее или контекстное PopupMenuitem (пункт падающего или контекстного меню);
меню) —
П Toolbars — Toolbar (панель инструментов) -- Toolbaritem (пункт, или кнопка панели). Самым сложным и интересным является объект Document. Он включает в себя такие семейства:
18
Часть I. Разработка приложений
D Blocks (блоки); 3 Modeispace (пространство модели); П PaperSpace (пространство листа); П Dictionaries(словари); П Dimstyies (размерные стили); О Groups (группы); О Layers (СЛОИ): О Layours (листы); П Linetypes (типы ЛИНИЙ); П pickfirstseiectionset (набор предварительно выбранных объектов); L) plot configurations (конфигурации печати); 3 Registeredfipplications (зарегистрированные приложения); П seiectionSets (наборы выбора); П Textstyies (текстовые стили); П ucss (пользовательские системы координат); П views (виды); П viewports (видовые экраны). Кроме того, объект Document порождает такие объекты: DatabasePreferences (настройки рисунка), Plot (печать), utility (утилита), Summaryinfo (авторские свойства рисунка, недокументированный объект). В семейства Blocks, Modeispace и PaperSpace входят объекты, которые соответствуют графическим примитивам. В табл. 1.1 приведен перечень объектов и семейств. • Новые объекты и Семейства: AcCmColor, FileDependency, FileDependencies, Summarylnfo. АннуПИрОВаННЫЙ Объект: XMLDatabase.
Таблица 1.1. Объекты и семейства Имя объекта
Описание
SDFace SDPolyline 3DSolid
ЗМ-грань ЗМ-полмлиния Тело
AcadState
Состояние системы AutoCAD как приложения
Глава 1, Средства разработки приложений и обьектная модель
10
Таблица 1.1 (продолжение) Имя объекта
Описание
ftcCmColor
Точный цвет
Application
Приложение
fire
Дуга
Attribute
Описание атрибута
f\t t r ibut eRe f e rence
Атрибут
Block
Описание блока
BlockRef
Блок (вхождение блока]
Blocks
Блоки (семейство)
Body
Лекальная поверхность (напрямую в системе AutoCAD не создается)
Circle
Круг
Database
Графическая база внешней ссылки
Database Preferences
Настройки рисунка
Dictionaries
Словари(семейство)
Dictionary
Словарь
Dim3FointAngular
Угловой размер по трем точкам
DimAligned
Выровненный размер Угловой размер
DimDiametric
Диаметральный размер
DimOrdinate
Ординатный размер
DimRadial
Радиальный размер
DimRotated
Повернутый размер
DimStyle
Размерный стиль
DimStyles
Размерные стили (семейство)
Document
Документ(рисунок)
Documents
Документы (семейство)
Ellipse
Эллипс
Ex t e r na 1 Re f e rence
Внешняя ссылка
FileDependency
Элемент из списка файлов зависимостей
-.
Часть I. Разработка приложений Таблица 1.1 (продолжение)
Имя обьекта
Описание
FileDeper.deiicies
Файлы, от которых зависит рисунок (семейство)
Group
Группа
Groups
Группы (семейство]
Hatch
Штриховка
Hyperlink
Гиперссылка
Hyperlinks
Гиперссылки (семейство)
IDPair
Специальный объект метода CopyObjects
Layer
Слой
Layers
Слои (семейство)
LayerStateManager
Диспетчер свойств слоев
Layout
Вкладка
Layouts
Вкладки (семейство)
Leader
Выноска
Lightweight Polу1ine
Компактная двумерная полилиния
Line
Отрезок
Linetype
Тип линий
Linetypes
Типы линий (семейство)
MenuBar
Строка меню (семейство)
MenuGroup
Группа меню
MemjGcoups
Группы меню (семейство)
MinsertBlock
Массив блоков
Mline
Мультилиния
ModelSpace
Пространство модели (семейство)
Mtext
Мультитекст
31eFrame
Контейнер OLE-объекта
Ole2Frame
Контейнер OLE-объекта
PaperSpace
Пространство листа (семейство)
Plot
Набор свойств печати листа
PlotConfiguration
Настройка печати
P1 ot Con f i gu rat ions
Настройки печати (семейство)
Глава 1. Средства разработки приложений и объектная модель
21
Таблица 1.1 (продолжение) Имя объекта
Описание
Point
Точка
PolyfaceMes-b
Многогранная сеть (сеть из полиграней)
PolygonMesh
Полигональная сеть
Polyline
Подробная двумерная полилиния
PopupMenu
Падающее или контекстное меню
PopupMe n u. 11 em
Пункт падающего или контекстного меню
PopupMenus
Падающие и контекстные меню (семейство)
Preferences
Настройки системы AutoCAD
PreferencesDisplay
Экранные настройки
PreferencesDrafting
Настройки рисования
PreferencesFiles
Файловые настройки
PreferencesOpenSave
Настройки открытий и сохранения
P r e fe rence s Output
Настройки вывода
PreferencesProfiles
Настройки профилей
PreferencesSelection
Настройки выбора
PreferencesSystem
Системные настройки
PreferencesUser
Пользовательские настройки
ProxyEntity
Объект-заместитель
PViewport
Видовой экран пространства листа
Raster
Растровое изображение
Ray
Луч
Region
Область
RegisteredApplication
Зарегистрированное приложение
RegisteredApplications
Зарегистрированные приложения (семейство]
SecurityParams
Настройки безопасности
SelectionSet
Набор выбора
SelectionSetS
Наборы (семейство)
Shape
Форма
Solid
Фигура
Spline
Сплайн
22
Часть !, Разработка приложений Таблица 1.1 (окончание)
Имя объекта Sunmarylnf о
Описание Свойства рисунка (автор, заголовок и т. п.)
Text
Текст(однострочный]
TextStyle
Текстовый стиль
Textstyles
Текстовые стили (семейство)
Tolerance
Допуск
Toolbar
Панель инструментов
Toolbarltem
Элемент панели инструментов
Toolbars Trace
UCS
ucss
Панели инструментов (семейство) Полоса
ПСК
Семейство ПСК
Utility
Утилита
VBE
Среда программирования VBA (приложение)
View
Вид
Viewport
Видовой экран
Viewports
Видовые экраны (семейство)
Views
Виды (семейство)
XLine
Прямая
XRecord
Х-запись
Работа с объектами в технологии ActiveX, как правило, ведется на уровне указателей (адресов), которые указывают на начало структур данных этих объектов. Для реализации технологии в модели предусмотрены специальные компоненты, называемые интерфейсами: П _DAcadApplicationEvents — интерфейс событий для приложения AutoCAD; П _DftcadDocumentEvents — интерфейс событий для документа AutoCAD: О lAcadDatabase — интерфейс резидентных объектов графической базы документа AutoCAD; П lAcadDimer.sion — интерфейс размерных объектов AutoCAD; О lAcadEntity — интерфейс примитивов AutoCAD;
Глава Т. Средства разработки приложений и объектная модель
23
П iflcadObject — интерфейс примитивов AutoCAD; П lAcadObjectEverits — Интерфейс Событий примитивов AutoCAD. В ObjcctARX и VBA пользователь может создавать свои объекты.
Свойства Каждый объект в иерархии, используемой технологией ActiveX, имеет свои свойства (properties), которые можно читать или изменять с помощью соответствующих функций. В табл. 1.2 приведены свойства (в алфавитном порядке) и краткие пояснения к н и м . В эту же таблицу включены дочерние объекты и семейства, поскольку получение их указателей тоже является операцией шачечения свойства. Распределение свойств по объектам и семействам показано в табл. 1,3 и 1.4. • Новые свойства, появившиеся в данной версии: Action, AffectsGraphics, Algorithm, Author, Blue, BookName, ColorBookPath, Colorlndex, ColorMethod, ColorName, Comment, Comments, Er.tityColcr, Feature, FileName, FileSize, FingerprintGUID, FoundPath, FullFileName, GradientAngle, GradientCentered. GradieritColorl, GradientColor2, GradientName, Green, HatchObjectType, HyperlinkBase, Issuer, KeyLength, Keywords, LastSavedBy, Password, Red, ReferenceCoont, RevisionNumber, SCMTimeMode, SCNTimeValue, SerialHurnber, StiadePlot, Subject, TimeServer, TiraeStamp, Title, ToolPalettePath, TrueColor. Аннулированные СВОЙСТВа: LicenseServer, ObjectfiRXPath, RemoveHiddenLines.
Таблица 1.2. Перечень свойств Свойство
Описание
Action
Операции, которые должны выполняться над рисунком в соответствии с его параметрами безопасности (шифрование, электронная подпись)
Active
Признак того, что документ является активным (текущим)
ftctiveDimStyle
Текущий
размерный
стиль
ActiveDocument
Активный (текущий) документ
ActiveLayer
Текущий слой
ActiveLayout
Активная вкладка (лист)
ActiveLinetype
Текущий тип линии
Часть I. Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
ActiveProfile
Текущий профиль
Ac tIvePViewport
Активный видовой экран в листе
ftctiveSelectionSet
Указатель текущего набора выбора
ActiveSpace
Текущее пространство (модели или листа)
ActiveTextStyle
Текущий текстовый стиль
ActiveUCS
Текущая система координат (ПСК)
ActiveViewport
Активный видовой экран пространства модели
ADCInsertUnitsDefaultSource
Единицы измерения, которые используются при вставке объектов с помощью DesignCenter (Центра управления), когда в исходном рисунке единицы дли вставки не заданы
ADCInsertOnitsDefaultTarget
Единицы измерения, которые используются при вставке объектов с помощью DesignCenter (Центра управления), когда в целевом рисунке единицы для вставки не заданы
AffectsGraphics
Признак влияния на графику
Algorithm
Алгоритм шифрования
Alignment
Тип вертикального и горизонтального выравнивания для текста, атрибута или описания атрибута
A l i granentPointAcquisition
Тип точек при автоматическом выравнивании
AllowLongS ymboINamea
Признак допустимости имен с расширенными наборами символов или длиной более 31 символа
AltFontFile
Местоположение файла альтернативного шрифта, когда система AutoCAD не может обнаружить оригинальный шрифт, а расположение альтернативного шрифта е acad.fmp не задано
A1 tRo und.0 i s t anc e
Тип округления альтернативных единиц
AltSuppressleadingZeros
Признак подавления ведущих нулей в альтернативных размерах
AltSuppressTrailingZeros
Признак подавления хвостовых нулей в альтернативных размерах
Глава 1. Средства разработки приложений и объектная модель Таблица 1.2 (продолжение) Свойство
Описание
flitSuppressZeroFeet
Признак подавления нуля футов в альтернативных размерах
AltSuppressZeroInches
Признак подавления нули дюймов в альтернативных размерах
AltTabletMenuFile
Путь к альтернативному меню при замене стандартного планшетного меню AutoCAD
AltTextPrefix
Префикс для альтернативных единиц всех размеров, кроме угловых
AltTextSuffix
Суффикс для альтернативных единии всех размеров, кроме угловых
SltTolerancePrecision
Точность в значениях допусков альтернативных единиц
AltToIeranceSuppressLeadingZeros
Признак подавления ведущих нулем в допусках альтернативных единиц
AltToleranceSuppressTrailingZeros
Признак подавления хвостовых нулей в допусках альтернативных единиц
AltTOleranceSuppres s Z e roFeet
Признак подавления нуля футов в допусках альтернативных единиц
AltToleranceSuppressZeroInches
Признак подавления нуля дюймов в допусках альтернативных единиц
AltUnits
Признак наличия альтернативных единиц в размерах
AltUnitsFormat
Формат альтернативных единиц для всех размеров, кроме угловых
Al tUnitsPrecision
Количество десятичных знаков а альтернативных единицах
AltUnitsScale
Масштабный множитель для альтернативных единиц
Angle
Угол наклона отрезка
AngleFormat
Формат единиц для угловых размеров
AngleVertex
Вершина угла для углового размера, заданного по трем точкам
Annotation
Указатель обьекта с текстом пояснения для выноски
Application
Указатель обьекта Application
flrcLeiiath
Длина
5
Часть I. Разработка приложений
26
Таблица 1.2 (продолжение) Свойство
Описание
ftrcSmoothness
Параметр управления аппроксимацией при отображении кругов, дуг и эллипсов
Area
Площадь замкнутой фигуры, образуемой дугой, кругом, эллипсом, компактной или подробной полилиниями, областью или замкнутым плоским сплайном
ArrowheadlBlock
Блок, используемый в качестве пользовательской стрелки первого конца размерной линии
Ar rowhead1Туре
Тип стрелки первого конца размерной лиши
Ar r owhe ad2E1осk
Блок, используемый в качестве пользовательской стрелки второго конца размерной пинии
Arrowhead2Type
Тип стрелки второго конца размерной линии
Ar rowiieadB1осk
Блок, используемый в качестве пользовательской стрелки для радиальных размеров и быносок
ArrowheadSize
Величина стрелок в размерах и выносках
Ar rowh e a dT ype
Тип стрелки для радиальных размеров и выносок
AssociativgHatch
Признак ассоциативности штриховки
AttachmentPoint
Тип выравнивания мультитекста
Author
Автор
AutoAudit
Признак необходимости автоматической проверки рисунка после команд импорта DXF- и DXB-файлов
AutoSavelnterval
Интервал времени для автосохранения, мин.
AutoSaveFath
Путь к файлу, который образуется в результате автосохранения
Aut о S n a pApe rture
Признак показа мишени аатопривязки
Аи toSnapApertureSi2е
Размер мишени аатопривдзки
Au to S napMag ne t
Признак включения функции автопривязки
ftutoSnapMarker
Признак маркера автоприаяэки
Глава 1. Средства разработки приложений и объектная модель
27
Таблица 1.2 (продолжение) Свойство
Описание
AutoSnapMarkerColor
Цвет маркера автопривязки
AutoSnapMarkerSize
Размер маркера автопривязки
Аи t О SnapToo1Tip
Признак вывода подсказок автопривязки
AutoTrackingVecColor
Цвет вектора автоотслеживания
AutoTrackTooltip
Признак вывода подсказок автоотслеживания
Backward
Направление генерации текста
BasePoint
Базовая точка луча или прямой
BatchPlotProgress
Признак прерывания печати s пакетном режиме
BeepOnError
Признак подачи звукового сигнала при обнаружении ошибок ввода
BigFontFile
Имя файла большого шрифта, связанного с текстом или атрибутом
Block
Имя блока, связанного с вкладкой
Blocks
Указатель семейства Blocks
Blue
Значение синей компоненты цвета
BookName
Имя альбома цветов
Brightness
Текущее значение яркости для растровых изображений
Canon i с aIMedi aName
Имя формата листа
Caption
Текст, который выводится в заголовок приложения или пункт меню
Center
Центр дуги, круга, эллипса, вида или видовогоэкрана
centerMarkSize
Размер маркера центра для радиального и диаметрального размеров
CenterPlot
Признак центрирования чертежа при печати
CenterType
Тип маркера центра для радиального и диаметрального размеров
Centroid
Центр площади для области или центр масс для тела
Check
Признак установленного флажка слева от наименования пункта раскрывающегося меню
Часть I. Разработка приложений
28
Таблица 1.2 (продолжение) Свойство
Описание
Circumference
Длина окружности
Clipped
Признак наличия подрезки видового экрана
ClippingEnabled
Признак включения контура подрезки
Closed
Признак замкнутости для ЗМ-полилинии, компактной (легкой) или обычной (тяжелом) полилиний, сплайна
Co Юс
Цвет примитива или слоя
ColorBookPath
Путь к файлу альбома цветов
Colorlndex
Номер цвета в полной палитре
ColorMethod
Метод, выбранный для задания цвета
ColorName
Имя цвета
Columns
Число столбцов 8 массиве блоков
Co1umnSpасing
Расстояние между столбцами в массиве блоков
Comment
Комментарий к цифровой подписи
Comments
Комментарии в свойствах рисунка
ConfigFile
Местоположение конфигурационного файла с информацией драйвера оборудования
ConfigName
Имя конфигурации принтера
Constant
Признак постоянности атрибута или описания атрибута
ConstantWidth
Глобальная ширина всех сегментов полилинии
ContourlinesPerSurface
Число образующих линий (изолиний] на лекальной поверхности тела
Contrast
Значение контрастности растрового изображения
ControlPoints
Массив управляющих точек сплайна
Coordinate
Координаты точки (вершины) примитива
Coordinates
Массив координат точек примитива
Count
Количество объектов в семействе, словаре, группе или наборе
CreateBackup
Признак создания копии файла рисунка с расширением bak
Глава i. Средства разработки приложений И объектная модель Таблица 1.2 (продолжение) Свойство
Описание
CursorSize
Размер перекрестия В процентах от размера экрана
CustomDictionary
Имя файла пользовательского словаря, указываемого в настройке системы AutoCAD
CustomScale
Пользовательский масштаб видового экрана
Database
Указатель базы, которой принадлежит обьект
DecimalSeparator
Символ десятичного разделителя в размерах И допусках
DefaultlnternetURL
URL-адрес открываемого по умолчанию сайта в Интернете
DefauItOutputDevice
Устройство печати, назначаемое по умолчанию вкладкам новых листов и вкладке модели
DefaultPlotStyleForLayer
Стиль печати, присваиваемый по умолчанию слою 0 в новом рисунке и слоям рисунков, созданных в рисунках более ранних версий И не сохраненных в формате системы AutoCAD 2000 или более поздней
DefaultPlotStyleForObjects
Текущее знамение стиля печати
De faultPlotStyleTable
Таблица стиля печати, назначаемая новым рисункам
Degree
Порядок полиномиального представления сплайна
Delta
Трехмерная точка с дельта-разностью координат концов отрезка
Г е.-в л dLO a dARXApp
Признак вызова системой AutoCAD другого приложения при обнаружении обьектов или команд этого приложения
Description
Строка с описанием типа линии
Diameter
Диаметр круга
Dictionaries
Указатель семейства Dictionaries
DimensionLineColor
Цвет размерной линии для размера, выноски или допуска
DimensionLineExtend
Расстояние, на которое продлевается размерная линия за выносную линию при использовании засечек
Часть I. Разработка приложений
30
Таблица 1.2 (продолжение) Свойство
Описание
DimensionLineWeight
Вес для размерных линий
DimLinelSuppress
Признак подавления первой размерной линии
DimLirie2 Suppress
Признак подавления второй размерной линии
DimLinelnside
Признак размещения размерных пиний только внутри выносных линий
D imL i ne Suppres s
Признак подавления размерной линии для радиальных размеров
DimStyles
Указатель семейства DimStyles
Direction
Вектор направления взгляда (точки зрения)
DirectionVector
Вектор направления луча, допуска или прямой
Display
Указатель
DisplayGrips
Признак показа ручек
DisplayGripsWIthinBlocks
Признак показа ручек примитивов внутри блоков
D i splayLayoutTabs
Признак показа наименований вкладок модели и листов в графическом экране
DisplayLocked
Признак блокирования видового экрана
DisplayOLEScale
Признак показа диалогового окна масштабирования при вставке OLE-объектов в рисунок
DisplayScreenMenu
Признак показа экранного меню
DisplayScrollBars
Признак показа горизонтальной и вертикальной полос прокрутки графического экрана
Displaysilhouette
Признак показа образующих линий и линий силуэта в режиме каркаса
DockedVisibleLines
Число строк в зоне командных строк
DockStatus
Признак фиксированного или плавающего положения панели
Document
Указатель документа (рисунка], которому при надле житобъект
Documents
Указатель семейства Documents
объекта
PreferencesDisplay
Глава 1. Средства разработки приложений и объектная модель Таблица 1.2 (продолжение) Свойство
Описание
Drafting
Указатель обьекта PreferencesDrafting
DrawingDirection
Признак направления мультитекста (по горизонтали, как обычно, или по вертикали, как для иероглифического письма)
DriversPath
Путь к папке драйверов внешних устройств
Elevation
Значение уровня для штриховку или 2М-ПОЛИЛИНИИ
E1evat ionMode1Spасе
Текущее значение уровня пространства модели
ElevationPaperSpace
Текущее значение уровня пространства листа
Enable
Признак разблокировки пункта меню
EnablestartupDialog
Признак показа окна начала работы при запуске системы AutoCAD или создании нового рисунка
Er.dAngle
Конечный угол дуги окружности или эллипса
EndParameter
Конечное значение параметра для эллипса
EndPoint
Конечная точка дуги, отрезка или эллипса
E ndS ubMe mi Leve1
Указатель последнего пункта подменю
EndTangent
Вектор конечной касательной к сплайну
EntityColor
Цвет а полной палитре
ExtensionLineColor
Цвет выносных линий размера
Ext e ng i onL i neE x t end
Выступ выносной линии за размерную
ExtensionLineOffset
Отступ начала выносной линии от точки указания
..:•:• ~ir.si.cr.
Бес выносных линий
- eWei ::'"
ExtLi nelEndPoint
Конечная точка первой выносной линии
ExtLinelPoint
Точка указания первой выносной линии
ExtLinelStartPoint
Начальная точка первой выносной линии
Ex t Line1Suppress
Признак подавления первой выносной линии
ExtLine2EndPoint
Конечная точка второй выносной линии
ExtLine2Point
Точка указания второй выносной линии
Часгь I, Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
ExtLine2StartPoint
Начальная точка второй выносной линии
ExtLirie2 Suppress
Признак подавления второй выносной линии
Fade
Коэффициент слияния с фоном растрового изображения
Feature
Имя характеристики
FieldLength
Длина поля атрибута
F i1eDependencies
Указатель обьекта FileDependencies
FileName
Имя файла
Files
Указатель обьекта Preferences Files
FileSize
Размер файла
Fiiige r p r i n tGU ID
Глобально уникальный идентификатор (QUID)
Fit
Положение текста и стрелок внутри или снаружи выносных линий, в зависимости от расстояния между выносными линиями
FitPoints
Массив опорных точек сплайна
FitTolerance
Преобразует сплайн по существующим точкам, но с другим допуском
FloatingRows
Число рядов кнопок панели, находящейся з плавающем положении
Flyout
Указатель панели, связанной с групповой кнопкой
FontFile
Полное имя первичного шрифта
FontFileMap
Путь к файлу с указанием замены шрифтов
ForceLinelnside
Признак черчения размерной линии внутри выносных линий, даже когда текст располагается вне их
FoundPath
Альтернативный путь
FractionFormat
Формат дробных величин в размерах и допусках
Freeze
Признак замороженное™ слоя
FullCRCValidatiori
Признак необходимости проверки структуры при чтении обьекта
Глава 1. Средства разработки приложений и объектная модель
33
Таблица 1.2 (продолжение) Свойство
Описание
Full;ileName
Полное имя файла
FullName
Полное имя приложения или документа, с путем
FullScreenTrackingVector
Признак показа векторов отслеживания
GradientAngle
Угол градиента
GradientCentered
Признак центрования градиента
GradientColorl
Первый цвет градиента
GradientColor2
Второй цвет градиента
GradientName
Имя образца градиентной заливки
GraphicsWinLayoutBackgrndColor
Цвет фона вкладок листов
GraphicsWinModelBackgrndColor
Цвет фона вкладки пространства модели
Green
Значение зеленой составляющей цвета
GridOn
Признак показа сетки
GripColorSelected
Цвет выбранных ручек
Gr ipColorUns e1 ected
Цвет невыбранных ручек
GripSiae
Размер ручек
Groups
Указатель семейства Groups
Handle
Метка
HasAttributes
Признак наличия у блока атрибутов
HasExtensionDictionary
Признак наличия у объекта словаря
HatchObjectType
Признак штриховки или заливка
HatchStyle
Стиль штриховки
Height
Высота атрибута, формы, текста, растрового изображения, панели инструментов или окна приложения
HelpFilePath
Путь к файлу справки системы AutoCAD
HelpString
С трока-подсказка для панели или пункта меню (панели)
HistoryLines
Предельное количество строк, сохраняемое в текстовом окне
ttoriz oiita lAlignme tit
Тип горизонтального выравнивания текста, атрибута или описания атрибута
2 Зэк 1311
Часть I. Разработка приложений
34
Таблица 1.2 (продолжение) Свойство
Описание
HorizontalTextPositiori
Тип горизонтального выравнивания для размерного текста
HWND
Метка окна открытого документа (для WindowsAPl)
HyperlinkBase
5аза для относительных гиперссылок
HyperlinkDisplayCursot
Признак показа значка гиперссылки
HyperlinkDisplayTooltip
Признак показа текста гиперссылки (при включенном значке)
Hyperlinks
Указатель семейства Hyperlinks
ImageFile
Полное имя файла вставленного растроаого изображения
Ima ge F rameH ighlight
Признак показа только рамки или всего растрового изображения при выборе как объекта
ImageHeight
Высота растрового изображения
TmageVisibility
Признак видимости всего растрового изображения или только его рамки
ImageWidth
Ширина растрового изображения
Increment a1SaveРе гсеnt
Максимальный процент устаревших данных, при достижении которого необходимо выполнить полное сохранение рисунка
Index
Внутренний номер меню или пункта панели инструментов
InsertionPoint
Точка вставки для допуска, текста, блока или формы
Invisible
Признак невидимости атрибута или описания атрибута
IsCloned
Признак того, что данный объект уже скопирован (в методе CopyObjects)
IsLayout
Признак соответствия блока вкладке листа
IsModified
Признак изменения
ISOPenWidth
Ширина пера по ISO (для штриховки)
IsOwnerXlated
Признак того, что объект пересчитан в базе нового рисунка (в методе CopyObjects)
IsPeriodic
Признак периодичности сплайна
Глава 1. Средства разработки приложений а объектная модель
35
Таблица 1.2 (продолжение) Свойство
Описание
IsPlanar
Признак того, что сплайн плоский
Is Primary
Признак принадлежности обьекта, первичного набору в операции копирования (CopyObjects)
IsQuiescent
Признак того, что система AutoCAD неактивна и готова принять вызов другого приложений (ActiveX)
IsRational
Признак того, что сплайн рациональный
Issuer
Наименование сертификата подписи
IsXRef
Признак того, что объект (вхождение) является вхождением внешней ссылки, а не блока
Key
Указатель объекта-источника операции CopyObjects
KeyboardAccelerato'
Признак стандартного набора горячих клавиш
KeyboardPriority
Признак способа интерпретации системой AutoCAD координат, вводимых с клавиатуры (учет объектной привязки)
KeyLength
Длина ключа шифрования
Keywords
Ключевые слова
Knots
Узловой вектор сплайна
Label
Метка пункта раскрывающегося меню (может содержать выражения на языке DIESEL)
LargeButtons
Признак большого размера кнопок панелей инструментов
LastHeight
Высота букв последнего текста
LastSavedBy
Пользователь, выполнивший последнее сохранение
Layer
Слой
LayerOn
Признак включенности слоя
Layers
Указатель семейства Layers
Layout
Вкладка
LayoutCreateViewport
Признак автоматического создания видового экрана в новых листах
Часть I. Разработка приложений Таблица 1.Z (продолжение) Свойство
Описание
LayoutCrosshairColor
Цвет перекрестия и текста вкладок пространства листа
Layout D i sp1ауМагgins
Признак показа полей отступа в листах
LayoutDisplayPaper
Признак показа подложки формата листов
Layou t D i s piayPaperShadow
Признак показа тени вокруг границ листов
Layouts
Указатель семейства Layouts
LayoutShowPlotSetup
Признак вывода окна параметров для новых листов
LeaderLength
Длина выноски для диаметральных и радиальных размеров
Left
Положение левой границы панели
Length
Длина отрезка
LensLength
Фокусное расстояние для перспективного вида
Limits
Лимиты рисунка
LinearScaleFactor
Масштабный коэффициент для линейных размерой
LineSpacingFactor
Коэффициент межстрочного расстояния для мультитекста
LineSpacingStyle
Способ выбора промежутков между строками мультитекста
Linetype
Тип линии
LinetypeGeneration
Стиль генерации отрезков типа линии для компактных и обычных полилиний
Linetypes
Указатель семейства Linetypes
LinetypeScale
Собственный масштаб типа линий примитива
Lineweight
Вес
LineweightDisplay
Признак показа весов линий в пространстве листа
Loa dAc adL s pInAl1Document s
Признак загрузки файла acad.lsp с каждым открываемым рисунком
LocalelD
Локальный указатель текущей сессии системы AutoCAD
Lock
Признак блокированности слоя
Глава 1, Средства разработки приложений и объектная модель
37
Таблица 1.2 (продолжение} Свойство
Описание
LogFileOn
Признак копирования строк текстового окна в файл протокола
LogFilePath
Путь к файлу протокола
LowerLeftCorner
Координаты левого нижнего угла текущего видового экрана
Mac re
Строка макроса, связанного с пунктом меню или панели
MainDictionary
Основной словарь проверки правописания
MajorAxis
Направление большой полуоси эллипса
MajorRadius
Длина большой полуоси эллипса
Mask
Маска для восстановления свойств слоя
MaxActiveViewports
Максимальное количество активных видовых экранов
MaxAu t oCADW i ndow
Признак максимизации окна системы AutoCAD При старте
MClose
Признак замкнутости сети в М-направлении
MDensity
Плотность сети в М-направлении
Measurement
Признак типа единиц размерного примитива (линейные или угловые)
MenuBar
Указатель строки меню (MenuBar)
MenuFile
Имя текущего MNU-файла
MenuFileName
Имя MNU-файла, в котором описана данная группа меню
MenuGroups
Указатель семейства t-ienuGroups
Menus
Указатель семейства popupMenus
MinorAxis
Направление малой полуоси эллипса
MinorRadius
Длина малой полуоси эллипса Режимы атрибута в описании
ModelCrosshairColor
Цвет перекрестия и текста в пространстве модели
ModelSpace
Указатель семейства ModelSpacs?
ModelType
Тип вкладки (модели или листа), с которой связана данная конфигурация печати
Часть I. Разработка приложений
38
Таблица 1.2 (продолжение) Свойство
Описание Момент инерции твердотельного объекта
MRUKumber
Число последних открывавшихся файлов, имена которых выводятся в раскрывающееся меню File (Файл)
MSpace
Признак активизации режима Model (Модель) для видового экрана в листе
MVertexCount
Номер вершины сети в М-направлении
Name
Имя
N ameNoMnemon i с
Заголовок раскрывающегося или контекстного меню без служебных символов [& и т, д.)
NClose
Признак замкнутости сети в М-направлении
«Density
Полность сети в N-направлении
Normal
Единичный вектор нормали к примитиву
NumberOfControlPoints
Количество управляющих точек сплайна
NumberQfCopies
Число копий, выводимых на печать
NumberOfFaces
Число полиграней в многогранной сети
N umbe rOfFitPoints
Число опорных точек сплайна
Numbe rOfLoops
Число циклов в границе штриховки
NumberCfVertices
Число вершин многогранной сети
MVertexCount
Номер вершины в N-направлении сети
ObjectID
Указатель объекта
Obj ectName
Тип (имя класса) объекта
ObjectSnapMode
Состояние режима SNAP (ШАГ)
ObjectSortByPlotting
Признак сортировки объектов при печати
ObjectSortByPSOutput
Признак сортировки объектов при выводе з PS-файлы
ObjectSoTtByRedraws
Признак сортировки объектов при освежении экрана
ObjectSortByRegens
Признак сортировки объектов при регенерации экрана
ObjectSortBySelection
Признак сортировки объектов при операции выбора объектов
Глава 1. Средства разработки приложений и объектная модель
39
Таблица 1.2 (продолжение) Свойство
Описание
ObjectSortBySnap
Признак сортировки объектов при объектной привязке
ObliqueAngle
Угол наклона букв текста, атрибута и т. л,
OLELaunch
Признак запуска родительского приложения при печати OLE-объектов
OLEQuality
Коэффициент качества вывода OLE-обьектов
OnMenuBar
Признак присутствия заголовка раскрывающегося меню в строке меню
OpenSave
Указатель объекта PreferencesOpenSave
Origin
Точка начала (ПСК, блока, листа или растрового изображения)
OrthoOn
Состояние режима ORTHO (ОРТО) для видового экрана
Output
Указатель объекта PreferencesOutput
OwnerIC
Указатель владельца объекта
PaperSpace
Указатель семейства paperSpace
PaperUnits
Единицы измерения, используемые при показе свойств листа и конфигурации печати
Parent
Указатель родительского объекта (относится к меню и панелям)
Password
Пароль
Path
Путь к файлу документа, приложения или внешней ссылки
PatteriiAngle
Угол образца штриховки
PatternDouble
Признак наложения штриховки "крест-накрест"
PatternName
Ими образца штриховки
PatternScale
Масштаб штриховки
PatternSpace
Отстояние линий пользовательской штриховки
PatternType
Имя образца, использованного в штриховке
Perimeter
Суммарный периметр внешнего и внутренних контуров области
Часть I. Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
PickAdd
Признак добавления в набор объектов с помощью клавиши <Shift>
PickAuto
Признак допустимости использования рамки в операции выбора объектов
PickBoxSiae
Высота прицела выбора объектов
PickDrag
Способ создания рамки выбора
PickFirst
Признак допустимости предварительного выбора объектов
PickfirstSelectionSet
Указатель набора предварительно выбранных объектов
PickGroup
Признак выбора сразу всех объектов группы, если был указан один из них
Plot
Указатель объекта Plot (образ печати)
PlotConfigurations
Указатель семейства PlotConf igurations
PlotHidden
Признак скрытия невидимых объектов при печати из пространства листа
PlotLegacy
Признак допустимости использования файлов печати предыдущих версий
PlotQrigin
Положение левого нижнего угла зоны печати относительно границ листа
PlotPolicy
Признак назначения по умолчанию цветоэависимых или именованных стилей печати новым рисункам и файлам, конвертируемым из форматов старых версий системы AutoCAD
PlotRotation
Признак поворота чертежа при выводе на печать
PlotStyleName
Имя стиля печати для примитива, группы или слоя
Plottable
Признак того, что слой выводится при печати
PlotType
Границы зоны, выводимой при печати
PlotViewportBorders
Признак печати границ видовых экранов
PlotViewportsFirst
Порядок вывода обьектов при печати листа (сначала осуществляется вывод примитивов пространства листа, а затем — пространства модели, или наоборот)
Глава 1- Средства разработки приложений и объектная модель Таблица 1,2 (продолжение) Свойство
Описание
PlotWithLineweights
Признак выбора весов линий (из стиля печати или из объектов)
PlotWithPlotStyles
Признак использования собственных стилей печати при выводе объектов
Ро1агТгасkingVector
Признак полярного отслеживания
PostScriptPrologFile
Имя управляющей секции в файле acad.psl для настройки команды PSOUT {ЭКСПОРТНО]
Preferences
Указатель объекта Preferences
Preset
Признак установленное™ атрибута или определения атрибута
PrimaryUnitsPrecision
Количество десятичных знаков в основных единицах
PrincipalDirections
Главные направления для тела или области
PrincipalMoments
Главные моменты для тела или области
PrinterConfigPath
Строка с путями к файлам конфигурации принтеров
PrinterDescPath
Строка с путями к файлам описания принтеров
PrinterPaperSizefllert
Признак предупреждения пользователя о несоответствии размеров листа размерам в РСЗ-файле
FrinterSpoolAlert
Признак предупреждения о перенаправлении печати на системный принтер а связи с ошибками порта
printerStyleSheetPath
Строка с путями к файлам параметров листа
PrintFile
Альтернативное имя для файла печати
PrintSpoolerPath
Папка для буферизации печати
PrintSpoo1Executable
Имя приложения, используемого для фоновой печати
ProductOfInertia
Центробежный момент инерции для тела или области
Profiles
Указатель объекта PreferencesProfiles
Prompt String
Строка подсказки для атрибута
Часть I. Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
Provide r Name
Имя провайдера цифровой подписи
Р г о v i de г Т уре
Тип провайдера цифровой подписи
Proxy Image
Признак управления показом объектов, созданных другими приложениями
JuietErrorMode
Признак вывода сообщений об ошибках печати не на экран, а в файл
RadiiOfGyration
Радиус инерции для тела или области
Radius
Радиус
RadiusRatio
Отношение полуосей эллипса
Readonly
Признак невозможности перезаписи документа ("только для чтения")
Red
Значение красной составляющей цвета
Re f e ren с eCo unt
Относительный номер в списке зависимостей
RegisteredApplications
Указатель семейства RegisteredApplications
Rende rSmoothnes s
Коэффициент регулировки гладкости раскрашенных и тонированных объектов, а также объектов с подавленными скрытыми линиями
Revi s ionNumber
Номер изменения
Rotation
Угол поворота
RoundD i s t ance
Точность округления для линейных размеров
Rows
Число рядов в массиве блоков
RowSpacirig
Расстояние между рядами в массиве блоков
SaveAsType
Формат сохранения документа
Saved
Признак сохраненное™ всех изменений документа
SavePreviewThuiribna i1
Признак сохранения растрового образца вместе с документом
ScaleFactor
Масштабный коэффициент для объекта
ScaleLineweights
Признак масштабирования весов линий вместе со всеми объектами рисунка при печати
Глава 1. Средства разработки приложений и объектная модель
43
Таблица 1.2 (продолжение) Свойство
Описание
S CMComma n dMode
Смысловая нагрузка правой клавиши в режиме выполнения команды
SCMDefaultMode
Смысловая нагрузка правой кнопки мыши в режиме редактирования (нет выполняемых команд, но есть выбранные объекты]
SCMEditMode
Смысловая нагрузка правой кнопки мыши, когда нет выбранных объектов и выполняемых команд
SecondPoint
Вторая точка луча или прямой
SegmentPerPolyline
Число прямолинейных сегментов, которыми аппроксимируется полилиния при сглаживании сплайном в команде PEDIT (ПОЛРЕД)
Selection
Указатель обьекта Preferencesselection
SelectionSets
Указатель семейства SelectionSets
SerialNuirber
Серийный номер подписи
ShadePlot
Режим печати тонированного экрана
ShortcutMeiiu
Признак того, что меню является не падающим, а контекстным
ShortCutMenuDisplay
Признак вызова контекстного меню при щелчке правой кнопкой мыши в зоне графического экрана
ShowPlotStyles
Признак отображения имен стилей печати
S howF roxyDi a1оgBox
Признак вывода предупреждающего сообщения при открытии рисунка с объектами других приложений
ShowRasterImage
Признак показа растрового изображения во время операций панорамирования \л зумирования
Shot/Rotation
Признак показа растрового изображения в соответствии со своим углом поворота
ShowWarningMessages
Установка в диалоговых окнах флажка вывода предупреждающего сообщения Don't Display This Warning Again (Выводить это предупреждение в дальнейшем)
SingleDocumentMode
Признак о дно доку мент но го режима
Часть I. Разработка приложений
44
Таблица 1.2 (продолжение) Свойство
Описание
SnapBasePoint
Точка начала сетки для режимов SNAP (ШАГ) и GRID (СЕТКА) в видовом экране
SnapOn
Состояние режима SNAP (ШАГ)
SnapRo t a t i onAngIe
Угол наклона сетки
SolidFill
Состояние режима заливки для мультилиний, трасс, фигур, полилиний и штриховок типа Solid
StanclardScale
Масштаб из списка стандартных масштабов печати
StartAngle
Начальный угол дуги, эллипса
StartParaaieter
Начальное значение параметра эллипса
StartPoirit
Начальная точка дуги, отрезка или эллипса
StartTangent
Начальная касательная к сплайну
StatusID
Признак текущего (активного) видового экрана
StoreSQLIndex
Признак сохранения в рисунке SQL-индекса
StyleName
Имя стиля (текстового, размерного и т, п.)
Stylesheet
Имя стиля с параметрами печати
Subject
Имя субъекта цифровой подписи или тема в свойствах рисунка
SubMenu
Раскрывающееся меню, связанное с подменю
SummerуInfo
Указатель объекта SummaryInfc
SupportPath
Строка путей к файлам поддержки
SuppressLeadingZeго3
Признак подавления ведущих нулей в основных размерах
SuppressTrailingZeros
Признак подавления хвостовых нулей в основных размерах
SuppressZeroFeet
Признак подавления нулей футов в основных размерах
Suppre s sZeroInches
Признак подавления нулей дюймов в основных размерах
System
Указатель обьекта PreferencesSystem
Глава 1. Средства разработки приложений и объектная модель
45
Таблица 1.2 (продолжение) Свойство
Описание
TablesReadonly
Признак открытия таблиц базы данных в режиме "только для чтения"
TabOrder
Номер вкладки в порядке расположения в списке вкладок (вкладка Model (Модель! всегда имеет номер 0}
TagString
Строка с тегом атрибута, пункта меню, панели и т. п.
Target
Точка цели вида или видового экрана
Temp Fi1eExtens ion
Расширение, используемое для имен временных файлов
TempFilePath
Папка для хранения временных файлов
TemplateDwgPath
Путь к файлам шаблонов, используемый Мастером начала работы
TempXRefPath
Путь к файлам внешних ссылок
Tex tД1igranent Point
Вторая точка выравнивания текста или атрибута
TextColor
Цвет текста размера или допуска
TextEditor
Ими текстового редактора, используемого командой МТЕХТ (МТЕКСТ)
TextFont
Имя шрифта для нового текста
TextFontSiee
Размер шрифта для нового текста
TextFontStyle
Имя стиля для нового текста
TextFrameDisplay
Признак показа рамки вместо текста
TextGap
Расстояние между текстом и размерной линией (линией выноски)
TextGenerationFlag
Флаг генерации текста атрибута
TextHeight
Высота текста размера или допуска
Textlnside
Признак расположения размерного текста между выносными линиями
TextlnsideAlign
Признак положения текста относительно размерной линии (горизонтально или параллельно) для всех размеров, кроме ординатного
TextMovement
Изменение оформления размера при перемещении размерного текста
Часть I. Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
TextOutsideAlign
Признак расположения размерного текста вне выносных линий
TextDverride
Строка изменения размерного текста
TextPosition
Точка положений размерного текста
TextPrecision
Точность углового размерного текста
TextPrefix
Префикс размерного текста
TextRotation
Угол наклона размерного текста
TextString
Строка (значение) для текста, мультитекста, выноски, атрибута или определения атрибута
TextStyle
Стиль для текста размера или допуска
TextStyles
Указатель семейства TextStyles
TextSuffix
Суффикс размерного текста
TextureMapPath
Строка с путями поиска текстур для тонирования
TextWinBackgrndColor
Цвет фона текстового окна
TextWinTextColor
Цвет текста в текстовом окне
Thickness
Зысота выдавливания плоского обьекта
TimeServer
Имя сервера времени, используемого для цифровой подписи
TimeStamp
Время файла из списка зависимостей
Title
Заголовок
ToleranceDisplay
Признак показа допусков в размере
ToleranceHeightScale
Масштабный коэффициент высоты букв текста допуска относительно высоты букв основного размерного текста
ToleranceJustification
Тип вертикального выравнивания текста допуска относительно основного размерного текста
То1eraneeLowe rLirai t
Минимальный предел допуска в размере
ToierancePrecision
Точность допуска в основных размерах
ToleranceSuppressLeadingZeros
Признак подавления ведущих нулей в допусках основных размеров
Глава 1. Средства разработки приложений и объектная модель
47
Таблица 1,2 (продолжение) Свойство
Описание
ToleranceSuppressTrailiiigSeros
Признак подавления хвостовых нулей в допусках основных размеров
ToleranceSuppressZeroFeet
Признак подавления нулей футов в допусках основных размеров
ToleranceSuppressSerolnches
Признак подавления нулей дюймов в допусках основных размеров
ToleranceUpperLimit
Максимальный предел допуска в размере
Toolbars
Указатель семейства Toolbars
ToolPalettePath
Путь к инструментальным палитрам
Top
Положение верхней границы панели инструментов
TotalAngle
Полный центральный угол дуги
TranslatelDs
Признак преобразования указателей объектов во время операций клонирования (копирования)
Transparency
Состояние прозрачности растрового изображения
TrueColor
Точный цвет объекта
ТrueColorImages
Признак показа растровых и тонированных изображений с максимальным цветовым разрешением
TwistAngle
Угол поворота вида Е видовом экране листа
Type
Тип выноски, полилинии, сети, группы меню, пункта меню или пункта панели
DCSIconAtOrigin
Признак показа знака ПСК в начале координат
UCSIconOn
Состояние включения знака ПСК
OCSPecViewport
Признак сохранения ПСК вместе с видовым экраном
UnitsFormat
Формат единиц для всех размеров, кроме угловых
UpperRightCorner
Положение верхнего правого угла активного видового экрана
UpsideDown
Ориентация букв текста (нормальная или вверх ногами)
Часть!. Разработка приложений Таблица 1.2 (продолжение) Свойство
Описание
ORL
Адрес страницы или имя файла гиперссылки
URLDescription
Пояснение к гиперссыпке
URLK amedLo cation
Закладка в документе или вид в рисунке для объекта гиперссылки
UseLastPlotSettings
Признак использования настроек предыдущей операции печати
User
Указатель объекта Preferencesuser
UserCoordinateSysterns
Указатель семейства ucss
UseStandardScale
Признак использования стандартного или пользовательского масштаба печати
Utility
Указатель объекта Utility
" aiUe
Указатель нового объекта, созданного в результате операции копирования [клонироаания)
VBE
Указатель приложения VBA IDE
Verify
Признак контролируемости атрибута или описания атрибута
Version
Версия текущего приложения системы AutoCAD
VersioriGGID
Глобально уникальный идентификатор (GU1D) версии
Vertiсa1Alignment
Признак вертикального выравнивания текста, атрибута или описания атрибута
VerticalTextPosition
Положение текста по вертикали относительно размерной линии
ViewportDefault
Признак автоматического замораживания слоя в новых видовых экранах пространства листа
ViewportQn
Признак включенности видового экрана
Viewports
Указатель семейства viewports
Views
Указатель семейства views
ViewToPlot
Имя печатаемого вида
VisibilityEdgel
Признак видимости первой кромки грани
VisibilityEdge2
Признак видимости второй кромки грани
Глава 1. Средства разработки приложений и объектная модель
49
Таблица 1.2 (окончание) Свойство
Описание
visibilityEcige3
Признак видимости третьей кромки грани
Vi sibi1ityEdge4
Признак видимости четвертой кромки грани
Visible
Признак видимости обьекта или приложения
V ." ._-.
О бьем тела
Weights
Массив весов точек сплайна
Width
Ширина текста, вида, растрового изображения, панели или главного окна приложения
WindowLeft
Положение левой границы окна приложения
WindowState
Состояние окна приложения или документа
WindowTitle
Заголовок окна документа
WindowTop
Положение верхней границы окна приложения
Wor К spa с е Pa th
Полное имя рабочего файла базы
XRefDatabase
Указатель обьекта Database, определяющего содержимое вхождения внешней ссылки
XRefDemandLoad
Режим подгрузки внешних ссылок
XRefEdit
Признак доступности текущего документа для редактирования его на месте как внешней ссылки из другого рисунка
XRefFadelnterisity
Управление снижением интенсивности отображения объектов при редактировании вхождений внешних ссылок
XRefLayerVisibility
Управление видимостью зависимых от внешних ссылок слоев, а также сохранением путей доступа для вложенных ссылок
XScaleFactor
Масштабный коэффициент по оси X вхождения блока или внешней ссылки
XVector
Направление оси Сданной ПСК
YScaleFactor
Масштабный коэффициент по оси Y вхождения блока или внешней ссылки
iVector
Направление оси Уданной ПСК
ZScaleFactor
Масштабный коэффициент по оси 2 вхождения блока или внешней ссылки
Часть I. Разработка приложений
50
Табл. 1.3 показывает объекты (в алфавитном порядке) и наименования их свойств. Добавлена информация по некоторым недокументированным объектам. Таблица 1.3. Объекты и свойства Объект
Доступные свойства
SDFace
Application, Color, Coordinates, Document, Handle, HasExtensionDictionary, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, ObjectID, ObjectName, OwnerlD, PlotStyleName, TrueColor, Visible, VisibilityEdgel, VisihilityEdge2, VisibilityEdge3. VisibilityEdge4
3DPolyline
Application, Closed, Color, Coordinate, Coordinates, Document, Handle, HasExteneionDictionary, Hyperlinks, Layer, Length, Linetype, LinetypeScale, Lineweight, CbjectID, ObjectName, OwnerlD, PlotStyleName, TrueColor, Type, Visible
3DSolid
Application, Centroid, Color, Document, Handle, HasExtensionDictionary, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, MomentOfInertia, ObjectID, ObjectName, OwnerlD, PlotStyleName, PrincipalDirections, PrincipalMoments, ProductOfInertia, RadiiOfGyration, TrueColor, Visible, Volume
AcadState
Application, IsQuiescsnt
AcCmColor
Blue, BookName, Colorlndex, ColorMethod, ColorName, EntityColor, Green, Red
Application
ActiveDocument, Application, Caption, Documents, FullName, Height, HWND, LocalelD, MenuBar, MenuGroups, Name, Path, Preferences, StatusID, VBE, Version, Visible, Width, WindowLeft, WindowState, WindowTop
Arc
Application, ArcLength, Area, Center, Color,
Document, EndAngle, EndPoint, Handle, HasExtensionDictionary, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, Normal, ObjectID, ObjectName, OwnerlD, PlotStyleName, Radius, Star^Angle, StattPoint, Thickness, TotalAngle, TrueColor, Visible Attribute
Alignment, Application, Backward, Color, Constant, Document, FieldLength, Handle, HasExtensionDictionary, Height, Hyperlinks, InsertionPcint, Invisible, Layer, Linetype,
Глава 1. Средства разработки приложений и обьектная модель
51
Таблица 1.3 (продолжение) Объект
Доступные свойства
(пред,)
LinetypeScale, Lineweight, Mode, Normal, ObjectID, ObjectName, ObliqueAngle, OwnerlD, Preset, PlotStyleName, PromptString, Rotation, ScaleFactor, StyleName, TagString, TextAlignmentPoint, TextGenerationFlag, TextString, Thickness, TrueColor, UpsideDown, Verify, Visible
Att r ibuteRe f e r eric e
Alignment, Application, Backward, Color, Constant, Document, FieldLength, Handle, HasExtensionDictionary, Height, Hyperlinks, InsertionPoint, Invisible, Layer, Linetype, LinetypeScale, Lineweight, Normal, ObjectID, ObjectName, ObliqueAngle, OwnerlD, PlotStyleName, Rotation, ScaleFactor, StyleName, TagString, TextAlignmentPoint, TextGenerationFlag, TextString. Thickness, TrueColor, UpsideDown, Verify, Visible
Block
Application, Count, Document, Handle, HasExtensionDictionary, IsLayout, IsXRef, Layout, Name, ObjectID, Origin, OwnerlD, XRefDatatase
BlockRef
Application, Color, Document, Handle, HasAttributes, HasExtensionDictionary, Hyperlinks, InsertionPoint, Layer, Linetype, LinetypeScale, Lineweight, Name, Normal, ObjectID, ObjectName, OwnerlD, PlotStyleNarae, Rotation, TrueColor, Visible, XScaleFactor, YScaleFactor, ZScaleFactor
Body
Application, Document, Handle, HasExtensionDictionary, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, ObjectID, ObjectName, OwnerlD, PlotStyleName, TrueColor, Visible
Circle
Application, Area, Center, Circumference, Color, Diameter, Document, Handle, HasExtensionDictionary, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, Normal, ObjectID, OwnerlD, PlotStyleMame, Radius, Thickness, TrueColor, Visible
Database
Application, Blocks, Dictionaries, DimStyles, ElevationModelSpace, ElevationPaperSpace, Groups, HandleToObject, HasExtensionDictionary, Layers. Layouts, Limits, Linetypes, MocfelSpace, ObjectlDToObject, OwnerlD, PaperSpace, PlotConfigurations, Preferences, RegisteredApplications, TextStyles, UserCoordinateSystems, Viewports, Views
Часть I. Разработка приложений
52
Таблица 1.3 (продолжение) Объект
Доступные свойства
DatabasePreferences
AllowLongSymbolNameg, Application, Contourlin.esPerSurface, Displaysilhouette, Lineweight, LineweightDisplay, MaxActiveViewportg, QbjectSortByPlotting, ObjectSortByPSOutput, QbjectSortByRedraws, obje-ctSortByRegens, ObjeetSortBySelection, ObjectSortBySnap, OLELaunch, RenderSmoothness, SegmentPerPolyline, SolidFiil, TextFrameDisplay, XRefEdit, XRefLayerVisibility
Dictionary
Application, Count, Document, Handle, HasExtensionDictionary, Name, ObjectID, ObjectName, OwnerlD
D im3 Po intAngu1a r
AngleFormat, AngleVectex, Application, ArrowheadlBlock;, ArrowheadlType, Arrowhead2Block, Arrowhead2Type, ArrowheadSize, Color, DecimalSeparator, DimensionLineColor, DimensionLineWeight, DimLinelSuppress, DimLine2Suppress, DimLineInside, Document, ExtensionLineColor, ExtensionLineExtend, ExterisionLineuffset, ExtensionLineWeight, ExtLineiEndPoint, ExtLine1Suppress, ExtLine2EndPoint, ExtLine2Suppress, Fit, ForceLineInside, Handle, HasExtengionDictionary, HoriaontalTextPosition, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, Measurement, Normal, ObjectID, Objecttlame, OwnerlD, Plot Sty leNarr.e, Rotation, ScaleFactor, StyleName, SuppcessLeadingZeros, SuppressTrailingZeros, TextColor, TextGap, TextHeight, Textlnside, TextlnsideAlign, TextMovement, TextOutsideAlign, TextOverride, TextPosition, TextPrecision, TextPrefix, TextRotation, TextStyle, TextSuffix, ToleranceDisplay, ToleranceHeightScale, ToleranceJustification, ToleranceLowerLimit, ToleranceFreeision, ToleranceSuppressLeadingZeros, ToleranceSuppressTrailingZeros, ToleranceUpperLimit, TrueColor, VerticalText, Posit ion, Visible
DimAligned
AltRoundDistance, AltSuppressLeadingSeros, AltSuppressTrailingZeros, AltSuppressZeroFeet, AltSuppressZeroInches, AltTextPrefix, AltTextSuffix, AltTolerancePrecision, AltToleranceSuppressLeadingzeros, AltToleranceSuppressTrailingZeros,
Глава1.Средства разработки приложений и объектная модель
53
Таблица 1.3 (продолжение) Объект
Доступные свойства
(пред.)
AltTOleranceSuppres.sZeroFeet, Al tTOleranceSuppressZeroInches, AltUnits, filtUnitsFormat, AltUnitsPrecision, AltUnits Scale, Application, ArrowheadlBlock, ArrowheadlType, Arrowhead2Block, Arrowhead2Type, Arrowheadsize. Color, DecimalSeparator, DimensionLineColor, DimensionLineExtend, DimensionLineWeight, BimLinelSuppress, DimLine2Suppress, DimLineInside, Document, ExtensionLineColor, ExtensionLineExtend, ExtensionLir.eOffset, Ext ens ionLine Weight, ExtLinelPoint, EKtLinelSuppress, ExtLine2Point, ExtLine2Suppress, Fit, ForceLinelnside, Fraction Format, Handle, HasExtensionDicT;ionary, HorizoncalTextPosition, Hyperlinks, Layer, LinearScaleFactor, Linetype, LinetypeScale, Lineweight, Measurement, Wormal, ObjectID, ObjectName, OwnetrlD, PlotStyleMame, PrimaryUnitsPrecision, Rotation, RoundDistance, ScaleFactor, StyleHame, SuppressLeadingSeros, SuppressTrailing2eros, SuppressZeroFeet, SuppressZeroInches, TsxtColor, TextGap, TextHeight, Textinsiae, TextInsideAIign, TextMoveroent, ТеxtCutsideAlign, TextOverride, TextPosition, TextPrefix, TextRotation, TextStyle, TextSuffix, ToleranceDisplay, ToleranceHeightScale, ToleranceJustification, ToleranceLowerLimit, TolerancePrecision, ToleranceSuppressLeadingZeros, ToleranceSuppressTrailingZeros, ToleraiiceSuppressZeroFeet,
ToleranceSuppress2eroiriches, ToleranceUpperLimit, TrueColor, Units Format, VerticalTextPosirion, Visible
DimAngular
AngleFormat, Application, ArrowheadlBlock, Arrowhead!Type, Arrowhead2Block, Arrowhead2Type, Arrowheads!ze, Color, DecimalSeparator, DimensionLineColor, DimensionLineWeight, DimLine1Suppress, DimLine2Suppress, DimLineInside, Document, ExtensionLineColor, ExtensionLineExtend, ExtensionLineOffset, ExtensionLineWeight, ExtLinelEndPoint, ExtLinelStartPoint, ExtLinelSuppress, ExtLine2EndPoint, ExtLine2StartPoint, ExtLine2Suppress, Fit, ForceLinelnside, Handle, HasExtensionDictionary. HorizontalTextPosition, Hyperlinks, Layer, Linetype, LinetypeScale, Lineweight, Measurement,
Часть I. Разработка приложений Таблица 1.3 (продолжение) Обьект
Доступныесвойства
, система AutoCAD вычислит его и выдаст в командную строку результат. Вычисляемые LlSP-выражения должны удовлетворять такой форме: ! [ 1 . . .
[]...]]!
Где [ . . . [] . . . ] :
Глава 2. Visual LISP
107
Таблица 2.1 (продолжение) Возвращаемое значение
Назначение
[ [ . . . [] ... )]
Равенство
/=
[ [ ... ... 11
[]
Неравенство
[ . . . [1 ... ]]
,
Больше
>=
( [ . . . [[
Больше или равно
Функция
Аргументы
=
.-. ]]
-
]]
,
append
[ []
Преобразование длины из пространства модели в пространство листа
Имя приложения или результат вычисления выражения
Применение операции к элементам списка Список загруженных ARX-приложений Загрузка ARX-приложения
Глава 2. Visual LISP
109
Таблица 2.1 (продолжение'* Функция
Аргументы
arxunload
[]
Возвращаемое значение Имя приложе-
ния пли
Назначение Выгрузка ARX-приложенмй
результат вычисления выражения ascii
Вычисление кода буквенно-цифрового символа
35SOC
Значение выражения
Присвоение значения посредством адреса символа
set_tile
< строкам
Изменение содержимого элемента диалога
setcfg
< строка 1>
,
setenv
< с трока >
Задание переменной окружения
setfunhelp
[ [ [] ] ]
< с трока >
Регистрация справки для функции, начинающейся с символов с:
setq
Значение [ . . . последнего [ ] . . . ] выражения
Присвоение значений символам LISP
setvar
или сообщение об ошибке
Присвоение значении системной переменной AutoCAD
set view
.
sin
< число
slide__image
, nil Заполнение графического элемента диалога слайдом
snvalid
[]
Проверка допустимости имени по таблице символов
sqct
Квадратный корень
ss add
[ |]]
Добавление объекта в набор
nil
Запись данных приложения
nil Установка вида в видовом экране Синус
Глава 2. Visual LISP
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
ssdel
,
nil
Удаление обьекта из набора
ssget
'] 1 [] } [] []
, nil
Формирование набора по запросу или признаку
ssgetfirst
-
Определение вы бранных объекте а
sslength
Количество элементов е наборе
ssmemb
,
nil
Проверка на принадлежность обьекта к набору
ssname
^прин>,
nil
Извлечение примитива из набора
ssnaciex
Извлечение примитива и информации о способе его выбора
sssetfirst
[]
-;список>
Включение ручек у объектов заданных наборов
startspp
(]
-:целое>,
startjiialog
—
start^image
,
£tart_li5t
( [] ]
Начало операции над списком
strcase
[1
Преобразование регистра в строке символов
strcat
[ [ ... [] ... ] ]
t строкам
Конкатенация (сцепление) строк
strlen
subst
nil
Назначение
Запуск внешнего приложения Запуск диалогового окна загруженного DCL-файла
nil
j .~ - • /.::';• к •
Начало операции с графическим элементом диалога
Длина строки Замена элемента в списке
Часть I. Разработка приложений
120
Таблица 2.1 (продолжение! Функция
Аргументы
Возвращаемое значение
substr
,"]
< с трока >
tablet
( , ]
nil
Работа с планшетом
tblnext
[ < j; or > ]
•;список>,
nil
Переход к следующему символу в таблице
tblobjname
]
>
nil
Глава 2. Visual LISP
- -•
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращавмое значение
Назначение
ver
-
Определение версии Visual LISP
vl-acad-defun
'
vl-acad-undefun
'
vl - a r х- import
Экспорт функции а множество имен функций ObjectARX
Отмена экспорта функции в множество имен функций ObjectARX Импорт функций АНХ-приложения в именное пространство VLX-приложения
vl-bb-ref
'
Значение символа
Чтение значения переменной из внедокументного именного пространства
vl-bb-set
' ^выражение>
Значение выражения
Задание значении переменной из внедокументного именного пространства
vl -catch- all -apply
'
Значение
Обработка исклю чений функции, примененной к списку
функции или
vl-catch-all-etrormessaqe
< ошибка >
Извлечение сообщения из объекта < ошиЕжа >
vl - ca t ch- all -e JT ro r -p
Проверка типа результата функции vl-catch-allapply
vl-cradf
[ [ . . . []
Передача команд и параметров в командную строку с предварительной п ровер кой возможности их выполнения
-..
11
Часть I. Разработка приложений
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vl-consp
vl- direct о су- files
[ < строка 2 > ]
,
ul-doc-export
vl -doc - Impor t
vl-doc-ref
vl-doc-set
1
'
1
Проверка, что аргумент является списком, точечном парой или точечным списком и отличен от nil nil
Получение списка имен файлов папки Экспорт функции из пространства имен VLX-приложения в текущий документ
[ ' [ ' . . . [ г] ... ; ]
1
Назначение
[]
vl-every
| . . , 1] ... )
vl-exit-witherror
Импорт экспортированных функций в именное пространства VLX -приложения Значение переменной
Чтение значения переменной из текущего документа в именное пространство VLX-лриложения
Задание значения переменной текущего документа из VLX-приложенин с собственным именным пространством
Проверка истинности условия с первым, вторым и т. д. элементами каждого из списков-аргументов Передача управления обработкой ошибок от VLX -приложения с собственным именным пространством функции 'error*
Глава 2. Visual LISP
123
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vl-exit-witbualue
vl- file-copy
[1
.
vl- file-delete
Удаление файла
vl-filedi rector у -p
Проверка, являе"ся ли строка именем папки, а не файла
vl- file-rename
Переименование файла
vl-file-size
, nil
Размер файла в байтах
vl-file-systime
< с трока >
,
Дата последнего изменения файла
vl-filenarae-base
Выделение имени файла без пути и расширения
vl- filenamedirectory
Выделение пути, если он входит в имя файла
vl-filenarneextension
Уникальное имя для временного файла
vl-get-re source
Извлечение содержимого ТХТ-файла. включенного в VLX-приложение
vl-list*
[ . ., [] ... ]
. список>, ,
Построение списка, точечной пары или точечного списка
Назначение Передача значения функции, вызвавшей VLX -приложение с собственным пространством имен
nil
nil
nil
Копирование или присоединение содержимого одного файла к другому
Выделение расширения из имени файла
Часть I. Разработка приложений Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vl-list-> string
Построение строки по кодам входящих в нее бу л вен но-цифровых знаков
vl-list-exportedf unctions
I < строка >]
Список экспортированных функций приложения
,
.
vl-list-length
ИЛИ
nil
Назначение
Длина списка
Список всех связанных с данным документом VLX-приложений с собственными именными пространствами
vl-list-loaded-vlx
vl-load-all
vl -lead- com
—
Загрузка файла во все ранее открытые документы и во все документы, которые будут открыты в данном сеансе AutoCAD Загрузка функций расширения ядра языка Visual LISP
—
Загрузка функций, п одце рживающих реакторы (аналогична vl-load-corrj
vl -lead-reactors
vl -member- if
'
Сортировка элементов списка с возвратом номеров в новом списке
vl-string->list
< строка*
,
vl-st ring-el t
или сообщение об ошибке
Получение кода по действующей таблице для символа с номером в строке
vl-string-left-trim
< строка >
Удаление символов из начала строки
vl-st ring-mismatch
[ ]
Вычисление длины общего префикса для двух строк, начиная с некоторой позиции
vl-st ring-position
[ [] ]
,
vl-st ring-right-trim
vl-string-search
[]
.
vl -string-subs t
< строка 1> 1]
nil
nil
Преобразование строки буквенноцифровых знаков в список с кодами знаков
Поиск символа с заданным кодом в строке Удаление заданных СИМВОЛОВ из конца строки
nil
Поиск заданного образца внутри строки Замена внутри строки одного шаблона на другой
127
Глава 2. Visual LISP
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение Назначение
vl- string-translate
Замена символов в строке по закону
vl-string-tcim
Удаление символов из начала и конца строки
vl - s yinbol -name
1
Возврат имени символа как строки
vl - s ymbol -value
1
Значение символа
Возврат значения символа Проверка, является ли обьект символом
vl-symbolp
vl-unload-vlx
< с трока >
Т или сообще- Выгрузка VLX -приние об ошибке ложения, загруженного в свое пространство
vl-vbaload
< строкам
—
Загрузка проекта VBA
vl-vbarun
< с трока >
-;строка>
Выполнение VBA-макроса
vl - vl x - 1 oaded-p
vla-geta ct i ve document
Указатель активного документа
vla-get-model space
•:VLfi>
Указатель пространства модели
vl a -get -paperspace
Указатель пространства листа
vlax-3d-point
•;вариант>
Создание точки-варианта
Проверка, загружено ли VLX-при ложение, имеющее свое именнсе пространство
ИЛИ
|] vlax-add-ond
|
1
]
.
•iVIA>, nil
nil Добавление
функции к командам системы AutoCAD Загр/зка СОМ -сера ера (внешнего приложения) и создание его VLA-обьекта
Часть I. Разработка приложений Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vlax-curve-getacea
, nil
vl ax-cur vegetclosestpointto
vlax-curvegetclosestpointtop rejection
Назначение Площадь кривом (VLA -объекта)
,
nil
Вычисление точки, лежащей на привой и ближайшей к заданной точке
[]
,
nil
Вычисление ближайшей точки на кривой после проектирования кривой на плоскость
vl ax -curve getdistatparam
,
nil
Длима кривой от начальной точки до точки, заданной параметром
vl ax -curve getdistatpoint
•:вещ>,
nil
Длина кривой от начальной до указанной точки
vl ax -curve ge tendp а гага
1
nil
Значение параметра конечной точки кривой
vl ax -curve getendpoint
,
nil
vl ax -curve getfirstderiv
,
nil
vlax -curve getparaniatdist
,
nil
Значение параметра на заданном расстоянии от начальной точки кривой
vlax-curvege tpa r ama tpoi n t
,
nil
Значение параметра в точке кривой
vlax-currvegetpointatdist
•: числом
,
[]
nil
Вычисление конечной точки кривой Вычисление первой производной э заданном месте кривой
Вычисление точки, находящейся на заданном расстоянии от начальной точки кривой
Глава 2. Visual LISP
129
Таблица 2.1 (продолжение: Функция
Аргументы
Возвращаемое значение
vl ax-cur vegetpointatparara
Проверка периодичности кривой как ф/нкции параметра
vlax-cucve-isplanar
Проверка планарности кривой
vl ax - damp- ob j e с t
[]
т или сообщение об ошибке
Вывод свойств объекта, а также методов, применяемых к нему
vl ax - e name - > vl a object
Преобразование примитива в VLA-обьект
vlax-erased-p
Проверка, удален ли VLA-обьект
vlax-for
[ Значение [ . . . последнего [< выражение Н>] ... |] вычисленного выражения ИЛИ nil
vlax-get-acad-object
5 Зак 1 3 1 1
nil
nil
Назначение
Начальное значение параметра на кривой nil
Вычисление начальной точки кривой
Вычисление выражений с каждым объектом из семейства
Вычисление указателя на корневой объект Application
Часть I. Разработка приложений
730
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vl ax -get-object
,
nil
Вычисление текущего вхождения объекта- приложения
vlax-get-or-createobject
.
nil
Вычисление текущего вхождения обьекта-приложения или создание нового
v 1. ax-ge t -pr ope r t у
' ИЛИ
Значение свойства
vl ак - inpo tt - 1 уре library
:tlb-filename ка1> [ : methods -pee fix : proper ties -pre fix : constants-prefix )
vl а и - in vo ke -rae th od
' [ . .. [] . . . ]
Зависит от метода
Назначение
Извлечение свойства VLAобъектз " ' Импорт информации из библиотеки типов Вызов метода VLA-обьекта
ИЛИ
[ . . . [] . . . ] vlax-ldata-delete
[], где — . или
Удаление LISP- данных из словаря
vlax-ldata-get
[] [], где — . или
Данные
Извлечение LISP-данных из словаря или обьекта
vlax-ldata-list
[], где — , или
Вывод LISP- данных из словаря
vl ax - 1 dat a-pu t
[] [], где , ИЛИ «строка>
Создание безопасного массива (размерность не более 16) Создание варианта
Глава 2. Visual LISP
131
Таблица 2.1 (продолжение) Функция
Аргументы
Возвращаемое значение
vlax -map-collect ion
< VLA> ' < фу нкци я >
Применение функции ко всем объектам семейства
vl ax -method applicable-p
. где — или
Проверка поддержки объектом метода
vlax-objectreleased-p
Проверка, освобожден ли обьект в графической базе
vl ax -pr oduct - key
"
Путь к разделу системы AutoCAD а реестре Window;
vl a x-p rope r t у available-p
[], где — или '
Проверка наличия у объекта требуемого свойства и возможности модификации
vlax-put -p rope r t у
, где — или
Изменение значения свойства VLA-обьекта
'
nil или
сообщение об ошибке
Назначение
vlax- re aden able d-p
Проверка читаемости объекта
vlax-release-ob j ect
-
Освобождение объекта
v 1 ax - r emo ve - crnd
1ЛЛИ Т
vlax- safearray- fill
Сохранение данных в массиве
vlax-safearray-get-
Получение размерности массива
vlax-safearray-geteleraent
[ ... !] ... ]
Значение
Чтение элемента массива (число размерностей не более 16)
vlax-safearray-get1 -bound
или сообщение об ошибке
Нижняя граница данной размерности массива
ulax-safearr ay-get u -bound
или сообщение об ошибке
Верхняя граница данной размерности массива
dim
Удаление команды или группы команд
Часть I. Разработка приложений
132
Таблица 2.1 (продолжение) Возвращаемое значение
Функция
Аргументы
vlax-safeariray-pu.telement
[ . . . (] . . . ]
Присвоение значения элементу массива
vlax-sa fear ray-type
Определение типа данных массива
vlaxsafeariay->list
Вывод элементов массива в список
vlax-tmatrix
Представление матрицы преобразования типа 4»4. используемой в операциях AcliveX
vlax-typeinfoavallable-p
ename
Преобразование VLA-объекта в примитив AutoCAD
vlax-write-enabled-p
]
Вывод строки
xdroom
,
nil
Определение размера свободной памяти зоны расширенных данных
Kdsize
,
nil
Определение размеоа памяти, необходимого для добавления расширенных данных
zerop
Проверка на нуль
Есть ряд функций, которые о п и с ы в а ю т дополнительные к о м а н д ы системы AutoCAD, но к этим командам вы не можете обратиться с помощью функций
command и vl-cmdf
граммы" этой главы).
(см. далее разд. "Выполнение команд AutoCAD из про-
Вместо вызова команды в профамме н у ж н о обращать-
ся К СООТВеТСТВуЮТЦеЙ L I S P - ф у Н К И И Н , Например
(c:3dsin)
ВМеСТО
{command
"3DSIN").
Такие функции приведены в табл. 2.2. В основном это функции, связанные с командами операций тонирования. Некоторые из них могут иметь разл и ч н ы е варианты аргументов.
• :?
Глава 2. Visual LISP
Таблица 2.2. Список основных функций с префиксом с: Функция
Аргументы
Возвращаемое значение
c-.3dsi.ri
[ [ < це лое 2 > ] < строка >]
—
Импорт из 3D Studio (команда 3DSIN (ИМПОРТЗДС))
c:3dsout
[ ]
—
Экспорт в 3D Studio (команда 3DSOUT (ЭКСПОРТЗДС)!
~: align
Кнабор> ]
Выравнивание обьекта по двум точкам (команда ALIGN (ВЫРОВНЯТЬ)]
c:cal
^строка>
Результат вычисления выражения
Вычисление математического выражения
с: finish
[]
-
Загрузка материалов
с: fog
[ [ Хве[ц1> [ [ [ [] ) ] ! 1 ] 1
—
Параметры тумана (команда FOG (ТУМАН)!
:: light
[ ]
Разные
Операции с источниками освещения (команда LIGHT (CBETl)
2:lsedit
< йр ryi^e нты>
c:lslib
Разные
Операции с библиотекой ландшафтов (команда LSLIB (ЛАНДБИБ])
c:lsnew
[ ]
—
Создание обьекта ландшафта (команда LSNEWUlAHflHOBbltf))
~:matlib
[ [] ]
—
Работа с библиотекой материалов (команда MATLIB (5ИБМАТ))
c:mirror3d
[ ]
c: render
< с трока > или
Назначение
Редактирование элемента ландшафта (команда LSEDIT (ЛАНДРЕД))
Симметрирование объектов относительно плоскости (команда MIRROR3D (3-3 ЕР КАЛ 0)1 —
Операция тонирования (команда RENDER (ТОНИРОВАНИЕ))
Часть I. Разработка приложений
13S
Таблица 2.2 (окончание) Функция
Аргументы
Возвращаемое значение
с : render update
—
с : replay
[ 1 ] ]
с: cfileopt
с: mat
[ ]
c:rotate3d
[]
Поворот в пространстве (команда ROTATE3D (Э-ПО ВЕРНУТЬ»
c:rpref
[ [] )
Разные
Настройка тонирования (команда RPREF (РЕЖИМТОН))
с : saveirag
[ [] [ е:целоеЗ> 1 [] ]
Разные
Сохранение тонированного изображения (команда SAVEIMG Ji^rwpmrtr^ ЮилгП JWUJ/
с: scene
[ [ [] ] ]
Разные
Операции со сценами, используемыми в тонировании (команда SCENE (СЦЕНА))
z : setuv
[ ]
Разные
Наложение текстуры (команда SETLJV (НАЛТЕК))
с : showraat
1]
Разные
Вывод данных о материале (команда SHOWMAT 1ПОКМАТ))
c:solprof
[]
с : stats
[)
Назначение Регенерирование вспомогательного файла Повторный просмотр растрового файла с тонированным изображением
-
Подготовка тонирования Операции с материалами, используемыми а тонировании (команда RMAT (МАТЕРИАЛ))
Вывод данных о материале (команда SOLPROF (Т-ПРОФИЛЬ)] Разные
Вывод данных о тонировании (команда STATS (СТАТ))
139
Глава 2. Visual LISP
Недокументированные функции В табл. 2.1 и 2.2 был приведен перечень основных функций языка LISP. Правда, были перечислены не все функции, а только те, которые официально описаны в документации на систему AutoCAD. Есть еще большое количество функций, о существовании которых либо совсем ничего не сообщается, либо упоминается вскользь (как, например, функции доступа к свойствам объектов), а также другие функции, которые постоянно загружаются ядром системы AutoCAD (например, посредством загрузки файла acad2004doc.lsp), имена которых доступны при анализе оперативной памяти. Попробуем привести имена таких функций. Они, может быть, и не столь необходимы, как основные функции, но тоже могут понадобиться читателю. Кроме того, функции, перечисленные в табл. 2.3—2.6. нельзя переопределять в своих приложениях, поскольку загрузка функции, одноименной с функцией ядра системы AutoCAD, может привести к трудно диагностируемым сбоям с серьезными последствиями, В табл. 2.3 собраны функции, которые реализуют методы технологии ActiveX (см. далее разд. "ActiveX" настоящей главы). Все эти функции имеют префиксы via-, а соответствующие им методы приводятся в таблице с использованием тех регистров символов, которых требует ObjectARX. В данном издании в табл. 2.3 добавлен столбец с перечнем аргументов, которые нужно задавать при вызове функций методов. Таблица 2.3. Список функций, реализующих методы ActiveX Функция
Метод
Аргументы
vla-activate
Activate
vl a- adddiraa 1 i gned
AddD iniAl i gne о
vl a-adddirnang ul a r
AddDimAr. gu 1 a r
< вариант 4 >
vl a - adddimdi amet r i с
AddDimDi ame t r i с
vl a - add dimo r di nat e
AddDiraOrdir.ate
vl a- addd irar a di a 1
AddDlmRadial
vl a - adda imr ot a t e d
AddDimRetat^d
vla-addellipse
flddEllipse
vla-addellipticalcone
AddEllipcicalCone
vla-addellipticalcylinder AddEilif cicalCylinder vl a - adds xt rude d s ol i d
AddExtrudedSclld
AddExtrudedSclidAlongPath vlaaddextrudedsolidalongpath
vla-addfitpoint
AddFit Point
vla-addhatch
AddHatch
|^
vl. a - addi t ems
Addl t ems
< вариант >
vla-addleader
AddLeadcr
via- addlightwe ightpolyllne AddLight Height Pol у line
vla-addline
< вариант 1> 2>
SddLine
Глава 2. Visual LISP
- 'I
Таблица 2.3 (продолжение) Функция
Метод
Аргументы
vl a - acidmenu item
AddMenuItem
() для вывода сообщений, генерируемых в процессе сборки приложений. Пункт LISP Console (Консоль LISP) меню View (Вид) вызывает очень важное окно, называемое Visual LISP Console (Консоль Visual LISP) (рис. 2.18), которое в среде Visual LISP является аналогом зоны командных строк системы AutoCAD. В нем можно вводить выражения языка LISP, загружать и выполнять функции, а также читать значения переменных (для последней операции нужно в текущей строке ввести имя переменной и нажать клавишу <Enter>; восклицательный знак перед именем переменной в таком случае не требуется). Сюда же Visual LISP выводит свои сообщения. Ш Visual LISP Гппчо1е l
|_$ ( s e t q npjcini • d:\\projecls\\122ee\\122BO.&sp") "d:\\projects\\1220e\\1220fl_&sp" | $ (np_r npini в 100 1 1 2 . 0 18.в)
nil |_S (np_r_mpini в 180 1 H 0 . 0 18.0)
nil ; 1 form loaded from («editor "D :/np_hynam.l5p"> |_S (np_hynan)
Присвоение гиперимен объектам. ; error: no function definition: nil
Рис. 2.18. Окно Visual LISP Console
Подменю Browse Drawing Database (Обзор базы данных рисунка) меню View (Вид) имеет пункты Browse Ali Entities (Все объекты). Browse Tables (Таблицы), Browse Blocks (Блоки), Browse Selection (Набор) и Inquire Extended Data (Расширенные данные). При выборе первых четырех пунктов вызываются соответствующие окна для просмотра базы данных графических примитивов и неграфических объектов текущего рисунка (рис. 2.19). Пункт Inquire Extended Data (Расширенные данные) предназначен для просмотра расширенных данных примитива (см. далее разд. "Расширенные данные" настоящей главы). Поскольку у примитива могут быть расширенные данные от нескольких приложений, после выбора указанного подпункта сначала открывается окно Choose Application (Выбор приложения) (рис. 2.20). В этом окне можно отметить одну или несколько строк с именами тех приложений, чьи расширенные данные интересуют пользователя. Далее нужно выбрать подпункт Browse Selection (Набор) и по запросу отметить тот примитив, данные которого будут просматриваться. Затем в появившемся окне Inspect: PICKSET (Изучение: НАБОР) двойной щелчок по строке с именем примитива вызовет окно с данными этого примитива. В появившемся окне нужно вызвать контекстное меню (рис. 2.21).
Глава 2. Visual LISP
219
l[4 ^IJIGLAO ENTITIES
ESJIUtDRAWING TABLES
;; AutoCAD Entities list
.. Drawing tables menu
(Entity name: 7el6ce?8> » (View Ports) .. (LWPOLYLINE> (Entityname 7ef6ce30>~~ .. (VIEWPORT) (Entity name: 7e!6ce38> (Layers) . (TEXT) (Entity name: 7ef6ce40) (Styles) ... 1 (Entity name 7el6ce48) (Views) (TEXb (Entity name. 7ef6ce50> 1 (Dmension Sti>le?> .. (INSERT North) (Entity name- 7efEce7B;_j (TEXT) (Entity name. 7ef6ce8G> (TEXT) (Entity name: 7ef6ceB8> 1 (Entily name 7ef6ce90) (LINE> (Entity name 7el6ce9S> :: AutoCAD Blocks Definitions
и ih и 1 1 ii in 1 iiM' 1 (Selection set: 6) [0] (Entity name' 7e(6ce3Q> [1 ] iVIEWPORT) (Entity name: 7ef6ce3B> [2] (Bin door poweilSld-Blk34> (Bth floor powerlStd-Blk35> (8th floor powetlTITLEBLK; (8th floor poiverfWAFFER) (9th (too» power) ... (AHJ> ....
*| ... .... .... . . .,..
Рис. 2.19. Окна обзора базы данных рисунка
{•Опоев Application...
Рис. 2.20. Окно Choose Application
"33" {LAYER ГО" [fr^rusion directk
AJt+P Copy Loa
center} (2000 5 "~-v,n.. OadkK) 100.0 Update
f
Ak+U
Inspect raw data Inspect next entity Inquue emended data Рис. 2.21. Контекстное меню операций сданными примитива, вызванное из окна Inspect: P1CKSET
_lJ
220
Часть I. Разработка приложений
Теперь выбор пункта Inspect raw data (Изучить необработанные данные) выведет окно Inspect: LIST (Изучение: СПИСОК) (рис. 2-22), в котором в нижней строке будут присутствовать расширенные данные отмеченного графического объекта для выбранных приложений. yt Inspect: LIST [f-1 . <Entitvname'7e!53rf8>][-: "CIRCLE"! [330 <Entity nan* 7i [01 [-1 . <Entitj.name'7et53e9S>| [1J[0. "CIRCLE"] [21(330. <ErMv name 7е(53с№) [3](5 "83") [41(100 "AcDbEntily") [5][67. 0) [6] (410. "Model"] [7ИЭ."СП [3j|100."AcDbCircle"] [Э] (10 200.0 50.000) [101(40 100.0) [11] [210 0.0 0.0 1.0) p [12][-3("MiAPD"[1000 •Vl")]|"M>App1"(1000. Zlir])l Рис. 2.22. Окно Inspect: LIST с расширенными данными
Пункт Toolbars (Панели инструментов) меню View (Вид) вызывает одноименное диалоговое окно Toolbars (Панели инструментов) (рис. 2.23), которое управляет видимостью пяти панелей среды Visual LISP. |UJ Toolbars
. \-f Slander d h? Search
НВНИЯСЕ] Hide a Show All
• 17 Tools P Debug
Apply
(7 Vie*
Close
Рис. 2.23. Диалоговое окно Toolbars
Флажки этого окна должны быть установлены около имен тех из пяти панелей (Standard (Стандартная). Search (Поиск), Tools (Сервис). Debug (Отладка), View (Вил)), которые необходимо вывести на экран. Изменения вносятся с помощью кнопок Hide All (Скрыть все), Show АН (Показать все), Apply (Применить). Кнопка Close (Закрыть) закрывает диалоговое окно Toolbars (Панели инструментов). Меню Project (Проект) (рис. 2.24) дает возможность работы с проектами. Проект— это именованное объединение группы LSP-файлов, которое позволяет создать для этой группы один исполняемый файл с расширением fas
Глава 2. Visual L/SP
221
(можно для каждого из LSP-файлов получать свой FAS-файл, однако такой вариант менее удобен). Меню Project (Проект) имеет следующие пункты: G New Project (Новый проект): П Open Project (Открыть проект); П Close Project (Закрыть проект); П Project Properties (Свойства проекта); П Load Project FAS File (Загрузить FAS-файл проекта); "3 Load Project Source Files (Загрузить исходные файлы проекта): П Build Project FAS (Собрать FAS-файл проекта); 1 Rebuild Project FAS (Перекомпилировать FAS-файл проекта). Project
Debug
Tools
Window
ftew Project,.. Open Project...
Helo
Qrl-Shift-P
Close Project Project Properties... Load Project FAS File Load Project Source Files Build Project FAS Rebuild Project FAS •f npjsphb np_modd
Рис. 2.24. Меню Project
Все перечисленные пункты рассмотрены далее в разд. "Проекты и FAS-npuложекия" этой главы. Последние (дополнительные) строки в меню показывают имена открытых проектов. Активный проект помечен флажком. Меню Debug (Отладка) (рис. 2.25) позволяет отлаживать программы в среде Visual LISP. Это меню имеет такие пункты: 3 Step Into (Шаг с заходом); G Step Over (Шаг с обходом); 3 Step Out (Шаг с выходом); ~3 Continue (Продолжить); ^ Reset to Top Level (Сброс до верхнего уровня): 3 Quit Current Level (Выход из текущего уровня): 3 Add Watch (Добавить контрольное значение);
222
Часть I, Разработка приложений Toots Window Step Into Step Quei
Hefc F8
Step Out
art-Shift-F 8
Continue
Qrt-re
Reset to Top Level
Drl-R
urient Level
uddWatc+i...
Ctrl-Q Drl-W
ist Evaluation lagHte Breakpoint
РЭ
Dear Ail iieakpoiriti
Clrl-SNI(-F3
Last Break Souice
Clrl-FS
Trace Command Slop Once Break On E nor Animate Abort Evsljalior,
Рис, 2.25. Меню Debug
П Watch Last Evaluation (Результат последнего вычисления); П Toggle Breakpoint (Точка останова Вкл/Откл); П Clear All Breakpoints (Удалить все точки останова); П Last Break Source (Причина последнего останова); П Trace Command (Команда трассировки); П Stop Once (Останов); П Break On Error (Останов на ошибке); 3 Animate (Анимация); 3 Abort Evaluation (Прервать вычисления). Эти пункты и соответствующие им операции рассмотрены далее в разд. "Средства отладки программ" настоящей главы. Меню Tools (Сервис) (рис. 2.26) предназначено для вспомогательных операций. Tools
Window
h
AutoCAD Mode
Ctrl-5«t-C
Window Attributes Envnonment Ootions Save Setttngs
Рис. 2.26. Меню Tools (активно окно Visual LISP Console)
Глава 2. Visual LISP
223
Если в среде Visual LISP активно окно Visual LISP Console (Консоль Visual LISP), меню Tools (Сервис) имеет следующие пункты и полменю; П AutoCAD Mode (Режим AutoCAD); П Window Attributes (Оформление окна); О Environment Options (Параметры среды); П Save Settings (Сохранить параметры). Пункт AutoCAD Mode (Режим AutoCAD) включает или отключает режим использования окна Visual LISP Console (Консоль Visual LISP) в качестве командной строки системы AutoCAD (появляется подсказка Command: (Команда:)). Это дает возможность вводить команды AutoCAD прямо в этом окне. Если такой режим установлен, в меню слева от данного пункта будет стоять флажок. Подменю Window Attributes (Оформление окна) состоит из пяти пунктов: Я Syntax Coloring (Цвета синтаксических элементов); П Configure Current (Настроить текущее); П Set Current Window to Prototype (Оформление текущего окна по прототипу): Э Set All Windows to Prototype (Оформление всех окон по прототипу); Э Font (Шрифт). Пункт Syntax Coloring (Цвета синтаксических элементов) этого подменю доступен только в том случае, если в активном окне находится текст файла, имеющего любое расширение, кроме Isp. Тогда вызывается окно Color Style (Цветовой стиль) (на рис. 2.27 показано окно, открытое при работе с DCLфайлом), в котором можно выбрать цветовую гамму текстового редактора, отвечающую одному из предлагаемых вариантов. Подробнее о цветовой гамме текстового редактора рассказано далее в разд. "Написание и проверка синтаксиса программ в текстовом редакторе среды Visual LISP" настоящей главы. Ь_4, Color Style
Рис. 2.27. Окно Color Style
Часть I. Разработка приложений
224
Пункт Configure Current (Настроить текущее) предназначен для вызова окна Window Attributes (Оформление окна) (рис. 2.28). в котором можно подкорректировать действующие цветовые установки разных элементов текста. Оформляемые элементы перечислены в раскрывающемся списке. .J,Window Attributes Texl cobis Window tea
Cok>-ed ten)
Window text
I Г Tiaisoaieiit FG
["WINDOW-TEXT
| Т Transparent BG
|7 Leaicd Colas
_j]
T* width Lelt
raarflin
jio" Cancel
Рис. 2.28. Окно Window Attributes
Пункт Set Current Window to Prototype (Оформление текущего окна по прототипу) меняет установки активного окна на установки прототипа, а подпункт Set All Windows to Prototype (Оформление всех окон по прототипу) выполняет ту же операцию над всеми окнами. Пункт Font (Шрифт) подменю Configure Current (Настроить текущее) вызывает стандартное диалоговое окно Select Font (Вв|бор шрифта) для выбора используемых в окнах шрифтов. Подменю Environment Options (Параметры среды) меню Tools (Сервис) имеет три пункта: О General Options (Общие парамефы); 3 Visual LISP Format Options (Параметры форматирования Visual LISP): D Page Setup Options (Параметры разметки страницы). Пункт General Options (Общие параметры) вызывает диалоговое окно General Options (Общие параметры), имеющее вкладки General (Общие) (рис. 2.29) и Diagnostic (Диагностические) (рис. 2.30), позволяющие менять различные настройки среды Visual LISP. Пункт Visual LISP Format Options (Параметры форматирования Visual LISP) раскрывает диалоговое окно Format options (Опции форматирования) (рис. 2.31), управляющее установками форматирования для текстового редакюра Visual LISP.
Глава 2. Visual LISP
225 General Options General Diagnostic | г EDITOR options!*• Backup the file edited on first save Г" Makeoackupbjicopii.notrename [• Group taping for i DESKTOP P Save edtor wndows setting [• Ajtosave setting on e^it appLcation SETQ to prelected symbols 4 f Transparent f" Print message (^ Piompt to enter break loco
... ^JJ
Рис. 2.42. Чтение значения глобальной переменной еО в окне Visual LISP Console
Замечание В среде Visual LISP при чтении значения переменной не требуется ввод перед именем переменной восклицательного знака, как это необходимо в системе AutoCAD (см. разд. "Интерпретатор LISP" этой главы).
При отладке программы удобно следить за значениями выбранных глобальных переменных. Для этого используются пункты Inspect (Изучить), Symbol
Глава 2. Visual LISP
235_
Service (Инспектор символов), Watch Window (Окно контрольных символов), рассмотренные при изучении меню View (Вид). Вызов при помощи указанных пунктов соответствующих окон (см. рис. 2.10, 2.13 и 2.14) показывает текущие значения выбранных переменных или выражений. Содержимое этих окон может быть скопировано в окно Trace (Трассировка) для последующего обобщения. При наличии ошибок следует также пользоваться пунктами Trace Stack (Стек трассировки) и Error Trace (Поиск ошибок), которые выводят соогветствующие одноименные окна (см. рис. 2.11 и 2.12). Действенным средством отладки является расстановка в программе точек ее прерывания (останова). Это выполняется с помощью пункта Toggle Breakpoint (Точка останова Вкл/Откл) меню Debug (Отладка) или кнопки fe( панели инструментов Debug (Отладка). В таком случае программа при своем выполнении, дойдя до точки прерывания, останавливается и ждет указания от пользователя о возможном варианте продолжения работы. Для продолжения работы предназначены пункты Step Into (Шаг с заходом), Step Over (Шаг с обходом), Step Out (Шаг с выходом). Continue (Продолжить), Reset to Top Level (Сброс до верхнего уровня). Quit Current Level (Выход из текущего уровня) меню Debug (Отладка) или аналогичные им кнопки панели инструментов Debug (Отладка). Особенно эффективно сочетание точек прерывания с открытым окном контрольных значений (см. рис. 2.14). Выполняя свою программу по частям, вы будете следить за тем, как при этом изменяются значения контрольных переменных. Пункт Animation (Анимация) меню Debug (Отладка) дает возможность следить за ходом выполнения программы по исходному тексту, т. к. Visual LISP поочередно выделяет те выражения программы, которые обрабатываются в текущий момент времени. Интервал между шагами анимаиии задается в поле Animation delay (Задержка анимации) на вкладке Diagnostic (Диагностические) окна General Options (Общие параметры) (см. рис. 2.30). Для отключения анимации нужно снять флажок слева от пункта Animate (Анимация) в меню Debug (Отладка).
Сообщения о неправильном типе К часто встречающимся ошибкам относятся ошибки в типах аргументов, переданных функциям. Такие сообщения выводятся в окно Visual LISP Console (Консоль Visual LISP), а при незагруженной среде Visual LISP в командную строку AutoCAD. На рис. 2.43 приведен пример сообщения о том, что вместо целого числа в качестве аргумента функции itoa оказалась переданной переменная штвох, имеющая значение nil.
Часть I. Разработка приложений
236 ffilVisudl LISPLunsole _£ (itoa HunBox) error: bad argument type: Fixniinp: nil
Рис. 2.43- Сообщение о неправильном типе аргумента Все сообщения о неправильности типа аргумента выглядят таким образом: bad argument type (плохой тип аргумента) и далее идет сначала ключевое слово, обозначающее нужный тип (на рис. 2.43 — это Пхпшпр), а затем — фактически встретившееся значение аргумента (nil). В табл. 2.9 приведен список ключевых слов и соответствующих им типов данных (т. е. типу fixnump соответствует целое). Большинство ключевых слов похожи на функции LISP, проверяющие определенный тип данного. Таблица 2.9. Соответствие между ключевыми словами и типами данных Ключевое слово
Требуемый тип данного
consp
Точечная пара
FILE
Дескриптор файла
fixnump
Целое
lentityp
Имя примитива
listp
Список
Iselsetp
Набор
numberp
Число (целое или вещественное)
safearrayp
Безопасный массив
stririgp
Строка
symbolp
Символ
Variantp
Вариант
VLfl-OBJECT
VL А-объект
VL-Reactor
VLR-обьект
Проекты и FAS-приложения Несколько LISP-программ, выполняемых совместно, можно объединять в проекты. Каждый такой проект является самостоятельным приложением, которое может работать в исходных текстах или в компилированных файлах с расширением fas. Кроме того, проект можно скомпилировать в единый FAS-файл, что даст преимущества но скорости загрузки и выполнения.
237
Глава 2. Visual LISP
Операции с проектами собраны в меню Project (Проект). Для создания нового проекта используется пункт New Project (Новый проект), который открывает диачоговое окно New project (Новый проект) (рис. 2.44).
Папка:
Имя Файла: Т ип Файла
Сохранить JVL projecl dies
-г|
Отмена
Рис. 2.44. Диалоговое окно New project
В этом окне нужно ввести имя файла с данными о проекте (расширение файла — prj). В таком файле Visual LISP сохраняет информацию о входящих в проект программных файлах и о режимах построения исполняемого модуля приложения. После ввода имени проекта появляется окно Project properties (Свойства проекта) (рис. 2.45). Диалоговое окно имеет две вкладки: Project Files (Файлы проекта) (см. рис. 2.45) и Build Options (Параметры сборки) (рис. 2.46). В первой из них нужно в поле Look in (Искать в) выбрать папку с LSP-файлами и в появившемся слева списке обнаруженных файлов с помощью кнопки [ ] перенести нужные имена в правую часть. Если файлы проекта находятся в разных папках, можно поменять имя п а п к и и выбрать из нее следующую часть включаемых файлов. Для файлов из разных папок с помощью щелчка правой кнопкой мыши по имени файла можно вызвать контекстное меню, где выбор пункта Log filenames and size (Имена и размеры файлов) выводит в нижнюю часть диалогового окна для каждого выделенного имени его полное имя и размер. По окончании формирования полного списка компонентов нового проекта можно их упорядочить с помощью кнопок Тор (Начало), Up (Вверх), Down (Вниз), Bottom (Нижняя). Чаще всего такое упорядочение не нужно, но иногда оно требуется (например, если есть специальные файлы инициализации переменных, их необходимо вынести наверх, чтобы они загружались первыми). Вкладка Build Options (Параметры сборки) окна Project properties (Свойства проекта) (см. рис, 2.46) устанавливает режимы компиляции и связи.
238
Часть I. Разработка приложений jProject properties Project Files ] Slid Options | Home directory is D.Alpicjects Look in ——~—'
... lestDLL vil
Down Bottom!
[UnjSelect all
[UnjSeiecl all
OK
Отмена
j
Применить
Рис. 2.45. Диалоговое окно Project properties, вкладка Project Files (Project properties P.-oject Fifes
В gild Options |
г Compilation Mode • ' I ff Sland»d
r
r~ :
Optimize
• Meige files modev "" : (" One module to each file . программы. Первая строка — комментарий. Во пторой строке в переменной swidth сохраняется ширина всех полилиний (читатель может в этом месте задать свое значение).
Глава 2. Visual LISP
249
Следующие восемь строк (из них две — комментарии) предназначены для сохранения в неременных cld_ortho, old_snap и olci_o5nap текущих значений системных переменных ORTHOMODE, SNAPMODE и OSMODE и отключения режимов SNAP (ШАГ), ORTHO (OPTO), OSNAP (ПРИВЯЗКА). Затем с помощью команды LAYER (СЛОЙ) и ее опции Make (Создать) устанавливается (и. возможно, создается) новый текущий слой с именем FORMAT. При вводе в командной строке команда LAYER (СЛОЙ) обычно вызывает диалоговое окно, что в нашем случае было бы неудобно, т. к. прерваю бы автоматическую работу программы. Поэтому в программах следует пользоваться такими версиями команд, которые работают с командной строкой, без окон. Таким образом команда —LAYER (—СЛОЙ) была бы, на первый взгляд, для нас более подходящей. Однако команда LAYER (СЛОЙ) имеет особенность: при вызове с помощью функции command эта команда выполняется без диалогового окна. Далее выполняется команда PLINE (ПЛИНИЯ). Сначала ей передается начальная точка (0, 55), а затем вызывается опция Width (Ширина) и передается переменная swidth в качестве и начального, и конечного значений ширины полилинии. Затем вводятся еще две точки и с помощью строки "" команда завершается. После этого несколько раз выполняются команды PLINE (ПЛИНИЯ) и LINE (ОТРЕЗОК). В команде PLINE (ПЛИНИЯ) уже не требуется снова задавать ширину полилинии, поскольку по умолчанию будет действовать та ширина, которой мы нарисовали самую первую из линий. В конце программы с помощью соответствующих системных переменных режимы SNAP (ШАГ), ORTHO (OPTO), OSNAP (ПРИВЯЗКА) приводятся в состояние, в котором они были до начала работы программы. На рис. 2.55 показан результат выполнения программы, приведенной в листинге 2.2 и загруженной, например, с помощью функции load. Из Текста ПрОГраММЫ ВИДНО, ЧТО За ОДИН ВЫЗОВ фуНКЦИИ command МОЖНО
полностью выполнить всю команду и ее опции, а можно использовать поочередно сразу две команды (как, например, в одиннадцатой строке) или только часть команды. В последнем случае остаток команды или ее очередная часть должны быть обязательно выполнены в следующем вызове функции command. Отметим, что в программе для ввода точек использовались два способа: в виде текстовой строки (например, "С,55" — точка с координатами X — О, У = 55) и в виде постоянного списка (например, '{-168 0) - точка с координатами Х= -168, Y = 0). Знак апострофа используется, когда выражение в скобках должно обрабатываться не как функция, а как список. Можно было бь) записать координаты точки (-168, 0) и в виде {list -168 О ) .
Часть I, Разработка приложений
250 ISaUutotaD 7U04 - [Drawing l.dwq] a
j! j-* ... - -a
ч 1 — J kV -^T
I! J
•Л
'*+'• tf>
ormat
МШИ! Toed*
Draw
-L ll-
BvLaj-л
Mofify
Express
Wim; w
He^
il5J2iJ
шшт |8oH _ij;^ ^ i j ! ^ l^d i....^i^j 1 . ^iJ i j
^< О & s • С - '.
^.l0-? >• FORMAT • eyLam
Dimension
г! -? ®, >Я1 ?5(
J^j'l
ByL**r
-i
J^j
J
Л !*!
С
J^t
\QQ ПП
' 0* О s ^- № .-
у 1
Л
i i
oul2/
llj
—
Specify neHt point or [Undo]. - 1 2 0 , 4 5 jpecily neat point or [Undo] lornmand. _LIHE Specify f i r s t p o i h t -135,50 5pecily next point or [ U n d o ] : -l£0 . 5C Specify next jx>int or [Undo]: Command _1INE Specily f i r s t poirit -*% 20 Specify next point or [Undo] -45,35 specify next point or [Undo] -o-nand _LIHE Specify f i r s t p o i n t . -40 ?Q specify next point or [Undo] -4Qr3S specify neat point or [Undo] Cojmeod _ "-:,'=--
! 251322.
5U3355,0.0000
• SNAP; GRID IQRTHC POLAR' IOSHAP
&x 1
_LJ _*J
•*] * 3TRAOL LWT'j MODEL
jj i_^
-
'-
Рис. 2.55. Результат программного построения линий штампа
Оформление функций пользователя в виде новых команд AutoCAD Функции пользователя, созданные с префиксом с: и загруженные в память, сохраняются системой как команды AutoCAD. Имя команды получается из имени функции отбрасыванием символов с: (например, DELT, если функция называлась c:delt). Однако такие команды могут выполняться только вводом их с клавиатуры. К ним невозможно обратиться с помощью функций command и vl-cmdf. В программе к ним нужно обращаться только как к LISP-функциям (с префиксом с:). В технологии ActiveX (доступ к ней можно получить, выполнив функцию vl-load-com — си. долее разд. "ActiveX" этой главы) есть еще одна функция (viax-add-cmd), которая позволяет создать команду AutoCAD через функцию, не имеющую префикса с:. Возможно даже создание прозрачных команд, т. е. таких команд, которые могут выполняться во время работы другой команды (такого свойства не может быть у функций с префиксом с : ) . Синтаксис функции vlax-add-cmd: (vlax-add-cmd [ ])
Глава 2. Visual LISP
251_
Аргументы: — строка с глобальным именем команды; символ с именем ранее загруженной функции, которая вызывается при обращении к команде (функция не должна иметь аргументов); строка с локальным именем команды; — сумма устаноатенных битовых флагов (см. далее). Если локальное имя команды не задано, используется значение параметра . Возвращаемое значение — значение аргумента . При сбое возвращается значение nil. Данная функция предоставляет доступ к макросу acedRegCmds среды ObjeclARX, который формирует указатель объекта класса ftcEdcommandStack. Команды, создаваемые функцией viax-add-cmd, заносятся в соответствующую группу команд (команды документа или команды VLX-приложения с отдельным именным пространством). Не разрешается в качестве второго аргумента указывать символы функции, использующих реакторы или являющихся исполняемыми функциями реакторов (см. далее разд. "ActiveX" этой главы). Аргумент формируется как сумма битовых флагов, представленных в табл. 2.10. Если какой-либо флаг не установлен, его значение считается равным нулю. По умолчанию для аргумента принимается значение, равное 4 (ACRX_CMD_REDRAW). Таблица 2.10. Битовые флаги, используемые функцией vlax-add-ood Битовый флаг
Зарезервированный символ
_ Описание
1
RCRX_CMD_TRANSPARENT
Команда может выполняться в прозрачном режиме, т. е, до окончания предыдущей команды AutoCAD
2
ACRX_CMD_USEPICKSET
Команда может использовать набор предварительно выбранных объектов
4
ACRX_CMD_REDRAW
Команда может использовать как набор предварительно выбранных объектов, так и набор объектов, выбранных после ввода имени команды
Работа с примитивами С помощью LISP-npoграммы можно получать доступ к спискам с данными примитивов текущего рисунка. Схема работы следующая. Сначала нужно с помощью функций entiast, entnext или entsei получить имя нужного примитива. Возможно также извлечение имени примитива
252
Часть I. Разработка приложений
ФУНКЦИЯМИ ssname ИЛИ ssnamex ИЗ Набора ПрИМИТИВОВ, КОТОрЫЙ СОЗЛЗетСЯ заранее функциями ssget, ssadd, s s g e r f i r s t .
Затем с помощью функции entgsL получается список с данными примитива (этот список состоит из точечных пар с различными свойствами и координатами). Из списка с помощью функции assoc извлекается нужная точечная пара и ее данные используются в последующих вычислениях. Рассмотрим вышесказанное на следующем примере. Построим новый примитив (отрезок) с помощью выражения: (command "_LINE" ' ( 2 6 1 . 1 7 23.6 -111.429)
' { 7 2 . 0 4 7 0.52 30.622} "")
Теперь выражение {setq elst {entget (entiast))) вернет примерно такой резул ьтат: !(-1 . <Entity name: 40065е28>) {0 . "LINE") {330 . <Entity name: 40Q65cf8>) (5 . "6D") [100 . "AcDoEntity") (67 . 0) (410 . "Model"! (8 . "0") (62 . 5) (100 . "AcDLLine") (10 261.17 23.3 -111.429) (11 7 2 . 0 4 7 0.52 3 0 . 6 2 2 ) (210 0 . 0 O . C 1 . 0 ) )
Полученный список состоит из точечных пар и координатных списков, у которых первым элементом является цифровой DXF-код, а оставшаяся часть — данные этого кода. Комбинация функций cdr и assoc позволяет извлекать нужные значения: (cdr (assoc -I e l s t ) ) возвращает <entity name: 400б5е28> — имя примитива; ;cdr (assoc о eist)) возвращает "LIKE" — тип примитива; icdr {assoc 410 e i s t ) ) возвращает "Model"— имя вкладки листа (пространства); (cdr (assoc 8 e i s t ) ) возвращает "О" — имя слоя; ;cdr (assoc 62 eist» возвращает 5 — номер цвета; (cdr {assoc 10 e l s t ) ) возвращает (251.17 23.8 -111.429) — список с координатами начальной точки; (cdr {assoc 11 elst)) возвращает ( 7 2 . 0 4 7 0 . 5 2 30.622) — СПИСОК С КООрдинатами конечной точки и т. д. В части II книги "AutoCAD 2004" (серия "В подлиннике") в соответствующих примечаниях, имеющих название "Для программиста" и расположенных в главах, посвященных отдельным примитивам, разбирается назначение конкретных DXF-кодов.
Доступ к табличным данным и неграфическим объектам Помимо примитивов, в рисунке всегда присутствует определенный объем неграфической информации: описания блоков, таблицы слоев, таблицы ви-
Глава2. Visual LISP
25}_
довых экранов, таблицы типов л и н и й , размерные стили и т. п. Все они хранятся в базе рисунка примерно в том же виде, что и примитивы. Для доступа к табличным объектам в языке LISP используются функции: tblnext, tbiobjname И tblsearch.
В качестве названий таблиц могут фигурировать только следующие текстовые строки: 3 BLOCK — таблица о п и с а н и й блоков; П LAYER — таблица слоев; П LTYPE — таблица типов л и н и й ; 3 STYLE — таблица текстовых стилей; ~\ DIMSTYLE — таблица размерных стилей: L! UCS — таблица именованных систем координат; П VIEW — таблица именованных видов; 3 VPORT — таблица конфигураций видовых экранов; П APPID — таблица имен приложений. Схема использования рассмотренных функций будет ясна из примеров: ;setq iistiayi (tblnext "LAYER" т ) } возвращает список с данными первого слоя рисунка, например: ! ( 0 . "LAYER") {2 . " О " )
(70 . 0) (62 . 7 ) (6 . "Continuous")];
В этом списке в данных точечной пары с DXF-колом О находится имя таблицы, в которой ищется неграфический объект, с кодом 2 — имя слоя, с кодом 6 — тип линий примитивов слоя по умолчанию (т. е. каким типом будут отображать объекты с типом л и н и и BYLAYER (ПОСЛОЮ)), с колом 62 — цвет слоя по умолчанию. 7 0 — состояние слоя по отношению к операциям блокирования, замораживания; можно заметить, что аналогичные DXF-коды используются в списке, возвращаемом функцией entget, для примитивов: [setq iistiay2 (tblnext "LAYER") j возвращает список с данными второго слоя рисунка, например: ( ( О . "LAYER")
(2 . "Inner") {70 . 4) (62 . 4 j
(6 . "Dashed"));
[setq Iay2name {tbiobjname "LAYER" "Inner")) возвращает <Entity name: I4ab234>; теперь с помощью функции entget можно получить тот же список, что и iistiay2 в предыдущем примере. С помощью упомянутых трех функций можно проанализировать наличие в рисунке таких элементов, как описания блоков, пользовательские системы координат или текстовые стили с определенными именами, и выбрать соответствующий вариант работы программы.
254
Часть I. Разработка приложений
Свойствами, аналогичными таблицам, обладают в рисунке словари (dictionaries). К ним относятся, например, словари стилей мультилиний, групп, растровых изображений, листов чертежа. Пользовательские приложения могут создавать в рисунке свои словари. Следующие функции выполняют операции над словарями и их элементами: dictadd, dictr.ext, dictremove, dictrename, dictsearch, namedobjdict. В ЭТОМ перечне нет специальной функции модификации записи в словаре, поэтому соответствующую запись необходимо сначала удалить, а затем с новыми данными добавить к словарю. Помимо словарей рисунка в целом, любые объекты и семейства могут иметь свои словари. Для доступа к этим словарям используется метод GetExtensionDictionary. Признак наличия у объекта (семейства) словаря хранится в свойстве HasSxtensionDictionary. Так, например, фильтры и состояния слоев хранятся у семейства слоев (Layers) в словарях ACAD_FILTERS и ACAD^LAYERSTATES. О способах записи и извлечения данных из словарей см. разд. "Другие способы хранения данных" этой главы. Об объектах, семействах, методах и свойствах см. главу I.
Расширенные данные К любому примитиву рисунка с помощью приложений Visual LISP и ObjectARX можно добавлять расширенные данные, т. е. текстовые или числовые данные, которые желательно хранить вместе с геометрией (например, марки материалов, наименования узлов, секций и т. п.). Обычно наличие такой информации позволяет разрабатывать программы связи с базами данных. Расширенные данные связываются с именем определенного приложения. У одного графического примитива могут быть данные нескольких приложений, которые располагаются последовательно в определенной структуре. Если расширенные данные присоединены к примитиву, в базе рисунка они следуют за обычными данными (DXF-коды обычных данных находятся в диапазоне от -2 до 239). Изачечь расширенные данные можно с помощью функции entget, при обращении к которой нужно указывать имя приложения, с которым они связаны. В списке, возвращаемом функцией entget, расширенные данные находятся в подсписке, начинающемся с DXF-кода —3 (признак наличия расширенных данных), в котором далее располагаются точечная пара с кодом 1001 (начало расширенных данных и имя приложения, связанного с этими данными) и точечные пары с DXF-кодами 1000. 1002—1071. Назначение DXF-кодоп расширенных данных описывается в табл. 2.11.
Глава 2, Visual LISP
255
Таблица 2.11. Назначение DXF-кодов расширенных данных Код
Назначение
1000
Строковая константа длиной не более 255 знаков (256-й знак зарезервирован под символ с кодом 0)
1001
Строковая константа, используемая только для указания имени приложения, длиной не более 31 знака (если код 1001 попадает внутрь списка, организуемого с помощью DXF-кодов 1002, он интерпретируется как обычная константа, а не имя приложения; см. описание DXF-кода 1002). Имя приложения должно состоять только из цифр, латинских букв и символов S, -, _
1002
Строка, которая может иметь значения "{" или "}", имеет тот же смысл, что и левая и правая круглые скобки в обозначении списка. С помощью группы с кодом 1002 можно формировать в расширенных данных списковые структуры (они должны начинаться открывающей скобкой с кодом 1002, после чего должны идти данные, включаемые в список, а закрывающая скобка с кодом 1002 завершает оформление списка). См. ранее замечание об интерпретации данных группы 1001 в таком списке
1003
Имя слоя, с которым связываются расширенные данные
1004
Двоичные данные длиной не более 127 байтов. Обрабатываются только приложениями ObjectARX
1005
Метка объекта в базе чертежа
1010
Трехмерная точка (три вещественных числа)
1011
Трехмерная точка, интерпретируемая как положение в МСК. Такая точка перемещается, масштабируется, поворачивается и симметрируется одновременно с родительским примитивом рисунка. Если точка попадает в рамку выбора команды STRETCH (РАСТЯНУТЬ), она подвергается операции растягивания вместе с родительским примитивом
1012
Трехмерная точка, интерпретируемая как перемещение в МСК. Такая точка не перемещается и не растягивается одновременно с основным примитивом, но участвует вместе с ним в операциях масштабирования, поворота и симметрирования
1013
Трехмерная точка, интерпретируемая как направление в МСК, Такая точка не масштабируется, не перемещается и не растягивается одновременно с основным примитивом, но участвует вместе с ним в операциях поворота и симметрирования. Вектор с координатами, взятыми из группы с кодом 1013 является нормализованным, т. е. вектором единичной длины
1040
Вещественное число
1041
Вещественное число, интерпретируемое как расстояние. Оно масштабируется одновременно с родительским примитивом
1042
Вещественное число, интерпретируемое как масштабный коэффициент Масштабируется одновременно с родительским примитивом
1070
16-битовое целое число (со знаком или без знака)
256
Часть I. Разработка приложений Таблица 2.11 (окончание)
Код
Назначение
1071
32-битовое целое число со знаком (длинное целое). Хотя система AutoCAD хранит данные группы с кодом 1071 как длинное целое, LISP возвращает их как вещественные числа. Функциям entmake и entmod в точечной паре с кодом 1071 можно передавать либо целые числа, либо вещественные. ObjectARX трактует данные группы 1071 как длинные целые
Расширенные данные связываются с именем конкретного приложения. Имена приложений хранятся в рисунке в таблице символов APP1D. Чтобы занести имя приложения в эту таблицу, следует пользоваться функцией regapp. Функция regapp возвращает nil в случае ошибки (nil возвращается также, если приложение с таким именем уже регистрировалось). Функция entmake может создать примитив и сразу присоединить к нему расширенные данные. С помощыо функции entmod можно добавить расширенные данные к существующему графическому объекту. Приведем пример, в котором к последнему существующему примитиву рисунка (предположим, это отрезок) нужно добавить расширенные данные, связанные с приложением с именем AIR: (setq is (entget (entiast]) ] возвращает сохраняемый в переменной le список последнего примитива, у которого еше нет расширенных данных: ((-1 . <Entity паше: 14аа578>) (0 . "LINE") (330 . < Entity name: 14aa4f8>) (5 . "2F") (100 . "AcDbEntity"} (67 . 0) (410 . "Model") (8 . " 0 " ) (62 . 1} [100 . "AcDbLine"} (10 85.4655 223.335 0 . 0 ) (11 187.712 167.209 0.01 ; setq eciata ' ( ( - 3
("AIR"
(210 0 . 0 0 . 0 1 . 0 ) ) ; (1000 .
"Tube")
(1070 .
57) ) ) ) } сохраняет В пе-
ременной eciata список с расширенными данными, которые будут добавлены к списку le (добавляются текстовая строка с DXF-кодом 1000 и целое число с DXF-кодом !070); (setq le2 (append le edata)) объединяет СПИСКИ 1е И edata и формирует новый список 1е2: {(-1 . < Entity name: 14aa578» (0 . "LINE") (330 . < E n t i t y name; 14aa4f8» (5 . "2F") (100 . "AcDbEntity") (67 . 0) (410 . "Model") ;S . " 0 " ) (62 . 1) (100 . "AcDbLine") (10 85.4655 223.335 0 . 0 ) 111 187.712 167.209 0 . 0 ) (210 0 . 0 0 . 0 1 . 0 ) (-3 ("AIR" (1000 . "Tube") (1070 . 5 7 ) ) ) ) ;
[entmod 1е2) модифицирует примитив по новому списку и возвращает то же значение, что и предыдущее выражение; [entget (entiast) ' ("AIR") ) получает список нового последнего примитива вместе с расширенными данными, относящимися к приложению I R :
Глава 2. Visual LISP
257
( (-1 . < Entity name: 14aa578>) (0 . "LINE") (330 . < Entity name: 14aa4f8>) (5 . "2F") (100 . "AcDbEntity") ( 6 7 . 0) (410 . "Model") [8 . "0") (62 . 1) (100 . "AcDbLine") (10 85.4655 223.335 0 . 0 ) (11 187.712 167.209 0 . 0 ) (210 0.0 0.0 1 . 0 ) (-3 ("AIR" (1000 . "Tube") [1070 . 5 7 ) ) ) ) .
Размер расширенных данных любого примитива не должен превышать 16 Кбайт (16383 байта). Поэтому по мере добавления таких данных их размер необходимо контролировать. Этой цели служат две функции: xdsize — получает размер в байтах, необходимый для сохранения расширенных данных; xdroom -• возвращает целое число-- количество свободных байтов в зоне расширенных данных примитива. Перед записью в зону примитива новой порции расширенных данных следует проверить, достаточно ли для н и х места. Для удаления из примитива расширенных данных некоторого приложения необходимо с помощью функции entmod обновить данные примитива с пустым списком расширенных данных этого приложения. Если для размерного примитива задано переопределение параметров размерного стиля, то после основных ланных примитива следуют расширенные данные приложения с именем ACAD, в которых содержатся значения переопределяемых параметров стиля (см. также главу 18 книги "AutoCAD 2004" серии "В подлиннике").
Команды работы с расширенными данными • В подменю Tools (Сервис) меню Express (Экспресс) входят два пункта, выполняющие операции с расширенными данными. К этим пунктам относятся следующие: П Attach Xdata (Добавление расширенных данных) — присоединяет расширенные данные указанного приложения к примитиву, соответствует команде XDATA; П List Object Xdata (Чтение расширенных данных) — выводит в текстовое окно расширенные данные приложения, сохраненные с примитивом, соответствует команде XDLIST.
Другие способы хранения данных Данные пользователя, связанные с рисунком, можно хранить в Х-записях. Х-записи — особые не графи чес кие объекты, которые могут создаваться пользователями и хранить произвольные данные. Как примитивы, они имеют тип с названием XRECORD. 93ак. 1311
258
Часть I. Разработка приложений
Х-записи являются аналогом расширенных данных, но имеют то преимущество, что их размер не ограничен 16383 байтами. Создание Х-записей выполняется с помощью списков, содержащих, как и обычные примитивы, точечные пары с DXF-кодами в диапазоне 1—369 (в отличие от расширенных данных, которые пользуются DXF-кодами 1000 и больше). После создания Х-записи группируются в словари пользователя. Рассмотрим этот процесс на примере. Сформируем списки ixri и 1хг2 для создания с помощью функции entmakex объектов типа XRECORD (точечные пары с DXF-кодами О и 100 должны быть стандартными, остальные задаются пользователем): (setq Ixrl ' ( ( 0 . "XRECORD") (100 . "AcDbXrecord") (1 . "January") !10 110.0 5267.2 230.8] (11 -11.2 1234.6 4 2 S . O ) ( 4 0 . 637.54) (70 . 0 ) ) ) (setq Ixr2 ' ( ( 0 . "XRECORD") COO . "AcDbXrecord") (1 . "February") [10 4207.2 3128.9 -234.4) (11 -687.3 5 3 4 4 . 6 1234.6) (40 . 230.17) !70 . 1 ) ) ) .
Создадим с помощью функции entmakex объекты (Х-записи) xrl и хг2: [setq xrl [entmakex Ixrl) ) возвращает <Entity name: 4002ed58>; [setq xr2 (entmakex Ixr2)) возвращает <Entity name: 4002ed60>. Проверим с помощью функции entget данные построенных Х-записей: (entget xrl) возвращает ((-1 . <Entity name: 4002ed58>)
(О . "XRECORD") (330 . <Entity name: 0>) (5 . "2B") (100 . "AcDbXrecord") (280 . 1 } (1 . "January") (10 110.0 5267.2 230.8) [11 -11.2 1234.6 4 2 9 . 0 ) (40 . 6 3 7 . 5 4 ) (70 . 0 ) ) ;
(entget xr2) возвращает ((-1 . Entity name: 4002ed60>) (0 . "XRECORD") (330 . <Entity name: 0>) (5 . "2C") (100 . "AcDbXrecord") (280 . 1) (1 . "February") (10 4 2 0 7 . 2 3128.9 -234.4) (11 -687.3 5 3 4 4 . 6 1234.6) (40 . 230.17) (70 . 1) ). ВИДНО, ЧТО Интерпретатор ЯЗЫКа LISP ПрИ ВЫПОЛНеНИИ ФУНКЦИИ enmakex
добавил к первоначальным данным Х-записей точечные пары с DXF-кодами 330, 5 и 280. Добавим новый словарь corner к корневому словарю: (setq diclist ' ( ( 0 . "DICTIONARY") {100 . "AcDbDictionary"))) возвращает ;{0 . "DICTIONARY") [100 . "AcCbDictionary")); (setq newdic (entmakex diclist}} возвращает <Entity name: 4002ed68>; (dictadd (namedoojdict) "Comer" newdic) возвращает <Entity name: 4002ed68>. Добавим к словарю Comer объекты xrl и хг2 с названиями First и second: (dictadd newdic "First" x r l ) возвращает <Entity name: 4002ed58>; (dictadd newdic "Second" xr2) возвращает <Entity name: 4002ed60>.
Глава 2, Visual LISP
2Ь9_
Теперь, если проверить с помощью функции entget списки данных Х-записей xri и хг2, мы увидим, что списки изменились (появится связь со словарем). Таким образом, в словаре Corner имеются два объекта. Как использовать эту информацию, зависит от прикладного программного обеспечения. В технологии ActiveX (см. следующий раздел) есть функция viax-idata-put, которая позволяет сохранять любые данные в словарях рисунка или примитива. Другие операции с такими данными выполняются с помощью функций vlax-ldata-get, vlax-ldata-test, vlax-ldata-list И vlax-ldata-delete. Самым простым способом хранения данных пользователя в рисунке является использование пятнадцати системных переменных, начинающихся с префикса USER: пять — для хранения целых величин (USERI1, ..., USERI5), пять— для хранения вещественных чисел (USERR1, .... USERR5) и пять — для хранения строковых данных (USERS 1, ..., USERS5). Строковые системные переменные имеют практически неограниченную длину и в них в строковом виде можно хранить любые данные (списки и пр.).
ActiveX В главе 1 было рассказано об объектной модели системы AutoCAD и технологии ActiveX, которая позволяет довольно просто оперировать элементами этой модели. В данном разделе приводится краткая информация о технологии ActiveX в Visual LISP. За подробностями читателю можно обратиться к уже упоминавшимся книгам "Visual LISP и секреты адаптации AutoCAD" 1 и "AutoCAD Developer's Guide lo Visual LISP" 2 .
Функции, реализующие ActiveX Функции, реализующие технологию ActiveX в Visual LISP, имеют префиксы via-, vlax- и vlr-. Они уже были перечислены как в списке документированных функций (см. табл. 2.1), так и в списке недокументированных функций (см. табл. 2.3 и 2.4). Вы получите доступ к этим функциям только после выполнения в данном сеансе AutoCAD функции vi-ioad-com. Работа с каждым из объектов в технологии ActiveX ведется па уровне указателей, которые носят название VLA-объектов. VLA-объектами являются указатели не только графических примитивов, но и всех прочих (приложения, документа, пространства модели и т. д.). 1
Полещук Н. Н. Visual LISP и секреты адаптации AutoCAD. - СПб.: БХВ-Петербург. 2001.
2
Poleslichuk N. N. AutoCAD Developer's Guide to Visual LISP. - Wayne: A-LIST, 2001.
260
Часть I. Разработка приложений
В листинге 2.4 приведен пример — функция, строки из которой являются практически обязательными для приложений, использующих ActiveX. | Листинг 2.4. Функция begin_activex [defun begin_activex ( /) (vl-load-corn) Isetq acad_app (vlax-get-acad-o;)ject) ) Jsetq active_doc (vla-get-activedocument acad_app)) [setq ra.odel_space (vla-get-modelspace active_doc}] ;setq paper_space (vla-get-paperspace accive_doc)) ) ; defun
В результате работы функции begin _activex в переменной acadjapp будет получен VLA-объект самой системы AutoCAD (как приложения), в переменной active_doc - VLA-объект активного документа, в переменных modei_space и paper_space — VLA-объекты пространств модели и листа. Получив основные VLA-объекты, вы можете дальше обращаться к другим элементам иерархии системы AutoCAD (примитивам, таблицам и т.д.), их свойствам и методам (см. табл. 2.3 и 2.4). Основным средством получения VLA-объекта для примитива является ФУНКЦИЯ vlax-ename->vla-object, обратной К Н6Й будет функция viax-vlaobject->ename. Функция vlax-diMp-object дает возможность получить полную распечатку свойств и методов VLA-объекта (см. примеры использования этой функции в разд. "Применение СОМ" этой главы).
Новые типы данных Помимо VLA-объектов, в ActiveX используются новые типы данных: варианты и безопасные массивы. Они возникают в связи с применением модели СОМ фирмы Microsoft. Безопасные массивы являются массивами однотипных объектов и создаются С ПОМОЩЬЮ функций vlax-make-safearray, vlax-safearray-put-elemerit и viax-safearray-fiu. Для извлечения данных из безопасных массивов с целью использования обычных USP-функций применяются функции viaxsafearray-get-dim, vlax-safearray-get-1-boimd, vlax-safearray-get-u-bound, vlax-safearray-get-element, vlax-safearray-type, ДЛЯ Преобразования массива В СПИСОК — функция vlax-safearray->list.
Варианты — это структуры, которые могут хранить однотипные данные (тип данных является типом варианта). Создание варианта выполняется с помощью функции viax-make-vciriant, имеющей следующий синтаксис: (vlax-make-variant [ []])
Глава 2. Visual LISP
261
В качестве второго аргумента перелается целое число, задающее тип варианта. Если оно опушено, тип варианта определяется по типу первого аргумента. В качестве значения аргумента используются зарезервированные константы, значения которых приведены в табл. 2.12. Таблица 2,12. Константы, используемые в качестве типов вариантов Константа
Величина 0
vlax-vbEmpty
Описание Неинициализированный (значение по умолчанию! Пустой (без данных]
vlax-vbNull vlax-vblnteger
2
Короткое целое число
vlax-vbLong
3
Длинное целое число
vlax-vbSingle
4
Вещественное число
vlax - vbDoub 1 e
5
Вещественное число с двойной точностью
vl ax - vbS t r ing
8
Строка
vlax-vbob j ect
9
Обьект
vl ax - vbBo о 1 e an
vl ax - vbA r ray
ПОЛУЧИТЬ ТИП
11
8192
Варианта
Булево значение Массив
МОЖНО
С
ПОМОЩЬЮ
ФУНКЦИИ
vlax- variant -type,
а значение — с помощью функции vlax-variant-value. Чтобы изменить тип варианта с конвертацией прежнего значения, необходимо воспользоваться функцией vlax-variant-change-type. Часто бывают случаи, когда трехмерная точка должна быть оформлена как вариант — это можно сделать с помощью дополнительной функции viax3d-point.
Реакторы Технология ActiveX позволяет создавать особые объекты, называемые реакторами, которые дают возможность спроектировать реакцию системы на происходящие события. Реакторы еще называются VLR-объектами. Каждый реактор "знает" имена своих событий и действия, которые он должен выполнить. Действия (реакции) являются ничем иным, как функциями на языке LISP (примерно такими же, какие программируются с помощью ФУНКЦИИ action_tile В ДИЗЛОГОВЫХ ОКНЭх).
Функции LISP, имеющие префикс vir-, работают с реакторами: создают реакторы, активизируют, отключают и т. п. Для того чтобы эти функции
Часть I. Разработка приложений
262
были ДОСТУПНЫ, необходимо ВЫПОЛНИТЬ ФУНКЦИЮ Vl-load-com, КОТОрЗЯ 33-
гружает расширение языка LISP. Основные типы реакторов и символы, зарезервированные для их обозначения, приведены в табл. 2.13. Таблица 2.13. Основные типы реакторов Обозначение
Описание
:VLR-AcDb-Reactor
Реакторы базы
:VLR-DocManager-Reactot:
Реакторы документа
: VLR-Liriker-Reactor
Реакторы связи
:VLR-ОЬj ect-Reactor
Реакторы объекта
:VLR-Editor-Reactor
Реакторы редактирования (сохранены только для совместимости с предыдущими версиями]
Реакторы базы отслеживают события изменения базы объектов рисунка. Реакторы документа учитывают действия, связанные с документами (открытие, активизация, блокирование и т. п.). Реакторы связи предназначены для операций зафузки и выфузки ARX-пршюжений. Реакторы объектов следят за состоянием конкретных объектов рисунка. Реакторы типа :VLR-ECU.torReactor могут быть заменены на реакторы, приведенные в табл. 2.14. Таблица 2.14. Основные типы реакторов редактирования Обозначение
Описание
:VLR-Command-Reactor
Реакторы команд
:VLR-DeepClone-Reactor
Реакторы клонирования
:VLR-DWG-Reactor
DWG-реакторы
:VLR-DXF-Reactor
DXF-реакторы
:VLR-Insert-Reactor
Реакторы команды INSERT (ВСТАВИТЬ]
:VLR-Lisp-Reactor
Реакторы LISP-событий
:VLR-Miscellaneous-Reactor
Реакторы других событий редактирования
:VLR-Mous e-Reactor
Реакторы действий мышью
:VLR-SysVar-Reactor
Реакторы изменения системных переменных
:VLR-Toolbar-Reactor
Реакторы изменения размера кнопок панелей инструментов
:VLR-Undo-Reactor
Реакторы команды UNDO (ОТМЕНИТЬ)
Глава 2. Visual LISP
263_ Таблица 2.14 (окончание)
Обозначение
Описание
:VLR-wblock-Recator
Реакторы команды WBLOCK (ПБЛОК)
:VLR-window-Reactor
Реакторы изменения формы и размеров окна системы AutoCAD
: VLR-XREF-Re actor
Реакторы событий вставки и редактирования внешних ссылок
Примеры функций с реакторами можно найти в папке Sample\VisualLISP \reactors. расположенной внутри папки с программным обеспечением системы AutoCAD 2004.
Применение СОМ Фирма Microsoft разработала модель COM (Component Object Model— модель компонентных объектов), позволяющую связывать самые разнородные приложения. Построенный по спецификации этой модели программный комплекс предоставляет описание своих компонентов и средств доступа к ним другим программам. Это дает возможность проектировать такие системы, в которых одни приложения (приложения-клиенты) обращаются к другим приложениям (приложениям-серверам) для выполнения некоторых операций, специфичных для приложений-серверов. При этом приложениесервер может запускаться в видимом режиме (когда для него открывается свое окно) и в невидимом (приложение работает в оперативной памяти, не открывая своего окна). Приложения, поддерживающие технологию СОМ, п р и установке заносят в реестр Windows информацию о себе, о своих компонентах, объектах. Так, например, имя приложения (progio), под которым оно может быть вызвано как приложение-сервер, заносится в реестр в раздел HKEY__CLASSES_ROOT. На рис. 2.56 в окне редактора реестра видно, что последняя версия AutoCAD зарегистрирована как AutoCAD.Application.l6. Под таким именем нужно вызывать (создавать) объект приложения AutoCAD, если вы будете обращаться к нему из приложения-клиента. В реестре также находится информация о том, как можно обратиться к любому зарегистрированному объекту (для этого есть специальные интерфейсы), какие методы к нему применимы. В данном разделе рассматриваются два примера использования технологии СОМ. В первом из них система AutoCAD читает таблицу, созданную в Microsoft Excel 2002, а во втором — пишет свои данные в книгу Excel 2002.
264
Часть I. Разработка приложений
Эти два примера также являются демонстрацией одного из способов работы с электронными таблицами и базами данных из сеанса AutoCAD. Itu' Редактор реестра Файл
Правка
Вид
Избранное
^^^^•^•••^•^^^•жш
Справка
5 '"'1 AutoCAD. Ac adLayerStateManager *| Ипя ЕЁ Cj AutoCAD. AcadLayerStateManager, IE ^й(Поугчотанио) Л j AutoCAD. AcadLayerStateManager. 16 3 Cj AutoCAD. AcCmColot. 16 >; Cj AutoCAD. Application +. ._j AutoO ;. Application. IS SI C] AutoCAD. iiMPol/gonObj 16. 2 i-(_| AutoCAD. Oamrg : S [J AutoCAD, Drawirig.l Б ЕВ Cj AutoCAD. Dramrg. IS -ij AutoCAD, Drawinglnterchange. 15 - _| AUTOCAD. DwgThjmbrailCtrl.l
-i
-
1
,1
.Г1
M^KOMrbrayePlhKEV_CLASSES_ROOIWutctAD.Appl,caaf
• Тип REG_SZ
1 Значение AutoCAD Application IS
.-••-,-
i
П.16
и £fl
Рис. 2.56. Окно редаигора реестра Windows (строка, связанная с AutoCAD 2004)
Построение таблицы спецификации с импортом данных из файла Excel 2002 В предыдущей книге "AutoCAD 2002" серии "В подлиннике" был приведен пример переноса данных из Excel 2000 в таблицу, создаваемую в рисунке AutoCAD 2002. Результаты обсуждения этого примера в Интернете использованы в данном разделе. В частности, учтена проблема корректной выгрузки табличного процессора Excel из памяти (возможны случаи, когда программы, используемые в качестве СОМ-серверов, множатся в оперативной памяти). Довольно часто приходится в рисунке AutoCAD создавать таблицу (например, спецификации), данные для которой находятся в файле Excel. Пример решения такой задачи приводится в настоящем разделе. Можно было бы такую таблицу получить вставкой OLE-объекта, но это не всегда удобно.
Анализ методов и свойств приложения Excel Так же, как мы сделали это ранее для системы AutoCAD 2004, узнаем с помощью реестра, под каким именем следует в СОМ-технологии обращаться к приложению Microsoft Excel 2002. В результате получим строку "Excel.AppHcation.10" (можно пользоваться и укороченной строкой "Excel.Application" — в этом случае операционная система сама определяет, какая версия Excel является последней на данном компьютере, а програм-
Глава 2. Visual LISP
265
мист должен учитывать возможность вызова не той версии, на которую он рассчитывал). С помощью функции viax-dump-object прочитаем список методов, которые можно применять к объекту приложения Excel, и максимально допустимое количество аргументов этих методов. Делается это с помощью следующего выражения: ivlax-dump-object (vlax-get-or-create-object "Excel.Application.10"! т;
Получим список свойств и методов изучаемого объекта. Перечислим сначала методы (на самом деле они располагаются в конце листинга): ActivateMicrosoftApp (I), AddChartAutoFormat (3), AddCustomList (2), Calculate (), CalculateFull (), CalculateFullRebuild (), Centimeter sTo Points (1), CheckAbort (1), CheckSpelling (3), Convert Formula (5), DDEExecute (2), DDEInitiate (2), DDEPoke (3), DDERequest (2), DDETerminate (1), DeleteChartAutoFormat (1), DeleteCustomList (1), Doubleclick (), Evaluate (1), ExecuteExcel4Macro (1), FindFile (), GetCustomListCoriteiits (l)> SetCustomListNum (1), GetOpenFilename (5), GetPhonetic (1), 3etSaveAsFilename (5), Goto (2), Help (2), InchesToPoints (1), InputBox (8), Intersect (30), MacroOptioris (10), MailLogoff (), MailLogon (3), NextLetter (), OnKey (2), OnRepeat (2), OnTrme (4), OnUndo (2), Quit (), RecordMacco (2), RegisterXLL (1), Repeat (), Run (31), SaveWorkspace (1), SendKeys (2), SetDefaultChart (2), Undo (), Union (30), Volatile (I), Wait (1), _Evaluate (1), _Run2 (31).
• По сравнению с Excel 2000 появились новые методы: caicuiateFuiiRebuiid И CheckAbort.
Одновременно получим и названия свойств (в этот список включены и дочерние семейства), которые нам будут нужны в первую очередь: ActiveCell, ActiveChart, ActivePrinter, ActiveSheet, ActiveWindow, ActiveWorkbook, Adding, AlertBeforeOverwriting, AltStartupPath, AnswerWizard, Application, AskToUpdateLinks, Assistant, AutoCorrect, AutoFormatAsYouTypeReplaceHyperlinks, AutoraationSecurity, AutoPercentEntry, AutoRecover, Build, CalculateBeforeSave, Calculation, CalculationInterruptKey, CalculationState, CalculationVersion, Caller, CanPlaySounds, CanRecordSounds, Caption, CellDragAndDrop, Cells, Charts, ClipboardFormats, Columns, COMAddlns, ComrrandBars, CommandUnderlines, ConstrainKumeric, ControlCharacters, CopyObjectsWithCells, Creator, Cursor, CursorMovement, CustomListCount, CutCopyMode, DataEntryMode, DDEAppReturnCode, DecimalSeparator, DefaultFilePath, DefaultSaveFormat, DefaultSheetDirection, DefaultWebOptions, Dialogs, DisplayAlerts, DisplayClipboardWindow, DisplayCommentIndicator, DisplayExcel4Menus,
266
Часть I. Разработка приложений
Display FormulaBa r, DisplayFullScreen, DisplayFunctionToolTips, DisplaylnseirtOptions, DisplayNotsIndicator, DisplayPasteOptions, DisplayRecentFiles, DisplayScroIlBars, DisplayStatusBar, EditDirectlylnCell, EnableAnimations, EnableftutоComplete, EnableCancelKey, EnableEventS, EnableSound, ErrorCneckingOptions, Excel4IntlMacroSheets, Excel4MacroSheets, ExtendList, Featurelnstall, FileConverters, FileDialog, FileFind, FileSearch, FindFormat, FixedDecimal, FixedDecimalPIaces, GenerateGetPivotData, Height, Hinstance, Hwnd,IgnoreRemoteRequests, Interactive, International, Iteration, LanguageSettings, Left, LibraryPatb, MailSession, MailSystem, MapPaperSize, MathCoprocessorAvailable, MaxChange, Maxlterations, MemoryFree, MemoryTotal, MemoryUsed, MouseAvailable, MoveAfterReturn, MoveAfterReturnDirection, Name, Names, NetworkTemplatesPath, NewWorkbock. ODBCErrors, ODBCTimeout, OLEDBErrors, OnWindow, OperatingSystem, OrganizetionName, Parent, Path, PathSeparator, PivotTableSelection, PreviousSelecticns, FrotluctCode, PromptForSimimaryInfo, Range, Ready, RecentFiies, RecordRelative, ReferenceStyle, RegisteredFunctions, ReplaceFormat, RollZoom, Rows, RTD, ScreenUpdating, Selection, Sheets, SheetsInNewWorkbooi;, ShowChartTipNames, ShowChartTipValues, ShowStartupDialog, ShowToolTips, ShowWindowsIiiTaskbar, SmartTagRecognizers, Speech, SpellingCptions, StandardFont, StandardFontSize, StartupPath, SratusiJar, TemplatesPath, ThisCell, ThisWorkbook, ThousandsSeparator, Top, TransItionMenuKey, TransitionMenuKeyAction, TransitionNavigKeys, UsableHeight, UsableWidth, UsedObjects, UserControl, DserLibraryPath, UserfJame, UseSystemSeparators, Value, VBE, Version, Visible, Watches, Width, Windows, WindowsForPens, WindowState, Workbooks, WorksheetFunction, Worksheets, _Default.
• По сравнению с Excel 2000 появились новые свойства: fiutoFormatfisYouTypeReplaceHyper] inks, AutomationSecurity, AutoRecover, CalculationlnterruptKey, CalculationState, DecimalSeparator, DisplayFunctionToolTips, DisplayInsertoptions, DisplayPasteOptions, ErrorCheckingOptions, FileDialog, F^ndFocmat, GenerateGetPivotData, Hinstance, Hwnd, MapPaperSize, KewWorkbook, Ready, ReplaceFormat, RTD, ShowStartupDialog, SmartTagRecognizers, Speech, SpellingOptions, ThisCell, ThousandsSeparator, UsedObjects, UseSystemSeparators, Watches,
Тестовый файл книги Excel Предположим, что данные для таблицы спецификации, которую нам нужно начертить в рисунке AutoCAD, располагаются в листе Спецификация книги (файла) d:\r I6\readex.xls (рис. 2.57). На рисунке видно, что в нашем файле четыре листа (помимо листа Спецификация, есть еше листы Примитивы. Расходы, Материалы), поэтому про-
Глава 2, Visual LISP
267
грамма должна не только открыть книгу Excel, но еще и обратиться к нужному листу. IE? Microsoft Excel -
fteadeK
Sj Файл Омска Вид
HPrFTi
5ст§в*:а Формат Сервис Дзнные Оюно ^травка
i. у \ * ча е, <enii Groups: EXPRESS ^ ^ • • • • • • • • • • i
Unload
1
L_ Г
-lie N ame
Replace All
Load Browse .
Close
Help
Рис. 6.2. Диалоговое окно Menu Customization, вкладка Menu Groups
379
Глава 6. Меню
Разделы меню Файл шаблона меню (а следовательно, и соответствующая ему тройка файлов меню) внутри делится на группы, в каждой из которых могут быть следующие разделы: О BUTTONS — кнопочные меню; О дих — дополнительные кнопочные меню; О POP — контекстные и падаюшие меню; О TOOLBARS — панели инструментов; П IMAGE — графические меню со слайдами; П SCREEN — экранные меню; О TABLET — планшетное меню; П HELPSTRINGS — строки подсказок; П ACCELERATORS — комбинации клавиш, используемые для быстрого вызова. Разделы BUTTONS, дих, POP и TABLET имеют еще в конце названия номер (например, BUTTONS2, РОРО, РОР12, Auxi), в то время как остальные разделы номеров не имеют. Кнопочные и дополнительные кнопочные меню используются для программирования действий кнопок устройства указания (мыши или дигитайзера). Планшетное меню применяется для работы с планшетом. Графическое меню имеет вид диалогового окна с пиктограммами, как, например, окно 3D Objects (ЗМ объекты) на рис. 6.3.
Рис. 6.З. Графическое меню 3D Objects
380
Часть II. Адаптация AutoCAD
Разделы POP с номерами 1—499 используются в падающих меню, а с номерами 0 и 500—999 — в контекстных меню. Имя группы меню оформляется в начале файла шаблона меню строкой с префиксом ***MENUGROUP=, например: **«MENUGRQUP=EXPRESS
После этой строки могут идти только комментарии (строки, начинающиеся с символов //, являются комментариями) или имя раздела меню. Имя раздела меню также имеет префикс из трех звездочек и занимает целую строку, например: "-'BUTTONS1 *"РОРО ***РОР500 ***HELPSTRINGS * *"TOOLBARS
После имени раздела идут строки этого раздела (описание пунктов меню), пока не встретится строка, имеющая в начале три звездочки, означающие начало следующего раздела. Загружая файл меню, вы загружаете в память все разделы этого файла (падающие меню, экранные меню, панели инструментов и т. д.).
Падающие меню Падаюшие меню (или иначе выпадающие) используют в файле шаблона разделы POP с номерами 1—499. Заголовки активных в текущий момент падающих меню отображаются в строке меню. Состав строки меню может изменяться пользователем как в сторону уменьшения количества входящих в него заголовков, так и в сторону его увеличения. О структуре падающих меню см. разд. "Структура заголовков ч пунктов меню"этой главы.
Добавление заголовка в строку меню Состав строки меню можно изменять, удаляя заголовки падающих меню или добавляя их. Для того чтобы добавить заголовок еще одного падающего меню из числа загруженных в память, но еще не использованных, необходимо перейти на вкладку Menu Bar (Строка меню) диалогового окна Menu Customization (Адаптация меню) (рис. 6.4).
381
Глава 6. Меню В x|
^^^^^^^^^^Ш 1 1 -f- МРПИ ruel-nmi jA*Min
h enuGioups
Menu Bar j
И еш Group: dbConnecl
T
|
^enus:
Лепи Bar: Inssrl»
-
v£, Inserl formal Tools Drai/i
« Remove « Remove All
Heb
_Z-
Dose
Help
Рис. 6.4. Диалоговое окно Menu Customization, вкладка Menu Bar
На данной вкладке можно выполнять операции над заголовками падающих меню. Раскрывающийся список Menu Group (Группа меню) показывает имя той группы меню, с которой будут выполняться операции при помощи трех расположенных по центру кнопок. В списке слева Menus (Меню) указаны заголовки всех падающих меню группы, а в расположенном справа списке Menu Bar (Активные меню) -• заголовки падающих меню, которые уже отображены в строке меню системы AutoCAD, Для того чтобы добавить элемент к строке меню, нужно сначала в раскрывающемся списке Мели Ваг (Активные меню) отметить имя того меню, перед которым будет выполняться вставка. Затем в поле Menus (Меню) следует выделить имя добавляемого меню, нажать на кнопку Insert (Добавить) и закрыть окно Menu Customization (Адаптация меню). Необходимое изменение строки меню будет выполнено. Следует учитывать, что вставка заголовка, отмеченного в списке Menus (Меню), в строку падающих меню выполняется перед тем заголовком, который отмечен в списке Menu Bar (Активные меню).
Удаление заголовка из строки меню Для удаления из строки меню падающего меню необходимо на вкладке Menu Bar (Строка меню) диалогового окна Menu Customization (Адаптация меню) (см. рис. 6.4) отмстить его имя в списке Menu Bar (Активные меню)
382
Часть //. Адаптация AutoCAD
и нажать на кнопку Remove (Удалить). Кнопка Remove All (Удалить все) удаляет все активные меню.
Панели инструментов Панели инструментов тоже являются составной частью меню, они загружаются при старте системы, их количество и место расположения на экране могут изменяться пользователем. В разд. "Загрузка и удаление панелей" главы 2 книги "AutoCAD 2004" рассказано, как вызвать на экран панель, если она уже загружена в память вместе с базовым или фрагментным меню. В данной главе затронуты вопросы создания новых панелей, настройки панелей, создания и редактирования кнопок панелей, добавления кнопок на панели. В файлах шаблонов меню acad.rn.nu и acetmain.mnu описания панелей инструментов располагаются после строки **"TOOLBARS. Данные каждой панели начинаются с префикса **тв_ (например, **TB_DPAW). Основным способом для выполнения операций над панелями инструментов является приведенная на рис. 6.5 вкладка Toolbars (Панели) диалогового окна Customize (Адаптация). |Г% Customize
HBl
Commands Toolbars j Properties | Kejboard | Tod Palettes ] Toobsj
Menu Group
''"НЛГДЯЯ1 ИШНЙВ ~ JCAD Standards "_! Dimension
.
wjXiH II^^B
Ней...
ebConrrect EXPRESS
Rename .
30 raw Order "U Inquiry ^Layers '"1 Layouts
Delete
—
V. Propertres Raledt ^Reference ~1 Render
f~ Large buttons W Snow Tooltips on toolbars
3Modiiy HModify II ^ObjeclEnar
P
E^stotoXk^ rrTodTps
_-J
Close
|
Help
j
Рис. 6.5. Диалоговое окно Customize, вкладка Toolbars
Это окно можно вызвать с помощью команды TOOLBAR (ПАНЕЛЬ) или CUSTOMIZE (АДАПТАЦИЯ), а также с использованием пункта Customize |
Глава 6. Меню
383
Toolbars (Адаптация | Панели) падающего меню Tools (Сервис) или с помощью пункта Customize (Адаптация) контекстного меню панелей (рис. 6.6 и 6.7). Рис. 6.6- Контекстное меню панелей группы ACAD
Рис. 6.7. Контекстное меню панелей группы EXPRESS
Если установить флажок Large buttons (Крупные кнопки) (см. рис. 6.5) на вкладке Toolbars (Панели) диачогового окна Customize (Адаптация), то на экране произойдет изменение размера кнопок панелей (рис. 6.8). Крупные кнопки имеют размер 32 х 30 пикселов, обычные кнопки — 16 х 15. На вкладке Toolbars (Панели) расположены еще два флажка: П Show ToolTips on toolbars (Всплывающие подсказки) — включает отображение всплывающих подсказок, когда курсор подводится к кнопке панели; D Show shortcut keys in ToolTips (Комбинации клавиш в подсказках) — добавляет к тексту подсказки в скобках комбинацию клавиш, вызывающих данную команду (на рис. 6.9 приведена подсказка к кнопке JQ панели Standard (Стандартная)).
384
Часть II. Адаптация AutoCAD
П ftutoC*» ZWM - (Drawing l.dwq] 1 'in пппдала^дидишшшы^ив^^^^^^^^ии^^^^^^^^^^^^ш $Э FiE E* VBw Insat Formes Tools Draw Dmcraon Modify Ехргои WMllw Hi*
-Iffl x j
M-V
ГЛ;РП 0O
"iij
X H : 1 > i Hi\Ht-*H/Lay°"iVjU'y°"^7~
GRID. ORTHD] POU.R||OSNAP ОТПАСК! LWT |MDDEL
^
Рис. 6.В. Графический интерфейс с крупными кнопками
3 Clipboard |Ctrl+C)l
Рис. 6.9. Подсказка к кнопке с отображением комбинации клавиш
Редактирование панелей В правой части вкладки Toolbars (Панели) диалогового окна Customize (Адаптация) (см. рис. 6.5) расположены кнопки следующих операций: П New (Новая) — предназначена для создания новой панели; 3 Rename (Переименовать)- выполняет переименование панели, выделенной в расположенном слева списке Toolbars (Панели); П Delete (Удалить) — служит для удаления выделенной панели. Для добавления к. существующей панели кнопки, хранящейся в архиве системы, нужно в диалоговом окне Customize (Адаптация) перейти на вкладку Commands (Команды) (рис. 6.10).
Глава 6. Меню
385
И* customize
ВВ|
Е ommands [Toolbars] Piopertiej j Keyboard] Tod Palettes j ~ategofies Flle
Commands _±j
Edit View Iriseit Format Tools jIOHMMMMHMMM • . Modify Window Help LIsef defined Hesctiption Creates a poMine ol sequential acs lo foirn a doud shape' REVCLOUD
..т!
si, Divide ..-'•Measure J3 Hatch
^]
"C2 Boundary [с£] Region Wipeout А НШле Text К Single Line Text Ron с~.л
^j
«" 5 how image and name 1 -, Drag command to drawing area Jo -% create new toolbar. Diag command lo тtoolbar lo add button. Tip
Close
Help
Рис. $.10. Диалоговое окно Customize, вкладка Commands (флажок Show image and name установлен)
На этой вкладке в списке Categories (Категории) необходимо выбрать имя категории (имена категорий соответствуют именам падающих меню), после чего в расположенном справа списке Commands (Команды) будут показаны изображения входящих в отмеченную категорию кнопок и наименования соответствующих операций (здесь они условно названы командами). Если сбросить флажок Show image and name (Пиктограмма и имя), то список Commands (Команды) будет показывать только пиктограммы кнопок, без наименований (рис. 6.11). Теперь следует выбрать кнопку и просто перетащить ее внутрь той панели и на то место, куда вы хотите эту кнопку добавить. Если вам нужно создать пустую кнопку с последующим редактированием ее свойств, можно воспользоваться категорией User defined (Пользовательская), в которой находятся пиктограммы пустой обычной кнопки и пустой групповой кнопки (рис. 6.12). Если мышью перетащить любую кнопку панели, находящейся на экране, внутрь окна Customize (Адаптация), что приведет к удалению этой кнопки с панели. При открытом окне Customize (Адаптация) контекстное меню, которое вызывается щелчком правой кнопки мыши по кнопке панели инструментов, расположенной внутри графического экрана системы AutoCAD, имеет вид, приведенный на рис. 6.13. I - Зак
Часть II. Адаптация AutoCAD
386
• ?|x|
HS Customize С ommands | Toobars j Piopertiei | Keyboard j Tool Palettes ]
lategaie!
Commands
Fie Edit View Insert Format Tools
/
/
^
о о £J
©
Л f.
Dimension Modify Window Help User defined
/
* О
~
/Т? ^
~"
0 0
оо О _d
description: Places evenly spaced point objects or block! along the length я perimelei of an object- DIVIDE
~~ £ho+v knage and name . | . Drag command to drawing area to ii' create new toolbar. Diag command to Л toolbar to add button
Close
htelp
Рис. 6.11. Диалоговое окно Customize, вкладка Commands (флажок Show image and name сброшен)
p* Customize Commands I Caleaoiies File Edi! Visw , .er.
Properlieij Kej*oard| TodPaWlesj Commands - -^ ^
Famat Tools Draw Dimension Modify Window Нф
Г £hon image and name Use Defined Button
Tip
Drsg commard lo drawing aiea to cteate new toolbar. Drag command to toobar lo add button.
Close
Help
Рис. 6.12. Диалоговое окно Customize, вкладка Commands, категория User defined
Глава 6. Меню
387 Reset
Delete Сову Button Image Paste Button Image Reset Button Image Edit Button Image... • Begin a Group Properties...
Рис. 6.13. Контекстное меню кнопки панели при открытом окне Customize
Перечислим пункты этого контекстного меню: П Reset (Сброс) — сбрасывает все изменения, связанные с кнопкой; О Delete (Удалить) — удаляет кнопку; П Copy Button Image (Копировать пиктограмму) — копирует пиктограмму в буфер обмена; 3 Paste Button Image (Вставить пиктограмму) — заменяет изображение кнопки на пиктограмму из буфера; Reset Button Image (Восстановить пиктограмму) го грамму;
восстанавливает пик-
П Edit Button Image (Редактировать пиктограмму) — вызывает окно редактирования пиктограммы (см. долее)', D Begin a Group (Начать группу) — вставляет в панель или убирает из панели вертикальный разделитель перед данной кнопкой (наличие разделителя перед кнопкой показывается в контекстном меню флажком перед пунктом Begin a Group (Начать группу) — см. рис. 6.13); О Properties (Свойства) — вызывает вкладку окна Customize (Адаптация) со свойствами кнопки (см. долее). Указанные пункты позволяют изменить изображение на любой кнопке, отредактировать связанные с ней выполняемые команды. При выборе в контекстном меню, приведенном на рис. 6.13, пункта Properties (Свойства) в диалоговом окне Customize (Адаптация) открывается вкладка Properties (Свойства), которая меняет свое название на Button Properties (Свойства кнопки) (рис. 6.14). Вкладка Button Properties (Свойства кнопки) отображает свойства той кнопки, которая была выбрана при вызове контекстного меню. Если щелкнуть в этот момент по другой кнопке любой панели, то в окне будут отображены ее свойства. Еще один способ вызова вкладки Button Properties (Свойства кнопки)"— перейти в диалоговом окне Customize (Адаптация) на пустую вкладку Properties (Свойства) и щелкнуть по нужной кнопке панели.
Часть II. Адаптация AutoCAD
388 Г* Customize Commands I Tcofcsi Btft on Proper te& | Keyboard] Tool Pabltes Name1
Diametei Dimen.iur
Desciiptiorr
Creates diameter dirnen.ion. for ciicles and arcs: DIMDEAMETER
BuHcn Image ~
M aero associated with Iha butlon. C^C^dirfdiarrieter
Dos
Help
Рис. 6.14. Диалоговое окно Customize, вкладка Button Properties
Опишем структуру окна, изображенного на рис. 6.14. Поле Name (Имя) содержит текст подсказки, высвечиваемый при подведении курсора к кнопке. В поле Description (Пояснение) находится текст более полной подсказки, которая выводится в строку состояния окна AutoCAD в тот момент, когда в графическом экране курсор находится над кнопкой. Поле Macro associated with this button (Макрос для данной кнопки) содержит текст макроса, выполняемого системой при щелчке по кнопке (о структуре макроса см. далее разд. "Структура заголовков и пунктов меню" этой главы). В состав области Button Image (Пиктограмма) входят увеличенная пиктограмма выбранной кнопки, кнопка Edit (Редакт) (вызывает окно редактора пиктограмм) и список, имеющий л и н е й к у прокрутки, с изображениями всех кнопок системы. Пользователь имеет возможность заменить изображение на выбранной кнопке на другую пиктограмму и отредактировать его на уровне пикселов. Кнопка Apply (Применить) диалогового окна переносит изменения, сделанные в окне, в свойства кнопки панели, а к н о п к а Reset (Сброс) — аннулирует изменения. Если для отображения свойств была выбрана не простая кнопка, а групповая, то вкладка Properties (Свойства) диалогового окна Customize (Адаптация) изменит название на Flyout Properties (Свойства подменю) (рис. 6.15). На этой вкладке приводится список всех панелей загруженных в данный момент групп и выделено имя той панели, которая связана с выбранной
Глава 6. Меню
389
групповой кнопкой. В области Toolbar preview (Просмотр панели) показаны кнопки отмеченной панели. Пользователь может при желании отметить в списке имя другой панели и связать с ней выбранную кнопку. f*ft Customize Commands | Toolbar!
F>out Piopeities
Keyboard I Tool Palettes I
' oofoar associated wrh this flycuJl' Toolbar name CAD Standard! Oiaw Draw Order ET Blocks ET. Layers ET. Standard ET-Te*t
-TcolBaiprevK Vi
Menu group ACAD ACAD ACAD EXPRESS EXPRESS EXPRESS EXPRESS ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD
ЯГОД Layouts Modify Modify II Object Snap Reference Render
1*
® *> |fe!*^
Z. A[ p\y
Close
Re sel
Help
Рис. 6.15. Диалоговое окно Customize, вкладка Flyout Properties
Создание новой панели Пользователь может создать новую панель с помощью кнопки New (Новая) на вкладке Toolbars (Панели) диалогового окна Customize (Адаптация) (см. рис. 6.5). В этом случае открывается диалоговое окно New Toolbar (Новая панель) (рис. 6.16). [•«New Toolbar
BE3[
Toot-ar name. Т ciolbarl Save loolbar и menu gtouo.
IACAD
3 OK
|
Cured
Рис. 6.16. Диалоговое окно New Toolbar
В данном окне необходимо в раскрывающемся списке Save toolbar in menu group (Сохранить панель в группе меню) выбрать имя той группы, в кото-
390
Часть II. Адаптация AutoCAD
рую будет включена новая панель инструментов, а в поле Toolbar name (Имя панели) ввести ее имя. После этого в графическом окне появляется изображение созданной панели (рис. 6.17).
Рис. 6.18. Новая панель, созданная перетаскиванием кнопки
Рис. 6.17. Новая пустая панель
На созданной панели еще нет ни одной кнопки. Кнопки нужно добавлять, используя вкладку Commands (Команды) (см. рис. 6.10—6.12). Другой способ создать новую панель — перетащить какую-нибудь кнопку с вкладки Commands (Команды) на свободное место графического окна, после чего система создаст новую панель с именем по умолчанию и одной кнопкой (рис. 6.18). Новые панели сразу же отображаются в списке Toolbars (Панели) вкладки Toolbars (Панели) окна Customize (Адаптация) (на рис. 6.19 это панели Toolbarl и Toolbar!). |Г& Customize Commands Toolbai! | Fistful Ptoperiies | Kejfcoard | Tool Palette? j Toobars "] Reference j Render ~~, Shade _i Solids "J Solids Editing У> Standard ^Styles 31 Surf aces gToobafl ^Toolbars fiUCS ~UCS 1! " iView 3iViewports TiWeb
Menu Group *]
£К1^^вН^^^ЯвЯ EXPRESS
Me/i i Rename. . [ Delete
Г" Large buttons P Show ToolTrps onloobai fv Shod shortcut key! in ToolTips
_^j
Close
Help
Рис. 6.19. Добавление новых элементов к списку панелей
Глава 6. Меню
391
Контекстные меню Контекстное меню— это меню, которое вызывается по щелчку правой кнопки мыши и пункты которого зависят от контекста (например, от имени выполняемой команды). Контекстным меню в файле шаблона соответствуют разделы ГОР с номерами 0 и 500—999. Меню РОРО вызывается щелчком правой кнопкой мыши при нажатой клавише <Shift> (фактически оно вызывается через меню AUX2 — см. долее разд. "Кнопочные меню" этой главы), остальные — щелчком правой кнопки мыши без клавиши <Shift>. Структура разделов контекстных меню аначогична структуре разделов падающих меню. После строки с именем раздела должна идти строка с именем контекстного меню (строка начинается двумя звездочками). В системе AutoCAD 2004 для системных контекстных меню зарезервированы следующие разделы (в скобках приведены дублирующие имена): О
РОР500 (GRIPS];
О POF509 iOBJECT_HATCH) ;
П РОР501 (CMDEFAULT);
О
РОР510 A,
о&
agg /"•fr
оо
Qft /-• [X о -fol-v «a ^u
. f~ x nr l IHiVModeHLajmuil jCLepjri/~
~UJ J
Specify f irst corner poj-nt or [Chafcfer'Elev3tion' Fillet'Thjckne5s--'UidCb] Specify other corner point or [Dimensions]
|1_8тэз1э.9агэ7э.с«ю
РОЛИ IOSMUP отвлек; LWT;|MODEL Рис. 6.24. Плавающее положение экранного меню
Jrf"
Часть II. Адаптация AutoCAD
396 1 ai Autut AD 7ШМ - Г Drawn lUZ.dwg]
ЙШ В 1
£2 Fte EtM Wev- Insert Format Tgct Craw Drnerwi Mcdfy E«c"«s УЛт*)« Н?Ь
ч Ч
'
-
-; ^ Г •
:
;Ов'Эио j^BB.J.ay.,
ЯЕ£
Ji» /i ilfrlstsnterd
X
;
i|:^l'^"
— ""'."— -j— 4jl_.- — -— '-"'-' — ^-j '.".'I .' .. . r^J
-^J
4utcO D
.-.;Д.] XJ
-t:;-,; ч f. ^ZlTl a
d' ,
... . L_,
>_
—1
.
] r^'^J 4>f 1
: ^ *Jb
«EW;
иеви
FCT4ST TOOLS 1 TOOLS?
wsw MCCIFVI MOC1P •2
HBP
•o &
E3 nn _ , : ' 'О
\ \
О
pis
л
\ \
__, \/
; IA г ч Т i -:Г u
|*fcr
'\
^y.
\-^-^-^ ~
' ~^~-^__ ^ \—— - — - ~T
;O -'
14 • 4
> X HHAMcddiLwill Ujyo-tJ/
,j HI
|>1
Ep ici£y Ilrst corner point or ГС^втЕсг 'El^ue t innr^Fi 1 let/ThicVneES/Jidthl '"SpeciEv other corner point or [Dmensions]
"|й6еэе7.1гэбг7э"эг1мо
S'W GFIU; ORTHO! poLwJosneF DIIVCK, LWT.[MODEL
*|
-1; , .
Рис. S.25. Левостороннее фиксированное положение экранного меню
Листинг 6.1. Фрагмент корневого экранного меню файла acad.mnu **"SCREEN "S
[AutoCAD ]"C"C"P(ai_rootmenua) "F [* * * * ]SS=ACAD.OSHAP
;FILE
]$S=ACAD.OI_FILE
[EDIT [VIEW 1 [VIEW 2 [ INSERT [FORMAT
]SS=ACAD.02_EDIT ]SS=ACAD.03_VIEW1 ]$S=ACAD.04_VIEK2 ]SS^ACAD.05_INSERT ]$S=ACAD.Q6_FORMAT
Сразу же после строки с именем раздела SCREEN следует строка с именем экранного меню (s), предваряемым двумя звездочками. Затем следует описание пунктов меню s, которое подчиняется обшей структуре пунктов меню (см. разд. "Структура заголовков и пунктов меню" этой главы), хотя тег не используется и он может отсутствовать. Обычно длина пункта экранного меню не превышает восьми символов.
Глава 6 Меню
397
В наименованиях пунктов экранных меню традиционно применяется следующий принцип. Если с помощью пункта вызывается другое экранное меню, то наименование пункта не имеет на конце никаких символов. Если с помощью пункта выполняется команда системы AutoCAD или приложения, то наименование пункта завершается двоеточием. Если с помощью пункта вызывается диалоговое окно, то наименование пункта заканчивается многоточием. В макросе, назначаемом пункту меню, используются средства, описанные в разд. "Структура заголовков и пунктов меню" этой главы. В верхнем пункте (с наименованием AutoCAD) используется LISP-выражение (ai_rootmenu), которое возвращает корневое экранное меню. Операция, начинающаяся с символов $з=, вызывает экранное меню первого уровня. Имя экранного меню обычно указывается с именем группы, которое отделяется точкой от имени меню (например, ACAD. FORMAT). Если имя группы опушено, то система AutoCAD считает, что нужно загрузить экранное меню с таким именем из базовой группы. Если щелкнуть левой кнопкой мыши по пункту * * • *, то появится экранное меню следующего (первого) уровня с функциями объектной привязки. В листинге 6.2 приведено экранное меню OSNAP из группы меню ACAD. '• Листинг 6.2. Экранное меню первого уровня OSNAP из файла acad.mnu *''OSNAP 3 [Tracking]_tt [From ]_from !Osn.ap:
] '_-osnap
[ Endpoirit ] _endp [Midpoint]_mid [Intersec]_int [App Int ]_appint !Extens ]_ext [ Parallel]_par [Center ]_cer, [Quadrant]_qua [Tangent ]_tan [Perpend l_per [Node ]_nod [Insert ]_ins [Nearest ]_nea [None ]_non [Osnap...]'_+dsettings 2
398
Часть //. Адаптация AutoCAD
Это экранное меню содержит, в основном, функции объектной привязки и используется обычно во время работы команд, требующих указания на экране графических объектов. Один пункт заканчивается двоеточием и один — многоточием. В строке с именем этого меню присутствует еще число 3. Это означает, что данное меню будет загружаться таким образом, что первый пункт (Tracking) займет в зоне экранного меню строки, начиная с третьей. Поэтому содержимое строк 1 и 2 останется прежним. При загрузке экранного меню следующего уровня желательно, чтобы оно закрывало только пункты меню предыдущего уровня (и, может быть, даже не полностью) и не перекрывато постоянно используемых пунктов меню (например, корневого меню).
Средства смены меню Смена экранного меню выполняется либо с помощью комбинации символов, начинающихся в макросе с ss= (см. листинг 6.1), либо с помощью функции menucmd (об этой функции см. также разд. "Для программиста" этой главы), LISP-выражен не {menucmd "S-ACAD.OSNAP") тоже загружает в зону экранного меню меню первого уровня OSNAP. Для возврата к предыдущему меню используется либо комбинация $s= (на конце пробел или точка с запятой), либо аналогичная комбинация с именем группы (например, $S=ACAD., что означает возврат к предыдущему меню группы ACAD). Такой же принцип работает при загрузке с помощью функции menucmd. Системная переменная MENUCTL, если она имеет значение 1, заставляет при работе команд системы AutoCAD автоматически менять содержимое экранного меню на экранное меню, соответствующее выполняемой команде (в таком меню обычно отображаются опции этой команды). Так, например, при выполнении команды CIRCLE (КРУГ) в зоне экранного меню появится меню с именем CIRCLE. Если значение системной переменной равно 0, то автоматическая смена меню не происходит.
Использование комбинации ЛН Экранное меню может использоваться и для облегчения клавиатурного ввода каких-то наименований или отдельных символов. Например, если в вашем рисунке находится модель какого-то изделия, в котором имена слоев объектов задаются исключительно цифрами и несколькими символьными колами. Тогда можно составить отдельное экранное меню, в котором каждая из 10 цифр (от 0 до 9) будет занимать отдельную строку, и дополнить
Глава 6. Меню
399^
это меню наиболее употребительными сокращениями (например, ДЕТ, УЗЕЛ и т. п.). Тогда в соответствующий момент работы вашего приложения (когда оно запрашивает у вас сложное имя слоя) вы вместо нажатия клавиш сможете щелкать м ы ш ь ю по строкам экранного меню с нужными цифрами и они будут выводиться в командную строку. Однако если не принять специальных мер, то после каждой цифры система AutoCAD будет имитировать еще нажатие клавиши <Enter>, что приведет к досрочному вводу числа. В качестве такой специальной меры следует после каждой цифры в макросах вставлять комбинацию "Н, имитирующую работу клавиши , что позволит выводить в командную строку нужную вам цифру без нажатия клавиши <Enter> (как будто вы отменили его). То же самое относится к кодовым сокращениям. Пример фрагмента меню, использующего комбинацию А Н, показан в листинге 6.3. | Листинг 6.3. Пример пользовательского экранного меню для ввода цифр **NDMBERS 3 [-]-"Н ЕОЗО'Н
;i]i"H [2]2 Л Н [3]3"Н [4]4"Н [5]5-Н
;б]6"н [7]7~Н [8]8-Н [9]9ЛН [ДЕТ]ДЕТ"Н [УЗЕЛ]УЗЕЛ"Н
После набора в командной строке с помощью такого меню некоторого названия (например, УЗЕЛ68-3909-612), вам нужно будет самому нажать клавишу <Enter> или нажать правую кнопку м ы ш и для вызова контекстного меню, в котором найти пункт Enter.
Графические меню Графические меню (см. рис. 6.3) используют заранее подготовленные слайды и библиотеки слайдов. Описание графических меню располагается в разделе IMAGE. Имена меню, которых в разделе может быть много, записываются в отдельных строках с префиксом из двух звездочек.
Часть II. Адаптация AutoCAD
400
Замечание Для подготовки слайдое используется команда MSLIDE (ДСЛАЙД), а для объединения их в библиотеку — исполняемый файл slidelib.exe, расположенный в папке с программным обеспечением системы AutoCAD.
Кнопочныеменю Кнопочные (из разделов BUTTONS с номерами 1—4) и дополнительные кнопочные меню (из разделов AUX с номерами 1—4) идентичны по структуре. Используются только в базовых меню и игнорируются во фрагментных меню. Обычное устройство указания (мышь) использует меню из разделов AUX, a дополнительные устройства (дигитайзер) используют BUTTONS для программирования работы кнопок. Меню дих работают при следующих комбинациях: П AUXI — < Right Button>; О Аих2 -- <Shin>+ (соответствует контекстному меню объектной привязки); 3 AUKS — +; a AUX4 — <Shift>++ — это текст, который выводится в качестве заголовка меню (о заголовке панели чуть далее). Тег должен начинаться с символов ю_. После тега может идти любое количество пробелов (например, с целью красивого выравнивания текста в файле шаблона меню), но не менее одного. Квадратные скобки здесь не означают необязательного присутствия расположенного между ними текста, а всего лишь означают присутствие в описании заголовка символов квадратных скобок. Пример: ID_MnHelp
[SHelp]
Наличие символа $ перед буквой н в заголовке sHelp означает, что комбинация клавиш + раскрывает падающее меню Help (Справка) на экран. В качестве тега у заголовка выбрано ю_мпне1р. Имя, используемое в теге, не должно совпадать с тегами других заголовков и пунктов меню (но должно совпадать с тегом того пункта раздела HELPSTRINGS, в котором записан текст подсказки к рассматриваемому пункту меню). I ip,:iu?;iev п р и м е р Ji'io.iouK.-i i u i n e . n : , с т р \ к т \ р : ; KO'.opoio несколько отлн иется от приведенной ранее структуры заголовков остальных видов меню: ID_TbModify
[JToolbar("Modify", _Left, _Show, 1, 0, 1> )
__
402
Часть II. Адаптация AutoCAD
Здесь показан заголовок панели Modify (Редактирование), который начинается с ключевого слова _тоо!Ьаг. за которым в скобках следуют параметры панели. Панель зафиксирована слева (_Left), видна на экране (_show). Остальные параметры указывают либо текущие координаты панели на экране, либо те координаты, с которыми выгруженная панель восстановится, если ее загрузить. Для выгруженной панели вместо _Show применяется параметр _Hide. Вместо параметра _Left. могут использоваться следующие значения: П _Fioating — панель находится в плавающем положении; П _тор — панель зафиксирована в верхнем горизонтальном положении; П _Bottom — панель зафиксирована в нижнем горизонтальном положении; О _Right — панель зафиксирована в правом вертикальном положении. Последние числовые параметры задают соответственно координаты положения панели и количество рядов кнопок для панели, находящейся в плавающем положении. В зависимости от того, находится панель в фиксированном или плавающем положении, первые два числа являются либо номерами ряда и столбца, либо номерами пикселов левого верхнего угла панели.
Структура пункта меню Пункт меню имеет следующую структуру: [) Здесь — это тег, начинающийся с символов ю_ и отличающийся от тегов других пунктов и заголовков меню;
"Т
Имитация клавиша
пробел
Имитация пробела (вне выражений LISP и DIESEL пробел аналогичен нажатию клавиши <Enter>)
Пауза в работе команды (ожидание ввода данных пользователя) Признак продолжения макроса на следующей строке Вывод на экран падающего, графического или контекстного меню Признак циклического выполнения пункта 5
Признак операции вызова раздела меню (после символа S идет одно- и двухсммвольный префикс раздела) или признак начала выражения языка DIESEL (после $ идет м) Начало команды или опции системы AutoCAD в интернациональном написании
"В
"D
Включение/выключение режима SNAP (ШАГ)
или
Принудительное завершение последней действующей команды
<Esc>
Включение/выключение счетчика координат
•=Ctrl>+ или
Переход к следующей изометрической плоскости
+<E>
404
Часть II. Адаптация AutoCAD Таблица 6.1 (окончание)
Символы
"Н
Описание
Клавиши
Включение/выключение режима GRID (СЕТКА]
+ или
Отменяет последний символ в буфере командной строки
Включение/выключение режима ORTHO (OPTO)
+ или
Включение/выключение эхо-вывода "Q
Включение/выключение эхо-вывода всех сообщений командной строки на принтер Включение/выключение режима планшета
+
Переключение на следующий видовой экран
+
Имитация символа с кодом 0, подавляющего автоматическое добавление пробела в конце пункта меню
Символы "р изменяют состояние эхо-вывода пункта меню (изменяют значение системной переменной MENUECHO). Пример пункта меню: ID_MINDOWjriLE_VERT
[STile V e r t i c a l l y ] "-C"C_syswindows;_vert
Этот пункт входит в падающее меню Window (Окно) и выполняет команду SYSWINDOWS (ОКНО) с опцией tile Vertical (Слева направо). Пункты панелей несколько отличаются, например: ID_QNew
[_Button("QNew", RCDATA_16_NEW, RCDATA_16_NEW)]"C"C_qnew
У пункта панели в квадратных скобках вместо простого текста фигурирует ключевое слово _Button. После него в скобках идет сначала параметр "QNew" — подсказка к кнопке. Затем перечисляются имена пиктограмм, которые используются в режимах обычных и крупных кнопок. Макрос приведенного пункта выполняет команду QNEW (БСОЗДАТЬ).
Элемент Control В качестве пунктов меню панелей могут встречаться еще элементы типа Control (Список), которые являются раскрывающимися списками. На рис. 6.26 показана новая панель Styles (Стили), в которую входят сразу два таких элемента: список текстовых стилей и список размерных стилей. На рис. 6.26 показана также подсказка, которая выводится при подведении курсора к списку.
Глава 6. Меню
405
&•
Standard
j-J ^ IBO-25
Text Stye Control ^
Рис. 6.26. Панель инструментов Styles с подсказкой к раскрывающемуся списку
Структура пункта меню с элементом Control (Список) следующая: [Control <min>] Параметр может принимать только одно из перечисленных з н а ч е н и и : П _Coior — цвета; О _Dimstyie — размерные стили; П _Layer — слои; О _Linetype — ТИПЫ ЛИНИЙ;
О _Lineweight — веса линий; П _piotstyie — стили печати; П _Refblkname — внешние ссылки; 3 _Txtstyle — текстовые стили; 3 _исзмападег — ПСК (пользовательские системы координат); П _view — виды; П _viewportscale — масштабы видовых экранов. • Новый тип списка — _Txtstyle. Элемент Control (Список) обычно используется для установки в рисунке или его части текущего значения слоя, цвета, масштаба и т. п.
Средства редактирования файла acad.mns Текущее состояние группы меню (положение панелей и др.) система AutoCAD автоматически сохраняет в файле с расширением mns. • Для быстрого редактирования файла acad.mns в падающем меню Tools (Сервис) системы AutoCAD 2004 появился новый пункт Customize | Edit Custom Files | Current Menu (Адаптация j Редактирование файлов Текущее меню). Этот пункт использует новую команду AI_EDITCUSTFILE. Команда A1_EDITCUSTFILE запрашивает имя текстового файла и затем открывает его с помощью программы Блокнот (Notepad). Поэтому данная команда может использоваться как для редактирования файла acad.mns, так и других текстовых файлов, расположенных в папке Support внутри папки Documents and Settings текущего пользователя.
406
Часть II. Адаптация AutoCAD
Раздел ACCELERATORS В разделе ACCELERATORS собираются описания всех комбинаций клавиш, выполняющих операции системы AutoCAD, кроме горячих клавиш, работающих по принципу +. Комбинации клавиш и выполняемые ими действия могут быть записаны в меню строками в двух вариантах. Первый вариант: [ ]
Здесь — это имя тега любого из пунктов любого загруженного меню, а — описание используемой комбинации клавиш (обычные и функциональные клавиши указываются в двойных кавычках, а для специальных клавиш используются обозначения CONTROL, ALT, SHIFT, INSERT, DELETE, ESCAPE, UP, DOWN, LEFT, RIGHT).
Примеры: П ID_Copyclip П ID_Save
[CQNTROL+TQOLBARt-"C"] ; COMTROL-t-TOOLBAR т"S " ]
П !D_Pasteclip [COHTROL+TOOLBAR-^-"V"] О IDJ/BAIDE
[ALTVF11"]
Замечание' •*ч___^^^^^^^^^^^^^^^^^^^^^^^^и
^^f
Появившееся в меню системы AutoCAD 2004 новое обозначение TOOLBAR, видимо, означает, что работа комбинации клавиш как-то связана с наличием на экране панели Standard (Стандартная). Пока влияние панели уточнить не удалось.
Другой вариант описания комбинаций клавиш: [< комбинация;-]
Здесь не используется ссылка на теги других пунктов, зато имеется явное описание макроса, выполняемого по комбинации клавиш. Примеры: П
[CONTROLV'L"]"0
[] [COMTROL+"R"] n V
При втором варианте невозможно применение в макросах символа \, используемого для паузы, как этот допускалось, например, в падающих меню. Назначая комбинации клавиш, пользователь должен помнить, что одиночные нажатия функциональных клавиш — используются системой AutoCAD для переключения режимов. Кроме того, традиционно клавиша применяется для вызова помощи, клавиша -- для переключения между текстовым и графическим экранами, а некоторые комбинации зарезервированы операционной системой Windows CONTROL+ESCAPE, CONTROLS SHI ET+ESCAPE И Др.).
Глава 6. Меню
Цифровые
407
клавиши
на
правой
(цифровой)
клавиатуре
обозначаются
NUMPADO, NOMPAD1, ..., HUMPAD9.
Для редактирования пользовательских комбинаций клавиш можно использовать также вкладку Keyboard (Клавиатура) диалогового окна Customize (Адаптация) (рис. 6.27). '-fc-Customize Commands j Toolbars j Properties
Keyboard j TooTPdeltes j
Categories
Menu Group
File Menu
&£!£••
Commands
dbCcnnecl EXPRESS
New Open Close : -. • i Lose Save
Assign Remove
Current Keys
Show AIL..
Press new shortcut key:
Desciiplran: Saves a copy of the current drawing under a new fife name: SAVFAS
Currently assigned to.
Close
Help
Рис. 6.27. Диалоговое окно Customize, вкладка Keyboard
Сначала в списке Menu Group (Группа меню) следует выбрать ту группу, в которой изменяются комбинации клавиш. Затем в раскрывающемся списке Categories (Категории) необходимо отметить один из элементов, которому будут назначаться или меняться ранее назначенные комбинации клавиш. Элементы в списке Categories (Категории) делятся на следующие большие группы: П падающие меню (File Menu, Edit Menu, View Menu и т. д.); П панели инструментов (Dimension Toolbar, Draw Toolbar, Draw Order Toolbar и т. д.); П команды системы AutoCAD (AutoCAD Commands). После выбора нужного элемента списка Categories (Категории) система отображает в расположенном ниже списке Commands (Команды) все пункты или команды, входящие в выбранную категорию. Каждому пункту или команде можно назначить или изменить комбинацию клавиш.
408
Часть II. Адаптация AutoCAD
Список Current Keys (Текущая комбинация) показывает ту комбинацию, которая есть у выбранного пункта или команды. А в поле Press new shortcut key (Нажмите новую комбинацию быстрого вызова) следует ввести новую комбинацию, назначаемую пользователем. С помощью кнопки Assign (Назначить) сделанное изменение вносится в систему, а посредством кнопки Remove (Удалить) удаляется из системы. Кнопка Show All (Показать все) открывает окно Shortcut Keys (Комбинации клавиш) (рис. 6.28), в котором приводятся все задействованные в текущий момент комбинации. 1 i ъ shortcut Keys Accelerate j Command AJt+FU" Visual Basic EC! tor Macros CUI+O Clean Screen №1 Г :£-• . . Qrl-2 DesignCenter Clil+3 Tool Palettes Window dbConnect CtM+6 ClrhA Select All Ctil+B Toggles Snag Ctrl+C Copy to Clipboard Toggles cooidinale Ctf№ Ctfltt Cycles through isorn . Clrl-F Toggles running ob| . Clrl+G Toggles Grid CtrkH _setvarpickstyle;SM • Clrl-J E<eoutes Isjt comm . CtrkK Hyperlirk Ctrl-tL *D Ctrl-N New Clrl+0 Open Ctil+P Plot E.I QikR "V CtrhS Save QrkShift+C Copy withBase Point Ctrl-Shifts S эте As CtrkShiffV Paste as Block
Ait-re
Group ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD
ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD ACAD
Category _^ Tools Menu Tools Menu View Menu Standard Toolbar Standard Toobar Tools Menu Tools Menu Ed! Menu AutoCAD Internal Standard Toolbar AutoCAD Intel nal AutoCAD Internal AutoCAD Internal AutoCAD Internal AutoCAD Command? AutoCAD Internal Insert Menu — 1 AutoCAD Command? File Menu Standard Toolbar Standard Toolbar AutoCAD Commands AutoCAD Commands Standard Toolbar f ditMenu Fie Menu Edit Menu *J
«1
i >Г
OK |
Рис. 6.28. Окно Shortcut Keys
Раздел HELPSTRINGS Тексты всех подсказок, выводимых в строку состояния при выделении пунктов меню или при прохождении курсора над кнопкой панели, собираются в разделе HELPSTRINGS. Структура записей этого раздела такова: []
Глава б^Меню
409
(квадратные скобки здесь используются как символы скобок, а не признак необязательности параметра). В листинге 6.4 приведены еще несколько фрагментов из этого меню (длинные строки показаны в листинге в две строки). I Листинг 6.4. Фрагмент раздела HELPSTRINGS файла acad.mnu
I
_
„
ID_ARC ID_FLAT ID_MENULOAD ID_POINTFIXZ
[Creates an a r c : SRC] [Set viewport to f l a t shaded: SHADEMODE] [Loads partial menu files: MENULOADj [Specifies a . X Z point f i l t e r : .XZ]
ID_QDIM ID_REFEDITOR
[Quickly create dimension arrangements: QDIM; [Selects a block or xref for in-place editing:
ID_SAVEIMG
[Saves a rendered image to a f i l e :
REFEDIT]
SAVEIMG]
В приведенных примерах видны как подсказки к пунктам падающих меню, так и подсказки к кнопкам панелей инструментов или к самим панелям.
MNL-файл Если одновременно с загрузкой файла меню пользователю нужно загрузить дополнительные LISP-программы или выполнить некоторые LISPвыражения, их нужно размещать в текстовом файле с расширением mill. Имя файла должно совпадать с именем файла меню (например, файл acad.mii] загружается одновременно с файлом acad.mnu). По своей организации MNL-файл ничем не отличается от файлов автоматической загрузки acad.lsp и acaddoc.Isp и выполняет похожие функции.
Язык DIESEL Язык DIESEL (Direct Imerpretively Evaluated String Expression Language) — это язык оперирования строками с небольшим количеством функций. Он позволяет формировать строки, которые должны иметь переменный текст, зависящий от условий (например, от имени открытого рисунка или от текущего значения некоторой системной переменной). С помощью языка DIESEL можно задавать изменяемое значение системной переменной MODEMACRO и изменяемые наименования пунктов меню. Выражения языка DIESEL имеют следующую структуру (квадратные скобки указывают на необязательность элемента): S[!,[, . . . [,] . . . ] ] )
410
Часть II. Адаптация AutoCAD
Здесь — имя функции, , , ..., — аргументы. Количество аргументов не должно быть больше девяти (конкретные функции могут допускать и меньшее количество). Все элементы, с которыми работает язык DIESEL, являются строками. Даже числовые аргументы на самом деле являются строковыми представлениями для чисел. Пробелы в выражении на языке DIESEL обычно имеют свой смысл, поэтому использование лишних пробелов без необходимости не рекомендуется. Кавычки, ограничивающие строки, применяются только в особых случаях. В качестве аргументов могут использоваться другие выражения языка DIESEL. Выражения языка DIESEL возвращают значения, которые являются строковыми, поэтому могут применяться при программировании меню и в качестве аргументов функций языка LISP, работающих со строками. В языке DIESEL имеется 28 функции: +, -, *, /, =, , !=, =, and, arigtos, edtime, eq, eval, fix, geter.v, getvar, if, index, linelen, nth, or, rtos, strlen, substr, upper, xor.
Даже по наименованиям видно, что функции языка DIESEL близки к функциям языка LISP, хотя некоторые функции немного отличаются (в основном, количеством аргументов). Рассмотрим пример использования выражения, написанного на языке DIESEL, для задания значения системной переменной MODEMACRO, которое записывается в строку режимов, сдвигая вправо ее содержимое. [setvar "MODEMACRO" (strcat "Активная команда: " "$(getvar,cmdnames)"))
Выражение "$ {getvar,cmdnames}" — строка, содержимое которой является переменным и формируется интерпретатором языка DIESEL (обратите внимание, что имя системной переменной CMDNAMES указывается без кавычек). Внутри двойных кавычек находится выражение, аналогичное по результату выражению (getvar "CMDNAMES") языка LISP. Казалось бы, можно было то же действие описать, используя только язык LISP; (setvar "MODEMACRO" (strcat " Активная команда: " (getvar "CMDNAMES")))
Однако разница заключается и том, что второе выражение (без языка DIESEL) имеет одноразовое действие, а первое будет давать результат при вызове очередной команды. Аналогичным образом ваше приложение может помочь отслеживать в строке режимов некоторые важные сведения (например, номер проекта, номер чертежа и т. д.). Язык DIESEL полезен для формирования переменных наименований пунктов меню, а также для изменения состояния пункта меню (отметки или гашения). Необходимые примеры можно найти в тексте файла acad.mnu.
Глава 6. Меню
411
Замечание В системе AutoCAD LT отсутствуют средства программирования, но язык DIESEL в меню доступен. Это дает возможность небольшие программы на этом языке размещать в дополнительном пользовательском меню. Интересные примеры доступны на сайте www. crlf.de/Dokumente/Diesel/DieselS. html.
Для программиста В языке LISP имеются две функции, позволяющие выполнять над элементами меню разнообразные операции: отключать, изменять, удалять и т. д.
Функция тепидгоир Данная функция проверяет, загружена ли группа меню. Синтаксис функции: (menugroup ) •
Аргумент — текстовая строка с именем группы. Возвращаемое значение — строка с именем группы, если она загружена; иначе возвращается значение nil. Примеры; П (menugroup "дело") возвращает значение " П fmenugroup "EXPRESS") возвращает значение nil, если группа меню EXPRESS еще не загружена.
Функция menucmd Данная функция выполняет операции над элементами меню. Ее синтаксис: (menucmd ]
Аргумент — строка специального вида, в которой указано, какая и с каким элементом меню выполняется операция. Возвращаемое значение — nil. С помощью аргумента функция menucmd может открыть падающее меню, погасить пункт меню, включить пункт меню и т. п. Значение аргумента должно иметь следующий вид: "="
Левая часть аргумента (параметр ) отделяется от правой (параметра ) знаком равенства. Параметр должен принимать одно из значений, приведенных в табл. 6.2.
ГЛАВА 7
Диалоговые окна Важным компонентом приложений в среде AutoCAD являются диалоговые окна, в которых в нужной форме отображается полезная для пользователя информация и в которых удобно «водить дополнительные данные или настройки, необходимые для правильной и управляемой работы приложения. Приложения, написанные на языке LISP, хранят свои диалоговые окна в текстовых DCL-файлах (файлах с расширением del). При разработке VLXпршюжений есть возможность не держать DCL-файлы отдельно, а включить их в состав VLX-фашюв (см. разд. "Разработка приложений на языке IJSP" главы 2). Примерам таких файлов являются файлы acad.dcl и base.dcl, расположенные в папке Support внутри папки Documents and Settings текущего пользователя. • В предыдущих версиях файлы acad.dcl и base.dcl размещались в папке Support с программным обеспечением системы AutoCAD. Особую роль играет файл base.dcl, который содержит определения базовых элементов (областей, полей, кнопок, списков, флажков, переключателей и т. д.). Система программирования QbjectARX может оперировать DCL-файламм, но имеет возможность создавать формы, являющиеся аналогами диалоговых окон. С формами можно работать также в VBA и Delphi. В данной главе на примерах показано, как работать с диалоговыми окнами с использованием LISP-про грамм.
Язык DCL Для диалоговых окон разработан специальный язык DCL (Dialog Control Language), который имеет много общего с языком С.
Глава 7. Диалоговые окна
Директивы Файл, написанный на языке DCL, состоит из логических единиц— директив, которые записываются в свободном формате. Директивы располагаются в файле последовательно. Каждая директива описывает элемент (tile) или способ группировки элементов при выравнивании внутри диалогового окна. Есть также директива для описания диалога (под диалогом мы понимаем совокупность директив, отображаемую в виде одного диалогового окна). В одном файле могут быть записаны один или несколько диалогов. Перед тем как открыть диалоговое окно, система должна выполнить загрузку DCL-файла. содержащего описание диалога, соответствующего открываемому окну, и вызвать нужный диалог на экран. Не обязательно начинать директивы с новой строки (хотя опыт показывает, что, начиная каждую директиву с новой строки, вы облегчаете себе последующее чтение файла). Признаком конца директивы (и, соответственно, разделителем между директивами) латается точка с запятой или закрывающая фигурная скобка. Скобки должны быть сбалансированы (количество открывающих скобок должно быть равно количеству закрывающих). Между ключевыми словами языка, разделительными символами (к которым относятся двоеточие, точка с запятой, знак равенства, фигурные скобки), метками, числовыми и строковыми значениями может быть любое количество пробелов. Текстовые строки должны заключаться в двойные кавычки. Все элементы языка DCL являются чувствительными к регистру, поэтому нельзя, например, вводить ключевое слово в верхнем регистре, если оно должно быть в нижнем. Все ключевые слова, метки и коды цементов должны состоять только из латинских букв (верхнего и нижнего регистров), цифр и символа подчеркивания и обязательно начинаться с буквы. Директивы могут записываться в одном из двух видов. Первый вид директивы: [ ] : ( }
Здесь квадратные скобки обозначают необязательность стоящего внутри них элемента, фигурные скобки и двоеточие являются обычными символами. Например: Edbl:edit_boxf 1аЬе1="Нагтравление: ";edit_width=12;value="";key="Dru"; }
Второй вид директивы: ;
Пример такой директивы: ok_ca n с е 1 _he I p_i n f о ; Параметр — метка директивы (по этой метке можно ссылаться на данную директиву в других местах текста описания диалогового окна). Мет-
416
Часть II. Адаптация AutoCAD
ка — идентификатор директивы, который должен быть уникальным в данном файле. В примере директивы первого типа метка директивы — В примере директивы второго тика метка ok_cancei_heip_info является ссылочной меткой на группу кнопок, описанную в базовом файле base.dcl. Параметр — либо ключевое слово определения диалога, либо ключевое слово с типом элемента, либо метка другой директивы с типом элемента, либо ключевое слово группирования элементов.
С
Замечание
^
В параметре может быть указано сразу несколько меток, разделяемых двоеточиями. В этом случае система AutoCAD берет значения атрибутов из элемента с первой меткой, дополняет их значениями других атрибутов из элемента со второй меткой и т. д. Пример такой директивы: mn:operl:oper2{label="Double"; I Здесь ггл — метка новой директивы, a operl и орег2 — метки ранее созданных директив. Если имена атрибутов, использованных в директивах operl и орег2, повторяются, приоритет имеет первая директива. В приведенном выше примере директивы первого типа в качестве параметра используется ключевое слово edit_box, применяемое для редактируемых текстовых полей. Если директива описывает элемент диалогового окна, то параметр — это описание атрибутов элемента и их значений (записываются только те атрибуты, значения которых отличны от значений по умолчанию). Параметр — это последовательность разделяемых точкой с запятой операций задания атрибутам значений, которая имеет вид: =;[=; [ . . . =]...] Наименования атрибутов должны быть стандартными ключевыми словами. Значения атрибутов могут быть числами или строками (тип значения зависит от атрибута). Если директива яачяется директивой группировки элементов, то она содержит внутри фигурных скобок директивы определения группируемых элементов. Написание и отладка DCL-файлов значительно облегчаются при использовании текстового редактора среды Visual LISP. На рис. 7.1 приведен пример диачогового окна пользовательского приложения. В листинге 7.1 приведен текст файла d_tpos.dcl, соответствующего диалоговому окну, изображенному на рис. 7.1.
Глава 7. Диалоговые окна
417
(Настройка данных постели и таблицы
Высота таблицы Высота йукз
Количество балок Количества КФКССБ в балкак ЁЗЛКИ располагается в таблице • 1
f* по столбцам
Р по строкам
Cancel
Рис. 7.1. Пример диалогового окна
! Листинг 7.1. Файл d_tpos.dcl np_tpos: а1а1од(1аЬе1="г!астройка данных постели и таблицы"; :edit_boxilabel= "Ширина таблицы"; key="kShir";value="750";edit_width=6; :edit_box{label="BbicoTa таблицы"; key="kVys";value="300";edit_width=6; ] :edit_boxf 1аЬе1="Высота букв"; key="kHbuk";value="180";edit_width=6; } : spacer (height=l ; } : edit_box{ label= "Количество балок"; key="kHumbalk"; value="8";edit_width=6; } :edit_Ьox{label="Koличecтвo коксов в балках";Кеу="№ип*с^Е"; value="17";edit_wiilth=6; } : spacer {height=l; ] : radio_row{ label=" Балки располагаются в таблице" ; : radio__button{label="no столбцам" ;key="kPoStolb";value="l"; } : radio_button{label="no строкам" ;key="kPoStrok";value="0"; |
: spacer { heigh t=l; 1 ok cancel; В этом листинге имеется 17 строк. В целом они образуют директиву описания диалога, которому присвоено имя r.p_tpos (это имя записано в метке в начале первой строки). Открывающая фигурная скобка этой директивы находится на первой строке, закрывающая — на последней. Подробнее о директиве описания диалога см. следующий раздел. Директивы, расположенные в строках со второй по шестнадцатую, не только являются элементами директивы описания диалога (поскольку располо[ 4 3 а к 1311
418
Часть II. Адаптация AutoCAD
жены внутри фигурных скобок), но также являются директивами, описывающими элементы стандартных типов edit_box {редактируемое текстовое поле), spacer (промежуток), radio_row (область с рядом переключателей) и ok_cancel (ряд из кнопок ОК и Cancel (Отмена)). Подробнее см. разд. "Элементы диалога" этой главы. Дачее в листинге 7.2 показано, как вызвать данное диалоговое окно из программы на языке LISP. В начале DCL-файла могут быть строки с инструкциями копирования в данный файл содержимого других DCL-файлов, например: @include "fourth-b.del"
Данная инструкция при загрузке основного DCL-файла копирует в оперативную память содержимое файла founh-b.dcl (если имя файла указано без пути, то нужно, чтобы система AutoCAD могла обнаружить этот файл с помощью путей поиска файлов поддержки — о настройке путей см. главу 9). Не допускается с помощью инструкции @include загружать файл acad.dc! со стандартными диалогами системы AutoCAD. После инструкций @include в файле могут располагаться директивы описания элементов, которые в явном виде не входят ни в какой диалог, но с помощью меток ссылки на них могут быть добавлены в следующие далее диалоги. Если в тексте файла встречаются символы //, то для системы AutoCAD это означает, что далее до конца строки идет комментарий. Написание и отладка DCL-файлов значительно облегчаются при использовании текстового редактора среды Visual LISP (см. главу 2).
Директива описания диалога Директива описания диалога задает имя, по которому диалоговое окно из программы вызывается на экран. Если в файле находится описание нескольких диалогов, они могут следовать в любом порядке, независимо от последовательности их фактического вызова приложением системы AutoCAD. Директива описания диалога использует ключевое слово dialog и имеет следующую форму: :31а!од{ }
В качестве параметра может использоваться любой идентификатор (метка), который и задает имя диалога. Имена диалогов в одном сеансе AutoCAD не должны повторяться, иначе может произойти замена одного диалога другим.
Глава 7. Диалоговые окна
419
Параметр представляет собой последовательность атрибутов и их значений следуюшего вида: = оначение>;. Параметр олементы> является набором директив описания элементов (т. е. кнопок, списков, слайдов, надписей и других элементов). Атрибуты диалога — это различные характеристики окна в целом или его элементов. В табл. 7.1 приведены ключевые слова, которые могут использоваться в качестве атрибутов в директиве описания диалога. Таблица 7.1. Атрибуты директивы описания диалога Допустимые значения
Значение по умолчанию
Атрибут
Описание
label
Начальный текст заголовка диалогового окна
Строка
value
Текущий текст заголовка диалогового окна
Строка
Нет
key
К од диалога
Строка
Нет
width
Ширина окна
Число
Нет
height
Высота окна
Число
Нет
initial focus
Код подсвеченного элемента в диалоговом окне
Строка
Нет
children alignment
Способ выравнивания подчиненных элементов по умолчанию
left, right, centered (для колонок); top, bottom, cent a red (для рядов]
left (для колонок! centered (для рядов)
children fixed width
Фиксация ширины подчиненных элементов по умолчанию
true, false
false
true, false
false
cr.iiarer._fixed_hight Фиксация высоты
подчиненных элементов по умолчанию
(пробел)
Если в описании диалога использованы лишние атрибуты, они игнорируются. Атрибуты label и value близки по смыслу и в какой-то степени дублируют друг друга. Различие между ними заключается в следующем. Прочитав при загрузке DCL-файла описание диалога и входящих в него элементов, система AutoCAD по своим правилам определяет форму и размер выводимого диалогового окна. Вычисляются минимальные размеры каждого
420
Часть II. Адаптация AutoCAD
элемента, учитывается последовательность расположения элементов. Каждый элемент дополняется окружающим его свободным пространством и в результате определяется размер прямоугольника, в который выводится диалоговое окно. Строковое значение, которое задано в атрибуте label, участвует в определении размера заголовка диалогового окна и влияет таким образом на размер всего окна. Значение атрибута value уже не влияет на размер окна. Если задано значение атрибута value, в заголовок выводится оно, а не значение атрибута label. При этом, если значение атрибута value короче, чем значение атрибута label, в коней заголовка добавляются пробелы. Если значение атрибута value оказалось длиннее, чем значение атрибута label, и не хватает места для его вывода, тогда размеры диалогового окна не увеличиваются, а текст, выводимый в заголовок, обрывается с помощью многоточия. Можно программно изменить заголовок выводимого диалогового окна с помощью функции set_tiie. Для этой цели используется атрибут key, называемый кодом диалога (ключевое слово key для него сохранено, как для элементов). В качестве значения кода диалога могут использоваться только строки. Атрибут width задает минимальную ширину диалогового окна, меньше которой она не может быть сформирована системой AutoCAD при выводе на экран. Ширина диалогового окна вначале вычисляется системой по размерам заголовка и элементов, а затем увеличивается, если она получилась меньше, чем значение атрибута width. Значение атрибута задается количеством условных символов, ширина которых примерно равна средней ширине символов верхнего и нижнего регистра латинского алфавита для шрифта, действующего по умолчанию. Атрибут height по своему смыслу аналогичен атрибуту width, но задает минимальную высоту диалогового окна количеством условных символов с высотой, равной максимальной высоте букв действующего шрифта. Атрибут initiai_focus указывает код элемента, который подсвечивается по умолчанию и выполняет действие при нажатии пользователем клавиши <Enter>. Три атрибуга с префиксом children^ задают свойства не самого диалога, а подчиненных (входящих в него) элементов. Атрибут cbiidren_alignment задает способ, которым система AutoCAD выравнивает элементы, входящие в диалоговое окно. Если элементы диалога расположены в колонку (верти катьно), в качестве значения атрибута children_alignment могут использоваться такие значения, как: П left -• выравнивание влево (справа добавляется свободное пространство);
Глава 7. Диалоговые окна 3 right -- выравнивание вправо (слева добавляется свободное пространство); ^ centered — выравнивание по центру (слева и справа добавляется свободное пространство). В качестве значения, действующего по умолчанию (т. е. когда атрибут children_alignment не задан), используется left. Если элементы диалога расположены в ряд (горизонтально), могут использоваться следующие значения атрибута: СЗ top — выравнивание вверх (снизу добавляется свободное пространство); G bottom — выравнивание вниз (сверху добавляется свободное пространство); [3 cer.tered — выравнивание посередине (снизу и сверху добавляется свободное пространство). По умолчанию в этом случае действует значение centered. На элементы, в которых задан свой атрибут выравнивания (aiigonent), значение атрибута children_alignment НС ВЛИЯСТ.
Атрибуты children_fixed_width И children_fixed_height задают, если ОНИ имеют значения true. Это означает, что по умолчанию размеры подчиненных элементов (например, кнопок) при выводе диалогового окна не увеличиваются, соответственно, по ширине и высоте (система может увеличивать только расстояние между ними). Если вы при написании диалоговых окон пользуетесь средой Visual LISP, в вашем распоряжении есть способ проверки внешнего вида диалогового окна без загрузки DCL-файла в память. Для этого вы можете воспользоваться подменю Interface Tools (Инструменты интерфейса) меню Tools (Сервис) среды Visual LISP (см. рис. 2.33), которое имеет два пункта: П Preview DCL in Selection (Просмотр DCL из фрагмента); 1 Preview DCL in Editor (Просмотр DCL из редактора). Первый пункт используется, когда в редактируемом DCL-файле выделен фрагмент, содержащий полное описание одного диалога, а второй — когда выделенного фрагмента нет и проверке подвергается весь текст файла. После выбора одного из этих подпунктов система AutoCAD выводит окно Enter the dialog name (Введите имя диалогового окна), приведенное на рис. 7.2. В центрачьной части окна нужно ввести или выбрать из раскрывающегося списка имя проверяемого диалога. После этого система AutoCAD отобразит проверяемое диаюговое окно или выведет сообщение об ошибке.
422
Часть II. Адаптация AutoCAD UI, Enter the dialog name
OK
Cancel
Рис. 7.2. Окно Enter the dialog name
Элементы диалога Внутри директивы описании диалога находятся директивы описания элементов. Каждый элемент является либо элементом оформления (надписью, слайдом и т. п.), либо элементом управления (кнопкой, списком и т. п., к которым пользователь имеет доступ с помощью клавиатуры или устройства указания).
Типы элементов В директивах в качестве значения условного элемента могут фигурировать следующие наименования элементов: О button — кнопка; П editjsox — редактируемое текстовое поле; 3 errtiie — поле для отображения сообщений об ошибках; О image — поле с изображением; П image_button — кнопка с изображением; О iist_box — список; П popup__iist — раскрывающийся список; П radio__button — переключатель (элемент группы переключателей); О radio_coiumn — вертикальная группа (колонка) переключателей; О radio__row — горизонтальная группа (ряд) переключателей; П boxed__radio_column — колонка переключателей в рамке; П boxed_radio_row — ряд переключателей в рамке; П slider — скользящая шкала; П toggle — флажок; П column — колонка (средство объединения элементов); П row — ряд (средство объединения элементов);
Глава 7. Диалоговые окна
423
П text — текстовое нередактируемое поле; П text_part — часть текста, включаемая в элементы concatenation и paragraph; 3 concatenation — горизонтальное соединение элементов text_part; П paragraph — вертикальное соединение элементов textjpart и concatenation; П spacer — пустой элемент произвольной ширины и высоты (нужно обязательно задать атрибуты width и height); П spacer_o — элемент spacer с нулевыми значениями атрибутов width и height; О spacer_i — элемент spacer с единичными значениями атрибутов width И height.
Элементы с кнопкой выхода В файле base.dcl определены следующие элементы, ссылки на которые очень часто применяются в пользовательских диалоговых окнах: D ok_button — элемент с одной кнопкой ОК; П ok_oniy — элемент в виде колонки из одного элемента с кнопкой ОК; И ok_cancel — элемент из кнопок ОК и Cancel (Отмена): П ok_cancei_help - элемент из кнопок OK, Cancel (Отмена) (Справка);
и Help
П ok_cancei__err — элемент из кнопок ОК и Cancel (Отмена) и расположенное строкой ниже поле сообщений об ошибках; П ok_cancel_help_errtile -- ряд из кнопок OK, Cancel (Отмена) и Help (Справка) и расположенное строкой ниже поле сообщений об ошибках; П ok_cancei_heip_info — ряд из кнопок OK, Cancel (Отмена), Help (Справка) и Info (Инфо). Все эти элементы объединены общим свойством — содержат кнопку выхода из диалогового окна (нажатие на нее закрывает окно). В табл. 7.2 приведены стандартные коды элементов, используемые в рассматриваемых в данном разделе элементах с кнопкой выхода. Таблица 7.2. Коды элементов с кнопкой выхода Кнопка (элемент)
Код элемента
OK
"accept"
Cancel (Отмена)
"cancel"
Часть II. Адаптация AutoCAD
424
Таблица 7.2 (окончание) Кнопка (элемент)
Код элемента
Help (Справка)
"help"
Info (Инфо)
"info"
Поле сообщений об ошибках
"error"
Атрибуты элементов В табл. 7.3 приводится алфавитный перечень всех атрибутов, встречающихся в директивах описания и группировки элементов. Таблица 7.3. Атрибуты директив описания и группировки элементов Значение по умолчанию
Атрибут
Описание
Допустимые значения
Область применения
action
Действия, выполняемые при выборе данного элемента
Строка, содержащая теист выражений языка LISP
Элементы управления
alignment
Способ выравнивания
left, right, centered; top, bottom, centered
Все элементы
left, centered
allow accept
Признак активизации элемента при нажатии клавиши <Enter>
true, false
Элементы управления
false
aspect ratio
Коэффициент отношения ширины элемента к высоте
Вещественное число image (если 0.0, то коэффициент принимается равным коэффициенту пропорциональности слайда)
Нет
bi g__inc r ement
Большой шаг скользящей шкалы
Целое число
0. 1 от разности между
slider
max value
и
min_value children alignment
children fixed height
Задание через родительский элемент способа выравнивания с гру п п и ро в а н ных элементов
left, right, centered (колонка); top, bottom, centered (ряд)
Задание через роди- true, false тельский элемент фиксации высоты сгруппированных элементов
row, column, boxed row, boxed column
left (колонка);
row, column, boxed row, boxed column
false
centered (ряд)
Глава 7. Диалоговые окна
425
Таблица 7.3 (продолжение: Допустимые значения
Область применения
Значение по умолчанию
Атрибут
Описание
children_ fixed width
Задание через роди- true, false тельский элемент фиксации ширины сгруппированных элементов
row, column, boxed row, boxed_coluron
false
color
Цвет
Числа 0-256 или dialog line, dialog foreground, dialog background, graphic s_bac kg r ound , black, red, yellow, green, cyan, blue, magenta, whitegraphics foreground
image
7
edit limit
Предельный размер редактируемого поля (количество символов)
Целое число (не более 256]
edit box
132
edit width
Целое число Размер видимой части редактируемого поля (количество символов)
edit box
Максимально возможное в данном окне
fixed height
Фиксация высоты элемента
true, false
Элементы управления
false
fixed width
Фиксация ширины элемента
true, false
Элементы управления
false
fixed width font
Фиксация ширины символоа шрифта
true, false
list box, popup list,
false
text, text_part height
Минимальная высота Число элемента
Все элементы
Нет
initial focus
Код элемента, выСтропа бранного по умолчанию
Элементы управления
Нет
is bold
Признак выбора true, false полужирного шрифта
Все элементы
false
is_cancel
Признак срабатывания при нажатии клавиши <Esc>
button (только один элемент в диалоге может иметь значение true)
false
true, false
426
Часть II. Адаптация AutoCAD
Таблица 7.3 (продолжение) Значение по умолчанию
Допустимые значения
Область применения
Признак срабатывания при нажатии клавиши <Enter>
true, false
button (только false один элемент в диалоге может иметь значение true)
Признак того, что элемент не погашен в начальном состоянии окна
true, false
Элементы управления
true
is__tab__stop
Признак возможно- true, false сти выбора элемента с помощью клавиши
Элементы управления
true
key
Код элемента
Строка
Все элементы
Нет
label
Начальный текст элемента
Строка
Все элементы
• к
layout
Ориентация скользящей шкалы
horizontal, vertical
slider
horizontal
list
Начальное состояние списка
Строка с элементами списка (разделителем элементов является \п)
list_bOK, popup_list
Нет
max value
Верхнее значение шкалы
Целое число (не более 32 767)
slider
10000
min_value
Нижнее значение шкалы
Целое число (не менее -32 768 и не более max value)
slider
0
mnemonic
Символ быстрого выбора элемента
Буква
Элементы управления
Нет
multiple select
Признак разрешения множественного выбора
true, false
list box
false
password char
Символ, закрываю- Символ щий текст вводимого пароля
edit box
Нет
small increment
Малый шаг скользящей шкалы
slider
0.01 от разности между
Атрибут
Описание
is_de fault
is
enabled
Целое число
max value и .tiin value
tabs
Задание номеров позиций для табуляции
Строка с числами (например, "8 16 24 32")
list box, popup_list
Нет
Глава 7. Диалоговые окна
427
Таблица 7.3 (окончание) Атрибут tab truncate
Описание Признак обрезки длинных значений при переходе за табуляцию
Допустимые значения
Область применения
true, false
liStjDQX,
Значение по умолчанию false
popup_list
value
Начальное значение Строка
Все элементы
Нет
width
Минимальная ширина элемента
Все элементы
Нет
Число
Из таблицы видно, что большая часть атрибутов (например, label, value, key, width, height и т. д.) применяется во всех элементах. Однако необходимо учитывать, что смысл атрибута от элемента к элементу может несколько меняться. Есть специальные атрибуты -- употребляемые только в одном или двух типах элементах (например, layout, multiple_select, password_char, big_increment, small_inс cement, tabs, tab_truncate И Т. Д.). При описании элемента нет необходимости перечислять значения всех его атрибутов. Достаточно указать только те атрибуты, для которых вы хотели бы использовать значения, отличные от значений по умолчанию.
Открытие и закрытие диалоговых окон Для того чтобы вызвать на экран диалоговое окно, необходимо сначала загрузить DCL-файл, содержащий нужный диалог, а затем уже открыть диалоговое окно. В данном разделе рассматриваются LISP-функции, которые позволяют загружать И выгружать DCL-фаЙЛЫ (load_dialog, unload_dialog), открывать И закрывать окна загруженных диалогов.
Функция load_dialog Функция load_dialog загружает DCL-файл в память. Синтаксис функции: (load__dialog ) Аргумент — текстовая строка с именем загружаемого DCL-файла. Возвращаемое значение -- целое число (отрицательное, если загрузка не выполнилась; положительное, если внутренний номер загруженного файла в памяти).
428
Часть И Адаптация AutoCAD
Если имя файла в аргументе указано без полного пути, то система AutoCAD пытается найти файл по стандартному алгоритму поиска файлов поддержки (см, главу 9). Пример: D (setq dcl_id = step 2) (if (null (new_dialog "texp" dcl_id])(exit)) (set_tile "xp" (rtos (car pt) 2 51) (set_tile "yp" (rtos (cadr p-) 2 5)) (set_tile "zp" (rtos (caddr pt) 2 5)1 (action_tile "accept" (strcat "(setqx (atof (get_tile \"xp\")))" "(setq у [atof (get_tile \"yp\")))" "(setq z (atof (get_tile \"zp\")))" "(setq pt (list x у z))" "(done_dialog 1)" I;strcat 1;action_tile (setq step (start_dialog)) (cond (!= step 3)(setq pt [getpoint "ХпУкажите точку: "))) ! [= step 1) (princ "\пТочка: (") [princ (rtos x 2 5))(princ " "} (princ (rtos у 2 5)) (prir.c " "! (princ (rtos z 2 5))(princ "}") );- step 1 ) ;conci .•while
'г
\
Глава 7. Диалоговые окна (uriload_dialog dcl__id) (princ)
Листинг 7.7. Файл tex.dcl texp: dialog (1аЬе1="Задание точки"; : text { 1аЬе1="Введите координаты" ; )
: text f 1аЬе1="или укажите точку на экране";! г spacer {height=l; } :row{
: column I : edi t_box { label="X : " ; value="0" ; key="Kp" ; I :edit_box(label="Y: "; value="0";key="yp"; ] :edit_box(label="Z:";value="0";key="zp"; } }//end of column : button { 1аЬе1="Указать j [
-i -
1*S?
A • a
FILE EDIT VIEW 1
VIEW;
INSERT FORMAT TOOLS 1 TOOLS? DBAW1 DRAW; WMNSiON MODIFY! MODIFY;
Г•
00 03 r>
о о
«j|n
HELP
Ч) U
• Г
air
H'< t
\ tl^faft
llaynitgl
",-j • i 1 .'I
|1И7.7«3.155М31.0.0000.
SNAP. pRID, ORTHO POLAR, |QSNAP OTRACK. LWT:|MDD£t
Рис. 9.7. Графическое окно с экранным меню
Кнопка Colors (Цвета) вызывает диалоговое окно Color Options (Установка цветов) (рис. 9.8) цветовой настройки элементов всех рабочих зон экрана системы AutoCAD. В верхней части этого окна в поле Model tab (Вкладка Модель) иллюстрируется текущее оформление вкладки Model (Модель), а в поле Layout tabs (Вкладки листов) — вкладок пространства листа. В раскрывающемся списке Window Element (Элемент окна) можно выбрать настраиваемый элемент: О Model tab background (Фон на вкладке Модель); П Model tab pointer (Указатель на вкладке Модель); ^ Layout tabs background (paper) (Фон на вкладках листов); 3 Layout tabs pointer (Указатель на вкладках листов); 3 AutoTrack vector color (Цвет вектора автоотслеживания); П Command line background (Фон командной строки); 3 Command line text (Текст командной строки); О Plot preview background (Фон окна предварительного просмотра чертежа).
Глава 9. Настройка системы
475
И 4: Color Options
Window Element j Model tab background
Color JDWNte Default AH Apply г, Close
_-]
Default orw eJerner* Caned
:
Help
Рис. 9.8. Диалоговое окно Color Options
После выбора настраиваемого элемента следует щелкнуть по раскрывающемуся списку Color (Цвет) (рис. 9.9) для установки цвета этого элемента.
Рис. 9.9. Раскрывающийся список Color
В списке Color (Цвет) доступны восемь основных цветов. Для использования других цветов необходимо выбрать в списке пункт Select Color (Выбор цвета), что вызывает на экран одноименное диалоговое окно (рис. 9.10). Работа с диалоговым окном Select Color (Выбор цвета) рассмотрена в ed c* leferericed conl^rs custom objects created by an unavailable QbiecluRX applcalion You do no! rteed Ihe aiginei applicaliijn to display prony lepresenlafEiris of obiecls lhat were saved in the drawing However, many rnanulactuiers, nclud^ig Autodesk, provide obieclenablei^ tnaf also allowj you loedrt these custom obieti?. Viitfihe AutoCAD Obpcl Eriebter Assistant web заде to locale Autodesk object enables or conlatl the software publrshei about obiect enables fen other application*. ~ Proxy Giapbcs Г Do no! she* proxy graphic!
Г .- iIr.
1
•>
'
J
, ',: D1' ,' _i. |-^]' | I C''Pl
J Рис. 9.19, Окно Proxy Information
Настройка печати Вкладка Plotting (Печать) диалогового окна Options (Настройка) (рис. 9.20) задает настройки вывода на принтеры (плоттеры) и управления стилями печати.
Параметры печати для новых рисунков по умолчанию Область Default plot settings for new drawings (Параметры печати для новых рисунков по умолчанию) управляет назначением конкретного типа плоттера, который будет использован по умолчанию для вывода чертежей. В этой области расположены два переключателя: Use as default output device (Устройство вывода по умолчанию) и Use last successful plot settings (Последнее успешно использованное устройство). Первый переключатель сопровождается раскрывающимся списком, показывающим, настройки каких плоттеров уже определены в данной версии системы AutoCAD. Второй переключатель позволяет предлагать по умолчанию параметры последней успешной операции печати. Если в списке нет требуемой конфигурации плоттера, вы можете воспользоваться кнопкой Add or Configure Plotters (Добавление и настройка плоттеров). Кнопка открывает папку Plotters программного обеспечения системы AutoCAD. Эта папка содержит значки уже созданных конфигураций. Подробнее о работе с настройками, задаваемыми в области Default plot settings for new drawings (Параметры печати для новых рисунков по умолчанию), см. главу 43 книги "AutoCAD 2004".
4S8
Часть II. Адаптация AutoCAD
WOnWB Current profile:
((UmamedPiorte?
(jjj Cweot drawing
Drawn jl.dwg
Res | Display] QpenandSave Rolling j System j Use Preferences j Dialling ) Selection j Profiles | OeJadl plot settings fat ne^ drawings —
Default plot style behavioJ for new drawings
(? U !t as default output deuce
Л" Use cola dependent pl« stales
(^Lexmark X74-X75
_^j
'"Use named plot styles Default ;to style table
Г Ltie la sf successful plot selling'
• ] None
Add ч Configure Pintles...
J-j
Default plot style Jcr layef 0: - General plot option; —
i
1
When chansina the plot device
вывод векторов отслеживания при прохождении прицела над точкой привязки.
Размер прицела автопривязки Область Aperture Size (Размер прицела), расположенная на вкладке Drafting (Построения) диалогового окна Options (Настройка), позволяет установить размер прицела автопривязки (аналогично команде APERTURE (АПЕРТУРА)). Диапазон допустимых значений — от 1 до 50. Сохраняется в системной переменной APERTURE. Рисунок иллюстрирует сделанную настройку.
Глава 9. Настройка системы
503
Настройка режимов выбора Вкладка Selection (Выбор) (рис. 9.28) отображает режимы выбора и параметры ручек. 1 •-'•.'. Cmientpfcfle:
«Unnamed
ftcffle»
^J Current dialing:
Drawrigl dwg
FJes: ] Display OpenandSave) Plotting j System Use Presences j Draftng Selection | PrcJtes j г РШ>™ Si»
гшрас?
-
i
J~ Selection Modes
Gups • Unseleded grip coldi:
P Noun/veib setecbon Г U« SMI to add to sefetiion Г" Press and drag 17 Implied windowing P* Ob|ect grouping Г" Associative Halch
'
• Color ISO Selected grip color • Red
-] J —
Hovet aipcotr: \Ш Green
^j
fJ Enable gripi J~ Enable grips irfflhm bbcVs f^ Enable grip lips h0Q
OK . .
OtnecJsefecb&ilimtloi display cJ gips
1
Ceicel
J
Apply ,..__._.
i
Heb
Рис. 9.28. Диалоговое окно Options, вкладка Selection
Размер прицела выбора Область Pickbox Size (Размер прицела) дает возможность с помощью скользящей шкачы изменить размер прицела выбора объектов в командах редактирования. Расположенный слева рисунок иллюстрирует сделанную установку.
Режимы выбора Состояние шести расположенных в области Selection Modes (Режимы выбора) флажков задает текущие настройки режимов выбора. Перечислим эти флажки: a Noun/verb selection (Предварительный выбор) — делает возможным предварительный выбор объектов для следующей команды. Сохраняется в системной переменной PICKF1RST;
504
Часть II. Адаптация AutoCAD
3 Use Shift to add to selection (Использование Shift для добавления) — разрешает использование клавиши <Shift> для добавления объекта в текущий набор или исключения из текущего набора. Сохраняется в системной переменной PICKADD; П Press and drag (Динамическая рамка) — допускает указание рамки для выбора объектов с помощью одного нажатия левой кнопки мыши и протаскивания мыши с нажатой кнопкой ло второй точки угла рамки. Заносится в системную переменную PICKDRAG; П Implied windowing (Выбор с помощью рамки) — включает режим отображения рамки, если первая точка в операции выбора объектов не попадает ни на один из объектов рисунка. Если первая точка была указана левее второй, то создаваемая рамка является простой, а если правее — то секущей. Сохраняется в системной переменной PICKAUTO; П Object grouping (Группа объектов) — задает режим выбора всех объектов группы, если указан хотя бы один объект из этой группы. Настройка сохраняется в системной неременной PICKSTYLE; О Associative Hatch (Ассоциативная штриховка) — задает выбор контура, если выбрана ассоциативная штриховка. Сохраняется в системной переменной PICKSTYLE. Подробнее о способах "AutoCAD 2004".
выбора объектов
и
группах см.
главу 10 книги
Размер ручек В области Grip Size (Размер ручек) с помощью скользящей шкалы устанавливается размер ручек, которые отображаются на выбранных примитивах. Рисунок слева иллюстрирует сделанную установку. Сохраняется в системной переменной GR1PSIZE. Подробнее о ручках см. главу 10 книги "AutoCAD 2004".
Режим использования и цвет ручек В области Grips (Ручки) расположены три раскрывающих списка, устанавливающих цвет ручек в разных ситуациях: П Unselected grip color (Цвет невыбранных ручек) — задает цвет невыбранных ручек. Сохраняется в системной переменной GRIPCOLOR. По умолчанию используется цвет с номером 160 (Color 160); П Selected grip color (Цвет выбранных ручек) — задает цвет выбранных ручек. Сохраняется в системной переменной GRIPHOT. По умолчанию используется красный цвет (Red);
Глава 9. Настройка системы
505
~J Hover grip color (Цвет ручки под курсором) — задает цвет ручки при прохождении курсора над ручкой. Сохраняется в системной переменной GRIPHOVER. По умолчанию используется зеленый цвет (Green). • Цвет ручки под курсором и системная переменная GRIPHOVER — новинки системы AutoCAD 2004. Кроме того, в области расположены три следующих флажка: П Enable grips (Включить ручки) -- включает отображение ручек на выбранных объектах. Сохраняется в системной переменной GRIPS: П Enable grips within blocks (Ручки внутри блоков) — задает отображение ручек на объектах внутри вхождений блоков. При сбросе флажка показывается только одна ручка в точке вставки блока. Сохраняется в системной переменной GRIPBLOCK; 3 Enable grip tips (Подсказки к ручкам) — задает вывод всплывающих подсказок к ручкам на объектах пользовательских приложений, поддерживающих ручки. Сохраняется в системной переменной GRIPTIPS. • Флажок Enable grip tips (Подсказки к ручкам) и системная переменная GRIPTIPS впервые появились в версии AutoCAD 2004. Последний элемент области Grips (Ручки) — поле Object selection limit for display of grips (Предельное количество выбранных объектов для показа ручек), в котором задается максимальное количество объектов в текущем наборе, при превышении которого ручки подавляются. Допустимые значения — от 1 до 32767 (по умолчанию — 20). Настройка сохраняется в системной переменной GRIPOBJLIMIT. • Поле Object selection limit for display of grips (Предельное количество выбранных объектов для показа ручек) и системная переменная GRIPOBJLIMIT — новинки системы AutoCAD 2004.
Настройка профилей Последняя вкладка — Profiles (Профили) (рис. 9.29) — позволяет присвоить имя набору параметров всех вкладок диалогового окна Options (Настройка) и при необходимости экспортировать параметры в файл профиля с расширением arg. В левой части окна в списке Available profiles (Имеющиеся профили) перечисляются имена профилей, доступных в текущем рисунке. Вкладка имеет следующие кнопки: П Set Current (Установить) — устанавливает текущим профиль с отмеченным именем;
506
Часть II. Адаптация AutoCAD
f* Options Currant pmMe1
«Unnamed PmHe»
£J Cutient drawiig
Draw
Files ] Display] OpenandSave] Hotting] Systeni| Usa Prefeiences] Dialhng] Saleclion АуаЙаЫе pfofilei: 'I innarnpn Pirliie'
-
Sel Curenl
.
Add to List.. Rename. .':-:- •: Export.. Inport Reset
OK
Cancel
Apply
Рис. 9.29. Диалоговое окно Options, вкладка Profiles
П Add to List (Добавить) — сохраняет текушие настройки в качестве нового профиля; П Rename (Переименовать) — переименовывает профиль; О Delete (Удалить) — удаляет профиль (это возможно только в том случае, если профиль не является текущим); П Export (Экспорт) — осуществляет экспорт профиля в файл с расширением arg; П Import (Импорт) — осуществляет импорт профиля из файла с расширением arg; П Reset (Сброс) — восстанавливает установки, действующие в системе AutoCAD по умолчанию. В профиль записываются настройки, которые хранятся в системном реестре, поэтому они продолжают действовать при закрытии одного рисунка и открытии другого. При работе в разных режимах или с разными приложениями системы AutoCAD удобно сохранять настройки в файле с расширением arg, а затем импортировать их в рисунок в нужный момент. Можно
Глава 9. Настройка системы
507
уже при запуске системы AutoCAD задавать имя файла требуемого профиля (см. разд. "Свойстваярлыка"главы I книги "AutoCAD 2004").
Настройка меню Express • Меню Express (Экспресс) — новое меню, которое можно установить в системе AutoCAD 2004. Если вы при инсталляции системы AutoCAD дополнительно выбрали установку Express Tools 2004, то в строке меню у вас должно появиться падающее меню Express (Экспресс), которое лает доступ к дополнительным возможностям. После установки системы AutoCAD вы можете добавить Express Tools, запустив повторную инсталляцию с диска и выбрав Step 5. Install Supplemental Tools. AutoCAD Express Tools (Шаг 5. Установка дополнительных средств. AutoCAD Express Tools). Если меню Express (Экспресс) у вас не появилось, то попробуйте команды EXPRESSTOOLS и EXPRESSMENU. Фирма Autodesk периодически на своем сайте обновляет Express Tools для разных версий AutoCAD. Следует отметить, что Express Tools 2004 не могут Выть установлены в AutoCAD 2002 и в более ранних версиях системы. Кроме падающего меню, при установке Express Tools в системе появляются четыре панели, входящие в группу меню EXPRESS.
Настройка строки состояния • Система AutoCAD 2004 предоставляет новые средства для настройки строки состояния. Дополнительную настройку строки состояния можно выполнить, вызвав меню (рис. 9.30) щелчком правой кнопки мыши по свободному месту этой строки или щелчком по значку », расположенному в правой части строки состояния. -t Cursor cooidhate values (F6) * Snap (F9) ч Grid(F7) * Ottho (FS) V Polar (Fit) ^ OSnap(F3) V OTradi(Fll) V Llneweigte •f Paper/Model Tray Settings,,.
Рис. 9.30. Меню настройки строки состояния
508
Часть II. Адаптация AutoCAD
В меню, приведенном на рис. 9.30, около каждого пункта может стоять флажок, который означает, что соответствующий элемент присутствует в строке состояния. К этим элементам относятся следующие: П Cursor coordinate values (F6) (Координаты курсора (F6)) — показывает строку координат, расположенную в начале строки состояния. В этой строке отображаются текущие координаты положения курсора в графическом окне документа (вывод координат включается и выключается с помощью клавиши ); П Snap (F9) (Шаг (F9)) — отображает кнопку режима SNAP (ШАГ) (для включения и выключения режима используется клавиша ); П Grid (F7) (Сетка (F7)) — отображает кнопку режима GRID (СЕТКА) (для включения и выключения режима используется клавиша ); П Ortho (F8) (Орто (F8)) — отображает кнопку режима ORTHO (ОРТО) (для включения и выключения режима используется клавиша ); П Polar (F10) (Отс-Поляр (F10)) -- отображает кнопку режима POLAR (ОТС-ПОЛЯР) (для включения и выключения режима используется клавиша ); П OSnap (F3) (Привязка (F3)) - отображает кнопку режима OSNAP (ПРИВЯЗКА) (для включения и выключения режима используется клавиша ); П OTrack (FI1) (Отс-Объект (F11)) — отображает кнопку режима OTRACK (ОТС-ОБЪЕКТ) (для включения и выключения режима используется клавиша ); П Lineweight (Вес) — отображает кнопку режима LWT (ВЕС); П Paper/Model (Лист/Модель) — отображает кнопку переключения между режимами PAPER (ЛИСТ) и MODEL (МОДЕЛЬ). Сброс флажка в рассмотренном меню ликвидирует в строке состояния соответствующую кнопку или часть строки. На рис. 9.31 показана строка состояния с четырьмя удаленными кнопками режимов SNAP (ШАГ), GRID (СЕТКА), POLAR (ОТС-ПОЛЯР) и OTRACK (ОТС-ОБЪЕКТ). -]Comma.n(l 16114343.71342 .О.ОИО _
j ORTHOJ [OSNAP LWT [MODEL
Рис. 9.31. Строка состояния без кнопок режимов SNAP, GRID, POLAR л OTRACK
Кроме того, внизу меню настройки строки режимов (см. рис. 9.30) имеется пункт Tray Settings (Настройка лотка), который соответствует новой команде TRAYSETTINGS (ЛОТОКНАСТР). Эта команда вызывает одноименное диалоговое окно Tray Settings (Настройка лотка) (рис. 9.32).
• • : • < • L-"
509
-. ICTp -:'
Vew
Me
? Help
ft ~rd and Ft4*ce JR-faancBNa | 5ау&|"рП
Iffi-_
с .Ji'..i-
D
UVW1HD.
C-h
iHE[T_NFO
i.* PP.. C
TITLE!
A Fort
D.UUQ_
A Fort
DW.
I '
Г
A Fort
4DHANS
A Fort A Fort A Fort
Т
Rewrf-td
• Elh fen plan L Elh ft™ flunbtng ."
SIMF1EX DWF6 rf*i
AUQCAD2UCM
ll.lTic-ieli
Reiotved
AutoCAD 1004 E№I FkBt Fun. FOi Fbor Li?> i
||* Pled Cm afiFkocPbn Pet*ved
EVF6 ePbl
Perabed ftiHGdeskf^
BSiFtofPa* ll Phffe Bill Flccc Рои
RejoKffll Rsicf-ri R«cf.sd
J Di4M4t4d4a4 1 - D's-rgi h
E"h fax lui &h IL^X hrv
9№ rloor lunt :
Blfillix.|*j
>2CW Э2КЛ AinfADZVH
_iJ IssstrtSi J3 - 5*tKfKf ^
Рис. 11.4. Окно Reference Manager
В левой части окна следует щелкнуть по расположенной в верхней части (Добавить рисунки) и выбрать те файлы риокна кнопке С* Add Drawings сунков, по которым необходимо вывести дерево ссылок. На рис. 11.4 на примере файла 8th floor.dwg, поставляемого в папке Sample системы
Глава 11, Коллективная работа
521
AutoCAD 2004, показаны типы ссылок, которые отслеживаются программой Reference Manager (Диспетчер ссылок): a Fonts (Шрифты); П Plot Configurations (Конфигурации печати); О Plot Styles (Стили печати); П Shapes (Формы); D Standards (Стандарты); П Xrefs (Внешние ссылки), В правой части окна перечисляются имеющиеся ссылки по всем типам. В данном окне можно изменять пути к файлам, на которые у рассматриваемого рисунка имеются ссылки. Для этого необходимо отметить те ссылки, которые будут изменяться, и щелкнуть по кнопке (Изменить выбранные пути). В открывшемся диалоговом окне Edit Selected Paths (Изменить выбранные пути) (рис. 11.5) следует ввести новый путь к файлам изменяемых ссылок. RJEdit Setecled Path* Hew saved path
Рис. 11.5. Диалоговое окно Edit Selected Paths
Измененные ссылки помечаются в колонке Status (Статус) значком $, как это показано на рис. 11.4. Для внесения сделанных изменений в сами рисунки следует в окне Reference Manager (Диспетчер ссылок) щелкнуть по кнопке |apply changes | (Применить изменения). '
Замечания Программа Reference Manager (Диспетчер ссылок) в настоящее время не поддерживает следующие типы ссыпок: шрифты, на которые нет ссылок в текстовых стилях; OLE-связи; гиперссылки; связи с базами данных; РМР-файпы (файлы параметров калибровки принтера), внешние ссыпки на адреса сети Интернет. Пути к шрифтам типа TrueType не сохраняются.
Команда PUBLISH (ПУБЛ) Для передачи файлов сторонним организациям (а иногда и заказчику) предусмотрен еще один формат сохранении -- DWF. В этом формате файлы нельзя уже редактировать, а для просмотра следует использовать другую
522
Часть II. Адаптация AutoCAD
JipPubiiihDtamrra sheet* 1Ы ol didwrtg sheets Layout Name _
Pa$e_S^4J
Stilus_
Save As > Tools > Security Options -| Signature dale and time:
Time jerviee used.
130.ОГ2Ш~2052.03 Москоеск
!Ма»1«м1 institute ol Slendatds and fe~
Close
Help
Рис. 11.15. Диалоговое окно Digital Signature Contents (с отображенными сведениями об авторе подписи}
В раскрывающемся списке Other fields (Другие поля) пользователю доступны следующие типы сведений о цифровой подписи: П Subject (Тема) — сведения о лице или организации, добавившей цифровую подпись; П Issuer (Поставщик) — имя цифровое удостоверение;
ачадсльца сертификата,
предоставившего
П Valid from (Действительна с) — день, месяц, гол и точное время, начиная с которого действует данная цифровая подпись; П Valid to (Действительна по) — день, месяц, гол и точное время, когда истекает срок действия данной цифровой подписи; П Serial number (Серийный номер) — серийный номер цифрового удостоверения.
Глава 11. Коллективная работа
529
На рис. 11.16 показано окно Digital Signature Contents (Свойства цифровой подписи), в котором в поле Values (Значения) отображен серийный номер цифрового удостоверения. Г~~
If-trDigila! Signature Contents
* Save At > Tools > S ecu rity Options Signature date and time:
Time service used.
13001.2003 20-.524E Moc-овск
|Nationalln:litijteof Standards andTe
Close
Help
I
Рис. 11.16. Диалоговое окно Digital Signature Contents (с отображенным серийным номером цифрового удостоверения)
В поле Comment (Пояснение) диалогового окна Digital Signature Contents (Свойства цифровой подписи) отображается комментарий, присоединенный к цифровой подписи. Еще два поля этого окна выводят следующие сведения: П Signature date and time (Дата и время подписи) — дата и время, когда была присоединена цифровая подпись; О Time service used (Использованный сервер времени) -- наименование сервера времени, использованного при датировании файла. Если система AutoCAD открывает файл рисунка с цифровой подписью, то сразу после открытия автоматически выводится информационное окно Digital Signature Contents (Свойства цифровой подписи) (см. рис. 11.15). Для открытого файла рисунка с цифровой подписью в строке состояния постоянно находится значок [Я. Щелчок по этому значку вызывает коман-
530
Часть II. Адаптация AutoCAD
ду S1GVALIDATE (ПДПРОВЕРИТЬ) и открывает диалоговое окно Validate Digital Signatures (Проверка цифровых подписей) (см. рис. 11.13 и 11.14). Замечание Если вы присоединяете к своему р/сунку и пароль, и цифровую подпись, то выполните сначала операцию добавления пароля. Иначе после любой модификации рисунка (в том числе создания пароля) цифровая подпись будет аннулирована.
Работа с Интернетом Система AutoCAD 2004 располагает средствами взаимодействия с Интернетом как для чтения файлов, так и для их вывода. Фирма Autodesk через свой сайт www.autodesk.com оказывает различные услуги пользователям системы AutoCAD (доступ к библиотекам символов, ответы на вопросы и т. п.).
Просмотр Web-страниц Команда BROWSER (БРАУЗЕР) обеспечивает вызов системного браузера и автоматическое соединение с Интернетом. По умолчанию пользователю предлагается открыть Web-страницу, расположенную по адресу, сохраненному в системной переменной INETLOCATION (обычно www.autodesk.com).
Рис. 11.17. Панель инструментов Web
На панели инструментов Web (Web) (рис. П. 17) расположены следующие кнопки, используемые при навигации по Интернету: - — позволяет переместиться по пшерссылке на предыдущую страницу;
- позволяет перейти по гиперссылке на следующую страницу: - прекращает загрузку страницы; - вызывает системный браузер.
Публикация в Интернете Публикация файлов рисунков в Интернете выполняется с помощью команды PUBLISHTOWEB (ОПУБЛИКОВАТЬ).
531
Глава 11. Коллективная работа
I/ В предыдущей версии системы на панели Standard Toolbar (Стандартная) была кнопка, соответствующая команде PUBLISHTOWEB (ОПУБЛИКОВАТЬ). Команда вызывает Мастер публикации в Интернете, который работает с окнами в форме страниц. На первой странице Мастера — Begin (Начало) (рис. 11.18) — нужно включить один из двух переключателей: 3 Create New Web Page (Создание новой Web-страницы); D Edit Existing Web Page (Редактирование существующей Web-страницы). Publish to Web LCUIII Begin О sale Web Page EdilWtbPsge Describe Web PSJC Selecr Image Type Select Template Apply Theme Enable i-drop Selec! Diawofls
This wtfard creates a Web page lhat displays images iiom one or more tlia w*ig files You can conoid rhe appearance ol youi Web мае by choosing Jrom a variety cJ templates Once you have created a Web peg*. JJBU tan use Ihu V/uard so i,pea's i> ff uea«e New Web Page Г Ed* Existing Web Page
Generate Imago Preview and PMI
< Назад | Лапа) |
Рис. 11.18. Страница Begin Мастера публикации в Интернете
В первом случае вы получаете возможность создания файлов новой страницы, во втором — редактирования ранее сформированной страницы. Если выбран режим создания новой Web-страницы, щелчок по кнопке Далее (Next) переводит вас на следующую страницу — Create Web Page (Создание Web-страницы) (рис. 11.19). На странице Create Web Page (Создание Web-страницы) нужно заполнить три поля. В верхнем вводится имя вашей Web-страницы (например, Steel). Во втором поле необходимо указать путь к папке, в которой будут сохранены файлы Web-страницы. По умолчанию система AutoCAD предлагает путь к папке Autodesk, в которой сохраняются настройки текущего пользователя (эта папка расположена внутри папки Documents and Settings текущего пользователя). С помощью щелчка по кнопке £ J можно открыть окно поиска и в этом окне выбрать другую существующую на компьютере папку (например, d:\Temp), к которой система добавит имя папки, совпадающее
532
Часть II. Адаптация AutoCAD
с именем страницы (d:\Temp\Steel). В нижнем поле рекомендуется задать описание к создаваемой Web-странице. Publish to Web - create Web Page Begin Create Web Page Ed* Web Page Describe Web Page Select Image Type Select Tarplate
Your Web раде and its oxJiguation file afe stored in a directoiy inyoui FiJesysiern to enable Juture editing and posting. The name of Ihis directory Is the iarrie as the гщгпе b page. You can choose (he locaiion [parenl ere this fold» b created 1
extension].
ecr your Web page {do not include a lib
Apply Theme Enable i-drop Select Drawings Generate Images
e parent ditectorv ri >шг file system «here Ihe Web M0e (older will be creaJed
Preview and Post Provide a descnption lt> appear оп^сл Web page Резупьтаты рлбогьг модулч К
: Назад
I
Далее > J
Отмена
Рис. 11,19. Страница Create Web Page Мастера публикации в Интернете
Следующая страница Мастера — Select Image Type (Выбор типа изображения) (рис. 11.20)— предназначена для указания формата графических файлов. (Publish to web -Select Image Type Веда
Select an image type from the fist below.
Create Wob Page Edit Web Page Describe Web Page Select Image Type Select Template Apply Theme EnabFei-dmp Selecl Drawngs Generate Images Preview and Post
Image иге: Design Web Forma*'" [DWF] files are vector-based repiesenlafioris cl AutoCAD «Jawngfles For others In be able ID view them, they iteed to rislaHthe free Autodesk» E i-piesi Viewer Once the viekvei is installed others wilbe able ID zoom arid pan within Ihe DWF, turn layeis en and cff and aerate named vie^s. DWF Jiln are inserted into your comple ied Web page in a size that is op'imized to display wetf **th moif browser
1
Отмена
Рис. 11.21. Страница Select Template Мастера публикации в Интернете
Пользователю предлагаются четыре варианта шаблона: П Array of Thumbnails (Массив образцов): П Array plus Summary (Массив образцов с пояснениями); О List of Drawings (Список рисунков); П List plus Summary (Список рисунков с пояснениями).
Часть //, Адаптация AutoCAD
534
Web Page Title Image
1
llmagt
г
Image 3..
Web Page Title Image 1
Image
Web Page Title
Web Page Title
imMje 3.
Summary Iniotmfcfccn
Summary ttormattan
Рис. 11.22. Шаблоны Web-страницы
Внешний вид всех вариантов шаблона приведен на рис. 11.22. После указания варианта шаблона пользователь попадает на страницу Apply Theme (Применить тему) (рис. 11.23) для выбора цветовой гаммы. Publish to web - Apply I tone Begin QeateWebPase Edit Web Page Derate Web Page
Т hemes ar» pieset deinenls lhat control Ihe appearance of various efemenls [such as fonts and cfJas] erf ^our curnp eted Web page Select a theme from the (si below ID apply to jour Web page.
Select linage Type Select Template AppJy Theme Fnabf- .-drop Sated Diawiigs Generate I mags? Preview and Post
< Назад
[
Дапее >
\
Оти?иа
Рис. 11.23. Страница Apply Theme Мастера публикации в Интернете
Под темой (theme) подразумевается цветовое и шрифтовое оформление. Пользователю с помошью раскрывающегося списка доступны следующие темы: О Autumn Field (Осеннее поле); 3 Classic (Классика); П Cloudy Sky (Облачное небо); П Dusky Maize (Темная кукуруза); 3 Ocean Waves (Океанские волны); П Rainy Day (Дождливый день); 3 Supper Club (Вечерний клуб).
535
Глава 11. Коллективная работа
Далее идет страница Enable i-drop (Разрешить загрузку) (рис. 11.24). Если вы установите в этом окне одноименный флажок Enable i-drop (Разрешить загрузку), то на вашу Web-страницу вместе с растровыми образцами будут помещены DWG-файлы, которые любой посетитель сайта сможет загрузить в свой сеанс работы системы AutoCAD простым перетаскиванием. Publish to Web - ьпаЫе i dtop
[jeale Web Page Edii Web Page Describe Web Page Select I mage Type Select Template Apply Theme
LI desired, you can cieate ^n i-diop(TM} enabled Web page lhal p«ts copies ol your DWG lies eking with the images that you generate. Using i-diQp. those чЬо visit your Web page can drag-and-drop drawing Mes imo a sesncn of AutoCAD. i-oVop Web pages are ideally suited to publishing block Lfcranes to the Lnteinet. Г" Enable н±ор
Enabte i-drop Select Drawings General* Images Preview and Post
< Назад
]
Далее > ^]
Отмена
Рис. 11.24. Страница Enable i-drop Мастера публикации в Интернете
Следующая страница Мастера Select Drawings (Выбор рисунков) (рис. 11.25) — имеет область Image settings (Параметры рисунков), которая позволяет выбрать файл (раскрывающийся список Drawing (Рисунок)), указать имя нужной вкладки (раскрывающийся список Layout (Вкладка)), задать метку изображения (поле Label (Метка)) и комментарий (поле Description (Описание)). Метки выбранных рисунков помещаются в результирующий список (область Image list (Список изображений)) с помощью кнопки Add (Добавить). Кроме того, для редактирования списка могут применяться следующие кнопки: П Update (Изменить); 3 Remove (Удалить); П Move Up (Вверх); П Move Down (Вниз). Следующая страница Мастера — Generate Images (Генерация изображений) (рис. 11.26) — упраачяет процессом генерации изображений.
536
Часть II. Адаптация AutoCAD j Publish to Web - Select Drawings Begin Create Web Page Ё dil Web Page
To add an image lo your Web page, select a drawing and th en pick one of its Eayculi. Enter a label and description to annotaf e the image on the Vi eb page, then chooie Add To change an inage, select A in Image List, specify new set ngs then choose Updale. An asterisk indicates a missing drawing Image lisl - -
Describe Web Page Select Image Type Select Template
D \Temp\3ckriodel 0\ J3
Apply Theme
Layout
Enable kfcop
| Model
^ Select D г swings Generate Imagos Preview *x3 Pwt
Add
Drawing_d
«J
">.
1
UpjaJe->
»] •
Model |Иэометрио]
J
Model (Попцширота)
Remove J
i
Label j Model (Eo*J DetaJption: Проекция Б o*J
Move Up | Move Down]
-
< Назад
|
•I
I и
Далее >
\
Отмена
Рис. 11.25. Страница Select Drawings Мастера публикации в Интернете 1 Publish lo Web - Generate Images Begin Deals Wet Pafle E dil Web Pags DesciibeWab Page Sefect Image T^pe Select Template Apply Theme
GrQCbeNe*:t ID generate yoj Web page. TneWebpage is creeled in the file system deedoryfKat you specified earlier ri 'hi^ ui^ajd You cannot undo this operation orrce \< is started. You will Kave Ihe opportunity to preview the Web page and post it lo Ihe Inteinpt n Ibe fpfcsving stop, Яэаиз WAU. wh\te Ihe rnages are generated.
Enable i-drop Select Diawirgs Genef ate ImagM Pit view and Роя
Regenerate images foi drawings (hat have changed Regenerate aH irriflgei
< Назад
j
Далее?
|
Отмена
Рис. 11.26. Страница Generate Images Мастера публикации в Интернете
На этой странице нужно выбрать один из двух переключателей: D Regenerate images for drawings that have changed (Регенерировать изображения для изменившихся рисунков); П Regenerate all images (Регенерировать все изображения).
Глава 11. Коллективная работа
537
В зависимости от выбора пользователя растровые изображения будут пересчитаны либо частично (для изменившихся рисунков), либо полностью. Последняя страница программы-мастера— Preview and Post (Просмотр и размещение) (рис. 11.27)— сообщает о формировании файлов Web-страницы. Publish to Web - Preview «id Post Begin freate Web Page Ed* Web Page Describe Web Page Select Image Type S elect Template App^i Theme Enable i-drop Select Dialings Gerwate IfeagM Preview and Post
YDJ finished Web pape has been лссеЫийу ciealed "m the following diiec*Mi). DATemp\Sleel Preview You can post your Web cage to the Inlernef on your own by capymg all file^ in lh;s dirgcLory lo aWeb sile al a laLer Jime т Web page now.
Poa No Alta cosling you Web page, you tan deals and send an emafl message thai includes s hypeilnked URL lo is
Send Emad
: Назад
I
Готсво
Отмена
Рис. 11.27. Страница Preview and Post Мастера публикации в Интернете
На этой странице пользователю доступны следующие три кнопки: О Preview (Просмотр) — позволяет просмотреть созданную Web-страницу (рис. 11.25); П Post Now (Разместить) — позволяет выгрузить свою страницу на сервер сети Интернет; П Send E-mail (Послать сообщение по электронной почте) — формирует письмо электронной почты со ссылкой на адрес своей страницы. Щелчок по кнопке Готово (Done) завершает работу с мастером создания Web-страницы. Результаты сохраняются в виде группы файлов, в которой основным является файл acwebpublish.htm (в примере на рис. 11.28 он открыт с помощью браузера). Режим редактирования существующей Web-страницы, созданной с помощью команды PUBLISHTOWEB (ОПУБЛИКОВАТЬ), работает аналогично.
538
Часть II. Адаптация AutoCAD 3 Web Publishing - Microsoft Internet Explorer i He
Ed*
Vie*
favorites
Tools
Hep
.. • .
Результаты работы модуля Конетр/кция
d
•Г L^ My Computer
11 Done
Рис. 11.28. Пример Web-страницы, созданной командой PUBLISHTOWEB
Команда SETIDROPHANDLER (ТЗАГРТИП) • Новая команда данной версии системы AutoCAD— SETIDROPHANDLER (ТЗАГРТИП). Команда SETIDROPHANDLER (ТЗАГРТИП) предназначена для задания типа объектов, перетаскиваемых в рисунок с Web-страницы. Команда выводит диалоговое окно Set Default i-drop Content Type (Задание типа точек загрузки по умолчанию) (рис. J 1.29). Mr bet Default i-drap Content Type Choose Ihe default t-tjcp conlenl fjjpe. JBIocK
Г"Ж
1
Caned
Рис. 11.29. Диалоговое окно Set Default i-drop Content Type
Глава 11. Коллективная работа
539
В этом окне с помощью раскрывающегося списка Choose the default i-drop content type (Выберите тип точек загрузки по умолчанию) можно задать тип содержимого, вставляемого в текущее приложение фирмы Autodesk из точек загрузки.
Операции с адресами Интернета • Несколько новых дополнительных средств предоставляет пользователю меню Express (Экспресс). В Express Tools 2004 есть три команды, которым соответствуют пункты подменю Web tools (Сервис Web), применяемые при работе с адресами Интернета. Команда SHOWURLS, которой соответствует пункт Web tools | Show URLs (Сервис Web Показ URL), показывает список использованных в рисунке адресов сети Интернет в формате URL (Universal Resource Locator). Данная команда открывает диалоговое окно SHOWURLS — Show objects with attached URLs (SHOWURLS - показ объектов с URL) (рис. 11.30). 1 SHOWURLS - Show objei ts with attached U RLs
i>3
lURLName
EnWv Tyre
• nHp:AWjw autcc-w lu hKp://www autodesk com
Show URL
|
'•'.LINE
Edit
|
Replace
j
Cc?a
Бэасе •
MS MS
]
Help
j
Рис. 11.30. Диалоговое окно SHOWURLS — Show objects with attached URLs
В этом диалоговом окне с помощью кнопки Show URL (Показ URL) можно подсветить в рисунке объект с отмеченной гиперссылкой, посредством кнопки Edit (Редактирование) — изменить адрес ссылки, а с помощью кнопки Replace (Замена) — выполнить замену адреса во всех вхождениях на другой адрес. Команда CHURLS, которой соответствует пункт Web tools | Change URLs (Сервис Web Изменение URL), выводит запрос на выбор объекта. Если выбрать, например, отрезок в пространстве модели, то команда затем открывает диалоговое окно Change URL for LINE in Model Space (Замена URL для объекта LINE в пространстве модели) (рис. 11.31). В заголовке окна, приведенного на рис. 11.31, могут быть другими тип примитива и наименование пространства (в зависимости от того, какой объект
540
Часть II. Адаптация AutoCAD
указать). В поле URL можно ввести другой адрес гиперссылки. После закрытия окна с помощью кнопки ОК система заменит адрес в гиперссылке. Change URL lot LINE in Model Space
URL:
._ :•
Рис. 11.31. Диалоговое окно Change URL for LINE in Model Space
Команда REPURLS (ей соответствует пункт Find and Replace URLs (Поиск и замена URL)) — ищет и заменяет в рисунке одни URL-адреса на другие. Команда открывает окно Replace URL text (Замена текста URL) (рис. И.32). iRepiace URL text
Oi
f-ind what
www **odesk. :om
Retrace with
www,c*fdaua
|
OK
Cancel
Рис. 11.32. Диалоговое окно Replace URL text
В этом окне в верхнем поле необходимо ввести заменяемый текст, а в нижнем — заменяющий. После закрытия окна с помощью кнопки ОК замена в тексте гиперссьтлки примитивов текущего рисунка будет выполнена.
Доступ к сайтам фирмы Autodesk В состав падающего меню Express (Экспресс) входит также вспомогательное подменю Web Links (Web-ссылки) со следующими пунктами: О Express Tools Web site (Сайт Express Tools) - запускает программубраузер и устанавливает соединение с сайтом www.autodesk.com /expresstools, посвященным Express Tools; О Express Tools Newsgroup (Группа новостей Express Tools) — запускает программу-браузер и устанавливает соединение с группой новостей news://discussion.autodesk.com/autodesk.expresstools, посвященной Express Tools; О Autodesk Products and Support Website (Продукты Autodesk и сайты поддержки) — запускает программу-браузер и устанавливает соединение с сайтом www.autodesk.com/products, на котором находятся сведения о программных продуктах фирмы Autodesk.
Глава 11. Коллективная работа
541
Служба Communication Center Из сети Интернет можно получать уведомления службы Communication Center (Центр связи) об обновлениях продуктов фирмы Autodesk. Для этого в правой части строки состояния должен присутствовать значок [ Q Тогда система AutoCAD с интервалом времени, заданным в диалоговом окне Tray Settings (Настройка лотка) (см. рис. 9.32). пытается соединиться с сайтом фирмы Autodesk и получить информацию об обновлениях. Если значка. | | нет, то следует выполнить команду TRAYSETTINGS (Л О ТО К Н АСТР) или вызвать контекстное меню настройки строки состояния (см. рис. 9.30) и в нем выбрать пункт Tray Settings (Настройка лотка). Откроется диалоговое окно Tray Settings (Настройка лотка) (см. рис. 9.32). В этом окне только установка флажка Display icons from services (Показывать значки служб) разрешает размещение в области уведомлений панели задач значков различных служб. Если при этом установить еще и флажок Display notifications from services (Показывать уведомления служб), то появится значок £0 Щелчок по этому значку позволяет вызвать окно Communication Center (Центр связи) (рис. 11.33), управляемое Мастером Welcome (Добро пожаловать). [йПCommunication Center
The Communication Center Is your direct conriecTion to the latest software updates, product support announcements and more. Please follow the configuration steps below to stert using the Communication Center. . Specify jour country and preferred frequency
Рис. 11.33. Окно Communication Center
В этом окне расположены три флажка, порядок которых соответствует последовательности шагов настройки: О Specify your country and preferred update frequency (Указать страну и частоту обновлений) — вызывает диалоговое окно Configuration Settings (Параметры конфигурации) (рис. 11.34), рассматриваемое далее;
Часть //. Адаптация AutoCAD
542 113 [Configuration Settings 5-
1!]!
\
ttn must specify a country and a polling frequency to enable ' Live Update featue, juntiy — " ' ~~] lease indicate for which country you vjould Ske the Live ( jpdete formation to be localized.
—£
Plftase Select Country
_^J
Teck for New Content F eese hdlcate hov^ trflen you would like your product to [ ol the Live Update Feature.
Daiy
_^j
5ЙООП Notification r^ ЕпаЫебаНооп Notification for new announcements _____ .
OK
Отмена
Пр™е*ггь |
*
Справка
Рис. 11.34. Диалоговое окно Configuration Settings
О Connect to the Internet and download available information (Соединиться с Интернетом и получить доступную информацию) — выполняет соединение с Интернетом и выводит соответствующее окно уведомления; П Specify which information channels you wish to view (Указать каналы, которые вы хотите просматривать) — позволяет задать каналы, информацию которых нужно получать. В диалоговом окне Configuration Settings (Параметры конфигурации) (см. рис. 11.34) расположены три области, отвечающие за настройку уведомлений: П Country (Страна) -- в раскрывающемся списке выбирается страна, по которой ищется информация для уведомлений; П Check for New Content (Проверить новое содержание) — в раскрывающемся списке выбирается интервал времени для повторной проверки информации: •
Daily (Ежедневно);
•
Weekly (Еженедельно);
•
Monthly (Ежемесячно);
•
On Demand (По запросу);
Глава 11. Коллективная работа
П Balloon Notification (Уведомление в форме воздушного шара) — над панелью задач генерируются уведомления в виде окон, имеющих желтый фон и форму, похожую на форму воздушного шарика. Кнопки Refresh Content (Обновить содержание) и Settings (Настройки) окна Communication Center (Центр связи) (см. рис. 11.33) позволяют, соотнетственно, освежить содержание окон уведомлений и вызвать уже рассмотренное диалоговое окно Configuration Settings (Параметры конфигурации) (см. рис. 11.34).
ГЛАВА 12
Работа с базами данных и электронными таблицами Система AutoCAD имеет свои средства, позволяющие работать с базами данных и электронными таблицами или создавать связи между примитивами рисунка и записями базы. Рассматриваемая версия системы может взаимодействовать с базами данных и электронными таблицами следующих типов: 3 Microsoft Access; a dBASE; П Microsoft Excel;
О Paradox; П Microsoft Visual FoxPro; П Microsoft SQL Server.
D Oracle; Для краткости далее вместо "базы данные и электронные таблицы" буде м говорить "базы данных" или просто "БД".
Доступ к БД Для получения доступа к внешней базе данных из системы AutoCAD необходимо настроить связь с БД с помощью драйверов Microsoft OLE DB (OLE Databases). Из типов драйверов, доступных пользователю, есть драйвер OLE DB, который работает с любыми типами перечисленных ранее баз посредством драйверов Microsoft ODBC (Open Database Connectivity). Кроме того, есть драйверы для Microsoft Access, Oracle и Microsoft SQL Server, которые могут напрямую обращаться к базам этих типов. В процессе работы драйверов OLE DB используется модель COM (Component Object Model), разработанная фирмой Microsoft. После завершения настройки связи с базой данных создается файл с расширением udl (от слов Use Data Link (Использовать связь с данными)). По умолчанию UDL-файлы располагаются в папке Data Links внутри панки
Глава 12. Работа с базами данных и электронными таблицами
545
Documents and Settings текущего пользователя (путь к папке можно изменить на вкладке Files (Файлы) диалогового окна Options (Настройка), вызываемого командой OPTIONS (НАСТРОЙКА) — см. главу 9}. В процедуре создания UDL-файла обычно используются существующие или создаваемые файлы с расширением dsn (сокращение от Data Source Name (Имя источника данных)), которые по умолчанию располагаются в папке c:\Program Files\Common Files\Odbc\Data Sources, хотя возможно создание файла настройки и без DSN-файла. В качестве примера в папке Sample программного обеспечения системы AutoCAD поставляется файл db_samples.mdb базы данных Microsoft Access, В папке Data Links, расположенной внутри папки Documents and Settings текущего пользователя, находится уже созданный UDL-файл jet_dbsamples.udl, настроенный для работы с таблицами этой базы. Для чтения такого файла даже не требуется наличие программного обеспечения Microsoft Access, достаточно наличия драйверов OLE DB и ODBC.
Диспетчер подключения к БД Команда DBCONNECT (БДСВЯЗЬ), которой соответствует пункт dbConnect (Связь с БД) падающего меню Tools (Сервис), вызывает немодальное окно DBCONNECT MANAGER (Диспетчер подключения к БД) (рис. 12.1). is ; drawing! ,dwg Data Sources fjj. jet.dbsamples
Рис. 12.1. Окно Диспетчера подключения к БД (в плавающем положении)
• Окно Диспетчера подключения к БД обладает всеми новыми свойствами, появившимися у немодальных окон в системе AutoCAD 2004. Данное окно можно вызвать также с помощью комбинации клавиш +. Для закрытия окна используется или команда DBCCLOSE
546
Часть II. Адаптация AutoCAD
(ДСОЗАКРЫТЬ), или кнопка Q окна Диспетчера подключения к БД, или комбинация клавиш +. Это окно двойным щелчком по заголовку или перетаскиванием можно закрепить слева или справа от графического экрана (рис. 12.2). 1 la] AutoCAD ЛХМ - [Drawing l-dwg] © F4li
Edft
View
j^jTC
insert i—»
Format
HOODI Dr т
Tods
Снтепысг.
'.«0
JJijiByLiw.
J-).. j-j |
- -
rtJdtfy
--
' 1 €: Jt. Sf 4 ^ - ^ Data Soutes
l^j
ВуЦи-
.-J'J
Г
E*pres*
dbConnect
Wmdov
&|S»nd«J BJ.L.W-
Jj-
Hefc
- 5
Jji^llSQ-й -
x
>J;
J|
Ж
1
-5|Л
ojo r'lu OiY
о -^
\/ I
4J;a f
•Ir .; Ccmsapd If iJj3*Mand:
I _L D
, & >
,(
dbCoonect
;1_гэЭ23Э6.16Э?060гООООр
_l]. 3 ;J SNAP] GRID; ORTHO PpLfifl'IOSHW1 .OTRACKj LWI||MODEL
jj
j^. •, £
Рис. 12.2. Окно Диспетчера подключения к БД (s фиксированном положении)
Как и все немодальные окна системы AutoCAD 2004, окно Диспетчера подключения к БД может быть свернуто до вертикальной полосы (рис. I2.3) щелчком по значку QQ заголовка окна. Для того чтобы снова развернуть окно Диспетчера подключения к БД, необходимо щелкнуть по значку ДТ|. Щелчок по значку ИД (или щелчок правой кнопкой мыши в зоне заголовка окна) открывает контекстное меню настройки слоиста окна Диспетчера подключения к БД (рис. 12.4). Контекстное меню настройки имеет следующие пункты: О Move (Переместить) — выполняет перемещение окна на новое место; ~3 Size (Размер) — изменяет размер окна; О Close (Закрыть) — закрывает окно;
Глава 12. Работа с базами данных и электронными таблицами
547
П Allow Docking (Разрешить закрепление) — разрешает или запрещает закрепление окна по краям графического экрана; 3 Auto-hide (Автоматически убирать с экрана) — разрешает или запрещает автоматическое сворачивание, если курсор оказывается вне окна. Два последних пункта могут иметь слева от наименования установленные флажки, что означает разрешение соответствующего свойства.
Рис. 12.3. Окно Диспетчера подключения к БД (н свернутом положении)
Рис. 12.4. Контекстное меню свойств окна Диспетчера подключения к БД
В окне Диспетчера подключения к БД выводятся имена открытых файлов рисунков (на рис. 12.1 и 12.2— один файл Drawingl.dwg) и имена DDLфайлов, обнаруженных в папке источников данных системы AutoCAD (обычно это папка Data Links, расположенная внутри папки Documents and Settings текущего пользователя). Имена UDL-файлов показываются в виде дерева, начинающегося с узла Data Sources (Источники данных). На рис. 12.1 и 12.2 приведено имя одного UDL-файла — jet_dbsamples.udl, который входит в вариант полной установки системы AutoCAD. Источник jet_dbsamples слева от имени имеет значок ^ — это означает, что база данных, на которую указывает файл, в настоящий момент не подключена к системе AutoCAD. У подключенной БД должен стоять значок ©.
Меню dbConnect (Базы данных) Одновременно с открытием окна, приведенного на рис. 12.1, в строке меню перед меню Window (Окно) появляется имя дополнительного падающего меню dbConnect (Базы данных) (рис. 12.5), которое имеет следующую структуру (в пояснениях к пунктам меню в скобках приведены имена соответствующих команд, написанные в верхнем регистре, которые действуют как в английской, так и в русской версиях системы AutoCAD):
548
Часть II. Адаптация AutoCAD
П Data Sources (Источники данных) — подменю работы с источниками данных: • Configure (Настройка) — настройка внешней базы данных (DBCCONFIGURE); • Connect (Подключить) (DBCCONNECT);
подключение
dbCormect
Window
Data Source'
внешней
базы
данных
Hi t
Template?
t
Queues
>
Link! labels View Data Synchronize... Link Conversion...
Рис. 12.5. Падающее меню dbConnect
О Templates (Шаблоны) — подменю работы с шаблонами: • New Link Template (Новый шаблон связи) — создание нового шаблона связи (DBCDEFINELT); • New Label Template (Новый шаблон ярлыка) — создание нового шаблона ярлыка (DBCDEFINELLT); •
Edit Link Template (Редактировать шаблон связи) — редактирование шаблона связи (DBCED1TLT);
• Edit Label Template (Редактировать шаблон ярлыка) — редактирование шаблона ярлыка (DBCEDITLLT); •
Delete Link Template (Удалить шаблон связи) -- удаление шаблона связи (DBCDELETELT);
• Delete Label Template (Удатить шаблон ярлыка) — удаление шаблона ярлыка (DBCDELETELLT); • Import Template Set (Импорт набора шаблонов) -- импорт набора шаблонов связей и ярлыков в текущий рисунок (DBCIMPORTTS); • Export Template Set (Экспорт набора шаблонов) - • экспорт набора шаблонов связей и ярлыков в файл с расширением dbl (DBCEXPORTTS); •
Link Template Properties (Свойства шаблона связи) — редактирование свойств шаблона связи (DBCPROPSLT);
Глава 12. Работа с базами данных и электронными таблицами
•
549
Label Template Properties (Свойства шаблона ярлыка) — редактирование свойств шаблона ярлыка (DBCPROPSLBLT);
1 Queries (Запросы) — подменю работы с запросами: •
Execute Query (Выполнить запрос) — выполнение запроса (DBCEXECUTEQRY);
•
New Query on an External Table (Новый запрос к внешней таблице) создание нового запроса к внешней таблице (DBCNEWQRYTABLE);
•
New Query on an Link Template (Новый запрос по шаблону связи) создание нового запроса по шаблону связи (DBCNEWQRYLT);
•
Edit Query (Редактировать запрос)запроса (DBCEDITQRY);
редактирование сохраненного
•
Delete Query (Удалить запрос) — удаление запроса (DBCDELETEQRY);
•
Import Query Set (Импорт набора запросов) — импорт набора запросов из DBQ-файла (DBCIMPORTQS);
•
Export Query Set (Экспорт набора запросов) — экспорт набора запросов в файл с расширением dbq (DBCEXPORTQS);
П Links (Связи) — подменю работы со связями; • Link Select (Выбор по связи) — создание набора из примитивов, связанных с записями БД (DBCSELECTL1NKS); •
Delete Links (Удалить связи) — удаление связей (DBCDELETELINKS);
•
Export Links (Экспорт связей) — экспорт связей в файл с форматом БД или в текстовый файл (DBCEXPGRTLINKS);
• Links Manager (Диспетчер связей) — вызов окна Диспетчера свя)ей (DBCLINKMA.NAGER); О Labels (Ярлыки) — подменю работы с ярлыками; •
Reload Labels (Обновить ярлыки) — обновление ярлыков в соответствии с текущим состоянием базы данных (DBCRELOADLABELS);
• Show Labels (Показать ярлыки) — показ ярлыков (DBCSHOWLABELS); • Hide Labels (Скрыть ярлыки) — скрытие ярлыков (DBCHIDELABELS); • Delete Labels (Удалить ярлыки) — удаление ярлыков (DBCDELETELABELS); G View Data (Просмотр данных) — подменю просмотра данных: •
View External Table (Просмотреть внешнюю таблицу) - просмотр внешней таблицы в режиме "только для чтения" (DBCV1EWTABLE);
• Edit External Table (Редактировать внешнюю таблицу) — редактирование внешней таблицы (DBCEDITTABLE);
Часть II. Адаптация AutoCAD
550
• View Linked Table (Просмотреть связанную таблицу) — просмотр связанной таблицы (DBCVIEWLINKEDTABLE); • Edit Linked Table (Редактировать связанную таблицу) — редактирование связанной таблицы (DBCEDITLINKEDTABLE); • Execute Query (Выполнить запрос) — выполнение запроса (DBCEXECUTEQRY); П Synchronize (Синхронизация) — поиск разорванных связей (DBCSYNC); П Link Conversion (Преобразование связей) -- преобразование связей из форматов предыдущих версий в новый формат AutoCAD (DBCLINKCONVERSION).
Перечень команд работы с БД После открытия окна Диспетчера связи с БД в память загружаются программы, которые позволяют работать с дополнительными командами, приведенными в алфавитном порядке в табл. 12.1 (имена команд в английской и русской версиях совпадают). Таблица 12.1. Команды работы с базами данных Команда
Пояснение
DBCCONFIGURE
Настройка источника данных
DSCCONNECT
Подключение внешней базы данных
D8CDEFINELLT
Создание нового шаблона ярлыка
DBCDEFINELT
Создание нового шаблона связи
DBCDELETELABELS
Удаление ярлыков
DBCDELETELINKS
Удаление свяэей
DBCDELETELLT
Удаление шаблона ярлыка
DBCDELETELT
Удаление шаблона связи
DBCDELETEQRY
Удаление запроса
DBCEDITLINKEDTABLE
Редактирование связанной таблицы
DBCEDITLLT
Редактирование шаблона ярлыка
DBCEDITLT
Редактирование шаблона связи
DBCEDITQRY
Редактирование запроса
DBCEDITTABLE
Редактирование внешней таблицы
DBCEXECUTEQRY
Выполнение запроса
DBCEXPORTLINKS
Экспорт связей
Глава 12. Работа с базами данных и электронными таблицами
551
Таблица 12.1 (продолжение) Команда
Пояснение
DBCEXPORTQS
Экспорт набора запросов
DBCEXPORTTS
Экспорт набора шаблонов связи и ярлыков в DBT-файл
DBCH1DELABELS
Скрытие ярлыков
DBCIMPORTQS
Импорт набора запросов
DBCIMPORTTS
Импорт набора шаблонов связи и ярлыков
DBCLINKCONVERSION
Преобразование связей УЗ других версий системы AutoCAD
DBCLINKMANAGER
Вызов Диспетчера связей
DBCNEWQRYLT
Создание нового запроса по шаблону связи
DBCNEWQRYTABLE
Создание нового запроса к внешней таблице
DBCPROPSLBLT
Редактирование свойств шаблона ярлыка
DBCPROPSLT
Редактирование свойств шаблона связи
DBCRELOADLABELS
Обновление ярлыков
DBCSELECTLINKS
Выбор по связи
DBCSHOWLABELS
Показ ярлыков
DBCSYNC
Почек разорванных связей
DBCV1EWLINKEDTABLE
Просмотр связанной таблицы
DBCVIEWTABLE
Просмотр внешней таблицы
DVAUTOVIEWOBJECTS
Автоматический просмотр связанных объектов
D VAUTOViEWR ECOR DS
Автоматический просмотр связанных записей
DVCLEARMARKS
Снятие всех пометок в окне просмотра
DVFIND
Поиск в окне просмотра данных
DVFORMAT
Форматирование содержимого окна просмотра
DVLINK
Создание связи млн ярлыка
DVLINKPLACE
Создание прикрепленных ярлыков
DVLINKTOOBJECT
Создание связей
DVPLACE
Создание свободных ярлыков
DVPRINT
Печать содержимого окна просмотра
DVPR1NTPREVIEW
Предварительный просмотр отчета
DVREPLACE
Поиск и замена в окне просмотра данных
Часть II. Адаптация AutoCAD
552
Таблица 12.1 (окончание) Команда
Пояснение
DVSETTINGS
Настройка параметров окна просмотра
DWIEWLOBJECTS
Просмотр связанных объектов
DWIEWLRE CORDS
Просмотр связанных записей
Для программиста Меню dbConnect (Базы данных) загружается из файла dbcon.mnu. который находится в папке Support, расположенной внутри папки Documents and Settings текущего пользователя. Имя соответствующей группы меню DBCONNECT. Если окно Диспетчера связи с БД открыто, системная переменная DBCSTATE имеет значение I, если закрыто — значение 0.
Создание UDL-файла Для настройки связи с внешней базой данных и формирования UDL-файла используется команда DBCCONFIGURE или пункт Data Sources | Configure (Источники данных Настройка) меню dbConnect (Базы данных). Еще один, и более удобный, способ — это щелкнуть правой кнопкой мыши по строке Dala Sources (Источники данных) Диспетчера связи с БД и вызвать контекстное меню (рис. 12.6).
Drawingl.dwg Configure Data Source.
Рис. 12.6. Вызов контекстного меню создания источника данных
Глава 12. Работа с базами данных и электронными таблицами
553
В этом меню всего один пункт Configure Data Source (Настроить источник данных), который и следует выбрать. Откроется диалоговое окно Configure a Data Source (Настройка источника данных) (рис. 12.7). В этом окне в поле Data Source Name (Имя источника данных) нужно ввести имя создаваемого источника данных (UDL-файла), например newi. Список Data Sources (Источники данных) отображает имена источников, если они ранее были настроены. г-fc Configure e Data Soutce Date Source Namei Data S ourcss:
OK
Cancel
Help
Рис. 12.7. Диалоговое окно Configure a Data Source К Свойства связи с данными Поставщик данныч Подключение! Допо1иигельно | Bee подключаемые данные Ш; DB. Connectivity Service Provider MediaCataloeDB OLE DB Provider MediaCatebgMergedOB OLE DB Provider MediaCalalogWebDB OLE 06 Provider Microsoft ISAM 1 1 OLE DB Provider Microsoft Jet 351 OLE DB Provider Microsoft Jet 4 0 OLE D8 Provide Microsoft OLE DB Provider For D^la Mining Services Microsoft OLE DB Piovider la Internet Publish™ Microsoft OLE DB Provider tor ODBC Drivers Microsoft OLE DB Provider for Oracle Microsoft OLE CE Piovider for Outlook Searcli MicrosoltOLE DB Provider loc SQL Servei Microsoft OLE DB Simple Provider MSDalaShape OLE DG Provider lor Microsoft Directory Slices VSEE Versiomng Enlistment Manager Proi-y Da»a Source
Далее
Отмена
Рис. 12.Й. Диалоговое окно Свойства сввзи с данными, вкладка Поставщик данных
554
Часть!!. Адаптация AutoCAD
После ввода имени источника данных для OLE DB открывается вкладка Поставщик данных (Provider) диалогового окна Свойства связи с данными (Data Link Properties) (рис. 12.8). Далее в качестве примеров рассмотрим процесс настройки связи для Microsoft Access и Microsoft Excel.
Microsoft Access Установим связь с базой данных db_samples.mdb, поставляемой в качестве примера вместе с системой AutoCAD (база находится в папке Sample программного обеспечения системы). Возможны два пути создания UDL-файла соединения: с использованием драйверов ODBC и без них.
Использование ODBC В диалоговом окне Свойства связи с данными (Data Link Properties), приведенном на рис. 12.8, выберите в списке Поставщики OLE DB (OLE DB Provider(s)) в качестве поставщика данных Microsoft OLE DB Provider for ODBC Drivers и нажмите кнопку Далее (Next). Откроется вкладка Подключение (Connection) (рис. 12.9). на которой в группе 1. Источник данных (1. Specify the source of data) включите переключатель Использовать строку подключения (Use connection string). Можно было бы воспользоваться переключателем Использовать имя источника данных (Use data source name) в том случае, если нужный источник был заранее создан для ODBC-драйверов. Для формирования строки соединения следует щелкнуть по кнопке Сборка (Build). Откроется окно Выбор источника данных (Select Data Source) (рис. 12.10), в котором показаны имена ранее созданных DSN-фаилов, находящихся в папке Data Sources (полный путь— c:\Program Files\Common Files\Odbc\Data Sources). Нажмите кнопку Создать (New). Откроется первая страница следующего диалогового окна — Создание нового источника данных (Create New Data Source) (рис. 12.11). В списке с именами драйверов для ODBC отметьте Microsoft Access Driver (*.mdb) и нажмите кнопку Далее (Next). Появится вторая страница диалогового окна Создание нового источника данных (Create New Data Source) (рис. 12.12). В этом окне введите имя нового DSN-файла источника данных (например, dsnl) и нажмите кнопку Далее (Next). Следующее окно появится с тем же именем, но будет содержать информацию о том, что будет создан файл источника данных с именем dsnl (полное имя файла — dsnl.dm) (рис. 12.13).
Глава 12. Работа с базами данных и электронными таблицами
555
№ Свойства связи с данными Постает нк данны* Подключение
Дополнительно j Все
|
Для невключения данных ODBC укажите следующее. 1 И сточи* данные С Иоюльзоватьимя источника данны» Обновить (• И спсльзовать строку подключения Строка подключения Сборка... | 2 Для входе в серве э использовать Пользователь: Пароль: Г~ Пустой паре» ь Г" Разреши! ь сохранение пароля
•
3 Введете начальны 1 каталог:
Г
J
Проверить подключение
ОК
Отмена
Справна
j
Рис. 12.9. Диалоговое окно Свойства связи с данными, вкладка Подключение (выбор источника данным Файловый источник, данных I Источник данных компьютера | ГЦпка
IDataSouices
Создать
ИмяОЗМ-
' ; : j
Выберите файловый источник аанныч, описывающий драйвер, с которым нужно установить связь Допускается использовать любой неточна*. данных, который ссылается на драйвер ODBC, установяеннь!^ нл данном Компьютере.
ОК
Отмена
Справ
Рис. 12.10. Диалоговое окно Выбор источника данных
556
Часть II. Адаптация AutoCAD Сojдание нового источника данных Зьрберше драйвер, дня которого задается источник |_В.едеия__ _^
LH™ М ic-rosol t A ccess-T rebel |". mdb] Microsoft dBase Drrver (' dbl) M.crosoft dBase VFP Driver |'.dbf] Microsoft dBase-Treiber i'.dbf) Microsoft Excel Drivs (" «Is) Microsoft Excel-Treiber I'.xls] Microsoft FoxPro VFP Driver |' dot] Microsoft ODBCnunOiacle '..-.-"-.h - .FLH-.
Г
.=
4 00 S019 tt 6.00B167.a 4 OO.S013.M 4 00.601 Э.ОС-J 4.00 6013 ОС S 00 В1Ё7.0С 25737711C f ff\ CmQ ПГ
' HI-. I
Допошнигельио.
(Назад
I
Далее > j
Отмена
Рис. 12.11. Диалоговое окне Создание нового источника данных (первая страница) Создание нового источника данным игля Файлового четочникл данные, с которым необходимо сохранить сбязь, или найдите его с помощь» кнопки "О взор". "dstii
< Нагад
|
Далее >^
Отмена
Рис. 12.12. Диалоговое окно Создание нового источника данных (вторая страница)
Нажмите кнопку Готово (Finish). Откроется окно Установка драйвера ODBC для Microsoft Access (ODBC Microsoft Access Setup) (рис. I2.14). Для задания имени файла базы данных нажмите кнопку Выбрать (Select) в области База данных (Database). Откроется диалоговое окно Выбор базы данных (Select Database) (рис. 12.15). в котором необходимо указать файл db_samples.mdb из папки Sample с примерами.
Глава 12. Работа с базами данных и электронными таблицами
557
(Создание нового источника данным Заданный источник дан нык будет создан после нажатия кнопки "Готово". Возможно, погребается ввести дополнтельные сведения. Ф айловый источник нанньи Имят-айлэ dsnl Драйвер McrosoflAcceisOiiverl* mdb)
Готово
Отмена
Рис. 12.13. Диалоговое окно Создание нового источника данных (третья страница] Установка драйвера ODBC для Microsoft Access
ОК
Имя источника данный: Описание:
Отмена Базаданнь» Справка
База данный: ыбрать...
Создать...
Восстановить..
Сжать.
Дополнительно.
Системная ваза данных- - -
Р Нет f~ База данных: Системная база данных .
Параметры»
Рис. 12.14. Диалоговое окно Установка драйвера ODBC для Microsoft Access
После этого вы снова вернетесь в окно, приведенное на рис. 12.14, но в области База данных (Database) появится текст: База данных: D:\AutoCAD2004\Sample\db_samples.mdb (рис. 12.16). Нажмите кнопку ОК. Далее снова откроется окно Выбор источника данных (Select Data Source) (рис. 12.17), но с выбранным источником dsnl. Закройте окно щелчком по кнопке ОК. Еше раз откроется окно, приведенное на рис. 12.16, в котором необходимо нажать кнопку ОК.
Часть II. Адаптация AutoCAD
55S Выбор базы данных Имя базы данный
Каталоги
I'.mdb
dLAsample
OK
Отмена
db_sampbs.rrdb
Справка CD Database Come. Г Толмчгв(ив Г~1 DesignCenler *—* _ «_ УДД h I Монопольный доступ Тип Файлов:
Диски;
Блзы данные Access | у|
-j
Сеть...
Рис. 12.15. Диалоговое окно Выбор базы данных
[Установка драйвера ODD С для Microsoft Access
Имя источника данных: j
(Ж
Описание:
Отмена
. Базаданны- ~ База данных Выбрать...
D: \AutoCAD 20D^Sarnple\db_sain^ lei mdb Создать...
Справка
ВОССТЗНО£*ЯЬ...
!
Дополнительно...
г Системная ваза данлы^ • ~
«• Нет . ^ Баз^данных. Системная база данных .
Плрамегрь!»
Рис. 12.16. Диалоговое окно Установка драйвера ODBC для Microsoft Access (с именем выбранной базы)
После этого вновь появится окно Свойства связи с данными (Data Link Properties) (рис. 12.18), в котором открыта вкладка Подключение (Connection), но уже заполнена строка подключения. Нажмите кнопку Проверить подключение (Test Connection). Если все выполнено правильно, будет выдано сообщение об успешности проверки (рис. 12.19). Теперь можно закрыть окно Свойства связи с данными (Data Link Properties), после чего в окне Диспетчера подключения к БД появится строка с именем UDL-файла соединения с базой данных db_samples.mdb (рис. 12.20).
559
Глава 12. Работа с базами данных и электронными таблицами Iвыбор источник,) данный РайлоБый источник данных | Источник данных компьютера] Папка:
JDataEouices
(fldt.i1
ИгяиОЗИ:
idsnl
Создать...
I Выберите Файловьй источник данных, описывающий драйвер, с которым | HIJXHO установить СБЯЗЬ. Допускается использовать пюбой источник ! дэмных.которыйссылаетсянаирайвбрООВС, нстэноБленныйнаданном
DK
Рис. 12.17. Диалоговое окно Выбор источника данных (с выбранным источником данных) lift Свойства связке денными Постлвщ!* данных
Подключение
ннцщнннн^н Нх| Дополнятепьмо Все
|
Для подилочения данных ODBC ук а*иге следующее: 1. Источник данных: f~ ИсполвзоБагв имяисточ никааднньв
Г
Обновить
'•' Использовать стропа подключения Стропа подключения: JDEQ=D.WuuCAD2i}(W\SampleWb_sa
Сборке...
2. Д ли входа в сераев испопвэо! >ать Пользователь: Пармк [~ Пастой пароль
Г" Разрешить сохранение пароля
3. Введите начальный каталог-
.р
^J Проверить подключение
ок
Отг^ена
Справка
Рис. 12.18. Диалоговое окно Свойства связи с данными, вкладка Подключение (с заполненной строкой подключения)
560
Часть П. Адаптация AutoCAD Связь с данными (Microsoft) Провеял подключения Быюлненэ,
Рис. 12."19. Окно с сообщением об успешной проверке подключения
Drawing! .dwg * Data Sources . newl
Рис. 12.20. Окно Диспетчера подключения к БД (с источником данных newl)
Создание в операционной системе источника данных для ODBC Источник данных для ODBC-драйверов может быть создан заранее. Для этого в операционной системе Windows XP следует открыть папку Панель управления (Control Panel) и выполнить Производительность и обслуживание Администрирование | Источники данных (ODBC). В более ранней версии операционной системы необходимо в папке панели управления щелкнуть по значку ODBC Data Sources (32bit) (Источники данных ODBC (32-битные)). Затем следует выполнить действия по зультате имя созданного источника в Свойства связи с данными (Data Link вающемся списке Использовать имя name).
создания источника данных. В редальнейшем будет доступно в окне Properties) (см. рис. 12.9) в раскрыисточника данных (Use data source
Обход ODBC Можно установить связь с базой Microsoft Access (а также с Oracle и Microsoft SQL Server), минуя ODBC. На вкладке Поставщик данных (Provider)
Глава 12. Работа с базами данных и электронными таблицами
561
диалогового окна Свойства связи с данными (Data Link Properties) (см. рис. 12.8) можно воспользоваться, например, поставщиком Microsoft Jet 3.51 OLE DB Provider или Microsoft Jet 4.0 OLE DB Provider. В этом случае вкладка Подключение (Connection) изменит свой вид (рис. 12.21). С помощью кнопки ^_ нужно задать имя файла базы данных. Дальнейшие действия пользователя по созданию DDL-файла аналогичны действиям, рассмотренным в случае применения ODBC-драйверов. IR Свойства связи с данными Поетавщык. данный Подключение Дополнительно ] Все Укажите сведения для пидк/иочелия к данным Aecf ss 1 Выберете или введите имя базы данный"
2. Введите сведения для входа Е базу дэнны Пользователь" АО"
Пастой пароль Г* Раэрвинть сохранение пароля
Проверить подключение
СЖ
Отмена
|
Справка
I
Рис. 12.21. Диалоговое окно Свойства связи сданными, вкладка Подключение (поставщик Microsoft Jet 4.0 OLE DB Provider)
Microsoft Excel Создание источника данных для файла табличного процессора Microsoft Excel выполняется аналогично, но предварительно необходимо в файле выделить диапазон ячеек и присвоить ему имя. Таких диапазонов с именами может быть несколько. После этого именованные диапазоны в окне Диспетчера подключения к БД могут использоваться как таблицы для подключения к системе AutoCAD.
Часть II. Адаптация AutoCAD
562
Замечание
J
В зависимости от версии драйвера OLE DB, установленного в операционной системе, вам может быть недоступно редактирование таблиц Excel прямо из системы AutoCAD.
Подключение После создания источника данных в окне Диспетчера подключения к БД можно выполнить операцию непосредственного подключения. Для этого необходимо щелкнуть правой кнопкой по имени UDL-файла и в открывшемся контекстном меню (рис. 12.22} выбрать пункт Connect (Подключить).
Рис. 12.22. Контекстное меню источника данных
После выполнения подключения к нужным БД в окне Диспетчера БД будут отображены имена таблиц подключенных баз (рис. 12.23). i?
:
-;£
Л
24352 __ 24417 __ 24463 24857
MITSUBISt MITSUBISHI SUN SUN
HL66CSATK, COLOR, 16_Ш66С5АТК, COLOR, 16" GDM-1662BV, COLOR, 19" GDM-1604, COLOR, IS'
SUN" " NEC "AST NEC '
'GDM-1962E, COLOR, 19" MJITISYNC 1FG, COLOR, 15° 500523, VGA, COLOR, 11" MULTISYNC 3FGX, COLOR, 15* JT35A-WB1, MODEM, EXT,
25422
'NEC " :
25452 26072 26174 26240
__ 26S78 ___ 26591
TELEBIT "NEC
26712 27042 27394 27397 27525 27543 27566 j276-tC
' NEC SKUTCH " "APC 'APC "SUN SUN 'SUN '3COM'"
'
n I 1 j Record
1
Equipmerit_De script ion
MULTISYNC эрах, COLOR, is"
'MULTISYNC 4FG, COLOH, is" MLAT1SYNC 4FG, COLOR, 15" ,AS -2500-2 900XLPE UDM-L962B, COLOR, 19" 'SDM-1962B, COLOR, 19" GDM-1962E, COLOR, 19" .3C588, REPEATER
Item_Type MOMI10R COLOR 16 MONITOR COLOR 16 MONITOR COLO* 19 MONITOR COLOR 15 MOWITOT CO.OR 15 MONITOR COLOR 19 MONITOR COLOR 15 MONITOR COLOR 14 MONITOR COLOR IS
Щ *| Room '1 6090 6079 "" 1 6190 6190 6023 6190 6023 6022 " -6067
MODEM MONITOR COLOR IS
:6190 6076
MONITOR COLOR 1Б T ^E WORK REMOTE P.E5ET UPS CONTRO.LER UPS CONTRO.LER MONITOR COLOR 19 MONITOR COLOR 19 MONITOR COLOR!»
6076 6190 6190 6190 6190 6190 6190
ICTWORK
6190
-r-
t\H
Рис. 12.4В. Окно Data View с выбранным шаблоном связи
Интересующая нас кнопка I13*] соответствует команде DVLINKTOOBJECT. Назовем два других способа вызова операции установления связи записей и объектов: О в контекстном меню заголоака записи (см. рис. 12.36) или контекстном меню ячейки (см. рис. 12.42) в подменю Link and Label Settings (Параметры связей и ярлыков) установить режим Create Links (Создавать связи) и щелкнуть по пункту Link! (Связь!); О в падающем меню Data View (Просмотр данных) (см. рис. 12.43) сначала выбрать пункт Link and Label Settings | Create Links (Параметры связей и ярлыков | Создавать связи), а затем — пункт Link! (Связь!). После щелчка по кнопке [f J система временно уберет с экрана окно просмотра таблицы и попросит указать объекты рисунка. В командной строке появится сообщение (цифры приведены для случая связи одной записи с одним объектом): / Record(s) linked with 1 Object(s). (1 запись(и) сеязана(ы) с 1 объектом(ами).)
Выбранные объекты теперь будут связаны с отмеченными записями.
582
__^____
Часть II, Адаптация AutoCAD
При выполнении повторной операции связывания (с помощью пункта Link! (Связь!) контекстных меню) записи таблицы с новыми объектами старые связи сохраняются, поэтому количество объектов, связанных с выделенной записью, увеличивается. Созданные связи можно редактировать или удалять (см. долее в этой главе).
Просмотр связей Для просмотра объектов, связанных с конкретной записью таблицы, следует сначала в окне Data View (Просмотр данных) (см. рис. 12.48) в первом раскрывающемся списке выбрать имя шаблона связи (например, ComputerLinkl для таблицы Computer) и выделить в таблице одну или несколько записей, связи с которыми необходимо просмотреть. Затем следует щелкнуть по кнопке [£й| окна Data View (Просмотр данных) (ей соответствует команда DWIEWLOEJECTS). Другие способы запуска команды DW1EWLOEJECTS: О в контекстном меню заголовка записи (см. рис. 12.36) или контекстном меню ячейки (см. рис. 12.42) выбрать пункт View linked objects (Просмотреть связанные объекты); D в падающем меню Data View (Просмотр данных) (см. рис. 12.43) выбрать пункт View Linked Objects (Просмотреть связанные объекты). Система AutoCAD автоматически покажет в рисунке объект (или объекты), связанные с выделенной записью (или записями) таблицы (рис. 12.49). Одновременно в командной строке появится текст: 7 Object(s) found matching 1 selected Record(s). (Иайден(ы) 1 объект(ов), соответствующих I выбрсшной(ым) записи(ям).) Об управлении панорамированием и зумированием при показе объектов см. раздел "Параметры просмотра связей"этой главы. Для просмотра записей, связанных с конкретным объектом, используется кнопка \-щ окна Data View (Просмотр данных) (ей соответствует команда DVVIEWLRECORDS). Альтернативным способом запуска команды DW1EWLRECORDS является выбор пункта View Linked Records (Просмотреть связанные записи) падающего меню Data View (Просмотр данных) (см. рис. 12.43). На рис. 12.50 показано соответствующее действие системы (отметка в таблице связанной записи). Одновременно в командной строке появится примерный текст: / record(s) are linked to 1 selected object(s). (I запись(и) связана(ы) с f выбранным(и) объектом(ами).)
Глава 12, Работа с базами данных и электронными таблицами
583
!|5 Чв ЕЛ Vlev great Ff*mK ГкЬ Сгогч CfrieiBtci Modty bjrtss ЩСогоеЛ D*aView wmww h-Jt
- ,|.-_а*"'ИРМ
3>**ijj*{
S
=V 44
,"'X^_
.
~
1.
э
d i^j 1
1
-'-'
_^(gj_xj
'
}
svljg
"fe1^ • ?4^ss:
-
J
.
.г
— -
m и --- и ^ ^ - fjl db sarp dw5 IUB 4эо(ЫлЯ1
n u!
|М1У|Г|^М
г*«э аи
'•
'
.-
"
>!S EmtfcyeBLrk] •в ^ jnputedJiiil • ^> EntfoyeeLflWi F^ ROOMQ(j£fiTl
'
"гягг~ЧЕс'~ !Е>5г ЯЛ 26072 №С
•
26573 ГЩВГТ !6S9l IJEC 2S71?;NFC
V
-
'... ..
- — _. .
i
275*3 Sft
—
! *C > :. r.j. v. -1 L
г 1 3 Ы
,1
^-^ x
El
-
*B EfluCnenl^b -fTTl Iriwefoiy i H^r^i^fei^t
• r1
fcllxCenter'Dynefcic^;j(tcnts^Frev i 0 as'Sca:e''Uindoa; ' i e a ! 4 r r . e > e a*jnand 1 Ob]ect(3) lound Batching 1 selected Keccauis}
_-J "^
-.ьчяпН
1 : 1
|Ю'-1ЕЗ|ЫМ.8»-335/64".:МГ
i SNAP: GRID1 ОВГИО; FDL4R.JOSNOP ОТНДПХ |LWI JMODEL
-^
*1
- i
Рис. 12.49. Просмотр объектов, связанных с выделенной записью IJAulrjCfll* --H'l i - f Llb_4*np.dtvLil ^3 Ffc ЕЛ V№
Inswt ^опил
ТооЬ &д- [ятепил 4rafy Exp«s dbConrocI
Daraview Virttaw htefc
| ;o»''smcpj .{[leyLdye
^ | | ^
— ByLem
Tj,|__DM*i
31! ^«w
и и да; и -=4
'
F-,p ^. -e.f ' L
гтло'зсом '
03 Erno
27S55 HEV4EIT РКef Q jickQueiy
Range Query [ Queiy Builder j SQLQueiy] Execute
Field
Oats
Manufacturer E quipment_D esciiplion 11ет_Туре Room
Look up values j
Help
lhraugh:| 26578 Look up values j -
Store F? Indicate recads in data view 1y Indicate objects in drying
Option .
Рис. 12.74. Диалоговое окно Query Editor (вкладка Range Query)
Она предназначена для выбора значений из диапазона (от минимального до максимального). Для задания граничных значений используются поля From (От) и Through (До). Как первое, так и второе граничное значение можно выбирать из списка с помощью двух соответствующих кнопок Look up values (Просмотр значений). Остальные элементы вкладки Range Query (Запрос по интервалу) те же, что и на уже рассмотренной вкладке Quick Query (Простой запрос).
Формирователь Третья вкладка диалогового окна Query Editor (Редактор запросов) — Query Builder (Формирователь) (рис. 12.75). На этой вкладке можно строить более сложные запросы, являющиеся комбинацией выражений, связанных логическими операциями OR (ИЛИ) или AND (И). На рис. 12.75 показано выражение, которое является комбинацией из двух выражений, соединенных операцией AND (И), показанной в столбце Logical (Логический).
Часть II. Адаптация AutoCAD
604 ;
* Query Editor -- ComputerQueryl jquиу tot lecords in iabfe: Computer
Q jickQueiji] Range Query !
Field
1
'• Tag_Numbei Tag_Numbei Room
"idds in labte:
Query BuJdei [sQLQueiy] Operator
1
Value
>- Greater tha 24Д63 -ess than с ?Ё578 ЯД • • • I 305% ^^•_J
Showlieldi-
R oom
j | Logical | And . And
Ewcule Close Help
Addj Sort by
~~] «I
j V R oom Store
£ quipnient_D escnption Room У Indicate tecoids in data *iew
1^ Indicdte obiecti in drawing
Options. .
Рис. 12.75. Диалоговое окно Query Editor (вкладка Query Builder)
При построении выражений запросов появилась возможность использования скобок, которые с помощью щелчка добавляются или убираются в неименованных столбцах перед Field (Столбец) и перед Logical (Логический). В каждом из столбцов Field (Столбец), Operator (Оператор) и Value (Значение) заполнение осуществляется щелчком по нужной клетке и выбором из появляющегося в клетке раскрывающегося списка. На рис. 12.75 показан раскрывающийся список в столбце Operator (Оператор) третьей строки. На вкладке Query Builder (Формирователь) появились дополнительные списки в нижней части окна, которые позволяют управлять отображением записей, найденных в таблице Б результате выполнения запроса: О Fields in table (Столбцы таблицы) — полный перечень столбцов таблицы, в которой выполняется запрос; 3 Show fields (Показать столбцы) -- перечень столбцов, которые необходимо показать в окне просмотра, содержащего записи, найденные по запросу; О Sort by (Сортировка) — перечень столбцов, по которым следует выполнить сортировку в окне просмотра найденных записей (элемент, расположенный в списке выше, имеет приоритет над элементами, расположенными ниже). Для добавления названий столбцов во второй и третий списки используются соответствующие этим спискам кнопки Add (Добавить). Кнопка [**], расположенная над списком Sort by (Сортировка), лает возможность задать
Глава 12. Работа с базами данных и электронными таблицами
605
или изменить направление сортировки (по возрастанию или по убыванию) для отмеченного столбца.
Составление запросов на языке SQL Четвертая вкладка диалогового окна Query Editor (Редактор запросов) — SQL Query (SQL-запрос) (рис. 12.76). Г* Query Edflor — ComputerQueryl
Quick Queiy | Range Query j Query BuSder
SQL Query j Execute
SELECT rioorn, Tag_Number FROM Computer 1 WHERE TaaJlumbeo. 24463 And TagJJurnber Emplo/eeLabell
-
Data Sources ^ Computer Щ Employee %j £mplcyees_by_RooiTI %] Equicrnefit_by_Room Ef] Inventory
Roorr
Рис. 12.78. Окно Диспетчера подключения к БД с выделенным запросом
Глава 12. Работа с базами данных и электронными таблицами
607
Редактирование и удаление запросов Для редактирования сохраненных запросов используется команда DBCEDITQRY или соответствующий ей пункт Edit Query (Редактировать запрос) падающего меню dbConnect (Базы данных). Эта команда запрашивает имя редактируемого запроса (рис. 12.79), l a Database Object Select on& or more queries to delete: ROOMQIJEFIYI
Caned Help
Рис. 12.79. Диалоговое окно Select a Database Object (режим выбора запроса для редаетирования)
После выбора имени запроса открывается диалоговое окно Query Editor (Редактор запросов) с существующим текстом запроса. Работа с этим окном рассмотрена в разд. "Создание запроса"этой главы. Для удаления ранее сохраненного в рисунке запроса используется команда DBCDELETEQRY или соответствуюшии ей пункт Queries | Delete Query (Запросы | Удалить запрос).
Запрос по шаблону связи Команда DBCNEWQRYLT и соответствующий ей пункт New Query on an Link Template (Новый запрос по шаблону связи) падающего меню dbConnect (Базы данных) создают новый запрос по шаблону связи. Команда DBCNEWQRYLT сначала открывает окно выбора имени шаблона связи (рис. 12,80). После выбора имени шаблона связи дальнейшие действия пользователя идентичны действиям при создании нового запроса.
Выбор по связи К разновидности выполнения запросов можно отнести сложный выбор объектов по комбинациям связей, выполняемый командой DBCSELECTLINKS,
Часть II. Адаптация AutoCAD
60S 1* Select a Database Object Select э bib template ID use to the query ComSulerLnM impbyeeLmH Invenloi^inlO RoomLinkl
Continue... Cancel Help
Рис. 12.80. Диалоговое окно Select a Database Object (режим выбора шаблона связи для создания запроса!
которой соответствует пункт Link Select (Выбор по связи) меню dbConnect (Базы данных). Фактически эта команда сначала по первому 33iipocy формирует набор объектов рисунка или записей БД, а затем комбинирует этот набор со вторым, полученным с помощью другого запроса, уменьшая или увеличивая таким образом размер предварительно созданного набора. Команда DBCSELECTLINKS открывает диалоговое окно Link Select (Выбор по связи) (рис. 12.81). Внешний вид диалогового окна зависит от того, какой переключатель из двух расположенных в верхней части окна выбран: П Use Query (По запросу); П Select in Drawing (Выбрать на рисунке). Если включен первый переключатель, то диалоговое окно имеет вид, приведенный на рис. 12.81, а если второй — то на рис. 12.82. Диалоговое окно Link Select (Выбор по связи) с включенным переключателем Use Query (По запросу) (см. рис. 12.81) содержит три из четырех вкладок, знакомых нам по диалоговому окну Query Editor (Редактор запросов) (см. рис. 12.72, 12.74 и 12.75). О работе с данными вкладками см. ранее в этой главе. При включении переключателя Select in Drawing (Выбрать на рисунке) вкладки становятся пустыми и недоступными (см. рис. 12.82), В первом случае верхняя кнопка в правом столбце имеет название Execute (Выполнить), а во втором — Select (Выбрать) (см. рис. 12.81 и 12.82). Схема работы диалогового окна Link Select (Выбор по связи) следующая: 1. В операции выбора сформировать набор объектов А с помошью запроса, выполняемого по нажатию кнопки Execute (Выполнить) (см. рис. 12.81). либо с помощью кнопки Select (Выбрать) (см. рис. 12.82), которая вре-
Глава 12. Работа с базами данных и электронными таблицами
609
менно закрывает диалоговое окно и предлагает пользователю выбрать в рисунке объекты указанием. 2. В операции выбора сформировать с помощью тех же кнопок набор объектов В. 3. Применить к наборам А и В одну из следующих операций: • пересечение наборов А и В; • объединение наборов А и В; • вычитание набора В из набора А; • вычитание набора А из набора В. После выполнения шага 3 приведенной схемы результирующий набор становится текущим (т.е. набором А). Можно выбрать новый набор В и уже к этим двум наборам применить одну из операций тага 3. В первый раз текущий набор всегда пустой. If^UnkSdect-db samp
Do
jlrtased
Us 4.
JHoanlmH
BDJ ^j . K
,j,
UseDlJe
; СЮ
_^J ' f SeksrtinDiawmg;
Q Jick Quay | Range Queij ] Quay Bidder j ,
Fett R Mm _T VW Агез Er%_Handte
°Pe'e'a'l-
E4Ual
^
Execuie
|
Reie^
Vdue:
l Lcn^ up v^i*^ I
Cancel Helt
P Indic^lereCDfdsind^a view
•
E-^ Indicate objects in Rawing
Dtsnr\g liable
Finisi
jdb_un*i
Objects.
Й5
jeLdbsarsplei...Rponi
Recadi:
:S5
Рис. 12.81, Диалоговое окно Link Select (с включенным переключателем Use Query)
В нижней области диалогового окна Link Select (Выбор по связи) постоянно приводится статистическая информация о состоянии текущего набора: О Drawing (Рисунок) — имя текущего рисунка; a Objects (Объекты) — количество объектов в текущем наборе;
Часть II. Адаптация AutoCAD
610
П Table (Таблица) — текущая таблица БД, к которой применяются запросы; П Records (Записи) — количество записей, отмеченных в текущей таблице.
ИИИШ]
f«t! Link Select -db samp D« Using
jlrtaseci
J
|RoomL«*l
[ж
r ule0uc,v (
J j - Select m Drawing'
Quick Gueiji | Range Quay j Quej, BuMer | Select
|
Reset Cancel Hefp
|
I* Indicate IK ads n data view !• tndicale objectt in oVamnj
lOrswrig Tabte:
FiMh
|db_samp
Objects:
[Э
iel_cl)safn()bs...Rooni
Recoide
9
Рис. 12.82. Диалоговое окно Link Select (с включенным переключателем Select in Drawing]
В верхней части окна расположены два раскрывающихся списка: П Do (Операция) — название операции шагов I— 3, которая должна выполняться (см. долее); П Using (Используя) — имя текущего шаблона связи, с помощью которого по отмеченным в результате запроса записям будут выбирать объекты рисунка. В качестве операций в раскрывающемся списке Do (Операция) доступны пять. Каждой из них соответствует своя пиктограмма, автоматически отображаемая в правом верхнем углу диалогового окна: Select (Выбор) — задает выбор объектов набора; Union (Объединение) — задает объединение двух последних наборов; Intersect (Пересечение) -- задает пересечение двух последних наборов;
Глава 12. Работа с базами данным электронными таблицами
611
Subtract А-В (Вычитание А-В) — задает вычитание набора В из набора А; Subtract В-А (Вычитание В-А) бора В.
задает вычитание набора А из на-
Именно в раскрывающемся списке Do (Операция) задается тип операции, которая будет выполнена при нажатии на кнопку Execute (Выполнить) или Select (Выбрать). Кнопка Reset (Сброс) сбрасывает настройки диалогового окна и обнуляет как набор выбранных объектов рисунка, так и множество выделенных записей текущей таблицы БД. Кнопка Cancel (Отмена) отменяет все действия, выполненные в диалоговом окне Link Select (Выбор по связи), и закрывает окно. Кнопка Finish (Закрыть) тоже закрывает окно, но сохраняет в рисунке и БД результат выполненных действий: П набор выбранных объектов рисунка, если в окне Link Select (Выбор по связи) установлен флажок Indicate objects in drawing (Пометить объекты на рисунке); П множество отмеченных записей текущей таблицы БД, если в окне Link Select (Выбор по связи) установлен флажок Indicate records in data view (Пометить записи в окне просмотра).
Файлы запросов Сформированные в рисунке запросы удобно экспортировать в специальные файлы, из которых затем можно будет выполнить операцию импорта. Команда DBCEXPORTQS, которой соответствует пункт Queries | Expert Query Set (Запросы | Экспорт набора запросов) меню dbConnect (Базы данных), выполняет экспорт набора запросов в файл с расширением dbq. Для импорта набора запросов из DBQ-файла в рисунок используется команда DBCIMPORTQS, которой соответствует пункт Queries | Import Query A Query with Ibis name already sxisls. Er.ter an unique name tor this Query.
IRQOMQUEHYI OK
I
Cancel
Рис. 12.83. Диалоговое окно Alert
el2
Часть II. Адаптация AutoCAD
Set (Запросы | Импорт набора запросов) меню dbConnect (Базы данных). Если при импорте система AutoCAD обнаружит, что запрос с таким именем в рисунке уже существует, то будет выдано предупреждающее сообщение с предложением изменить имя запроса (рис. 12.83). В диалоговом окне Alert (Предупреждение) кнопка ОК остается недоступной до тех пор, пока пользователь не введет другое имя.
Ограничения драйверов OLE DB Известны ограничения некоторых версий драйверов OLE DB, не позволяющие редактировать из системы AutoCAD таблицы Microsoft Excel, Microsoft Visual FoxPro и некоторые другие. Поэтому необходимо постоянно обновлять версии драйверов, размещаемые на сайте фирмы Microsoft.
Другие способы работы с базами данных и электронными таблицами Созданный в системе AutoCAD инструмент связи рисунка с базой данных является важным и мощным средством расширения сферы применения системы в проектировании. Однако пользоваться им следует аккуратно, проверяя целостность и корректность связки AutoCAD — БД. В реальной жизни более привлекательным является способ написания своих программ, которые с помощью СОМ-технологии устанавливают связь с нужной таблицей или базой и выполняют необходимые команды на языке SQL. Примеры программ работы с таблицей Microsoft Excel были приведены в разд. "Применение СОМ" главы 2. Обратим внимание читателя также на папку Database Connectivity, расположенную внутри папки Sample программного обеспечения системы AutoCAD. В этой папке находятся файлы caotest.lsp и caotest.dvb, являющиеся примерами приложений, работающих с базами данных и использующих механизм ADO (ActiveX Data Objects). В готовящейся к выпуску книге С. Зуева и Н. Полешука "САПР па базе AutoCAD. Как это делается" издательства "БХВ-Петербург" вопросам связи с базами данных уделено значительное внимание.
Послесловие Уважаемый читатель! Вы прочитали последнюю главу книги "AutoCAD 2004: разработка приложений и адаптация" серии "В подлиннике". Мне хотелось максимально подробно изложить материал о средствах разработки приложений, о настройке и адаптации системы AutoCAD. Напомню, что базовые сведения о методах создания примитивов и неграфически>: объектов, об их внутренней структуре (DXF-кодах) приведены в книге "AutoCAD 2004" серии "В подлиннике", которая вышла из печати чуть ранее. Надеюсь, вы нашли для себя полезные сведения и они помогут вам создать на базе системы AutoCAD свои собственные программные комплексы, что будет способствовать как вашему профессиональному росту, так и процветанию вашей компании. Ваши замечания и пожелания прошу направлять мне по электронной почте иа адрес
[email protected].
Предметный указатель
A ACAD 257 Active Template Library 301 ActiveX 314, 393 ActiveX Automation 16 ADO 6 1 2
ARG-фаЙл 506 ARX-приложение 299, 485 АТС-файл 470 AutoCAD LT 411 AutoCAD MAP 300 Autodesk Architectural Desktop 300 Autodesk Express Viewer 523 В ВАК-файл 484 Blackboard 242 Borland 335 _
C* CS 311 COM 263, 544, 612 Communication Center 541 Component Object Model 16 СОМ-клиент 301 СОМ-сервер 301 Control 404 СРР-файл 293 СТВ-файЛ 469 CUS-файл 467
D dBASE 544 DBQ-файл 549, 611 DBT-файл 548, 591 DBX-приложение 299 DCL-файл 244, 414
DEF-файл 294
Delphi 335 dialog, ключевое слово 418 DIESEL 409 DSN-файл 545 DVB-фэйт 317 DWF-формат 521 DXF-код 252, 456 DXF-формат 456 E ENTITIES, секция 456 Express Tools 507 С
FAS-приложение 233, 239 FAS-файл 221 L LIN-файл 460 LISP-выражение 99
Предметный указатель
м МАР-приложение 300 MFC 284, 300 Microsoft Access 544 Microsoft Excel 264, 544 Microsoft Foundation Classes 300 Microsoft Visual Studio 284 Microsoft Visual Studio -NET 284 MNL-файл 282, 334, 409
N NetMeeting 516
Object Enabler 299 Object Modeling Framework 300 ObjcctARX 284 ObjectDBX 285 ODBC 544 OLE DB 544 OLE-контейнер 337 OMF-приложение 300 Oracle 544
PAG-файл 320 Paradox 544 РСЗ-файл 469 PFB-файл 454 РМР-файл 469 PRJ-фаЙл 237 PRV-файл 240
SHAPE, примитив 455, 456 SHP-файл 451
615 SHX-файл 454, 457 slidelib.exe 400 SQL Server 544 SQL-запрос 585 STB-файл 469
Т ThisDrawing 329
и DDL-файл 470, 544 Unicode 457 Unload Me 330 URL 539
VBA3I2 Visual Component Library 337 Visual FoxPro 544 VLA-объеет 150, 259 VLR-oobeKT26l VLX-приложение 233, 239
w Workspace 288
XML 368 XRECORD 257 Х-запись 257
616
Автоотслсживание 502 Автопривязка 500 Автосохранение 469, 483 Адаптер 299, 4S6, 495 Альбом цветов 469 Анимация программы 235 Аргумент 100 Атрибут 416, 419 a action 432 О child re realignment 420 О ehildrcn_fixed_heig]it 421 О children_fixed_width 421 О height 420 О initial_focus 420 О key 420 О label 420
О value 420, 433 О width 420
Предметный указатель Директива 415 О описания диалога 418 О описания элемента 422 Диспетчер ссылок 520
Загрузка 309 О LISP-программы 234 О автоматическая 334 О приложения 104, 206, 245 Запрос: о SQL 585 О выполнение 606 О по шаблону связи 607 О проверка 606 О редактирование 607 О создание 599 О удаление 607 Зона командных строк 476
И База данных 544 Безопасный массив 260 Библиотеке!: О слайдов 399 О типов 341 Буфер обмена 496 Буферизация 488
В Вариант 260, 322, 340 Внсдокументное пространство имен 242 Возвращаемое значение LISP 100 Выбор; О по связи 607 о объектов 503 О окна начала работы 494
д Дерево меню 367 Диалог 319, 415 О атрибуты 419 Диалоговое окно 244, 319 5 вложенное 448 Диапазон ячеек 281 Дигитайзер 51]
Инспектор объектов 342 Инструкция ©include 418 Интернет 530 Интерпретатор LISP 99 Интерфейс 22
К Каскад 402 Клавиши: О + 315 О +401 О 399 5 + 545 О -KC> 496 О + 496 О <Enter>458 п имитация нажатия клавиши 247 Э <Ese> 246 О 508 О 508 О 514 5 508 О 508 О 508 9 508 О 508 О 501
Предметный указатель Класс 323 Классы ObjcctARX 309 Клиент-сервер 337 Кнопка: О групповая 388 О добавление 384 О макрос 388 О свойства 387 О удаление 385 О крупная 383 Команда: О 3DCONFIG 491 О AI_EDITCUSTFILE 405 О APERTURE 502 О APPLOAD 309 О ARX 309 О BROWSER 467, 530 О CHURLS 539 О COLOR 246 5 COMPILE 454 О CUSTOMIZE 382 О DBCCLOSE545 О DBCCONF1GURE548, 552 О DBCCONNECT 548 5 DBCDEFINELLT 548, 595 О DBCDEFINELT 548, 578 О DBCDELETELABELS 549, 599 О DBCDELETEL1NKS 549 О DBCDELETELLT 548 О DBCDELETELT 548 5 DBCDELETEQRY 549, 607 О DBCED1TLINKEDTABLE 550 О DBCEDITLLT 548 О DBCEDITLT548, 589 О DBCEDITQRY 549, 607 О DBCEDITTABLE 549, 563 О DBCEXECUTEQRY 549, 550, 606 6 DBCEXPORTLINKS 549, 590 О DBCEXPORTQS 549, 611 О DBCEXPORTTS 548, 591 О DBCHIDELABELS 549, 599 О DBCiMPORTQS 549, 611 О DBCIMPORTTS548, 591 О DBCL1NKCONVERSION 550, 592 О DBCLINKMANAGER 549, 586 О DBCNEWQRYLT 549, 607 О DBCNEWQRYTABLE 549, 599 О DBCONNECT 545 О DBCPROPSLBLT 549 О DBCPROPSLT 548, 589
617 О DBC RELOAD LABELS 549, 598 О DBCSELECTL1NKS 549, 586, 607, 608 О DBCSHOWLABELS 549, 599 О DBCSYNC 550, 594 О DBCVIEWLINKEDTABLE 550 :• DBCVIEWTABLE 549, 563 С DBLCLKEDIT497 О DVLINKPLACE 598 О DVL1NKTOOBJECT581 о DVPLACE598 С- DVVIEWLOBJECTS582 О DWIEWLRECORDS 582 О DWGPROPS523 О ETRANSMIT51& О EXPLODE 455 С EXPRESSMENU 507 О EXPRESSTOOLS 507 Э INSERT 526 О LAYER 249 С LINE 249 О LINETYPE460 О LIST 455 О LOAD 454 О LSP282 О LSPSURF283 О MEETNOW516 О MENU 377, 378, 467 О MENULOAD377 О MENUUNLOAD378 О MKLTYPE462 О MOVEBAK484 О MSLIDE400 О OPTIONS 463, 545 О PLTNE247, 249 u PSOUT 468 О PUBLISH 523 О PUBLISHTOWEB 530 О PURGE 455 О QNEW404, 470 и REDIR456 О REFEDIT48! О REPURLS 540 О SAVEAS456 О SECURITYOPT1ONS 523 О SETIDROPHANDLER538 О SHAPE 455 О SHOWURLS 539 О SHP2BLK456 О SIGVALIDATE 526 Продолжение рубрики см. на с. 618
618
Команда (прод.): О SPLINEDIT392 О SYSWINDOWS 404 О TABLET 400, 513 О TEXT 268, 277, 458 & TODAY 516 О TOOLBAR 382 О TRAYSETTINGS 508, 541 О VBAIDE3I5 О VBALOAD317 О VBAMAN 318 О VBARUN 318 О VBASTMT312 О VBAUNLOAD 318 О VL1DE98, 20S О VLISP98, 208 a XDATA257 5 XDLIST257 О XREF526 О прозрачная 250 О работы с БД 550 Комбинация: О -Н 399 О клавиш 406 Комментарии 11)1 Концепция СОМ 16
Предметный указатель 5 макрос пункта 402 О падающее 380 О планшетное 400, 511 О раздел 379, 401 О строка 380, 412 О структура заголовка 401 О структура пункта 402 О фрагментное 377 О экранное 393, 473 Метка 416 Метод 67, 139, 324 О AddCircle 329 О AddLine 340, 347 О Eval 313 й Evaluate (Excel) 276 О Get Extension Dictionary 254 0 GetPoint 329 0 Hide 326 0 SendCommand 347 0 SheetsInNewWorkbook 281 0 Show 326 О объекта Application (Excel) 265 Модель COM 263
Н Настройка компилятора Visual C++ 289
Л Локальные переменные 205 Лоток 509
м Макрос 326 О пункта 402 О VBA318 О кнопки 388 Массив 323 Мастер ObjectARX 297 Меню 375 О Express 507 О Visual LISP 208 О базовое 375, 376
О выпадающее 380 О О О О О
графическое 379, 399 группа 377, 552 дерево 367 кнопочное 379, 400, 515 контекстное 385, 391, 552, 562
Объекты 17, 324 О Application 17 5 Document 17, 342 О MenuGroup 17 О PopupMenu 17 О Preferences 17 6 Range 281 О UserForm 329 О Utility 329 О
VBE 17
о VLA 150, 259 О VLR261 О выбор 503 О графический 18 О инспектор 342 Объект-заместитель 486 Объектная модель 17 Окно Code Insight 346 Октант 452 Оператор 416 Организация архива 516
619
Предметный указатель Отслеживание: О объектное 502 О полярное 502
п Панель: О заголовок 401 О инструментов 382 О редактирование 384 Пароль 331, 523 Парсер 370 Переменные: О действия 439 О локальные 205 О описание 322 О типы 322 Печать 573 О фоновая 468 Планшет 511 О калибровка 515 Подпись цифровая 523 Позднее связывание 340 Приложение: О ARX 299, 485 0 выгручка 309 п загрузка 309 О DBX299 э FAS 233, 239 О MAP 300
а омF зоо
О VLX 233, 239 О загрузка 104, 206, 245 о автоматическая 282 Приложение-сервер 263, 341 Проводник проектов VBA 315 Программа-оболочка 337 Проект: О VBA317 О Visual C++ 285 О Visual LISP 220, 236 О внедренный 317 О глобальный 317 Профиль 463, 505 Публикация файлов 530
Расширенные данные 218, 254 Реактор 261
Редактор пиктограмм 388 Реестр Windows 263 Режим: О G R I D 508 О LWT508 О MODEL 508 О ORTHO 249, 508 О OSNAP 249, 508 О OTRACK508 О PAPER 508 О POLAR 508 О SNAP 249, 508 О многодокументный 242 Решение Visual C++ 286 Рисование штампа 247 Ручки 504
Свойство 23, 324 О Caption 326 О Has Extension Dictionary 254 О Name 281 О Visible 281 О объекта Application (Excel) 265 Семейство 17, 324 0 Documents 17 0 McnuBar17 0 MenuGroups 17 Символ: 0 LISP 100, 101 О nil 103, 104 О pause 104 S pi 104 О Т 103 О зарезервированный 101. 103 О предопределенный 104 Синхронизация 594 Системная переменная: О _TOOLPALETTEPATH 470 О ACADLSPASDOC 282, 494 О ACADSERVER467 О APBOX50I О APERTURE 502 О AUTOSNAP501, 502 С- CURSORSIZE481 О DBCSTATE 552 О DCTCUST467 О DCTMAIN467 Продолжение рубрики см. на с. 620
620
Системная переменная (apod.): С DEFLPLSTYLE 489 a DEFPLSTYLE 489 О DEMANDLOAD 486 a DIMASSOC 499 ) DISPSILH48I О EXTNAMES494 О FACETRES 480 О FILEDIA378 О F1LLMODE4S1 О FONTALT468 a FONTMAP 468 a GRIPBLOCK505 a GRIPCOLOR504 a GRIPHOT504 a GRIPHOVER505 О GRIPOBJLIMIT505 О GRIPS 505 3 GRIPSIZE504 О GRIPTIPS 505 5 IMAGEHLT480 О JNETLOCATION 467, 530 О INSUNITS498 О INSUNITSDEFSOURCE498 a INSUNITSDEFTARGET498 3 ISAVEBAK 484 О ISAVEPERCENT 483 О ISOLINES 480 a LOGFILEMODE4S4 О LOGFILENAME 484 О LOGFILEPATH47] О MENUCTL398 3 MENUECHO404 О MODEMACRO409, 410 О MTEXTED 467 О NODENAME484 a ORTHOMODE 249 a OSMODE 249 О OSNAPCOORD 498 О PICKADD 504 a P1CKAUTO 504 a PICKDRAG 504 О PICKFIRST503 Э P1CKSTYLE 504 О PROJECTNAME 466 О PROXYNOTICE 486 О PROXYSHOW486 О PSPROLOG 468 О PSTYLEPOLICY489 О QTEXTMODE481 О RASTERPREVIEW483 О SAVEFILE484
Предметный указатель a SAVEFILEPATH 469 a SAVEPATHFILE484 a SAVET1ME483 "> SCREENBOXES 393 a SD1 242, 494 О SHORTCUTMENU 497 a SNAPMODE 249 О SORTENTS499 5 SPLINESEGS 480 О STARTUP 494 О TABMODE513 С TEMPPREFIX471 -> TRACKPATH 502 О USERI1 259 О VISRETAIN 485 a XEDIT485 О XFADECL482 О XLOADCTL 485 О XLOADPATH 471 Слайд 399 Словарь 254, 467 О ACAD_FILTERS 254 > ACAD_LAYERSTATES 254 Событие 91, 324 a Click 329 О Initialize 329 Создание функций пользователя 205 Сообщение об ошибке 235 Сортировка 565 Сохранение: О быстрое 483 О полное 483 О формат 482 Спецификация 264 Списковая константа 103 Список 103 О точечный 103 Среда программирования Delphi 335 Строка: 6 координат 508 а состояния 408, 507 Строковая константа 102 СУБД 544 а поддерживаемые 544
Таблица 252 О построение 264 О просмотр 564
Предметный указатель 5 редактирование 574 О электронная 544 Тело функции 205 Технология: О ActiveX 16 О СОМ 612 Тип:
о VARIANT 276 О линии 459
° простой 460 ° сложный 460 Точечная пара 103 Тройка файлов меню 376
У Уведомление 541
Ф Файл: Э acad.clim 467 О acad.dvb 334 О acad.fmp 468 О acad.lin 460 О acad.lsp 282, 334 О acad.mnl 334, 409 О acad.mnu 466 О acad.pat 458 О acad.psf468 О acad.rx 282, 309 О acad2004.cfg 467, 515 5 acaddoc.lsp 282, 334 О acadiso.lin 459 О acadiso.pat 458 5 асах!6enu.lib 341 О ARC 506 6 asi.ini 594 О АТС 470 О AutoCAD_TLB.pas 342 О ВАК 484 О СРР293 О СТВ469 О CUS 467 О dbcon.mmi 552 О DBQ549, 611 5 DBT548, 591 О DCL244,414 О DEF294 О DSN 545
621
О DVB 317 О FAS 221 О LIN 460 О MNL 282, 334, 409 О PAG 320 О РСЗ 469 О PFB 454 5 РМР469 С PRJ 237 О PRV240 О SHP451 О SHX454, 457 О slidclib.exe 400 О STB 469 О txt.shp 457 О UDL 470, 544 О компилированного меню 375 5 публикация 530 О ресурсов меню 375 О текстовой части меню 375 О шаблона меню 375 Форма 451, 454 О V B A 3 1 9 , 324 Формат: О DWF 521,533 О DXF456 О JPEG 533 О PNG 533 О сохранение 482 Функция: О acedAlert 294 О acedGetArgs ЗОВ 5 acedRetlnt 308 О aeedRetList 308 О acedRetName 308 О acedRclNil 308 О acedRetPoint 308 О accdRctReal 308 О acedRetStr 308 О acedRetT 308 О acedRetVal 308 5 acedRetVoid 308 О action_dle 429, 431 О addjist 442 О alert 294, 313, 433 О агх 309 О arxload 309 } arxunload 309 Э assoc 252 О aloi 103 Продплжение рубрики см. на с. 622
Предметный указа гель
622
Функция (прод.): О autoarxload 309 О client_data_tile 432, 439 О command Ш4, 245, 249, 313,432 О defun 205 О defun-q 207 О defun-q-list-ref 207 О defun-q-list-set 207 Э dictadd 254 О dictnext 254 О dictremove 254 О dictrename 254 О dictsearch 254 О dimx_tile 445 О dimy_tile 445 О done_dialog 429 О endjmage 443 О endjist 442 О entget 252—254, 456 О entlast 251 О entmake 256, 277 О entmakex 258 О entmod 256 О entnext 251 О entsel 251 О filHmage 443 О fix 103 О float 103 О get_attr 439 О get_lile 438 О getint 102 О grtext 393 О initget 276 О load 101, 104, 245 5 load_dialog 427-428 С menucmd 411
о menugroup 411
О modejile 433 О namedobjdict 254 О new_dialog 428, 432
О regapp 256 О О О 5 0 0 0 5 0
rtos 103 set_tile 420. 433 setq 100, 104 slide_image 444 ssadd 252 ssgei 252 ssgetfirct 252 ssnanie 252 ssnarnex 252
0 0 0 0 0 0
start_dialog 429, 432 starl_image 442 startjist 441 tablet 515 tblnext 253 tblobjuame 253
о tblsearch 253 0 5 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 5 0 0 0
lerm_dialog 429—430 textbox277 type 102 unload_dialog 428 vector_image 444 vla-get-activedocument 150 via-get-model space 150 vlax-3d-point 261 vlax-add-cmd 250 vlax-diimp-objec! 265 v!ax-ename->vla-object 260 vlax-get-acad-object 150 vlax-ldata-delete 259 vlax-ldata-get 259 vlax-ldata-list 259 vlax-ldata-put 259 vlax-ldata-test 259 vlax- make-safearray 260 vlax-make-variant 260 vlax-safearray- >list 260 vlax-safearray-fill 260 vlax-safearray-get-dim 260 vlax-safearray-get-element 260 vlax-safearray-gei-l-bound 260 vlax-safearray-get-u-bonnd 260 vlax-safeaiTay-pui-eienient 260 vlax-safearray-type 260
0 0 0 0 0 0 0 0 6 0 0 0 0 0 0
vlax-variant-type 261 vlax-valiant-value 261, 276 vl ax - v la - object->e name 260 vl-bb-ref242 vi-bb-set 242 vl-cmdf246 vl-doc-export 242 vl-doc-set 242 v I-get-resource 244 vlisp-compilc 207 vl-list* 103 vl-load-com 259 v!-vbaload 318 vl-vbaran 318 wcmatch 217
о vlax-variant-change-type 261
Предметный указатель О while 276 О xdroom 257 О xdsize 257
Число: О вещественное 102 о целое 102 Чтение значения глобальной 234
С 23
Элемент: О list_box 441 О ok_button 423 О ok_cancel 423 О ok_canccl_crr 423 О ok_cancel_help 423 О ok_cancel_help_ernile 423 О ok_cancel_help_info 423 О ok_only 423 С popup_list 441
ш Шаблон связи 578 Шрифт 457 Штриховка 458
щ Щелчок: О двойной 394, 576 О длительность 497
Язык: О Basic 312 О DCL414 О DIESEL 409 u Pascal 335 О SQL 599 Ярлык 595 О прикрепленный 595 & свободный 595
direct
КАТАЛОГ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ •-• Если вы хотите быть Soft Line в курсе всех последних событий на рынке программного обеспечения,
119991 г. Москва, ул. Губкина, 8 (095)232-0023
[email protected] www.softlirte.ru
Если вы хотите получать наиболее полную информацию о программных продуктах из первых рук от самих производителей, Если вы ведете честный бизнес и покупаете лицензионное ПО
L
г. Подпишитесь на новый полноцветный каталог, издаваемый одним из крупнейших поставщиков программного обеспечения в России, и вы будете регулярно получать его по почте. Кроме того, по вашему желанию на ваш электронный адрес будут регулярно приходить еженедельные новости рынка программного обеспечения от компании SoftLine.
Подписка БЕСПЛАТНО для руководителей и специалистов в области информационных технологий, представляющихорганиэации. имеющие более 10 компьютеров'
Николай Полещук
Полещук Николай Николаевич, кандидат физико-математических наук, специалист по разработке систем типа CAD/CAM, автор популярных книг по системе AutoCAD и средствам программирования.
AutoCAD 2ОО4 разработка
приложений адаптация Руководство содержит исчерпывающую информацию о средствах настройки и адаптации системы AutoCAD 2004, включая недокументированные возможности. Приводится описание средств разработки приложений на языках LISP, Basic, C++ и Pascal, a также способов применения языков DCL и DIESEL Много внимания уделяется технологиям ActiveX и СОМ, работе с таблицами Excel и базами данных, вопросам создания пользовательских типов линий, штриховок, шрифтов и форм. Рассматриваются операции настройки планшета и диалоговых окон, дополнительные команды Express Tools 2004 и интеграционные функции пакета. Книга предназначена для опытных пользователей и профессионалов, стремящихся познакомиться с инструментами и настройками системы. Базовые возможности системы, средства построения и структура примитивов были описаны в предыдущей книге -"AutoCAD 2004". БХВ-Петербург
ISBN 5-94157-424-Х
'90005, Санкт-Петербург Измайловский пр., 29 E-mail
[email protected] Internet: www hhv.ru тип.. (812)251-42^14 факс1 (812) 251-12-95
9И785941И5742471