- •Содержание
- •Основные принципы настройки
- •Основные возможности настройки
- •Организация программных и вспомогательных файлов
- •Коротко об организации файлов
- •Работа с несколькими конфигурациями
- •Хранение чертежей в нескольких папках
- •Настройка шаблонов Интернет-публикаций
- •Создание пользовательских команд
- •Описание внешних команд
- •Псевдоимена команд
- •Настройка типов линий
- •Обзор описаний типов линий
- •Создание простых типов линий
- •Текстовые объекты в пользовательских типах линий
- •Формы в пользовательских типах линий
- •Пользовательские образцы штриховки
- •Коротко об описании образцов штриховки
- •Образцы штриховки из прерывистых линий
- •Образцы штриховки из составных линий
- •Настройка интерфейса пользователя
- •Обзор диалогового окна "Настройка интерфейса пользователя"
- •Термины, используемые при настройке
- •Изменения в настройке
- •Обзор редактора настройки интерфейса пользователя
- •Фильтр отображения элементов настройки
- •Работа с файлами настройки
- •Основные сведения о файлах настройки
- •Перенос и передача настроек
- •Создание и загрузка частичного файла НПИ
- •Создание корпоративного файла НПИ
- •Команды настройки
- •Создание, редактирование и повторное использование команд
- •Имена команды "Найти" и строки поиска
- •Управление отображением имен команд
- •Создание изображений для команд
- •Создание подсказок в строке состояния
- •Создание макросов
- •Использование в макросах специальных управляющих символов
- •Пауза для пользовательского ввода
- •Поддержка иностранных языков в макросах
- •Повторение команд в макросе
- •Метод выбора объектов "Единственный"
- •Использование макроса для перестановки элементов интерфейса пользователя
- •Использование условных выражений в макросах
- •Использование AutoLISP в макросах
- •Настройка панелей инструментов
- •Создание и редактирование панелей инструментов
- •Добавление или замена элементов управления панели инструментов
- •Создание раскрывающихся и контекстных меню
- •Создание раскрывающегося меню
- •Создание контекстного меню
- •Создание подменю
- •Обращение к раскрывающимся и контекстным меню
- •Подстановка и вставка раскрывающихся меню
- •Задание клавиш быстрого вызова и временной замены
- •Создание операции при двукратном нажатии
- •Настройка кнопок мыши
- •Ввод координат в меню кнопок
- •Настройка элементов интерфейса предыдущей версии
- •Создание планшетных меню
- •Настройка кнопок планшета
- •Создание экранных меню
- •Создание меню мозаики изображений
- •Загрузка файла AutoLISP
- •Настройка рабочего пространства
- •Вопросы и ответы по настройке интерфейса пользователя
- •DIESEL
- •Настройка строки состояния
- •Системная переменная MODEMACRO
- •Присвоение значений MODEMACRO
- •Выражения DIESEL в макросах
- •USERS1-5 Каталог функций языка DIESEL
- •+ (сложение)
- •- (вычитание)
- •* (умножение)
- •/ (деление)
- •= (равно)
- •< (меньше)
- •> (больше)
- •!= (не равно)
- •<= (меньше или равно)
- •>= (больше или равно)
- •angtos
- •edtime
- •eval
- •getenv
- •getvar
- •index
- •rtos
- •strlen
- •substr
- •upper
- •Сообщения об ошибках языка DIESEL
- •Слайды и командные сценарии
- •Создание слайдов
- •Коротко о слайдах
- •Просмотр слайдов
- •Создание и просмотр библиотек слайдов
- •Создание файлов сценариев
- •Коротко о файлах сценариев
- •Вызов сценария при загрузке программы
- •Демонстрация слайдов с помощью сценариев
- •Введение в интерфейсы программирования
- •ActiveX Automation
- •Коротко об ActiveX
- •Запуск приложения из командной строки
- •Запуск приложения из меню или с помощью панели инструментов
- •AutoCAD VBA
- •Основные сведения о AutoCAD VBA
- •Использование приложений AutoCAD VBA
- •Автоматическая загрузка и выполнение проектов VBA
- •AutoLISP и Visual LISP
- •Коротко об AutoLISP и Visual LISP
- •Работа с приложениями AutoLISP
- •Автоматическая загрузка и выполнение процедур AutoLISP
- •Файл ACAD.LSP
- •Файл ACADDOC.LSP
- •MNL-файл и AutoLISP-функции для меню
- •Предотвращение ошибок AutoLISP при выполнении файлов автозагрузки
- •Функция S::STARTUP: выполнение после завершения инициализации чертежа
- •ObjectARX
- •Коротко об ObjectARX
- •Работа с приложениями ObjectARX
- •Обзор .NET
- •Формы и шрифты
- •Коротко о файлах форм
- •Создание файлов описаний форм
- •Описания форм
- •Коды длин и направлений векторов
- •Специальные коды
- •Коды 0, 1 и 2: Конец формы и управление режимом построения
- •Коды 3 и 4: Управление размером
- •Коды 5 и 6: Сохранение и восстановление позиции
- •Код 7: Субформа
- •Коды 8 и 9: Смещения по X-Y
- •Код 00A: Октантная дуга
- •Код 00B: Дробная дуга
- •Коды 00C и 00D: Дуги, заданные прогибом
- •Код 00E: Флаг вертикального текста
- •Описания текстовых шрифтов
- •Файлы-образцы
- •Расширенный одноштриховой Roman
- •Расширенный стандартный шрифт UNICODE
- •Описания больших шрифтов
- •Описание большого шрифта
- •Создание файла расширенного большого шрифта
- •Использование большого шрифта в чертежах
- •Использование большого шрифта для создания специальных символов
- •Описания шрифтов Unicode
- •Верхние и нижние индексы в SHX-файлах
- •Указатель
Угол поворота <тйвсНСц>: 0
Результат вставки показан на чертеже.
Специальные коды
Кроме кодов отрисовки векторов, в байте описания формы можно использовать ряд специальных кодов, предназначенных для создания дополнительных форм и выполнения других операций.
Кроме кодов отрисовки векторов, в байте описания формы можно использовать ряд специальных кодов, предназначенных для создания дополнительных форм и выполнения других операций. Для того чтобы задать специальный код, нужно либо вписать 0 (нуль) во второй позиции трехсимвольной спецификации байта (описание длины вектора), либо поставить только номер кода. Например, верными будут как код 008, так и код 8.
Специальные коды
Код |
Описание |
000 |
Конец описания формы |
001 |
Включение режима отрисовки (опускание пера) |
002 |
Отключение режима отрисовки (поднятие пера) |
003 |
Деление длин векторов на следующий байт |
004 |
Умножение длин векторов на следующий байт |
005 |
Занесение текущей позиции в стек |
006 |
Восстановление текущей позиции из стека |
007Отрисовка субформы, номер которой определяется следующим байтом
008Смещение по осям X-Y, заданное следующими двумя байтами
226 | Глава 8 Формы и шрифты
Специальные коды
Код Описание
009Ряд из нескольких смещений по осям X-Y, оканчивающийся на (0,0)
00A Октантная дуга, заданная следующими двумя байтами
00B Дробная дуга, заданная следующими пятью байтами
00C Дуга, заданная смещением X-Y и прогибом
00D Несколько дуг, заданных прогибом
00E Обработка следующей команды только для вертикального текста
Коды 0, 1 и 2: Конец формы и управление режимом построения
Кодом 0 маркируется конец описания формы.
Коды 1 и 2 управляют режимом построения. Режим отрисовки включается в начале каждой формы. При включенном режиме отрисовки (код 1) происходит отрисовка линий, заданных векторами. При отключенном режиме отрисовки (код 2) происходит перенос пера к новой позиции без проведения линии.
Коды 3 и 4: Управление размером
Коды 3 и 4 управляют относительным размером каждого вектора. Высота, указанная при вводе команды ФОРМА, первоначально считается длиной одного ортогонального вектора (в направлении 0, 4, 8 или C). Код 3 делит длину векторов на следующий байт. Код 4 умножает длину векторов на следующий байт. За кодами 3 и 4 следует байт, в котором содержится целочисленный масштабный коэффициент (от 1 до 255). Если нужно, чтобы реальная высота формы была точно равна значению высоты, заданному при вставке, а согласно описанию в ней укладывается 10 длин векторов, то для масштабирования необходимо использовать комбинацию 3,10. Масштабный коэффициент в пределах одной формы обладает свойством накопления; так, при умножении исходного значения на 2, а затем на 6 результатом будет коэффициент 12. Рекомендуется по окончании отрисовки формы восстанавливать исходный масштабный коэффициент, особенно для субформ и текстовых шрифтов. AutoCAD не выполняет сброс масштабного коэффициента.
Создание файлов описаний форм | 227
Коды 5 и 6: Сохранение и восстановление позиции
Код 5 загружает (сохраняет) в стек, а код 6 извлекает (восстанавливает) из стека текущие координаты пера. С их помощью можно вернуться к некоторой точке описания после отрисовки линий от нее. Необходимо всегда извлекать из стека все, что туда загружено. Стек может хранить не более четырех позиций. Если стек переполнен из-за избыточного количества операций записи или пропущенных операций считывания, при отрисовке формы появляется сообщение:
Переполнение позиционного стека в форме nnn
Аналогично, если попытаться считать из стека больше значений, чем туда было загружено, при отрисовке формы появляется сообщение:
Потеря значимости позиционного стека в форме nnn
Код 7: Субформа
Код 7 производит построение субформы, номер которой определяется следующим байтом. Для не-Unicode-шрифтов за кодом 7 следует номер формы от 1 до 255. Для Unicode-шрифтов за кодом 7 следует номер формы от 1 до 65535. Номера форм Unicode всегда являются двухбайтовыми (подробнее об отличиях шрифтов Unicode от обычных шрифтов см. раздел “Описания шрифтов Unicode” на стр.277). Производится отрисовка формы с заданным номером, хранящейся в том же файле. Автоматической установки режима отрисовки для новой формы не происходит. По завершении построения субформы возобновляется отрисовка текущей формы.
Коды 8 и 9: Смещения по X-Y
Стандартные коды позволяют выполнять отрисовку линий только в 16 фиксированных направлениях, причем максимальная длина вектора равна 15 единиц. Это ограничение повышает эффективность процедуры построения форм, но подчас существенно ограничивает ее возможности. Коды 8 и 9 служат для проведения нестандартных векторов, которые задаются смещениями по X-Y. Код 8 определяет смещение по осям X-Y , заданное следующими двумя байтами. За кодом 8 должны следовать два байта в формате:
8,X-смещение,Y-смещение
Смещения по X-Y могут принимать значения от -128 до +127. Знак "+" перед величиной смещения не обязателен, и для удобства можно использовать круглые скобки. В следующем примере описывается вектор, соединяющий текущую точку с точкой, отстоящей от нее на 10 единиц влево и на 3 единицы вверх.
8,(-10,3)
228 | Глава 8 Формы и шрифты
После того, как вектор по смещению отрисован, восстанавливается режим построения стандартных векторов.
Код 9 используется для последовательности "нестандартных" векторов. После него может следовать любое количество пар значений смещения по X-Y. Последовательность завершается значением (0,0). В следующем примере описывается построение трех нестандартных векторов с последующим возвратом в обычный режим.
9,(3,1),(3,2),(2,-3),(0,0)
Если не завершить последовательность смещений X-Y парой (0,0), AutoCAD не сможет правильно трактовать идущие далее векторы обычного формата и специальные коды.
Код 00A: Октантная дуга
Специальный код 00A (или 10) служит для отрисовки дуги по значениям двух следующих байт. Дуга называется октантной, так как она стягивает один или несколько 45-градусных октантов, причем начало и конец дуги лежат точно на границах октантов. Октанты нумеруются в направлении против часовой стрелки, начиная с положения "три часа", как показано на следующем рисунке.
Описание дуги имеет вид
10,радиус,(-)0SC
Радиус может принимать любое значение от 1 до 255. Второй байт указывает направление дуги (против часовой стрелки, если значение положительно, и по часовой стрелке - если отрицательно), начальный октант (s, значение от 0 до 7) и количество охватываемых дугой октантов (c, значение от 0 до 7, где значение 0 соответствует восьми октантам, т.е. полному кругу). Для удобочитаемости можно использовать круглые скобки. Рассмотрим в качестве примера следующий фрагмент описания формы:
...012,10,(1,-032),01E,...
Создание файлов описаний форм | 229