VetCAD

О надписях при объектах в CAD. Labeling

   0 оценок

размещено: 10 Сентября 2018
обновлено: 10 Сентября 2018

О надписях при объектах в CAD

Labeling

 

Labeling – автоматическое или автоматизированное отображение надписей об объектах и/или об их характеристиках, а так же средства для создания таких надписей, обеспечения связи надписей с объектами и их характеристиками и для управления отображением надписей. «Labeling» - от «Label», что часто неудачно переводится на русский как «метки», но лучше соответствует сути – «ярлыки», т.е. надписи, связанные со своими объектами, при своих объектах.

 

В графических моделях надписи являются необязательными, дополнительными элементами. В графических моделях, предназначенных в основном для ручного анализа, надписи используются почти всегда – для однозначности интерпретации объектов и их характеристик зрителем, для ускорения восприятия зрителем, для передачи не отображаемой графически или трудно отображаемой информации. В моделях, предназначенных для программного анализа и обработки, надписи могут вообще отсутствовать, поскольку вся необходимая информация должна быть представлена в формализованном и удобном для программной обработки виде.

Надписи в cad-моделях используются для показа в текстовой форме сведений о сущности объектов, о неграфических характеристиках объектов, о размерах, количестве и т.п., либо для пояснений о действиях с объектами, о взаимодействиях, об использовании объектов. Т.е. в целом надписи можно разделить на два вида: надписи, связанные с сущностью и характеристиками объектов моделей, и надписи, связанные с моделями в целом. Еще один вид надписей – надписи общего оформления моделей в виде чертежей, презентаций и т.п. виде, необходимом для представления моделей в виде документов, для удобства их демонстрации и т.д. Этот вид надписей уже фактически вообще не является частью самих cad-моделей, хотя и может в них присутствовать – например, в случаях оформления чертежей в пространстве моделей, а не в пространстве листов (Layout).

В принципе можно утверждать, что все надписи в графических моделях логически связаны с сущностью или свойствами объектов этих моделей или с моделями в целом. И в моделях не должно быть иных, не связанных надписей – иначе это ошибки и лишние элементы.

 

В данном тексте в основном рассматриваются надписи о сущностях и характеристиках объектов cad-моделей.

Из общих соображений следует, что такие надписи обладают следующими  принципиальными особенностями:

  1.  Надписи не являются графической частью моделей, т.к. своей формой, положением и размерами не передают геометрических особенностей объектов. (Даже если надписи используются как точечные объекты, то вместо надписей могут быть собственно точечные графические элементы).
  2.  Надписи не являются логически самостоятельными элементами, а есть производное отображаемых объектов, связанное с надписываемыми объектами.
  3.  Надписи могут в моделях присутствовать, но могут и не даваться – в зависимости от многих обстоятельств.

Из этих особенностей надписей следуют желаемые их свойства и особенности их отображения:

  1.  Содержание надписей автоматически «считывает», отображает сущность и/или значения характеристик объектов.
  2.  Создание, перемещение, выбор, удаление надписей и пр. происходит одновременно с такими действиями со «своими» объектами.
  3.  Возможность оперативного включения/выключения отображения надписей.

Возможность ручного редактирования содержания надписей при этом желательна, но не обязательна, и, вероятно, целесообразна только в части добавления текста к созданному автоматически. Возможность копирования надписей отдельно от «своих» объектов целесообразно блокировать или нужно средство для выбора дублирующихся надписей одного и того же. Возможность удаления надписей отдельно от «своих» объектов так же целесообразно блокировать или нужны средства для обнаружения их отсутствия и их восстановления. Возможности переноса, поворота надписей целесообразны.

 

В 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 можно было бы:

  1.  Добавить к свойствам текстовых элементов указатели на объекты, при которых надписи даются.
  2.  Встроить в состав графических элементов надписи, число которых может меняться в зависимости от числа описанных характеристик, и содержание которых связано со значениями этих характеристик. С возможностью включения/выключения их отображения.
  3.  Встроить надписи в состав дополнительных данных, служащих для описания сущности/характеристик объектов. С возможностью включения/выключения их отображения.

Последний способ реализован в одном из CAD, и описан в одной из предыдущих статей – Как с расширенными данными у «смежника» AutoCAD.

.

10.09.18

