Хранение пользовательских данных в чертеже, словари

Автор Тема: Хранение пользовательских данных в чертеже, словари  (Прочитано 13971 раз)

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

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

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Добрый день!

Разбираюсь с возможностью хранения и использования пользовательских данных в чертеже (целые числа и числа с плавающей точкой, строки). Прошу подсказать по некоторым вопросам:

1. Основные способы для подобного хранения, известные мне, это Custom properties, Xdata и Dictionaries + Xrecord. Это все возможные способы или имеются ещё? (именно для хранения внутри чертежа, без соединения с "внешним" миром)
2. В литературе встречаются термины Dictionary и Extension dictionary. Являются ли они одним и тем же?
3. Можно ли "вкладывать" одни словари в другие, т. е. создавать древовидные структуры?
4. Можно ли копировать словари полностью либо их отдельные X-записи?
« Последнее редактирование: 08-07-2023, 13:51:34 от power_factor »

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Основные способы для подобного хранения, известные мне, это Custom properties, Xdata и Dictionaries + Xrecord. Это все возможные способы или имеются ещё? (именно для хранения внутри чертежа, без соединения с "внешним" миром)
Можно хранить и в Custom Object/Entity - но это только  помощью ObjectARX.
2. В литературе встречаются термины Dictionary и Extension dictionary. Являются ли они одним и тем же?
Extension dictionary это разновидность Dictionary.
3. Можно ли "вкладывать" одни словари в другие, т. е. создавать древовидные структуры?
Можно.
4. Можно ли копировать словари полностью либо их отдельные X-записи?
Можно. Но средства VisualLisp не предназначены для этого. Это или ObjectARX или AutoCAD .NET API
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Можно хранить и в Custom Object/Entity - но это только  помощью ObjectARX.

А Вы не могли бы, пожалуйста, немного объяснить. Допустим, имеется в чертеже линия, то есть уникальный экземпляр класса AcDbLine, имеющий свойства Length и Angle, относящиеся только к ему. Свойствам этим присвоены какие-то значения. Правильно ли я понимаю, что эти значения хранятся "внутри" именно этого экземпляра, создаются и уничтожаются вместе с ним?

Чтобы мне также было возможно хранить данные внутри объектов, мне нужно с помощью ObjectARX создавать свои классы?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Правильно ли я понимаю, что эти значения хранятся "внутри" именно этого экземпляра, создаются и уничтожаются вместе с ним?
Да.
Чтобы мне также было возможно хранить данные внутри объектов, мне нужно с помощью ObjectARX создавать свои классы?
Зависит от того что это за данные.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Зависит от того что это за данные.

Пока только числа и строки.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Пока только числа и строки.
Вопрос не в том, какого типа данные (хотя это тоже может быть важно). Вопрос в том как эти данные связаны внутри dwg-файла. В каком-то случае они могут быть связаны с объектами/примитивами AutoCAD, или со всем чертежом целиком...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение