Сравнение объектов(Блоков) из разных файлов ?

Автор Тема: Сравнение объектов(Блоков) из разных файлов ?  (Прочитано 5374 раз)

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

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

  • ADN Club
  • Сообщений: 36
  • Карма: 1
Суть:
необходимо сравнить блок(BlockTableReckord) с блоком из другого файла(Эталонный файл с блоками)

Вопрос~Помощь зала ?
у меня в голове есть идея сравнивать:
количество объектов и их типы (то есть) , в блоках одинаковое количество объектов одного типа.
по размеру блока  .... , и тут всё застрял!
есть у кого какие идеи в этом плане ? 

 
 
 

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

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

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
первым делом стоит сравнить хэши, чтобы лишнюю работу не делать. Это если полагаться на то, что в классах AutoCAD .NET API переопределён метод Object.GetHashCode(), т.к. в разных чертежах одинаковые (с точки зрения юзера) объекты могут иметь разные хэндлы. Полагаю, что в переопределённой версии метода, хэндлы следовало бы исключать из обработки при вычислении хэша:
Код - C# [Выбрать]
  1. public virtual int GetHashCode();

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

  • ADN Club
  • Сообщений: 36
  • Карма: 1
первым делом стоит сравнить хэши, чтобы лишнюю работу не делать. Это если полагаться на то, что в классах AutoCAD .NET API переопределён метод Object.GetHashCode(), т.к. в разных чертежах одинаковые (с точки зрения юзера) объекты могут иметь разные хэндлы. Полагаю, что в переопределённой версии метода, хэндлы следовало бы исключать из обработки при вычислении хэша:
Код - C# [Выбрать]
  1. public virtual int GetHashCode();

Хеши BlockTableReckord каждый раз разные при открытие одного того же файла =(

Если ты поймешь "Что такое одинаковые блоки?" - сможешь написать это сравнение. Под этим можно понимать и абсолютное равенство (попарно сравнивать свойства примитивов через Reflection) и относительное (выглядят одинаково) и еще возможны варианты...
Ну чувствую придется сравнивать по обьектно