×
 

6.3 Управление доступом к объектам

При работе с крупными проектами возникает необходимость скрыть различные вспомогательные объекты. Эти объекты, как правило, используются только для построений и не нужны при использовании данного проекта как агрегата другого проекта. Для сокрытия объектов в программном комплексе EULER используются фильтры агрегата.
Фильтр агрегата состоит из:
−   списка закрытых и открытых типов объектов;
−   списка открытых объектов;
−   списка нефильтруемых объектов (в настоящей версии программного комплекса данная возможность доступна только в Текстовом редакторе).
В файле описания проекта содержание фильтра агрегата записывается следующими операторами:
−    set privateType = ALL;                 //сокрытие всех типов объекта
−    set publicType = имя типа;                  //открытие типа объекта
−    set publicObjects = (список объектов);               //открытые объекты
−    set nonfiltrableObjects = (список объектов);     //нефильтруемые объекты
 
Если операторы privateType и publicType не используются, то все типы считаются открытыми (значение по умолчанию).
Объект считается скрытым, если он имеет закрытый тип и не входит в списки открытых и нефильтруемых объектов. Если объект входит в список нефильтруемых объектов, то его нельзя скрыть ни на каком уровне агрегатирования: он будет открыт независимо от фильтрации родительских объектов.
В списки открытых и нефильтруемых объектов можно добавлять только объекты первого уровня, т.е. объекты корневого файла проекта. Скрытость дочернего объекта определяется скрытостью родительского объекта, которому он принадлежит. Например, если шарнир имеет датчик, и этот шарнир скрыт от пользователя, то скрытым будет и его датчик.
Фильтр агрегата может быть включен или выключен. Установить это можно в окне Редактор объектов при создании агрегата или редактировании свойств уже созданного агрегата, или через объектное меню агрегата. Если агрегат открыт, то на его объекты действует только фильтр, определенный в этом агрегате (если он включен).
Особенности фильтрации имеют следующие типы объектов:
−    ссылка (alias) – другое имя существующего объекта;
−    список (list) – список объектов;
−    группа (group) – группа объектов.
 
Фильтрация ссылок
При фильтрации ссылка не рассматривается как самостоятельный тип объектов, то есть нельзя закрыть или открыть этот тип объектов. При фильтрации считается, что объект типа ссылка имеет тип реального объекта, на который ссылается напрямую или через другие ссылки.
 
Фильтрация списков
При фильтрации список не рассматривается как самостоятельный тип объектов, то есть нельзя закрыть или открыть этот тип объектов. При фильтрации список рассматривается просто как совокупность объектов определенного типа (скаляров, точек и т.п.). В списке открытых объектов можно указывать только сам список, но не его элементы.
 
Фильтрация групп
При фильтрации группа закрывается или открывается как сам объект, но не его содержимое. То есть объекты, входящие в группу, фильтруются самостоятельно. При показе состава группы фильтрация не учитывается, то есть показываются все объекты группы, независимо от возможной скрытости.
 
Влияние фильтра агрегата на содержание окна Справочник проекта
Скрытые объекты не отображаются в окне Справочник проекта. Но в списках зависимых, используемых или прикрепленных объектов, которые выводятся в окне Справочник проекта, скрытые объекты отображаются. Кроме того, фильтры агрегатов не влияют на окна Список используемых объектов, Список зависимых объектов и Список прикрепленных объектов.
 
Влияние фильтра агрегата на содержание окна Вид проекта
В окне Вид проекта изображаются все открытые объекты. Если скрытый объект прикреплен к открытому звену, то в окне Вид проекта он изображается, но выбор такого объекты на виде проекта невозможен. Убрать изображение такого объекта в окне Вид проекта можно следующими способами:
−    изменить видимость самого объекта;
−    в фильтре окна Вид проекта отключить изображение объектов, имеющих тип этого объекта;
−    изменить видимость звена, к которому прикреплен объект;
−    в фильтре окна Вид проекта отключить изображение звеньев.
 
Формирование фильтра агрегата
Для формирования фильтра агрегата выберите команду Проект / Управление доступом к объектам. После этого откроется окно Управление доступом к объектам. Внешний вид окна представлен на рис. 1.
В правой верхней части окна расположен перечень всех типов объектов. Если кнопка с изображением типа находится в нажатом состоянии, то данный тип является открытым. Если в отжатом – данный тип закрыт. По нажатию кнопки Закрыть все типы все типы объектов становятся закрытыми; по нажатию кнопки Открыть все типы – открытыми. Кнопка Типовая маска реализует стандартный набор закрытых и открытых типов. Если кнопка Включить фильтр при закрытии диалога находится в нажатом состоянии, то фильтр проекта включен и все скрытые фильтром объекты будут невидимы для пользователя. Чтобы добавить объект в список Открытых объектов, в иерархическом списке объектов в левой части окна выделите нужный объект и нажмите кнопку Внести в список. Для простых объектов, не содержащих дочерних, доступна функция быстрого добавления в список Открытых объектов по двойному щелчку левой кнопкой мыши по имени объекта в иерархическом списке.
 
Рис. 1. Окно Управление доступом к объектам