Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Петрель Интродакшн.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
43.49 Mб
Скачать

План упражнения

    1. Вставьте новое workflow и назовите его Using IF Statements.

    2. Вставьте команду Loop из вкладки Utility (папка Statements) и определите количество запусков:

    1. Определите переменную “$BOB” и задайте её равной случайному числу между 1 и 30 (Используйте выражение Ran(a,b) для определения случайного числа между двумя величинами.). Если также вы пользуетесь командой Round, будет использована целая переменная без десятичной части:

Комментарий: вы можете заметить, что существует два пути для определения числовой переменной, как “Numerical Expression” (числовое выражение), так и “Numerical Expression (LH)”. Под LH имеется в виду “Latin Hypercube smart sampling”. Этот метод будет описан в главе “Анализ неопределенностей ”.

    1. Вставьте выражение IF и определите условие:

    2. Напечатайте сообщение, используя команду Message. Это сообщение появится, при выполнении условия:

.

Обратите внимание на то, что обе переменные и текст должны быть переданы в сообщении, не забывайте использовать символ $ перед переменной.

    1. Если первое логическое тестирование будет неудачным, повторите тестирование, используя выражение Else If. Определите тест и напечатайте сообщение, которое появится при выполнении теста:

    1. Если оба логических тестирования будут неудачными, сделайте следующее

  1. Вставьте Else.

  2. Определите Messages.

    1. Для завершения выражения IF, вставьте команду End IF. Эта команда необходима ВСЕГДА, при использовании If.

    2. Вставьте команду End Loop для завершения цикла.

    3. Нажмите Apply для сохранения workflow и Run для его выполнения.

Финальный workflow, для демонстрации выражения IF, выглядит следующим образом:

Подрезание Fault Sticks с использованием управления папками

Данное упражнение создаст workflow, позволяющий проводить одновременно операцию со всеми объектами из одной папки. В данном случае, workflow позволит обрезать части fault sticks, которые находятся выше “обрезающей поверхности”.

Вы научитесь применять широко используемую команду For All Icons In,а также выполнять управление папками. Описание того, как выполнять ту же операцию, не используя управления папками, смотрите в комментарии в конце главы.

План упражнения

            1. Откройте проект GF_ProcessManager.pet, если он до сих пор не открыт.

            2. Вставьте новый workflow (Insert > New Workflow) и назовите его Edited Fault Sticks.

            3. Автоматически создайте новую папку в Process Manager:

    1. Вставьте папку New folder.

    2. Назовите новую папку как главную, в которой следует сохранить новую папку, т.е. Process Manager Results.

    3. Используйте переменную, например , чтобы позже передать эту папку в workflow:

            1. Определите что визуализировать во время запуска workflow:

    1. Clear all visualizations.

    2. Сделайте “обрезающую поверхность” видимой (поверхность Top surface , из папки Process Manager Input, во вкладке Inputs).

    3. Установите View all, чтобы увидеть все отображаемые объекты:

            1. Вставьте команду For All Icons In и точно определите, что делать с другими объектами, хранящимися в выбранной папке:

    1. Вставьте папку Fault Sticks (time) из вкладки Input в пустое поле и определите child reference A из папки Variables, находящейся в закладке Workflows.

    2. Вставьте команду и используйте переменные A и B, чтобы скопировать каждый из объектов в папке Faults Sticks. (Это делается для того, чтобы не редактировать исходные fault sticks.)

    3. Используйте команду Set visible, чтобы увидеть скопированные объекты для любой итерации цикла.

    4. Вставьте команду, необходимую для выполнения, т.е. обрезать те части faults sticks, которые находятся выше “обрезающей поверхности”. Используйте операцию , которая расположена в закладке Operations, из папки Eliminate where. Вставьте переменную и обрезающую поверхность в пустые поля соответственно и включите ‘Eliminate outside’ и ‘Exact intersection’. Команда должна выглядеть следующим образом:

(Это позволит обрезать fault stick по поверхности Top Surface.)

    1. Вставьте команду Move. Так как относится к отредактированным faults sticks, перенесите его в первое пустое поле, затем перенесите переменную, ссылающуюся на новую папку (определенную в пункте 3) во второе поле.

            1. Для завершения For All Icons In, вставьте команду End Loop.

            2. Нажмите на кнопку Hide Dialogue while running the workflow .

            3. Кликните Apply для сохранения workflow, а затем Run.

В результате получим следующий workflow для подрезания fault sticks, используя управление папками:

Комментарий: Если цель этого workflow состоит только в том, чтобы обрезать fault sticks по поверхности, тогда проще это можно сделать, как показано ниже. Обратите внимание, что в этом случае будут перезаписаны исходные данные, но этого можно избежать, если вы сделаете копию исходных данных перед запуском workflow.