Пакетная обработка файлов в nanoCAD
26 февраля 2024
Матвей Лукьянов
Матвей Лукьянов
Технический специалист группы технической поддержки «Нанософт»
Введение

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

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

Пакетная обработка как утилита очистки

Вызвать диалоговое окно пакетной обработки можно несколькими способами:

  • кнопка nanoCAD → Утилиты → Пакетная обработка файлов;
  • меню: Файл → Утилиты → Пакетная обработка файлов;
  • командная строка: ПАКЕТОБР (BATCHPROCESS).

После запуска открывается диалоговое окно Пакетная обработка, которое подразделяется на четыре области (рис. 1):

  1. перечень команд;
  2. выбор файлов для обработки;
  3. выбор профиля и запуск утилиты;
  4. область создания отчета.
Рис. 1.
Рис. 1.
Диалоговое окно Пакетная обработка

Давайте рассмотрим каждую область.

Перечень команд

В этой области располагается перечень стандартных команд, выполняемых утилитой (рис. 2).

Рис. 2.
Рис. 2.
Область с перечнем команд

В стандартный набор входят следующие команды:

  • Очистка файлов (PURGE);
  • Очистка файла от объектов CIVIL (CLEARCIVIL);
  • Проверка файлов (AUDIT);
  • Проверка геометрии (AUDITGEOMETRY);
  • Сохранить (SAVE).

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

Где это может пригодиться? Самый распространенный случай – очистка файлов от аннотативных масштабов. Аннотативные масштабы – это технология Autodesk. Зачастую неоправданно большие по размеру файлы получаются как результат наличия в них некоторого количества таких масштабов, из-за чего даже при банальном копировании объектов через буфер обмена программа может зависнуть. Следовательно, файлы всегда следует очищать от этих масштабов, причем очень важно чистить и все внешние ссылки. В противном случае удаленные масштабы могут вернуться именно из файлов внешних ссылок.

При очистке с помощью пакетной обработки программа автоматически открывает файлы внешних ссылок и очищает их от аннотативных масштабов, после чего обновляет все внешние ссылки.

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

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

Рис. 3.
Рис. 3.
Область выбора файлов для обработки

Рассмотрим предложенные кнопки.

Открыть файл

Позволяет открыть на обработку конкретный *.dwg-файл через Проводник;

Открыть папку

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

Настройки

При нажатии на эту кнопку открывается диалоговое окно Настройки (рис. 4), где можно установить/сбросить флажок Искать в подпапках. Настройка отвечает за открытие на обработку не только *.dwg-файлов, содержащихся в выбранной папке, но и во всех вложенных папках.

Рис. 4.
Рис. 4.
Диалоговое окно Настройки

Использовать текущий чертеж

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

В окне отобразится список выбранных для обработки файлов (рис. 5).

Рис. 5.
Рис. 5.
Список выбранных файлов

Здесь удобно исключать из обработки отдельные файлы (щелчок правой кнопкой мыши (ПКМ) по выбранному файлу → Исключить) или все файлы разом (щелчок ПКМ по любому файлу в списке → Очистить) – (рис. 6).

Рис. 6.
Рис. 6.
Контекстное меню для работы с файлами

Следует помнить, что пакетная обработка не влечет изменения графики файлов, то есть после пакетной обработки в целевом файле сохранятся все используемые масштабы/стили/вес линий и т.д.

Выбор профиля и запуск утилиты

Здесь размещены инструменты для работы с профилями (в нашем случае мы используем стандартный профиль default), а также управляющие кнопки (рис. 7).

Рис. 7.
Рис. 7.
Область выбора профиля и запуска утилиты

Представлены следующие кнопки:

  • Старт – запуск процесса пакетной обработки;
  • Закрыть – закрытие диалогового окна пакетной обработки файлов;
  • Справка – вызов справки.

После нажатия кнопки Старт процесс пакетной обработки будет запущен, а в окне появится информация, подобная той, что представлена на рис. 8.

Рис. 8.
Рис. 8.
Диалог пакетной обработки после запуска утилиты

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

Приостановить процесс пакетной обработки вы можете при помощи кнопки Стоп, которая появляется вместо кнопки Старт.

Анализ пакетной обработки

По завершении процесса пакетной обработки утилита формирует отчет, который располагается в предназначенной для этого области окна (рис. 9).

Рис. 9.
Рис. 9.
Область создания отчета

Над этой областью находятся следующие кнопки:

Копировать в буфер обмена

Кнопка позволяет скопировать отчет в буфер обмена.

Сохранить лог

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

Кнопка Сохранить лог позволяет сохранить через Проводник отчет о проделанной обработке – в виде файла формата LOG. Файл можно открыть и прочитать с помощью любого текстового редактора.

Давайте разберем, что вообще представляет собой отчет.

Проведем пакетную обработку проблемного файла, который содержит некое количество аннотативных объектов, после чего сохраним отчет в виде лог-файла и запустим его через текстовый редактор (рис. 10).

Рис. 10.
Рис. 10.
Структура лог-файла, запущенного через текстовый редактор

