Перейти к содержанию

Сериализация объектов в MultiCAD.NET. Управление совместимостью чертежей и прокси-объектами


Рекомендуемые сообщения

http://habrahabr.ru/company/nanosoft/blog/219997/

 

90465c0741968fcc051896b8faa92dff.png

При создании пользовательских объектов на традиционном C++ API (NRX в nanoCAD, ObjectARX в AutoCAD) для обеспечения сохранения объектов и чтения их из файла чертежа необходимо в явном виде описывать запись (сериализацию) и чтение (десериализацию) каждого поля. В MultiCAD.NET API применён более привычный .NET разработчикам описательный подход, в основе которого лежит стандартная .NET сериализация.

Применение сериализации, нечувствительной к версии объектов (Version Tolerance Serialization), предоставляет разработчикам более гибкий механизм управления совместимостью объектов разных версий, чем существующий в традиционном C++ API, где предусмотрено чтение предыдущих версий, но чтение файлов «из будущего» невозможно.

В MultiCAD.NET при описании новых версий объектов можно указать, что вновь добавленные поля необязательны, и тогда чертёж, сохранённый в формате новой версии приложения, прочитается и в предыдущей версии. Разумеется, без изменений остался и традиционный подход, приводящий к созданию прокси объектов (кешированной графики объектов) при загрузке чертежа в предыдущую версию приложения.

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

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Ivanco
      Данная dll выводит список вершин полилинии в таблицу , с помещением таблицы в пространство модели.
      dll позволяет работать с двумя типами линий:
      - полилиния
      -3d полиния(версия 6.0 наноСПДС не поддерживает создание 3d полилиний , но 3d полиния может присутствовать в .dwg созданном в другой САПР).
      Тестировалась на : nanoCADСПДС 6.0(сб.258)x32.
      Команда для запуска: "point_from_pline" , далее читаем командную строку.
      видео демонстрация по
       
      Пожелания, предложения - пишем ниже .
      point_from_pline.7z
    • От Ivanco
      dll написана мной на multicad.net дл задачи объединения таблиц в nanoCAD СПДС 5.4.
      может кому оно надо)
      Команды: summ_all_table -собирает все таблицы с пространства модели и объединяет в одну (помещая ее на чертеж), с возможностью экспорта в файл(.csv, .xls и т.д).Есть возможность обрезать шапку у таблиц при объединении в общую.
      summ_user_table - тоже что и команда выше, но не все таблицы а выбранные пользователем.
      Видео с описанием работы:
      1.на AutoCAD и ZWCAD не тестировалась.
      2.Из минусов:
      - больше 900 строк в таблице конечной - будет "тормозить".
      - нет проверок если вводить неправильные данные в ком.строку.
      WorkToSpdsTable.zip
      ______
      dll для nanoCAD7.0 и nanoCADСПДС 6.0
      WorkToSpdsTable _nc7.zip
      _______
      P.S. если у кого нибудь есть еще задачи с таблицами - пишите в комментариях.
      P.P.S. спасибо "клуб разработчиков" за помощь в написании.
    • От Laziz
      Ест ли возможность загрузит dwg или dxf файл в отдельном программе, без NanoCAD или AutoCAD с помощью MultiCAD.NET?
      Типо вот на этом статье тынц
      Мне нужно:
      1. dwg файл пересохранить на autocad R14.
      2. Показать выбранные линии в отдельном винформе.
       
      Если есть возможность покажите маленький пример пожалуйста, дальше сам попробую разбираться.
      Спасибо!
    • От Laziz
      Доброго времени суток.
      Возможно ли с помощю MultiCAD.NET осуществить сабж?
      Если да:
      1. Как осуществить выбор линии или несколько линии?
      2. Как получить размер выбронного линию или несколько выбранных линии?
      3. И самое главное, если выбран несколько линия как, определить градус поворота второго линя относительно первого?
       
      Спасибо
      Извините за некомпетентность, стараюсь исправиться.
    • От azaytsev
      http://habrahabr.ru/company/nanosoft/blog/246511/

       
      К нам в техподдержку часто приходит вопрос: "Как посчитать суммы длин отрезков (участков трубопровода, элементов электрических схем и т.п.) в чертеже?". Существует масса способов решения этой задачи, в сегодняшней публикации мы рассмотрим реализацию приложения на MultiCAD.NET API, суммирующего длины, которое работает в nanoCAD, AutoCAD и ZWCAD. В качестве примера мы возьмем задачу определения суммарной длины труб в схеме водоснабжения и рассмотрим два варианта выбора элементов для подсчета: пользовательский и по созданному фильтру.
×
×
  • Создать...