Пакетная очистка файлов dwg

Обновлено: 06.07.2024

Изначально проблема заключалась не в размере файла, а скорости его работы. Т.е. файл открыли и при попытке просмотреть свойства объектов Автокад долго думает.

Другой проблемой оказалось наличие неиспользуемых текстовых стилей, однако при попытки лобового удаления Автокад ругался отказом т.к. стиль используется. Удаляя все объекты на чертеже - было удалено в итоге абсолютно все (пустой файл остался). Размер файла был порядка 3Мб, а стили все еще где-то используются.

Как выход была найдена программа пакетная очистка файла Автор: Кулик Алексей aka kpblc.

Итак.
Запуск: создаем пустой/новый чертеж DWG (можно не сохраняться), закидываем/перетаскиваем файл-программу в окно Автокада. Набираем команду BP (или bp - не принципиально). Дальше все просто.
программа пакетно чистит все файлы в каталоге и подкаталогах. Глубину очистки настраиваем пользователь.

Крайне не рекомендую производить пакетную очистку на сервере и рекомендую предварительно сделать копии файлов. Проблем не возникало, но гарантий не даю.


DWG файлы для обратобки

Собственно доступные настройки:


настройка очистки


завершение очистки

Другая измененная строка - это список обработаных файлов. Если это окно не появится нажмите "F2" в автокаде. Полезно посмотреть какие файлы обработались с путями. Хочется добавить в код вывод информации на сколько уменьшили файлы, но не буду.


обработанные файлы


PS
В проблемном файле неиспользуемые стили успешно удалились, свойства объектов просматривались сразу. Спасибо Кулик Алексей!

Пакетная обработка

Под пакетной обработкой понимается манипуляция с множеством файлов DWG.

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

Внимание! Модуль работает только в среде AutoCAD, ZWCAD не поддерживается.

Модуль применяет ко всем файлам DWG в выбранной папке команду _PURGE, она же - 'очистить'. Данная команда удаляет неиспользуемые в чертеже блоки, типы линий, стили текста и т.д., таким образом уменьшается размер файлов, иногда в несколько раз.

Внимание! Модуль работает только в среде AutoCAD, ZWCAD не поддерживается.

Модуль позволяет производить поиск или замену текста во всех файлах DWG в указанной папке (включая подпапки):


Модуль позволяет искать текст в объектах следующих типов: текст, многострочный текст, атрибуты блоков, а так же возможно искать отдельно или совместно в пространствах ЛИСТ и МОДЕЛЬ.

Модуль работает в 2-х режимах: "Найти" и "Заменить". При выборе режима "Найти" после работы модуль выводит информацию о том в каких объектах и в каких пространствах была найдена искомая фраза. При выборе режима "замена" так же выводится подробная информация о результатах.

При выборе опции "атрибуты блоков" есть возможность замены ЛЮБОГО текста на необходимый в конкретном атрибуте конкретного блока. Для этого поле "найти текст" нужно оставить пустым, указать имя блока, указать имя атрибута блока и снять галочки "текст" и "мтекст".

Также есть возможность добавления текста до/после найденного. Внимание! В режиме 'найти' если установлена галочка 'добавить текст', будет произведено дополнение к найденному тексту указанным текстом в полях 'перед' и 'после', т.е. будет произведено изменение файлов в указанной директории.

Так же есть возможность указать режим 'полное совпадение'.

Во время работы модуля компьютер лучше вообще не трогать. Попытки манипуляции с окном автока во время работы модуля почти наверняка приведут к аварийной остановке модуля.

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

По окончании работы модуль выводит отчет о своей работе в текстовом виде, который рекомендуется внимательно изучить.


Если файл-отчет по окончании работы программы не выведен, значит среди файлов DWG в выбранной папке есть файлы с ошибками или версии, не поддерживаемой текущей версией AutoCAD.

Примечание. Затруднения при работе с данным модулем чаще всего возникают из-за того что две фразы, казалось бы одинаковые, по сути являются разнами. В одной фразе между словами один пробел, в другой - два пробела. Одно слово набрано русскими буквами, другое - английскими, хотя и выглядят одинаково. Например, в Программе есть блок отметки высоты, атрибут которого называется 'OTMETKA'. Хоть это слово и выглядит как набранное русскими буквами, на самом деле это - английские буквы(в старых версиях автокада не рекомендовалось использовать русские буквы). Поэтому, для гарантированного результата, рекомендуется при использовании данного модуля пользоваться буфером обмена. В Программе есть несколько модулей, написанных специально для этого, и находятся они в группе меню Буфер обмена

Пример 1. Имеем несколько десятков(или сотен) файлов DWG, в каждом файле несколько Листов, каждый из которых содержит угловой штам(блок), в котором необходимо заменить фразу 'Иванов' на 'Петров'. На изображениях выше как раз показан такой пример.