В данном отчете можно увидеть все этапы проведения пакетной обработки проблемного файла X.dwg:

  1. – очистка файла (PURGE) : файл очищается от содержащихся в нем аннотативных стилей (размерных, текстовых, стилей таблиц);
  2. – очистка файла от объектов CIVIL (CLEARCIVIL, вызывающая команду DICTREMOVE (namedobjdict) "Siberia");
  3. – проверка файла (AUDIT);
  4. – проверка геометрии (AUDITGEOMETRY), в том числе проверка Z-координат и штриховок;
  5. – сохранение исправленного файла (SAVE).

Также, если зайти в свойства этого файла (щелчок ПКМ по выбранному файлу → Свойства), можно увидеть, что после проведения пакетной обработки, очистившей его от аннотативных объектов, вес файла значительно уменьшился: c 4,32 Мб до 300 Кб (рис. 11).

Рис. 11.
Рис. 11.
Уменьшение веса файла после пакетной обработки
Расширенные возможности утилиты

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

Корректировка рабочих команд

Чтобы понять, какие операции мы можем производить с перечнем команд, вернемся к соответствующей области окна Пакетная обработка (рис. 12).

Рис. 12.
Рис. 12.
Подробнее рассмотрим область перечня рабочих команд

Над перечнем команд расположены три кнопки.

Новый скрипт

Эта кнопка отвечает за создание нового профиля с пустым набором команд (рис. 13).

Рис. 13.
Рис. 13.
Создание нового профиля через Новый скрипт

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

Добавить команду

Кнопка, позволяющая добавлять новые команды вручную. После вызова команды открывается диалоговое окно Добавить команду (рис. 14).

Рис. 14.
Рис. 14.
Диалоговое окно Добавить команду

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

Узнать внутреннее имя команды можно в диалоге Настройка пользовательского интерфейса (Настройки → Адаптация → Интерфейс или команда INTERFACE).

В открывшемся окне отобразится список всех доступных команд (рис. 15).

Рис. 15.
Рис. 15.
Список доступных команд в окне Настройка пользовательского интерфейса

К примеру, давайте найдем внутреннее имя команды Сохранить как. Для этого в окне настроек пользовательского интерфейса пропишем имя искомой команды в поисковой строке (рис. 16).

Рис. 16.
Рис. 16.
Поиск внутреннего имени команды Сохранить как

В разделе Свойства можно увидеть ее внутреннее имя: SaveAsDocument (рис. 17).

Рис. 17.
Рис. 17.
Внутреннее имя команды Сохранить как

Зная, как находить внутренние имена, добавим в перечень рабочих команд новую – к примеру, Конвертировать в 2D. Для этого вышеописанным способом выясним внутреннее имя этой команды (FLATTEN), после чего в диалоговом окне Добавить команду заполним соответствующие графы (рис. 18).

Рис. 18.
Рис. 18.
Добавление новой команды в утилиту

После нажатия кнопки OK текущий перечень пополнится командой Конвертировать в 2D, которая будет применяться ко всем файлам, обрабатываемым по данному профилю (рис. 19).

Рис. 19.
Рис. 19.
Обновленный перечень рабочих команд

Изменить порядок команд

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

После вызова команды откроется диалоговое окно Изменить порядок команд (рис. 20).

Рис. 20.
Рис. 20.
Диалоговое окно Изменить порядок команд

Чтобы установить другой порядок команд, используйте перетаскивание курсором (drag-and-drop) – (рис. 21).

Рис. 21.
Рис. 21.
Изменение порядка следования рабочих команд

Завершив эту операцию, нажмите кнопку ОК – изменения перенесутся в перечень (рис. 22).

Рис. 22.
Рис. 22.
Измененный перечень рабочих команд
Работа с профилями

Теперь вернемся к области с профилями и управляющими кнопками (рис. 23).

Рис. 23.
Рис. 23.
Подробнее рассматриваем область выбора профиля и запуска утилиты

Как уже сказано, есть возможность создавать новые профили, хранящие в себе информацию об определенном заданном наборе команд. В этой области мы можем оперативно переключаться между ними через раскрывающийся список (рис. 24). 

Рис. 24.
Рис. 24.
Раскрывающийся список профилей

Над списком расположены три кнопки.

Сохранить профиль

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

По умолчанию файл профиля сохраняется по следующему пути:

%AppData%\Nanosoft\nanoCAD X\Batches,

где X – версия и сборка программного продукта.

Переименовать профиль

Позволяет переименовать текущий профиль. Не работает со стандартным профилем default.

Удалить профиль

Позволяет удалить текущий профиль. Также не работает со стандартным профилем default.

Пакетная обработка как инструмент обновления версии файла

Утилита пакетной обработки также имеет ряд неочевидных, но вполне полезных применений: к примеру, возможность автоматически пересохранить множество файлов в более новую версию *.dwg-формата.

Чтобы узнать версию *.dwg-файла, откройте его через текстовый редактор – например, Блокнот. Первые символы укажут на версию, остальная часть файла будет отображаться в зашифрованном виде (рис. 25).

