Исключить из сериализации содержимое блока

Автор Тема: Исключить из сериализации содержимое блока  (Прочитано 205 раз)

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

Оффлайн Привалов Дмитрий

  • ADN Club
  • ****
  • Сообщений: 308
  • Карма: 49
Надо сериализовать полилинии не входящие в блоки для того, чтобы загрузить json в нашу самописную систему контроля разработки чертежа - то есть наблюдать, что происходит в чертеже каждый день, иметь возможность восстановить графику на определенный момент времени и дать пользователю возможность визуального сравнения изменений по сравнению с текущим чертежом и десериализованным из json. Похожая вещь появилась в Автокаде последних версий, но у нас только 2015 поэтому пишем сами. Это вкратце.

Что-то мне подсказывает, что это далеко не единственное "непродуманное" в этой задаче.
Поддерживаю.

1. Atomohod, я бы не рассчитывал, что пользователи используют только полилинии и блоки. Потребности могут измениться через год и сломают всю систему.
2. Может тебе все хранить в родном формате dwg? Версии можешь сохранять/восстанавливать например через git, останется продумать отображение отличий.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2165
  • Карма: 583
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
Похожая вещь появилась в Автокаде последних версий, но у нас только 2015 поэтому пишем сами.
Не совсем так. В AutoCAD последних версий эта вещь перекочевала внутрь. А до этого - была в виде отдельного приложения DWG Compare. Сейчас в Apps можно найти только для 2016-2019: https://apps.autodesk.com/ACD/ru/Detail/Index?id=1050435430275763742&appLang=en&os=Win32_64. Но, думаю, если сильно постараться, то можно будет найти в интернете и для версии 2015, т.к. само приложение ещё под версию 2012-2013 писалось, судя по этому: https://thecadgeek.com/blog/drawing-compare/.

Оффлайн Привалов Дмитрий

  • ADN Club
  • ****
  • Сообщений: 308
  • Карма: 49
А до этого - была в виде отдельного приложения DWG Compare
Существует еще возможность сравнения через Design Review, но файлы необходимо экспоритровать в DWF.

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

  • ADN OPEN
  • ***
  • Сообщений: 239
  • Карма: 0
все хранить в родном формате dwg? Версии можешь сохранять/восстанавливать например через git, останется продумать отображение отличий.
А кто мне их будет туда коммитить? Поставить каждому пользователю git и заставить его коммитить что-то с достаточно высокой частотой нереально - основной контингент конторы это тетеньки и дедушки от 50 и старше. Кроме того для json есть возможность чисто зрительно увидеть что менялось в сериализованном файле, а dwg git читать не умеет.

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

  • ADN OPEN
  • ***
  • Сообщений: 239
  • Карма: 0
P.S.: И конечно у вас никто не использует копирование через буфер обмена, которое приводит к появлению блоков вида A$XXXXXXXX в чертеже??? Не верю...
А в чем подвох? Пусть даже у него и странное имя, но факт появления/удаления его в чертеже и положение базовой точки ведь можно тоже зафиксировать?

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

  • Administrator
  • *****
  • Сообщений: 10390
  • Карма: 1315
  • Рыцарь ObjectARX
  • Skype: rivilis
А в чем подвох?
Подвох том, что в нём могут быть полилинии, которые нарисовали выши сотрудники, а вы решили, что содержимое этого блока вас не интересует. Т.е. вы пропустили эту графику...
« Последнее редактирование: 10-12-2019, 10:11:17 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • ****
  • Сообщений: 308
  • Карма: 49
А кто мне их будет туда коммитить? Поставить каждому пользователю git и заставить его коммитить что-то с достаточно высокой частотой нереально - основной контингент конторы это тетеньки и дедушки от 50 и старше
в json тетеньки и дедушки от 50 и старше как-то переводят, в git будет аналогично ;-)
git понимает команды, можно поставить на сервер.

Тут идея в другом, хранить в родном формате.
1. Т.к. dwg сложный формат и придумывать как хранить его объекты "по другому" сложно и на это уйдет много времени.
2. странно что из всех объектов только полилинии сохраняешь. Скорее всего нужны еще отрезки, а также подписи к линиям текст и мтекст. А по опыту, все что угодно. Т.е. задача может измениться и сильно усложниться в какой-то момент.
3. Меня смутило, что в задаче полилинии "восстанавливаются" из json, т.е. скорее всего, если полилиния была удалена, то ты ее добавляешь и handle приращивается, а при открытии старой копии dwg восстанавливается старый handle. Могут пойти расхождения и как следствие усложнения программы.