Итак, насчет выносок (уточнение: пока только про узловые выноски)
Сами по себе выноски малоинтересны (хотя для мультивыносок решить проблему "прилипающих" текстов не помешало бы).
Краткое наименование (Wish name) : Узловые выноски (Node leaders)
Описание (Wisth description) : Инструмент, расширяющий функционал обычных выносок и мультистрочных выносок, а также инструмент обозначения узлов через Details и Keynotes. В инструменте есть собственно обозначение узла (круг или прямоугольник со скругленными краями); выноска, могущая содержать от 1 до 3 элементов.
Вид(ы) инструмента (Wish screenshot) :
1. Общий вид, с разделением по количеству заполненных текстовых элементов:
Общий вид, варианты обозначения узла (помимо приведенных выше) - приведены дальше (ограничение на 5 изображений действует ;))
2. Общий вид, варианты расположения выносок (то же).
3. Инструмент является элементом оформления рабочей документации. Работает в текущей системе координат. Подчиняется общим правилам выполнения синхронизации и стандарта слоев. Подчиняется правилам масштабов AEC-объектов. В случае реализации не только в AutoCAD Architecture должен быть аннотативным. Инструмент является единым целым и не может удаляться по частям.
4. У инструмента должны быть представлены следующие контрольные точки (grips):
4.1. Центральная точка обозначения узла. Команда stretch, примененная к ней, приводит только к перемещению обозначения узла. Переноса полки и текста на ней не происходит. Поведение выноски описывается в п.7.2.
4.2. Контрольная точка, определяющая размер и форму обозначения узла. Поддерживает только эту часть команды.
4.3. Точка перелома выноски. Stretch, примененный к этой точке, приводит к перемещению полки выноски и текста. Сама линия выноски динамически пересчитывается в соответствии с правилами ее поведения, описанными в п.7.2. Всегда располагается в верхнем правом углу прямоугольника, описанного вокруг обозначения узла.
4.4. Точка, определяющая направление отрисовки выноски (направо или налево). Всегда находится на дальнем конце выноски. При перемещении вдоль полки выноски автоматически должны пересчитываться коэффициенты сжатия для текстов, обеспечивающие их положение в соответствии с п.7.1.
5. Должен поддерживать следующие команды:
разбитие (explode) на составляющие;
копирование (copy);
перенос (move);
измененный вариант поворота (rotate): вокруг центра вращения перемещаются точки 4.1 и 4.3. Положение точки 4.2 вычисляется динамически. Направление отрисовки и положение полки не изменяются.
В окне свойств должны быть представлены настройки для всех элементов выноски. Программно элемент выноски (для VisualLISP, VBA, .NET, ARX) должен также содержать все возможные свойства.
Все элементы инструмента могут принадлежать только одному слою. Для текстов допускается принудительное назначение веса линии (для случая применения shx-шрифтов), отличное от веса линии остальных элементов узловой выноски. При этом для каждого текста может быть назначен свой вес линии.
7. Элементы инструмента:
7.1. Обозначение узла: окружность либо прямоугольник со скруглениями. Радиус скруглений вычисляется как половина длины меньшей стороны прямоугольника. Прямоугольник всегда ориентирован вдоль осей Ox и Oy текущей системы координат. Изменение размеров обозначения узла выполняется либо через палитру свойств с указанием максимального размера. Программно определяется минимальный размер прямоугольника, равный 1 мм*.
7.2. Выноска: линия выноски имеет только 2 точки и начинается от границы обозначения узла. Визуально она постоянно привязывается к центру прямоугольника, описанного вокруг обозначения узла. Изменение второй точки линии выноски (начало полки) автоматически приводит к пересчету начальной точки выноски так, чтобы визуальное продолжение линии выноски все равно было привязано к центру обозначения.
7.3. Полка выноски: длиннее самого длинного текста на 1,5 мм с каждой стороны*. Текст смещается по вертикали: верхний - на 1 мм* (расстояние вычисляется как разница между точкой привязки текста BottomLeft (для положения полки "вправо") и самой полкой. Нижний текст смещается по вертикали на расстояние, равное высоте текста + 1 мм*.
7.4. Текст. Высота текста может меняться принудительно пользователем, но по умолчанию предполагается:
7.4.1. Текст "Номер узла" на примере - высота 3,5 мм*
7.4.2. Текст "Номер листа" на примере - высота 2,5 мм*. Если существует, обязательно обрамляется круглыми скобками.
7.4.3. Текст "Адрес узла" на примере - высота 3,5 мм*
Начертание текста (стиль) определяется по аналогии со стилем текста для многовидовых блоков.
---
* размеры указываются для элемента с масштабом отображения 1:1