Рис. 25.
Рис. 25.
* dwg-файл, открытый через текстовый редактор

Узнать версию, в которой сохранен файл, можно из списка:

  • AC1015 – dwg 2000;
  • AC1018 – dwg 2004;
  • AC1021 – dwg 2007;
  • AC1024 – dwg 2010;
  • AC1027 – dwg 2013;
  • AC1032 – dwg 2018.

Следует отметить, что наиболее предусмотрительно работать и сохранять файлы в более новых версиях формата *.dwg, так как это обеспечит лучшую совместимость файла, а также уменьшит риск потери части информации.

Давайте рассмотрим порядок действий при пересохранении, к примеру, архива файлов устаревшего формата в актуальный формат.

  1. Откройте окно Настройки программы (Настройки → Адаптация → Настройки программы или команда OPTIONS), после чего в графе Сохранять в формате выберите требуемый формат файла (в нашем случае – Документ, совместимый с AutoCAD 2018 и выше).
  2. В графе Применять выбранный формат установите Для всех документов (рис. 26).
  3. Запустите утилиту пакетной обработки, пересохраните в любое место стандартный профиль default (с помощью кнопки Сохранить профиль), а затем сделайте этот новый профиль текущим.
  4. Исключите из перечня все команды, кроме Сохранить (щелчок ПКМ → Исключить).
  5. Откройте на обработку ваш архив файлов, после чего запустите процедуру обработки (рис. 27).
Рис. 26.
Рис. 26.
Диалоговое окно Настройки программы
Рис. 27.
Рис. 27.
Новый профиль, настроенный на обновление формата файлов

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

Пакетная обработка как инструмент создания пользовательских скриптов

Помимо добавления стандартных команд в перечень для пакетной обработки, можно подгружать команды из LISP-приложений. Рассмотрим такую возможность на примере приложения layers (wmatch).lsp (рис. 28).

Рис. 28.
Рис. 28.
Внутренний код LISP-приложения

Применяя команду layerstate-delete-wmatch "*", это приложение удаляет все конфигурации слоев в файле. Сразу запомним, что инициализирующая команда в нашем приложении – nanooolayer (определяется в строке defun с:), именно с ее помощью мы в дальнейшем подгрузим приложение в утилиту.

Чтобы использовать это приложение, его следует загрузить в программу. Прежде всего нужно открыть диалоговое окно Загрузка/Выгрузка приложений – для этого перейдите в Настройки → Дополнения → Приложения (или команда APPLOAD). В открывшемся окне можно через встроенный Проводник выбирать необходимый для загрузки LSP-файл и загружать его в программу при помощи кнопки Загрузить (рис. 29).

Рис. 29.
Рис. 29.
Диалоговое окно Загрузка/Выгрузка приложений

Настроим LISP-приложение на автоматическую загрузку при запуске программы. Нажмем в окне Загрузка/Выгрузка приложений (рис. 30) кнопку Приложения (1), а в открывшемся окне Автозагрузка – кнопку Добавить (2), после чего через Проводник укажем наш LSP-файл.

Рис. 30.
Рис. 30.
Настройка LISP-приложения на автозагрузку

Далее необходимо зарегистрировать инициализирующую команду приложения в nanoCAD. Откроем окно настроек пользовательского интерфейса, в котором щелкнем ПКМ по перечню инструментов и в появившемся контекстном меню выберем Создать команду (рис. 31).

Рис. 31.
Рис. 31.
Создание новой команды через диалог Настройка пользовательского интерфейса

Откроется диалоговое окно Создать команду, в котором мы укажем всю необходимую информацию. Как уже сказано, инициализирующая команда в нашем LISP-приложении – nanooolayer, она отвечает за запуск его работы. Внесем ее значение в графу Внутреннее имя. Именно по значению внутреннего имени команды утилита пакетной обработки сможет добавить ее в свой перечень (рис. 32).

Рис. 32.
Рис. 32.
Задание внутреннего имени команды

После нажатия кнопки ОК можно видеть, что команда nanooolayer добавилась в перечень инструментов (рис. 33).

Рис. 33.
Рис. 33.
Новая команда в общем списке

Далее запустим утилиту пакетной обработки, создадим новый профиль и воспользуемся уже знакомым нам инструментом Добавить команду. В графе Внутреннее имя укажем команду nanooolayer (рис. 34).

Рис. 34.
Рис. 34.
Добавление новой команды в диалоге пакетной обработки

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

Заключение

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

  1. автоматическая проверка и очистка большого количества файлов;
  2. отслеживание и анализ ошибок, накопившиеся в файлах, благодаря полученным лог-файлам;
  3. автоматическое пересохранение множества файлов в более новые версии *.dwg-формата;
  4. создание пользовательских скриптов с командами, подгружаемыми из LISP-приложений.
Полезные ссылки

Этот сайт использует cookies. Пользуясь сайтом, вы даете согласие на обработку ваших персональных данных. Подробнее