xData и полилиния.

Автор Тема: xData и полилиния.  (Прочитано 3488 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
xData и полилиния.
« : 04-06-2022, 18:57:44 »
Добрый день,
Имеется полилиния (LWPolyline). Мне нужно "повесить" на нее несколько наборов расширенных данных в количестве равном числу сегментов полилинии. Вроде бы логично это делать присоединяя по одному набору расширенных данных к каждому сегменту (или вершине). Проблема для меня заключается в том, что я не знаю, как выделить сегмент полилинии в качестве объекта для присоединения расширенных данных (да и вообще, возможно ли это).
Заранее благодарен.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData и полилиния.
« Ответ #1 : 04-06-2022, 19:00:54 »
Балиев,
Для LWPOLYLINE добавить Xdata к сегменту полилинии нельзя - сегмент не является отдельным объектом.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Балиев 04-06-2022, 20:29:20

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 809
  • Карма: 166
    • Мои плагины к Автокаду
Re: xData и полилиния.
« Ответ #2 : 04-06-2022, 19:20:44 »
Добавьте к данным поле с информацией об индексе сегмента и записывайте в xData полилинии столько раз, сколько сегментов с данными. Я так данные о гранях солидов храню.
Или пишите все данные массивами длинной по числу сегментов.

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: xData и полилиния.
« Ответ #3 : 04-06-2022, 19:32:23 »
Или пишите все данные массивами длинной по числу сегментов.
А разве можно в буфер массивы писать?

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 809
  • Карма: 166
    • Мои плагины к Автокаду
Re: xData и полилиния.
« Ответ #4 : 04-06-2022, 19:40:24 »
Бинарные данные или строки csv

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData и полилиния.
« Ответ #5 : 04-06-2022, 19:54:31 »
Балиев,
Если вершин много (например, несколько сотен или тысяч) очень просто выйти за пределы 16K
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: xData и полилиния.
« Ответ #6 : 04-06-2022, 20:15:58 »
Балиев,
Если вершин много (например, несколько сотен или тысяч) очень просто выйти за пределы 16K
Вершин предполагается не так много - не более 20-25. К сожалению, по иным причинам нельзя использовать Polyline3D, которые, похоже, позволяют использовать вершины для привязки к ним расширенных данных.
А нельзя ли к одному объекту привязать несколько наборов xData? Вроде бы буфера различаются друг от друга по имени приложения, тогда что мешает?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData и полилиния.
« Ответ #7 : 04-06-2022, 20:18:25 »
А нельзя ли к одному объекту привязать несколько наборов xData?
Нет конечно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 809
  • Карма: 166
    • Мои плагины к Автокаду
Re: xData и полилиния.
« Ответ #8 : 04-06-2022, 22:23:40 »
А нельзя ли к одному объекту привязать несколько наборов xData? Вроде бы буфера различаются друг от друга по имени приложения, тогда что мешает?
Мешает ограничение на суммарный объем данных xData одного объекта. xData одного объекта один на все приложения.
Но не обязательно же в xData данные хранить. Можно ж создать свой словарь и хранить сколько угодно записей xRecord, связывать с любыми объектами. Там уже нет жестких ограничений по объему данных. да хоть в отдельном файле данные хранить. Или в базе данных. sqlite и т.п. У меня уже 15 лет работает плагин, который все данные в MS SQL хранит, а в чертежах в xdata только номер записи. В переделах одной компании - годное решение. А посторонние инженеры все равно без вашего плагина не прочитают xData.

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: xData и полилиния.
« Ответ #9 : 04-06-2022, 22:54:05 »
Можно ж создать свой словарь и хранить сколько угодно записей xRecord, связывать с любыми объектами.
А где об этом можно почитать, не подскажете?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData и полилиния.
« Ответ #10 : 04-06-2022, 22:58:14 »
К сожалению, по иным причинам нельзя использовать Polyline3D, которые, похоже, позволяют использовать вершины для привязки к ним расширенных данных.
А Polyline2d? Единственная возможная проблема - конвертация Polyline2d в Polyline, которая может произойти даже при открытии чертежа: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2018/RUS/AutoCAD-Core/files/GUID-F6027128-2707-4BBE-A0A4-C757435D4874-htm.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: xData и полилиния.
« Ответ #11 : 04-06-2022, 23:21:11 »
К сожалению, по иным причинам нельзя использовать Polyline3D, которые, похоже, позволяют использовать вершины для привязки к ним расширенных данных.
А Polyline2d? Единственная возможная проблема - конвертация Polyline2d в Polyline, которая может произойти даже при открытии чертежа: https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2018/RUS/AutoCAD-Core/files/GUID-F6027128-2707-4BBE-A0A4-C757435D4874-htm.html
А в Polyline2d пользователь может интерактивно добавлять вершины? И потом я не нашел класса PolylineVertex2d (насколько я понимаю, объекты именно этого класса могут служить для привязки к расширенным данным). Может, конечно, плохо искал или что-то не так понимаю...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: xData и полилиния.
« Ответ #12 : 04-06-2022, 23:25:38 »
А в Polyline2d пользователь может интерактивно добавлять вершины?
Да.
И потом я не нашел класса PolylineVertex2d (насколько я понимаю, объекты именно этого класса могут служить для привязки к расширенным данным).
Этот класс называется Vertex2d.
P.S.: Еще раз обращаю внимание, что возможна конвертация Polyline2d в Polyline с потерей всех Xdata.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн БалиевАвтор темы

  • ADN Club
  • ***
  • Сообщений: 188
  • Карма: 2
Re: xData и полилиния.
« Ответ #13 : 05-06-2022, 11:17:07 »
Этот класс называется Vertex2d.
P.S.: Еще раз обращаю внимание, что возможна конвертация Polyline2d в Polyline с потерей всех Xdata.
Спасибо! Насчет конвертации я понял.