Пример 2. Нужно добавить после текста '5.00' фразу '(пять)'. Для этого ставим режим 'Найти', ставим галочки 'добавить текст' и 'полное совпадение' (иначе фраза 'пять' будет добавлена, к примеру, после текста '135.00'), в поле 'после' ставим фразу '(пять)', указываем пространство и тип объектов для поиска.

Внимание! Модуль работает только в среде AutoCAD, ZWCAD не поддерживается.

Модуль предназначен для массового редактирования свойств динамических блоков во множестве файлов DWG.

Понять принцип работы модуля поможет нижеследующий пример.

Предположим, имеем множество файлов DWG, в каждом из них содержится множество листов, в каждом листе имеется угловой штамп, представленный, к примеру, вот таким замечательным блоком:



Зайдя в редактор блоков мы видим что этот блок имеет множество динамических свойств, позволяющих удобно и быстро включать/выключать видимость отдельных элементов, менять их размер и т.д.



Предположим, что в конце рабочего дня, накануне сдачи материалов заказчику, ВДРУГ выясняется что необходимо поменять оформление. Тыкать вручную всю ночь несколько сотен файлов, в каждом из которых по несколько десятков Листов, - такое себе удовольствие. Данный модуль как раз способен решить такую задачу.

И так, предположим, что все изменения заключаются в таком нехитром действии:



Перед собственно запуском модуля нам нужно узнать несколько вещей. А именно, имя блока, имя динамического свойства, значение этого свойства и тип данных. Это поможет сделать модуль Показать динамические свойства блока:



Нас интересует отмеченная красной стрелкой строка, поскольку мы уже знаем(подсмотрели в редакторе блоков) как называется имя динамического свойства(или, если говорить терминами автокада 'параметр выбора') - 'Штамп'.



Так же необходимо обратить внимание на слово 'текст' в скобках. Это тип данных.



Далее я рекомендую скопировать(скопировать-вставить) нужные нам данные из текстового окна автокада в любой текстовый редактор, поскольку модуль чувствителен к регистру, единица в названии параметра может оказаться строчной L и т.д.

Далее, если мы изучали файл, подлежащий редактированию, обязательно закрываем его, запускаем модуль, и вносим необходимые параметры в соответствующие поля:



Запускаем на выполнение и любуемся. По окончании работы будет выведен краткий отчет:



Прочие замечания, на которые необходимо обратить внимание.

Настоятельно рекомендую сделать копию всех файлов, на которых будет запущен модуль, и с этой копией уже работать. Потому что если что то пойдет не так как нужно, могут оказаться испорченными ВСЕ файлы.

Во время работы модуля компьютер лучше вообще не трогать.

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

Если количество файлов значительное, и нет возможности сидеть рядом и контролировать процесс, можно установить галочку 'Игнорировать ошибки'.

Ошибка может возникнуть, если в поле 'Значение' вбить фразу, которая отсутствует в списке возможных(например, 'Форма 33'):



С установленной галочкой 'Игнорировать ошибки' модуль не будет останавиваться с предложением прервать работу.

Так же ошибка может возникнуть если ошибиться с названием динамического свойства и/или типом данных

Если в процессе работы в AutoCAD вы заметили, что размер файла вашего чертежа стал необоснованно увеличиваться, то следует обратить внимание на настройки программы, стиль работы, используемые инструменты и данные. Ниже привожу список рекомендаций, который позволит решить вопрос больших DWG-файлов.

Формат файла dwg

Сохранение файла в формате более старых версий AutoCAD (например, при работе в AutoCAD 2014 сохранять в формате AutoCAD 2000) приводит к тому, что файлы увеличиваются в размерах. Это происходит по причине того, что объекты, поддерживаемые современными версиями (аннотативные масштабы, параметрические зависимости и пр.) при сохранении в формате более старой версии преобразуются в набор простых объектов, а это ведет к увеличению размера файла.

001

Сохранение иконок предварительного просмотра

В каждом файле dwg по-умолчанию создается изображение для предварительного просмотра, которое отображается в системе, например при выборе файла в проводнике Windows

002

Переменная THUMBSIZE отвечает за размер картинки предварительного просмотра. По умолчанию ее значение равно 3, что соответствует размеру 512 х 512. Увеличение размера изображения приведет к необоснованному росту размера файла. Например, при максимальном значении переменной равным 8, размер изображения будет составлять 2560 х 2560, т.е. размер файла увеличится примерно на 70 кб. Если нет необходимости в использовании предварительного просмотра, то можно отключить создание картинок, установив значение 0.

Быстрое сохранение чертежа

