Технический специалист ГГИС Micromine Денис Микулич, рассказал об использовании макросов для автоматизации работы горно-геологической информационной системы, а также привел примеры их возможного применения.

 

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

В ГГИС Micromine пользователь может использовать для метода автоматизации процессов: макросы и язык программирования Python. Основное различие между двумя этими методами заключается в том, что макросы больше подходят для простых процессов, а программирование с помощью Python лучше применять для более сложных схем работы.
Тем не менее, макросы могут выполнять практически все функции Micromine, не требующие интерактивных действий в самой 3D среде (под интерактивными действиями можно подразумевать отрисовку линий, обводку контура, перемещение точки и т.д.).

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

Рис. 1 Формирование списка процессов макроса

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

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

Рис. 2 Заполнение диалоговых окон переменными

На рисунке 2 показан пример использования макроса для расчета тоннажа и содержаний с использованием двух вариантов блочных моделей для разных этапов карьера. Это означает, что пользователь, запустив данный макрос, получит 8 отчетов, где каждый из четырех этапов считается поочередно одним, затем вторым вариантом блочной модели. Значения %1 и %2 в диалоговом окне функции расчета тоннажа и содержаний представляют собой подстановочные значения, которые указываются в столбцах переменных с соответствующим заголовком в файле макроса. Данные переменные можно использовать неоднократно для других полей ввода. Например, если назвать Файл отчета как показано на рисунке 3, то имена отчетов будут формироваться на основании применяемых данных, так как %1 – это название этапа, а %2 – имя применяемой блочной модели.

Рис. 3 Повторное использование переменных

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

Рис. 4 Отчет по макросу

Например, из отчета (рисунок 4) можно узнать количество процессов, отработанных в макросе, и их названия. Также можно увидеть общее время работы макроса и отдельное время по каждому процессу. Если же в настройке макроса пользователь совершит ошибку, как в процессе №5 нашего примера, то в отчете будет отображена причина ошибки, номер процесса и время возникновения ошибки.

Оформление макросов

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

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

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

а) 

б) 

Рис. 5 Примеры оформления макросов (а – макрос без оформления, б – макрос с цветовыми подсказками и примечаниями)

Кстати, макрос, приведенный на рисунке 5, решает следующий ряд задач. Из сетевых папок он импортирует каркасы линий отрыва сторонних форматов, блочную модель развала после взрыва из формата *.CSV, вычитает из основной блочной модели взорванные блоки и присоединяет к ней блочную модель полученного развала. Создает отчеты по блочной модели до и после объединения.

А вот еще пример полезного макроса (рисунок 6). Данный макрос способен загружать разрез поочередно по каждому из профилей базы данных скважин, создавать по каждому из разрезов файл чертежа, применить к чертежам необходимый шаблон и запускать эти чертежи на печать. Таким образом, одним запуском макроса можно создать и выслать на печать десятки чертежей по профилям. Более того, шаблоны чертежей Micromine также поддерживают активные подстановки. Можно настроить шаблон чертежа таким образом, чтобы в поле штампа, где располагается название чертежа или профиля, автоматически подставлялось имя разреза по печатаемому профилю.

Рис. 6 Макрос «Создание и печать разрезов по профилям»

В макросе, изображенном на рисунке 6 область 1 отвечает за визуализацию данных, которые необходимо вывести на печать по разрезам. Область 2 отвечает за автоматическую загрузку всех необходимых разрезов и созданию файла чертежа по каждому из них. Область 3 настраивает принтер, применяет необходимый шаблон для печати и выводит все созданные чертежи на печать.

Еще один пример использования макросов, но уже в области оптимизации карьера, приведен на рисунке 7. Допустим, пользователю необходимо провести оптимизацию карьера по трем наборам параметров. Более того, необходимо провести анализ по трем сценариям отработки карьера (лучший, худший и постоянный шаг) для каждого набора параметров. Таким образом, с помощью макроса можно проанализировать около десятка сценариев отработки карьера с разными параметрами оптимизации, не тратя много усилий.

Рис. 7 Макрос «Оптимизация карьера»

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

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

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