Макросы Datamine. Ресурсный геолог - страница 2



В общем, давайте в рамках данной книги считать, что макросы пишутся в кодировке Win-1251 – и все тут.

Макрос содержит последовательность команд, которые необходимо выполнить для решения какой-либо задачи. Все команды в макросах начинаются с восклицательного знака. Макрос всегда начинается с команды START, после которой идет имя макроса. Макрос всегда заканчивается командой END. «Минимальный» макрос выглядит следующим образом (да, мы нарушим традиции и не будем писать программу «Hello, world!»):

!START NOACTION

!END


Макрос с кириллицей, созданный в кодировке Win-1251, открытый в кодировке UTF (сверху) и в кодировке Win-1251 (снизу)


Этот макрос содержит все атрибуты, необходимые для того, чтобы Datamine воспринимал файл с этим текстом как макрос: у него есть начало, имя (NOACTION) и конец. Макрос не делает ничего, но пока этого и не требуется. Пока что достаточно выглядеть как макрос. Дальше этого будет мало, но на текущем этапе можно и так.

Как запускать макрос

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

– с помощью кнопки в ленте команд; кнопка расположена непосредственно на вкладке Home;



– прямо под кнопкой запуска макроса находится кнопка вызова меню работы с макросами, одним из пунктов которого также является запуск макроса; из остальных предложенных вариантов наиболее полезным является вариант Start Recording – его разберем чуть позже;



– с помощью контекстного меню, которое вызывается правой кнопкой мыши из дерева проекта.



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

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

Что может и не может макрос

Макрос может:

– выполнять все операции, выполняемые процессами Datamine (теми, что запускаются из командной строки Datamine);


Командная строка Datamine, если кто забыл


– читать файлы формата dm без использования процессов Datamine, но, увы, не создавать и не изменять их (об этом чуть позже);

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

Например, вот такой макрос:

!START SYSMACRO


!OPSYS

echo Hello, world>> newfile. txt


!END

создаст в рабочем каталоге вашего проекта файл `newfile. txt` и запишет туда текст «Hello, world» (давайте-таки соблюдем традиции!).

Макрос не может сделать ничего, что бы выходило за рамки процессов Datamine. Например, макрос не может управлять объектами в окне 3D: он не может загрузить в окно 3D что-либо, не может в этом окне что-то сделать с загруженными данными и т. д., например, «штатными» инструментами макрос не может выполнить проверку каркасов на ошибки или соединение двух стрингов.