При каждом сохранении чертежа AutoCAD проводит либо быстрое сохранение (в файл дописываются лишь изменения), либо полное сохранение (файл полностью перезаписывается). Процент быстрых сохранений устанавливается переменной ISAVEPERCENT. Механизм быстрых сохранений работает так: переменная ISAVEPERCENT устанавливает максимально допустимый объем устаревшей информации, хранимой в файле рисунка, при быстрых сохранениях его изменений. После достижения заданного значения AutoCAD выполняет полное сохранение вместо пошагового. При этом часть устаревшей информации удаляется из файла рисунка. Т.е. чем меньше процент, тем меньше будет размер файла dwg, но при этом будет чаще проводится полное сохранение, которое по-времени выполняется гораздо дольше, чем быстрое. Для оптимизации производительности следует установить значение 50. Значение 20 и ниже значительно снижает производительность системы при сохранении.

Очистка чертежа

Очистите чертеж от неиспользуемых блоков, стилей, слоев и прочих данных с помощью команды Очистить (_PURGE)

003

Удаление всех неиспользуемых объектов приведет к снижению размера файла

Подчистка чертежа

С помощью команды ПОДЧИСТИТЬ (_OVERKILL) можно удалить из чертежа повторяющиеся геометрические объекты, перекрывающиеся линии, дуги и полилинии, что также приведет к снижению размера файла. Подробнее о подчистке я уже писал здесь.

Использование аннотативных масштабов

Значительное увеличение размера файла возможно в том случае, если вы используете аннотативные масштабы и сохраняете чертеж в формате AutoCAD 2007 и более поздней. AutoCAD 2007 не поддерживает масштабы аннотаций, поэтому при сохранении чертежа в его формате важно установить значение переменной SAVEFIDELITY. Если оно будет равно 0, то данные о масштабах не будут сохранены и не будет возможности их использования, если равно 1, то сохранения индивидуальных представлений аннотативных объектов для каждого масштаба. Отдельные объекты сохраняются на слоях, используемых для организации объектов одного и того же масштаба. Такой объем избыточной информации ведет к увеличению размера файла.

Использование файлов DGN

Если вы используете в чертеже геометрию, импортированную из файлов DGN (Microstation), то она может приводить к значительному увеличению объема файла dwg. Удалить неимпользуемые данные, пришедшие из файлов DGN можно в AutoCAD 2014 с установленным пакетом исправлений и в AutoCAD 2015 с помощью команды Очистить (_PURGE).

К сожалению, универсального совета нет и в каждом конкретном случае надо использовать тот или иной способ, а может и несколько способов.

Уменьшаем размер файла AutoCAD в 65 раз

Довольно часто получаю от заказчиков, подрядчиков и смежников файлы больших размеров. Дело в том, что присылаемые файлы содержат много ненужной информации, которую забыли удалить из файла. После элементарной чистки командой _purge (удаляет из базы данных чертежа все неиспользуемые объекты — слои, блоки, типы линий, стили текста, размеров и пр.) размер файла может сократится в 2 раза. Иногда больше, иногда меньше.

Уменьшаем размер файла AutoCAD в 65 раз

Файл содержит proxy-графику. Нажимаю «Закрыть» и запускаю команду _purge. Purge показывает, что чертеж почищен перед отправкой:

Уменьшаем размер файла AutoCAD в 65 раз

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

Значит, всё дело в proxy-графике. Будем с ней работать, а точнее избавляться от неё. Запускаю утилиту Александра Ривилиса для расчленения proxy-объектов командой explodeallproxy. Жду, пока она отработает и запускаю вторую команду removeallproxy, которая удалит из чертежа все proxy-объекты, которые не удалось расчленить. В зависимости от количества proxy-графики в чертеже, утилита может работать от нескольких секунд до нескольких десятков минут. У меня оказался довольно сложный случай и программа работала около 20-25 минут.

Следующим шагом я опять запустил _purge, т.к. после отработки предыдущей утилиты появляются безымянные блоки. Если сохранить файл, до запуска команды _purge, то его размер в ряде случаев может даже увеличиться. Purge работал в моём случае около 2 часов и удалил свыше 13,5 тысяч объектов.

После отработки команды _purge я запустил _audit для проверки и восстановления базы чертежа.

И, наконец, нажал _save для сохранения файла. Я его сохранил под новым именем, чтобы была видна разница. Размер файла уменьшился с 27,6МБ до 434КБ, т.е. в 65 раз! Теперь файл можно спокойно отправлять по почте.

В общем случае, алгоритм чистки чертежа такой:

  1. Удаляем всё ненужное с видимых, отключенных и замороженных слоёв;
  2. Чистим чертёж командой _purge он неиспользуемых объектов (блоки, типы линий, слои, стили текста, размеров, таблиц, мультивыносок и пр.);
  3. Взрываем proxy-графику командой explodeallproxy;
  4. Командой removeallproxy удаляем proxy-графику, которую не удалось взорвать;
  5. Повторно выполняем чистку чертежа от неиспользуемых объектов командой _purge;
  6. Выполняем проверку и восстановление базы данных чертежа командой _audit.

Желательно после каждого этапа сохранять чертеж, т.к. возможны сбои при работе с файлом.

Читайте также: