Перейти к содержимому


Сравнение чертежей на предмет изменений

сравнение на просвет изменения растр

В теме одно сообщение

#1 Kreator

    Активист

  • Пользователи
  • PipPipPipPip
  • 474 сообщений
  • Пол:Мужчина
  • Город:Краснодар

Отправлено 16 Июль 2016 - 22:43

Всем здравствовать!
Решил поделиться своей находкой. Не великое дело, но кому-то поможет - и хорошо.
Есть такой мучительный вопрос - сравнение чертежей разных версий. Как говорится, найдите 10 различий :) У меня все проекты хранятся в системе контроля версий SVN (Subversion), поэтому такой вопрос почти никогда не стоит, если автор изменений добросовестно заполнил, что именно он меня последний раз. Но иногда даже при таком подходе не получается выявить досконально все изменения (например, когда в перечне изменений что-то вроде "Перекомпоноан продольный профиль" или "Изменено расположение устройств погрузки"). Не будешь же каждый чих в журнал изменений вносить.
Я обычно не искал решения, но уж очень приспичило в этот раз. Поискав программулины, понял, что бесплатного ничего нет в такой сфере (скорее всего; если есть - пишите), потому как то, что я находил, стоит от 7000 руб. и выше.
Найденный мной способ бесплатен и довольно прост. В основе лежит принцип наложения чертежей "на просвет" с учётом взаимодействия цветов и способа этого самого "просвета". Из инструментов нам понадобятся:
  • Свободный и бесплантый графический растровый редактор Paint.net.
  • Любое средство перевода чертежа в растр - я использую PDFCreator - он помимо PDF может и в графический файл нескольких форматов сохранять.
Итак, у нас есть две версии чертежа. Во вложении исходный файл DWG с двумя листами ,которые слегка друг от друга отличаются. Важно, чтобы чертёж не менял привязку к границам листа, иначе придётся корректировать его положение относительно второго. Вот порядок действий:
1. Печатаем оба чертежа в PDFCreator, сохраняем результат в формате PNG (можно в JPG, BMP - не суть, лишь бы качество не терялось сильно). Получаем такие две картинки:
Скрытый текст
Можно заметить, что для ориентирования в пространстве я в левом нижнем углу каждого листа подписал его "версию", чтобы не запутаться потом в результате сравнения. При сравнении реальных чертежей вполне можно применять этот приём, чтобы не нагружать мозг, если уже запутались в версиях :)
2. Открываем более ранний файл в Paint.net. Затем "перетаскиваем" более поздний файл в окно Paint.net. При этом программа спросит, что сделать с файлом - открыть или добавить в качестве слоя. Выбираем "Добавить слой". Если вы не любите "таскать" файлы, вполне можно скопировать его в буфер обмена (контекстным меню или же Ctrl+C) и в программе выбрать В меню Правка-Вставить в новый слой (или Ctrl+Shift+V). Если сделано всё правильно, то получится, как на рисунке:
Скрытый текст
3. Приступаем к препарированию пациента B) В панельке Слои отключаем верхний (он же 2: Фон, он же более поздний) и выбираем нижний. В принципе, можно не отключать - это мы для визуализации дальнейших изменений сделали. А вот выбрать нижний нужно обязательно.
4. В главном меню выбираем пункт Коррекция-Уровни

Скрытый текст
5. В появившемся окне оставляем активным для изменения любой один цвет - я для примера взял синий. В нижнее поле вместо нуля вбиваем 255 - максимальное значение интенсивности.
Скрытый текст
Жмём ОК.
В резёльтате получаем чёрного цвета чертежа на синий

Скрытый текст
6. Делаем второе изменение - инверсия (он же негатив). В главном меню пункт Коррекция-Инвертирование цвета

Скрытый текст
Если всё сделано правильно, получим следующий вид:
Скрытый текст
Немного непривычно, но это позволяет использовать различные способ смешивания в дальнейшем.
7. Включаем верхний слой, который мы отключили ранее, и выделяем его. Делаем коррецкию уровней, как в пунктах 4 и 5. Но в данном случае оставляем активными для изменения два цвета. Я взял Красный и синий. Обращу внимание, что при открытии окна значение центрального поля будет отлично от 1,00 - необходимо его установить в 1,00, иначе получится не очень. Хотя можно поэкспериментировать и с этим. В нижнее поле так же вбиваем 255.

