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

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


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

Всем здравствовать!

Решил поделиться своей находкой. Не великое дело, но кому-то поможет - и хорошо.

Есть такой мучительный вопрос - сравнение чертежей разных версий. Как говорится, найдите 10 различий :) У меня все проекты хранятся в системе контроля версий SVN (Subversion), поэтому такой вопрос почти никогда не стоит, если автор изменений добросовестно заполнил, что именно он меня последний раз. Но иногда даже при таком подходе не получается выявить досконально все изменения (например, когда в перечне изменений что-то вроде "Перекомпоноан продольный профиль" или "Изменено расположение устройств погрузки"). Не будешь же каждый чих в журнал изменений вносить.

Я обычно не искал решения, но уж очень приспичило в этот раз. Поискав программулины, понял, что бесплатного ничего нет в такой сфере (скорее всего; если есть - пишите), потому как то, что я находил, стоит от 7000 руб. и выше.

Найденный мной способ бесплатен и довольно прост. В основе лежит принцип наложения чертежей "на просвет" с учётом взаимодействия цветов и способа этого самого "просвета". Из инструментов нам понадобятся:

  1. Свободный и бесплантый графический растровый редактор Paint.net.
  2. Любое средство перевода чертежа в растр - я использую PDFCreator - он помимо PDF может и в графический файл нескольких форматов сохранять.

Итак, у нас есть две версии чертежа. Во вложении исходный файл DWG с двумя листами ,которые слегка друг от друга отличаются. Важно, чтобы чертёж не менял привязку к границам листа, иначе придётся корректировать его положение относительно второго. Вот порядок действий:

1. Печатаем оба чертежа в PDFCreator, сохраняем результат в формате PNG (можно в JPG, BMP - не суть, лишь бы качество не терялось сильно). Получаем такие две картинки:

 

 

1.png2.png

 

 

Можно заметить, что для ориентирования в пространстве я в левом нижнем углу каждого листа подписал его "версию", чтобы не запутаться потом в результате сравнения. При сравнении реальных чертежей вполне можно применять этот приём, чтобы не нагружать мозг, если уже запутались в версиях :)

2. Открываем более ранний файл в Paint.net. Затем "перетаскиваем" более поздний файл в окно Paint.net. При этом программа спросит, что сделать с файлом - открыть или добавить в качестве слоя. Выбираем "Добавить слой". Если вы не любите "таскать" файлы, вполне можно скопировать его в буфер обмена (контекстным меню или же Ctrl+C) и в программе выбрать В меню Правка-Вставить в новый слой (или Ctrl+Shift+V). Если сделано всё правильно, то получится, как на рисунке:

 

 

01.png

 

 

3. Приступаем к препарированию пациента B) В панельке Слои отключаем верхний (он же 2: Фон, он же более поздний) и выбираем нижний. В принципе, можно не отключать - это мы для визуализации дальнейших изменений сделали. А вот выбрать нижний нужно обязательно.

4. В главном меню выбираем пункт Коррекция-Уровни

 

 

 

02.png

 

 

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

 

 

03.png

 

 

Жмём ОК.

В резёльтате получаем чёрного цвета чертежа на синий

 

 

 

04.png

 

 

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

 

 

 

06.png

 

 

Если всё сделано правильно, получим следующий вид:

 

 

07.png

 

 

Немного непривычно, но это позволяет использовать различные способ смешивания в дальнейшем.

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

 

 

 

05.png

 

 

Получился розовый чертёж на белом фоне :wub:

8. Теперь самое интересное. В главном меню выбираем пункт Слои-Свойства слоя или просто жмём F4. При этом выделенным должен оставаться верхний слой. Появляется окошко, в котором можно менять режим смешивания слоёв. Это трежим и определяет, что у нас получается в результате наложения "на просвет". В последней секции результаты наложения во всех режимах.

 

 

09.png10.png11.png12.png13.png14.png15.png16.png17.png18.png19.png20.png

 

 

Как видим, на выбор есть всё, что мы можем захотеть: то было удалено, что было добавлено, что осталось неизменным и комбинации всего этого добра в разным цветах.

Остановимся на режиме "Исключение". Жмём ОК.

9. В принципе, можно на это и остановиться, но сделаем ещё пару движений мышью, которые добавят отчётливости. В главном меню выбираем пункт Слои-Объединить со следующим слоем

 

 

21.png

 

 