Александр Шаров

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-15 из 18
Сергей812 , 12 сентября 2018 в 14:12
#18
Цитата:
Сообщение #17 от АлексЮстасу
Цитата:Сообщение #16 от Сергей812А отображать можно как угодноВот это самое "как угодно", оказывается, вполне ограничено всего несколькими определенными вариантами и реализуется всего несколькими конкретными способами действий. Поэтому и можно говорить о Labeling'е в общем виде, универсальном для любых приложений.

Можно договориться только о форматах обмена и хранения данных, если этому не помешают экономическая конкуренция, но в каждом реальном ПО будет своя программная реализация механизмов отображения данных и взаимодействия с пользователем. А весь ваш Labeling в общем универсальном виде реализуется в обычных базах данных, как уже писали неоднократно тут.
АлексЮстасу , 12 сентября 2018 в 13:42
#17
Цитата:
Сообщение #16 от Сергей812
А отображать можно как угодно
Вот это самое "как угодно", оказывается, вполне ограничено всего несколькими определенными вариантами и реализуется всего несколькими конкретными способами действий. Поэтому и можно говорить о Labeling'е в общем виде, универсальном для любых приложений.
Сергей812 , 12 сентября 2018 в 13:21
#16
Цитата:
Сообщение #15 от АлексЮстасу
Мы Labeling не делали. У нас есть только загрузка содержания уже готовых текстов и атрибутов в поля данных и выгрузка значений из полей данных в атрибуты.

Любая подобная задача, если у программиста достаточно квалификации, разбивается на три части минимум - хранение, ввод данных (с контролем, желательно), и отображение (отчеты). А отображать можно как угодно - что поддерживает используемое ПО.
АлексЮстасу , 12 сентября 2018 в 13:10
#15
Цитата:
Сообщение #13 от Сергей812
В ваших разработках есть API, чтобы ими могли пользоваться другие разработчики?
Мы Labeling не делали. У нас есть только загрузка содержания уже готовых текстов и атрибутов в поля данных и выгрузка значений из полей данных в атрибуты. См. ODEDIT_LOAD_TEXT, ODEDIT_LOAD_ATTRS, ODEDIT_STORE_ATTRS. Писал статью из общих соображений - просто интересно было разобрать задачу.

Цитата:
Сообщение #13 от Сергей812
Если не изобретать велосипед, а воспользоваться одним из готовых решений по хранению данных...

Цитата:
Сообщение #14 от trir
используй БД - и никаких пробле ;=)

Кто ж спорит?! Вопрос-то не ко мне. К "корпорациям". :)
trir , 12 сентября 2018 в 11:49
#14
"Главное и самое сложное - организовать доступ к источникам данных для надписей разных приложений"
используй БД - и никаких пробле ;=)
Сергей812 , 12 сентября 2018 в 09:27
#13
Цитата:
Сообщение #12 от АлексЮстасу
Так не логично ли быть такому набору инструментов в базовом AutoCAD? Тогда им могли бы пользоваться все вертикальные приложения. И пользователям было бы легче.

В ваших разработках есть API, чтобы ими могли пользоваться другие разработчики?

Цитата:
Сообщение #12 от АлексЮстасу
Главное и самое сложное - организовать доступ к источникам данных для надписей разных приложений.

Если не изобретать велосипед, а воспользоваться одним из готовых решений по хранению данных...
АлексЮстасу , 12 сентября 2018 в 02:59
#12
Цитата:
Сообщение #11 от Сергей812
с корпорациями
Да, уж, мы совсем не Autodesk... :)

Возьмем же, наконец, к примеру Labeling.
В нашем Map 3D сразу два варианта Labeling'а. И в Civil 3D, поставлявшемся всегда с Map 3D, есть свой Labeling. Может, тоже не один - не знаю.
И уверен, что Labeling есть свой во всех вертикальных приложениях. При том, что единственное, чем он может различаться - источники данных.
Получается, что можно создать общий для всех приложений набор инструментов Labeling'а. Главное и самое сложное - организовать доступ к источникам данных для надписей разных приложений.
В целом же Labeling может состоять из таких инструментов:
- создать надписи,
- обновить надписи,
- обновить значения в источнике данных по надписям,
- средства включения-выключения отображения надписей.
Так не логично ли быть такому набору инструментов в базовом AutoCAD? Тогда им могли бы пользоваться все вертикальные приложения. И пользователям было бы легче.
Сергей812 , 11 сентября 2018 в 22:36
#11
Цитата:
Сообщение #10 от АлексЮстасу
Основное, что предлагаю я - встроить ее в CAD. Для этого в CAD уже есть все основные средства. Во-первых, это даст обычным пользователям новые мощные возможности.