Скрытый текст
Получился розовый чертёж на белом фоне :wub:
8. Теперь самое интересное. В главном меню выбираем пункт Слои-Свойства слоя или просто жмём F4. При этом выделенным должен оставаться верхний слой. Появляется окошко, в котором можно менять режим смешивания слоёв. Это трежим и определяет, что у нас получается в результате наложения "на просвет". В последней секции результаты наложения во всех режимах.
Скрытый текст
Как видим, на выбор есть всё, что мы можем захотеть: то было удалено, что было добавлено, что осталось неизменным и комбинации всего этого добра в разным цветах.
Остановимся на режиме "Исключение". Жмём ОК.
9. В принципе, можно на это и остановиться, но сделаем ещё пару движений мышью, которые добавят отчётливости. В главном меню выбираем пункт Слои-Объединить со следующим слоем
Скрытый текст
Картинка при этом не изменится, просто слои объединятся в один, с которым можно дальше работать. Должно получиться так:

Скрытый текст
10. Ну и применяем инверсию на эту красоту (Коррекция-Инвертировать цвета). Получаем вид, в котором достаточно отчётливо видно, что осталось на мете (красным), что удалено (жёлтым) и что добавлено (зелёным). Красный в данном случае полезен тем, что человеческий глаз воспринимает его хуже остальных, т.е. он не отвлекает внимание. Чёрный фон способствует большей контрастности. Заметьте ,что даже изменения одной цифры в таблице хорошо заметны. Даже изменение двух похожих букв сразу вскрыается (представьте, что в примечании описано много ссылок и чисел - здесь найдётся всё, если текст не сместился).
Скрытый текст
В общем, это всё, что я хотел рассказать. Путь, конечно, не традиционный для DWG-шника и программиста (хочется сравнивать примитивы в модели и т.д., а не фотошопить :lol:). Но зато способ бесплатный, довольно простой в освоении и не требует половых сношений с компутером.
В заключение добавлю, что выбранные для примера цвета и последовательность действий - лишь пример. Можно комбинировать всё, что угодно и в любой последовательности - получатся неожиданные результаты.
В данном примере я использовал чёрный цвет в качестве цвета чертежей, т.к. во-первых, он всегда превращается в нужный (если будет красный, а из него мы "оставим" синий, то линия попросту пропадёт), а во-вторых, результирующий цвет будет иметь равную интенсивность и не приведёт к появлению полутонов, которые могут смешаться не так, как задумано.
Если чертёж цветной, то его можно сделать чёрно-белым в том же редакторе. Для этого выбираем нужный слой, в главном меню пункт Коррекция-Сделать чёрно-белым. Чтобы убрать полутона (оттенки серого) и сделать всё чёрным, можно, как вариант, выполнить Коррекция-Уровни, где в промежуточном поле ввести 8, а не 1,00 - тогда серые станут чёрными. Можно пару раз повторить это дествие, если с первого раза не удаётся добиться нужного эффекта. Ну или чертёж распечатать монохромным. Можете также попробовать и с серыми линиями, заодно и разницу увидите.
Если у вас есть другой полезный опыт сравнения чертежей, милости прошу - все будем только благодарны!
Спасибо за внимание! -_-

Прикрепленные файлы

  • Прикрепленный файл  Листы.dwg   414,4К   0 Количество загрузок:

Сообщение отредактировал Kreator: 16 Июль 2016 - 22:46

Полховский А.В. Проектирование железнодорожных путей
nanoCAD Plus 8.1.3712.2221; MultiCAD.NET; Печатаем просто и быстро

#2 dows

    Активист

  • Продукт-менеджеры
  • PipPipPipPip
  • 2 636 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:САПР

Отправлено 16 Июль 2016 - 23:19

Очень оригинально и примерно в том направлении, в котором рассуждали мы, когда думали о подобном необходимом функционале... :-)
С уважением,
Денис Ожигин

Сайты: www.archicad.ru, www.nanocad.ru





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей