XData и Audit

Автор Тема: XData и Audit  (Прочитано 5378 раз)

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

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
XData и Audit
« : 19-04-2019, 15:18:52 »
Как известно, команда Audit обрезает строки в XData до 255 символов. Есть ли какие-нибудь способы обезопасить XData в своих объектах от обрезки (кроме дробления длиной строки на более короткие)?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: XData и Audit
« Ответ #1 : 19-04-2019, 15:20:27 »
Создать для своих данных класс-провайдер и хранить данные как бинарные

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: XData и Audit
« Ответ #2 : 19-04-2019, 17:41:41 »
Как известно, команда Audit обрезает строки в XData до 255 символов. Есть ли какие-нибудь способы обезопасить XData в своих объектах от обрезки (кроме дробления длиной строки на более короткие)?
Только дробить и ни в коем случае не использовать длинные строки!!!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: XData и Audit
« Ответ #3 : 19-04-2019, 17:49:11 »
Только дробить и ни в коем случае не использовать длинные строки!!!
К сожалению, уже поздно ((( Я забыл про эту особенность и реализовал длинные строки, а переделывать уже поздно - модулем уже пользуются.

Есть шальная мысль: перед выполнением команды Audit запомнить XData для всех своих объектов, а после завершения - записать обратно.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: XData и Audit
« Ответ #4 : 19-04-2019, 17:53:44 »
Есть шальная мысль: перед выполнением команды Audit запомнить XData для всех своих объектов, а после завершения - записать обратно.
Она совершенно шальная. Представь себе, что AUDIT выполнят без твоего загруженного модуля??? Кстати есть еще команда _RECOVERY, которая проверяет файл перед загрузкой его в AutoCAD. Что ты с ней будешь делать?
Совет - объясниться с пользователями и переделать модуль.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн АлексЮстасу

  • ADN Club
  • ***
  • Сообщений: 116
  • Карма: 0
  • odclass-odedit.com
    • odclass-odedit.com
Re: XData и Audit
« Ответ #5 : 20-07-2021, 16:17:15 »
Я забыл про эту особенность и реализовал длинные строки, а переделывать уже поздно - модулем уже пользуются.
Добрый день!
Кроме обрезания AUDIT и RECOVER, какие были проблемы из-за превышения длины строк?
Утрата данных? Порча файлов? Помехи работе команд? Вылеты AutoCAD? Или др.?

я не программист, а технолог. пытаюсь быть постановщиком задач.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 805
  • Карма: 166
    • Мои плагины к Автокаду
Re: XData и Audit
« Ответ #6 : 22-07-2021, 12:42:41 »
какие были проблемы из-за превышения длины строк?
Никаких. По личному опыту - все прекрасно работает. Пользовался длительное время и сейчас не ограничиваю принудительно строки - сколько пользователь хочет, столько пусть и хранит. В документации только написал предупреждение.
Но я конечно не призываю так делать. Рано или поздно кто-то вызовет Audit.

Оффлайн АлексЮстасу

  • ADN Club
  • ***
  • Сообщений: 116
  • Карма: 0
  • odclass-odedit.com
    • odclass-odedit.com
Re: XData и Audit
« Ответ #7 : 03-08-2021, 16:12:23 »
А как обстоит дело с ограничением длины названий Apps?
В документации она ограничена 31 символом-байтом:
Цитировать
Application names can be up to 31 bytes long (the 32nd byte is reserved for the null character)
NoteDo not add a 1001 group into your extended data because AutoCAD assumes it is the beginning of a new application extended data group
- http://docs.autodesk.com/ACD/2011/ENU/filesDXF/WS1a9193826455f5ff18cb41610ec0a2e719-7943.htm
Или:
Цитировать
1001 (also a string value). Application names can be up to 31 bytes long (the 32nd byte is reserved for the null character) and must adhere to the rules for symbol table names (such as layer names). An application name can contain letters, digits, and the special characters $ (dollar sign), - (hyphen), and _ (underscore). It cannot contain spaces.
- https://help.autodesk.com/view/ACD/2022/ENU/?guid=GUID-3481BF7B-73CB-4FD5-B421-C25BE92C6D56

В другом же месте:
Цитировать
Application name    Текстовая строка ASCII длиной до 255 байт (код группы 1000).
- https://knowledge.autodesk.com/ru/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2019/RUS/AutoCAD-Core/files/GUID-F0299B36-232F-446E-9F81-98F300B36991-htm.html
В хелпах 2012-2019 это повторяется.
Я сначала решил, что это описка-случайно.
Но та же XDATA из Express позволяет создавать названия длиннее 32 символов-байт.
Я пробовал и 40, и 250, и 300 символов. Ни AUDIT, ни RECOVER не реагируют на длинные названия Apps вообще. COPY тоже их полностью сохраняет.

Вероятно, больше 255 не стоит.
Но все-таки 31 или 255?
я не программист, а технолог. пытаюсь быть постановщиком задач.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: XData и Audit
« Ответ #8 : 03-08-2021, 16:28:57 »
В другом же месте:
Цитировать

    Application name    Текстовая строка ASCII длиной до 255 байт (код группы 1000).
Код группы 1000 - это просто строка, а не имя приложения. Так что там ошибка. Имя приложения - это группа 1001.
Но все-таки 31 или 255?
31.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: XData и Audit
« Ответ #9 : 03-08-2021, 16:38:55 »
Почитай https://knowledge.autodesk.com/ru/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2021/RUS/AutoCAD-LT/files/GUID-8EC065EC-D551-4E02-9C5A-A33D1DB80B05-htm.html
Это относится и к именам приложений. Т.е. теоретически возможно и 255, но достаточно пользователю (или программе) переключить EXTNAMES в 0, или сохранить в старой версии AutoCAD, как имена приложений посыпятся. Так что не вижу смысла рисковать. Ну и кроме того 31 символа вполне достаточно для создания уникального имени приложения.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн АлексЮстасу

  • ADN Club
  • ***
  • Сообщений: 116
  • Карма: 0
  • odclass-odedit.com
    • odclass-odedit.com
Re: XData и Audit
« Ответ #10 : 03-08-2021, 19:59:24 »
Почитай https://knowledge.autodesk.com/ru/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2021/RUS/AutoCAD-LT/files/GUID-8EC065EC-D551-4E02-9C5A-A33D1DB80B05-htm.html
Это относится и к именам приложений. Т.е. теоретически возможно и 255, но достаточно пользователю (или программе) переключить EXTNAMES в 0, или сохранить в старой версии AutoCAD, как имена приложений посыпятся.
Спасибо дважды!
И за EXTNAMES. (У AutoCAD на каждую букву и символ есть переменные?   :D)
И за большую определенность в понимании что есть "старые версии".
Т.е. водораздел - R2000, R14?

Я создал Apps с названиями в 100 и в 150 символов, установил EXTNAMES в 0. В т.ч. при EXTNAMES в 0 создал командой XDATA из Express названия в 150 символов.
Но ничего не заметил.
Ни XDLIST не показывает никаких изменений-урезаний.
Ни AUDIT с RECOVER ничего не изменяют, не видят ошибок. Ни даже COPY не урезает.
Что бы должно происходить, где смотреть, искать потери-нарушения?
я не программист, а технолог. пытаюсь быть постановщиком задач.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: XData и Audit
« Ответ #11 : 03-08-2021, 20:17:12 »
Что бы должно происходить, где смотреть?
Недокументировано. Поэтому происходить может что угодно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение