О надписях при объектах в CAD
Labeling
Labeling – автоматическое или автоматизированное отображение надписей об объектах и/или об их характеристиках, а так же средства для создания таких надписей, обеспечения связи надписей с объектами и их характеристиками и для управления отображением надписей. «Labeling» - от «Label», что часто неудачно переводится на русский как «метки», но лучше соответствует сути – «ярлыки», т.е. надписи, связанные со своими объектами, при своих объектах.
В графических моделях надписи являются необязательными, дополнительными элементами. В графических моделях, предназначенных в основном для ручного анализа, надписи используются почти всегда – для однозначности интерпретации объектов и их характеристик зрителем, для ускорения восприятия зрителем, для передачи не отображаемой графически или трудно отображаемой информации. В моделях, предназначенных для программного анализа и обработки, надписи могут вообще отсутствовать, поскольку вся необходимая информация должна быть представлена в формализованном и удобном для программной обработки виде.
Надписи в cad-моделях используются для показа в текстовой форме сведений о сущности объектов, о неграфических характеристиках объектов, о размерах, количестве и т.п., либо для пояснений о действиях с объектами, о взаимодействиях, об использовании объектов. Т.е. в целом надписи можно разделить на два вида: надписи, связанные с сущностью и характеристиками объектов моделей, и надписи, связанные с моделями в целом. Еще один вид надписей – надписи общего оформления моделей в виде чертежей, презентаций и т.п. виде, необходимом для представления моделей в виде документов, для удобства их демонстрации и т.д. Этот вид надписей уже фактически вообще не является частью самих cad-моделей, хотя и может в них присутствовать – например, в случаях оформления чертежей в пространстве моделей, а не в пространстве листов (Layout).
В принципе можно утверждать, что все надписи в графических моделях логически связаны с сущностью или свойствами объектов этих моделей или с моделями в целом. И в моделях не должно быть иных, не связанных надписей – иначе это ошибки и лишние элементы.
В данном тексте в основном рассматриваются надписи о сущностях и характеристиках объектов cad-моделей.
Из общих соображений следует, что такие надписи обладают следующими принципиальными особенностями:
- Надписи не являются графической частью моделей, т.к. своей формой, положением и размерами не передают геометрических особенностей объектов. (Даже если надписи используются как точечные объекты, то вместо надписей могут быть собственно точечные графические элементы).
- Надписи не являются логически самостоятельными элементами, а есть производное отображаемых объектов, связанное с надписываемыми объектами.
- Надписи могут в моделях присутствовать, но могут и не даваться – в зависимости от многих обстоятельств.
Из этих особенностей надписей следуют желаемые их свойства и особенности их отображения:
- Содержание надписей автоматически «считывает», отображает сущность и/или значения характеристик объектов.
- Создание, перемещение, выбор, удаление надписей и пр. происходит одновременно с такими действиями со «своими» объектами.
- Возможность оперативного включения/выключения отображения надписей.
Возможность ручного редактирования содержания надписей при этом желательна, но не обязательна, и, вероятно, целесообразна только в части добавления текста к созданному автоматически. Возможность копирования надписей отдельно от «своих» объектов целесообразно блокировать или нужно средство для выбора дублирующихся надписей одного и того же. Возможность удаления надписей отдельно от «своих» объектов так же целесообразно блокировать или нужны средства для обнаружения их отсутствия и их восстановления. Возможности переноса, поворота надписей целесообразны.
В CAD обычно существует множество способов отображения надписей:
- текстовые/многострочные текстовые элементы – самостоятельные, независимые графические элементы,
- атрибуты – редактируемые тексты, связанные с каким-либо объектом,
- тексты нередактируемые в составе примитивов размеры,
- тексты в составе примитивов мультивыноски.
- текстовые нередактируемые элементы в составе блоков,
- текстовые нередактируемые элементы в типах линий,
- надписи, связанные со специальными объектами специализированных приложений,
- надписи, связанные с любыми объектами модели средствами специализированных приложений.
Почти все эти способы отображения надписей пригодны для отображения сущностей или характеристик объектов – все, кроме надписей размеров. Но число этих способов велико, а создавать, выбирать и редактировать надписи, сделанные этими способами, нужно по-разному, т.е. нетехнологично.
Самый близкий к Label способ отображения надписей в базовых возможностях CAD – атрибуты. Особенно атрибуты с полями, автоматически считывающими значения каких-нибудь свойств объектов. Но атрибуты, например, в AutoCAD могут играть похожую роль только для одного из типов графических примитивов – для блоков. И у атрибутов нет возможностей оперативно включать/выключать их отображение, нет возможностей отображать сущности объектов и значения их неграфических характеристик.
В ыелом ни один способ отображения надписей в базовых возможностях CAD не позволяет реализовать Labeling ни полноценно, ни удовлетворительно.
Labeling частично или в полной мере реализован в специализированных приложениях к CAD. Но во всех таких приложениях Labeling реализован по-разному и средствами, недоступными ни для базовых CAD, ни для других специализированных приложений.
Labeling желателен и для базовых CAD, и для специализированных приложений к CAD. И задача отображения надписей общая и для базовых CAD, и для специализированных приложений к CAD. Поэтому оптимально, чтобы Labeling был реализован в базовых CAD, что даст возможность его использовать и во всех специализированных приложениях к CAD. Это сэкономит и ресурсы приложений, и облегчит пользователям освоение и работу в CAD, и в его приложениях.
Естественно, что для реализации Labeling’а в базовых CAD необходимы дополнительные инструменты. Но ряд средств и возможностей в базовых CAD для Labeling’а уже есть.
Для хранения сведений о сущностях и характеристиках объектов в CAD есть средства описания дополнительных неграфических данных. Из них можно брать информацию для содержания создаваемых Label.
Для Label можно использовать обычные текстовые примитивы – однострочных/многострочных текстов и/или даже мультивыносок.
Логическую связь Label с объектами можно описать с помощью инструментов дополнительных данных – присоединить к Label запись с ID графического элемента и указанием на дополнительные данные о сущности или характеристиках объекта.
Физическую связь Label с объектами можно описать разными имеющимися способами, но, возможно, ни один из них неудовлетворителен. Например, объединение надписей с объектами в группу, использование параметризации или т.п. Частичное решение, но, возможно, для многих случаев достаточное – не обеспечивать физическую связь, но добавить инструменты контроля утраты, дублирования и т.п. и средства восстановления Label.
Оперативно включать/выключать отображение Label можно, допустим, с помощью средств скрыть/показать объекты. Можно использовать специальные слои для Label, включая/выключая их.
Для управления включением/выключением Label желательно иметь их меню или меню самих отображаемых объектов. Прототипом меню типов объектов может послужить Tool Palettes. В подобном меню объектов напротив каждого класса и типа объектов может быть предусмотрена опция включения/выключения их надписей. Это может обеспечить наглядность и оперативность.
В целом видно, что имеющиеся возможности базовых CAD недостаточны или вообще не позволяют реализовать нужные для Labeling’а возможности без добавления соответствующих инструментов. Labeling в базовом CAD можно реализовать только частично. Хотя и это может заметно снизить трудозатраты, и улучшить качество создаваемых моделей.
Теоретически для обеспечения полноценного Labeling’а в CAD можно было бы:
- Добавить к свойствам текстовых элементов указатели на объекты, при которых надписи даются.
- Встроить в состав графических элементов надписи, число которых может меняться в зависимости от числа описанных характеристик, и содержание которых связано со значениями этих характеристик. С возможностью включения/выключения их отображения.
- Встроить надписи в состав дополнительных данных, служащих для описания сущности/характеристик объектов. С возможностью включения/выключения их отображения.
Последний способ реализован в одном из CAD, и описан в одной из предыдущих статей – Как с расширенными данными у «смежника» AutoCAD.
.
10.09.18
Александр Шаров
Комментарии
Авторизоваться
Цитата:Сообщение #16 от Сергей812А отображать можно как угодноВот это самое "как угодно", оказывается, вполне ограничено всего несколькими определенными вариантами и реализуется всего несколькими конкретными способами действий. Поэтому и можно говорить о Labeling'е в общем виде, универсальном для любых приложений.
Можно договориться только о форматах обмена и хранения данных, если этому не помешают экономическая конкуренция, но в каждом реальном ПО будет своя программная реализация механизмов отображения данных и взаимодействия с пользователем. А весь ваш Labeling в общем универсальном виде реализуется в обычных базах данных, как уже писали неоднократно тут.
А отображать можно как угодно
Мы Labeling не делали. У нас есть только загрузка содержания уже готовых текстов и атрибутов в поля данных и выгрузка значений из полей данных в атрибуты.
Любая подобная задача, если у программиста достаточно квалификации, разбивается на три части минимум - хранение, ввод данных (с контролем, желательно), и отображение (отчеты). А отображать можно как угодно - что поддерживает используемое ПО.
В ваших разработках есть API, чтобы ими могли пользоваться другие разработчики?
Если не изобретать велосипед, а воспользоваться одним из готовых решений по хранению данных...
используй БД - и никаких пробле ;=)
Кто ж спорит?! Вопрос-то не ко мне. К "корпорациям". :)
используй БД - и никаких пробле ;=)
Так не логично ли быть такому набору инструментов в базовом AutoCAD? Тогда им могли бы пользоваться все вертикальные приложения. И пользователям было бы легче.
В ваших разработках есть API, чтобы ими могли пользоваться другие разработчики?
Главное и самое сложное - организовать доступ к источникам данных для надписей разных приложений.
Если не изобретать велосипед, а воспользоваться одним из готовых решений по хранению данных...
с корпорациями
Возьмем же, наконец, к примеру Labeling.
В нашем Map 3D сразу два варианта Labeling'а. И в Civil 3D, поставлявшемся всегда с Map 3D, есть свой Labeling. Может, тоже не один - не знаю.
И уверен, что Labeling есть свой во всех вертикальных приложениях. При том, что единственное, чем он может различаться - источники данных.
Получается, что можно создать общий для всех приложений набор инструментов Labeling'а. Главное и самое сложное - организовать доступ к источникам данных для надписей разных приложений.
В целом же Labeling может состоять из таких инструментов:
- создать надписи,
- обновить надписи,
- обновить значения в источнике данных по надписям,
- средства включения-выключения отображения надписей.
Так не логично ли быть такому набору инструментов в базовом AutoCAD? Тогда им могли бы пользоваться все вертикальные приложения. И пользователям было бы легче.
Основное, что предлагаю я - встроить ее в CAD. Для этого в CAD уже есть все основные средства. Во-первых, это даст обычным пользователям новые мощные возможности.
а дадут ли маркетологи возможность расширять функционал базовых продуктов?)
Во-вторых, облегчит эти "вертикалки, BIM, ГИС и т.п." на повторяющиеся во всех них инструменты, унифицирует их, и облегчит обмен данными между всеми ними.
Вы готовы тягаться с корпорациями в области обработки и обмена информации?) Что им сможете предложить такого, чего еще у них не было и перспективно в плане прибыли?
Вертикалки, BIM, ГИС и т.п. давно используют "вашу" супертехнологию в виде совокупности данных, привязанных к отдельным элементам, и их отображения)
Наконец-то какие-то признаки понимания. Только технология не моя ни разу - я лишь осознал ее как таковую, как смог описал и дал название. (Впрочем, возражений или др. предложений не было, ибо всем пофиг). И про "вертикалки, BIM, ГИС и т.п." Вы у меня же и вычитали. Но, ессно, забыли. :)
Основное, что предлагаю я - встроить ее в CAD. Для этого в CAD уже есть все основные средства. Во-первых, это даст обычным пользователям новые мощные возможности. Во-вторых, облегчит эти "вертикалки, BIM, ГИС и т.п." на повторяющиеся во всех них инструменты, унифицирует их, и облегчит обмен данными между всеми ними.
Типа того. И пр.
Но зачем мы об этом рассуждаем здесь - для этого есть же соответствующие статьи?
Здесь предмет обсуждения Labeling, надписи.
Вы опять об ином, о своем, а не о том, что в статье.
Специально посмотрел - про технологию OD/DB в статье вообще не упоминается!
Вероятно, и в идее этой технологии Вы разобрались приблизительно настолько же, как в этой статье.
Вертикалки, BIM, ГИС и т.п. давно используют "вашу" супертехнологию в виде совокупности данных, привязанных к отдельным элементам, и их отображения)
Специально посмотрел - про технологию OD/DB в статье вообще не упоминается!
Вероятно, и в идее этой технологии Вы разобрались приблизительно настолько же, как в этой статье.
Эта статья не о "взаимосвязях/зависимостях между объектами" и т.п.
Статья о надписях. О Labeling'е.
Но если Вы статью не читали, зачем Вы здесь пишете?
почему не читал, я прочел - и не увидел ничего нового. Ну назвали иными словами ту "технологию", с которой уже сколько времени носитесь.. Перешли к абстрактной CAD-системе...
А как не было формирования взаимосвязей/зависимостей между объектами - так их и нету. А без этого так и останется данная задумка некой помесью информационной системы и той же палитры с недоиспользованным потенциалом. А зависимости в каждом разделе того же проектирования не совпадают друг с другом - есть какие то общие признаки, есть и специфические для каждого раздела.
1. Можно не отображать данные.
2. Можно автоматизировать отображение.
3. Какими способами можно организовать отображение.
И пр.
Но если Вы статью не читали, зачем Вы здесь пишете?