Картинка при этом не изменится, просто слои объединятся в один, с которым можно дальше работать. Должно получиться так:

 

 

 

22.png

 

 

10. Ну и применяем инверсию на эту красоту (Коррекция-Инвертировать цвета). Получаем вид, в котором достаточно отчётливо видно, что осталось на мете (красным), что удалено (жёлтым) и что добавлено (зелёным). Красный в данном случае полезен тем, что человеческий глаз воспринимает его хуже остальных, т.е. он не отвлекает внимание. Чёрный фон способствует большей контрастности. Заметьте ,что даже изменения одной цифры в таблице хорошо заметны. Даже изменение двух похожих букв сразу вскрыается (представьте, что в примечании описано много ссылок и чисел - здесь найдётся всё, если текст не сместился).

 

 

23.png

 

 

В общем, это всё, что я хотел рассказать. Путь, конечно, не традиционный для DWG-шника и программиста (хочется сравнивать примитивы в модели и т.д., а не фотошопить :lol:). Но зато способ бесплатный, довольно простой в освоении и не требует половых сношений с компутером.

В заключение добавлю, что выбранные для примера цвета и последовательность действий - лишь пример. Можно комбинировать всё, что угодно и в любой последовательности - получатся неожиданные результаты.

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

Если чертёж цветной, то его можно сделать чёрно-белым в том же редакторе. Для этого выбираем нужный слой, в главном меню пункт Коррекция-Сделать чёрно-белым. Чтобы убрать полутона (оттенки серого) и сделать всё чёрным, можно, как вариант, выполнить Коррекция-Уровни, где в промежуточном поле ввести 8, а не 1,00 - тогда серые станут чёрными. Можно пару раз повторить это дествие, если с первого раза не удаётся добиться нужного эффекта. Ну или чертёж распечатать монохромным. Можете также попробовать и с серыми линиями, заодно и разницу увидите.

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

Спасибо за внимание! -_-

Листы.dwg

Изменено пользователем Kreator
Ссылка на сообщение
Поделиться на другие сайты

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

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

ИМХО слишком уж сложно. Берём две картинки, закидываем в два слоя в фотошопе или гимпе, эффект наложения верхнего слоя на нижний "вычитание". Всё... Ну, разве что мусор подчистить неизбежно образующийся если картинки были разного размера, но обычно оно и не требуется - уже видишь где и чего поправлено.

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

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

 

 

Вычитание.png

 

 

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

Я обычно этим занимаюсь на версиях переводов - отлавливаю разного рода запятые и прочую "незаметную" мелочь. Мну удобнее так, ибо текст прямо тут и правлю при необходимости.

Аесли чего смотретьнадо то видимость всгда можно вырубить

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

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

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

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

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

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

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

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

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

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

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

    • От Сергей1990
      Здравствуйте, подскажите как обрезать растровое изображение не по прямоугольной рамке, а по многоугольнику. Мне нужно на картинке формата jpeg выделить область по нескольким точкам, границы обрезки получаются в виде многоугольника.
    • От Сергей1990
      Здравствуйте, подскажите как обрезать растровое изображение не по прямоугольной рамке, а по многоугольнику. Мне нужно на картинке формата jpeg выделить область по нескольким точкам, границы обрезки получаются в виде многоугольника.
    • От ya-vsg
      Здравствуйте, растр в модели, всё хорошо. При выводе на печать тот же самый растр в листе черный и не ограничивается видовым экраном. Подскажите, как поправить? Спасибо.


    • От aerohost
      Добрый день, столкнулся с такой проблемой, имеется большой растр (50 мб) я его физически поделил на 30 частей для удобства, сгруппировал с помощью инструмента  группировка как одно целое( якобы большая картинка), но если из этих 30 частей картинок взять 10 частей и обрезать и помощью инструмента показа границ для визуального удобства при этом они остались в группировке как одно целое, при масштабе колесиком выкидывает из nanocad 11
      добавлено через 1 минуту так же это было замечено и с  большим блоком, который я обрезаю с помощью показа границ(в черетеже имеется растр и этот блок, хочу визуально совместить растр и блоком) , при перемещении растра по чертежу начинает виснуть.  
    • От aerohost
      Можно как то отключить привязку к растровой картинке( в данном случаи к подложке) в nanocad 11 ? а то заколебали различные элементы рисования привязываться в центре растра.
×
×
  • Создать...