ПрагмаСофтСтудия 2.1
Дерево прорисовки располагается в окне Прорисовка и служит основой проекта. По сути, обход всего этого дерева, с заходом в каждую вложенную ветвь, с инициализацией переменных, вычислением формул, вызовом функций и вычислительных узлов, прорисовкой примитивов, это и есть отработка (выполнение) проекта. Всё остальное, как то входные и выходные переменные, функции и вычислительные узлы, является вспомогательным.
Обход дерева прорисовки происходит сверху вниз. Это значит, что графические примитивы, которые находятся в дереве ниже, будут перекрывать, затирать графику, созданную примитивами расположенными в дереве выше и прорисованными ранее.
Корневым элементом всего дерева является элемент проекта . Ведущую роль в его ветви занимают элементы задач
, каждый из которых имеет свою собственную ветвь аналогичную ветви проекта.
Обход дерева прорисовки всегда начинается с обхода ветви проекта . Затем перебираются элементы одной из задач
. Если текущий выделенный в дереве элемент находится в ветви проекта
, то выполняется обход и прорисовки только ветви проекта. Если выделенный в дереве элемент находится в ветви одной из задач
, то выполняется обход и прорисовка сначала ветви проекта, а затем ветви данной задачи. Это даёт возможность расположить в ветви проекта общий для всех задач блок подготовки или обработки данных, а также единую для всех задач статическую или динамическую прорисовку.
Каждой задаче назначается свой собственный монитор для прорисовки в процессе моделирования. Это даёт возможность обходить и прорисовывать в ходе моделирования одновременно несколько ветвей задач с выводом графики на несколько мониторов. При этом для каждой ветви задачи
будет заново пройдена ветвь проекта
.
При обходе дерева прорисовки, какие бы функции или вычислительные узлы не были бы вызваны, и сколько бы они в свою очередь не вызвали других функций и узлов, всё равно, в конечном итоге поток выполнения всегда возвращается в дерево прорисовки и на нём завершается. Проиллюстрируем сказанное, показав возможное взаимодействие дерева прорисовки с функциями вычисления и прорисовки
, а так же вычислительными узлами
.
Опишем показанное на рисунке по шагам.
![]() |
Для того, чтобы выполнить обработку и прорисовку проекта, поток выполнения начинает обход дерева прорисовки. Происходит ветвление на всю глубину дерева с проверкой каждого элемента в каждой его ветви. |
![]() |
В ходе ветвления встречается |
![]() |
Левая или правая часть |
![]() |
После захода в |
![]() |
Внутри |
![]() |
После выхода из |
![]() |
Поток выполнения завершает работу с отображением полученной графики в окне САПР. |
Всегда перед началом обхода дерева прорисовки происходит удаление содержимого слоя маски. Также для всех групп, которые расположены в корне ветви проекта или ветви задачи
, и режим прорисовки которых установлен в значение Повторение маски, на самом деле будет действовать режим
Без маски. Для получения большей информации о режимах прорисовки смотрите статью Управление прорисовкой.