а дадут ли маркетологи возможность расширять функционал базовых продуктов?)


Цитата:
Сообщение #10 от АлексЮстасу
Во-вторых, облегчит эти "вертикалки, BIM, ГИС и т.п." на повторяющиеся во всех них инструменты, унифицирует их, и облегчит обмен данными между всеми ними.


Вы готовы тягаться с корпорациями в области обработки и обмена информации?) Что им сможете предложить такого, чего еще у них не было и перспективно в плане прибыли?
АлексЮстасу , 11 сентября 2018 в 21:56
#10
Цитата:
Сообщение #9 от Сергей812
Вертикалки, BIM, ГИС и т.п. давно используют "вашу" супертехнологию в виде совокупности данных, привязанных к отдельным элементам, и их отображения)

Наконец-то какие-то признаки понимания. Только технология не моя ни разу - я лишь осознал ее как таковую, как смог описал и дал название. (Впрочем, возражений или др. предложений не было, ибо всем пофиг). И про "вертикалки, BIM, ГИС и т.п." Вы у меня же и вычитали. Но, ессно, забыли. :)
Основное, что предлагаю я - встроить ее в CAD. Для этого в CAD уже есть все основные средства. Во-первых, это даст обычным пользователям новые мощные возможности. Во-вторых, облегчит эти "вертикалки, BIM, ГИС и т.п." на повторяющиеся во всех них инструменты, унифицирует их, и облегчит обмен данными между всеми ними.
Типа того. И пр.

Но зачем мы об этом рассуждаем здесь - для этого есть же соответствующие статьи?

Здесь предмет обсуждения Labeling, надписи.
Сергей812 , 11 сентября 2018 в 20:51
#9
Цитата:
Сообщение #8 от АлексЮстасу
Вы опять об ином, о своем, а не о том, что в статье.
Специально посмотрел - про технологию OD/DB в статье вообще не упоминается!
Вероятно, и в идее этой технологии Вы разобрались приблизительно настолько же, как в этой статье.


Вертикалки, BIM, ГИС и т.п. давно используют "вашу" супертехнологию в виде совокупности данных, привязанных к отдельным элементам, и их отображения)
АлексЮстасу , 11 сентября 2018 в 20:09
#8
Вы опять об ином, о своем, а не о том, что в статье.
Специально посмотрел - про технологию OD/DB в статье вообще не упоминается!
Вероятно, и в идее этой технологии Вы разобрались приблизительно настолько же, как в этой статье.
Сергей812 , 11 сентября 2018 в 19:09
#7
я о практической пользе, а вы продолжайте фантазировать, что ваша "новаторская" идея не опоздала на много-много лет.. и тратить на нее ресурсы.. Ваше право)
АлексЮстасу , 11 сентября 2018 в 18:24
#6
Чем, как Вы читали?
Эта статья не о "взаимосвязях/зависимостях между объектами" и т.п.
Статья о надписях. О Labeling'е.
Сергей812 , 11 сентября 2018 в 16:26
#5
Цитата:
Сообщение #4 от АлексЮстасу
Но если Вы статью не читали, зачем Вы здесь пишете?

почему не читал, я прочел - и не увидел ничего нового. Ну назвали иными словами ту "технологию", с которой уже сколько времени носитесь.. Перешли к абстрактной CAD-системе...

А как не было формирования взаимосвязей/зависимостей между объектами - так их и нету. А без этого так и останется данная задумка некой помесью информационной системы и той же палитры с недоиспользованным потенциалом. А зависимости в каждом разделе того же проектирования не совпадают друг с другом - есть какие то общие признаки, есть и специфические для каждого раздела.
АлексЮстасу , 11 сентября 2018 в 14:14
#4
Например:
1. Можно не отображать данные.
2. Можно автоматизировать отображение.
3. Какими способами можно организовать отображение.
И пр.

Но если Вы статью не читали, зачем Вы здесь пишете?