
Вложенные макросы
Добрый день!
Сегодня рассмотрим ситуацию, когда у Вас есть макрос и в нем используется функция, которая работает n-ое количество раз. Параметр n не постоянен и Вам приходится каждый раз добавлять или удалять строки в макросе.
Например, это может быть функция интерполяции содержаний в БМ для каждого каркаса рудного тела отдельно, когда количество каркасов изменяется или построение проектных каркасов выработок с разным сечением, где количество выработок также не постоянно и другие различные задачи.
Чтобы не добавлять новые строки в макросе, можно использовать «Вложенные макросы». Суть заключается в том, что макрос запускает другой макрос, который меняется в зависимости от условий.
Рассмотрим такой макрос на примере построения проектных каркасов горных выработок с разными сечениями и изменяюшимся количеством выработок:
Исходные данные:
1. Файл осевых линий с разными параметрами сечения в свойствах линий.
2. Пустой макрос для создания нового макроса, в который будет записываться информация.
Описание мароса:
1. Cоздаем @Исполняющий макрос на основании шаблона. Именно этот макрос будет в дальнейшем изменяться от условий.
2. Используя функцию генератор отчётов, создадим отчет из файла осевых линий . В этом файле будут все имена горных выработок и их параметры сечения. Дальше эти параметры будут использоваться для построения каркаса.
3. Чтобы итоговый tridb файл при запуске макроса очищался и имел необходимые атрибуты, сделаем копию tridb на основании шаблона.
4. Далее нам необходимо перенести информацию в исполняющий макрос из отчета по осевым линиям. Сделать это можно через функцию Объединить. Также предварительно необходимо создать форму для функции, которая будет использоваться в исполняющем макросе.
Исполняющий макрос примет вид:
5. Последним шагом необходимо запустить Исполняющий макрос внутри внутри нашего макроса..
В итоге запустив этот макрос мы построим каркасы по всем осевым линиям, и даже если количество выработок поменяется, нам не придется переделывать макрос.
Надеюсь информация Вам будет полезна.
Илья
Customer support service by UserEcho
Не лишним было бы приложить файл макроса и исходные данные.
Прикладываю проект с макросом и данными:
Вложенные макросы.zip