Надписи из и с XData. Проект. Вариант 1
или
"Атрибуты" для любых типов примитивов AutoCAD с помощью XData
Создать набор команд [на Lisp - ?] для отображения содержания XData надписями, для загрузки содержания надписей в поля XData.
Для быстрого и простого создания надписей и управления их отображением. (Кроме атрибутов, но отчасти)
Нужно 4-6 команд:
- загружать содержание надписей из большинства "текстовых" типов примитивов (текстов, мтекстов, выносок, размеров) в нужные поля XData. Например, для объектов, расположенных не дальше указанного расстояния от них.
Выбираются "текстовые" объекты и объекты другого типа (отрезки, полилинии, точки и т.д.), и, в соответствии с указанным расстоянием-допуском, в указанное поле XData загружается содержание их надписей.
При этом к этим "текстовым" объектам добавляются "служебные" XData, описывающие связь с объектами других типов с нужным XData. (См ниже о параметрах)
- выгружать для выбранных объектов содержание указанного поля XData в связанные с объектами надписи.
Для уже существующих "текстовых" объектов, связанных с объектами других типов, заменяется содержание их надписей содержанием соответствующего поля XData.
- создавать "текстовые" объекты для выбранных объектов с XData из указанных их полей.
Во внешнем текстовом файле предварительно описываются параметры надписей, отображающих нужные поля XData. Параметры: идентификатор связанного объекта, название связанного XData, порядковый номер его поля и его тип, тип примитива "текстового" объекта, положение относительно объектов, свойства собственно надписей - стиль, размер, тип привязки и т.п.
В соответствии с этими параметрами создаются "текстовые" объекты из содержания указанных полей XData. Связь этих надписей с их объектами описывается в выше упомянутом "служебном" XData. (См. выше о "служебном" XData с описанием связи)
- обновление "текстовых" объектов - обновление их содержания на основе содержания соответствующих полей XData, обновление их положения относительно связанных с ними объектов, обновление их параметров.
- включение/выключение отображения сразу всех указанных "текстовых" объектов с описанными связями.
- обнаружение "сиротских" надписей - не связанных с объектами.
- создание текстового файла описания связей на основе связанных в XData "текстовых" объектов с объектами других типов.
Таким или подобным образом можно решить задачу связи всех надписей в чертежах/моделях с соответствующими объектами. Обеспечить соответствие содержания надписей нужным описательным данным. (Любые надписи сами есть отражение описательных данных, но связаны с объектами в головах людей). Сделать отображение/скрытие надписей быстрым и удобным.
Подобные надписи играли бы ту же роль, что и атрибуты блоков. Но для объектов любых типов примитивов AutoCAD.
И такие надписи из обычных "текстовых" типов примитивов AutoCAD были бы лучшим аналогом "автоматических" надписей вертикальных приложений, т.к. не являлись бы proxy, и были бы одинаково доступны для пользователей любых, всех AutoCAD.
При том: подобная технология надписей уже больше 40 лет хорошо и многообразно реализована и практикуется в геоинформационных системах. Да и вертикальных приложениях AutoCAD, если не считать не нужного в сущности создания для этого специальных объектов этих приложений.