Найти тему

Автокад: Общие свойства. Часть 2. Правила приоритетов

Оглавление
Просто иллюстрация
Просто иллюстрация

Если вы заинтересовались темой исключительно из практических соображений, то читаем дальше, если же, кроме этих соображений, вас также интересует содержимое "под капотом", а первую часть вы пропустили, то она здесь.

В первой части статьи мы определили два сакральных числа:

6 - число вариаций значений общего свойства для любого компонента - компонента определения блока или компонента пространства модели (в т.ч. блока);

36 - число вариаций значений общего свойства компонента блока, размещенного в пространстве модели.

Задача заключается в том, чтобы установить нужное значение общего свойства компонента блока в пространстве модели, т.е. во вхождении блока, используя правила приоритетов.

Окончательное значение общего свойства компонента блока в пространстве модели

Для определения окончательного значения общего свойства компонента в пространстве модели в зависимости от установок компонента и блока в целом создадим тесовый блок с тестовым копонентом:

  1. В качестве компонента блока в Редакторе блока рисуем графический
    примитив, например прямоугольник или квадрат.

    Элементарным тестовым юнитом является один компонент в блоке, и таких юнитов требуется 6, по числу вариаций значений общего свойства компонента блока в определении блока. Упрощая, создадим один блок с шестью одинаковыми компонентами, каждый из которых соответствует одной вариации установки значения общего свойства (имея ввиду, что это один компонент с шестью вариациями значений общего свойства).
  2. Для каждого компонента блока устанавливаем уникальную вариацию - комбинацию одного из трех ссылочных режимов ("ПоСлою", "ПоБлоку", "Значение") и ссылки на один из двух слоев (слой "0" или "Блок").
  3. Вставляя блок в чертеж шесть раз (по числу вариаций значений общего свойства компонента (вхождения блока) в пространстве модели), получим 36 вариаций значений общего свойства компонента блока, размещенного в пространстве модели.

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

Создание тестового блока и вхождений в пространство моделей

В качестве общего свойства блока используем наиболее наглядное свойство "Цвет", и определим цвета иллюстрирующие различные значения общего свойства "Цвет" во время первоначальной настройки определения блока и впоследствии в зависимости от условий применения блока.

Задание тестовых значений общего свойства "Цвет"

- цвет темы IDE по умолчанию черно-белый (белый в пространстве модели, черный в редакторе блоков);

У нас нет задачи оценивать вариативность значений общего свойства в зависимости от вариативности его доступных константных значений, поэтому определим минимально необходимый набор цветов:

Слои: По умолчанию цвет слоя "0" определяется темой IDE, но в целях отличия от цвета темы назначим слою "0" красный цвет.
Именованному пользовательскому слою "Компонент" назначим
голубой цвет, слою "Блок" - желтый;

Цвета: В качестве константного допустимого значения свойства "Цвет" для компонента блока зададим зеленый цвет, а для вхождения блока - фиолетовый.

Определение тестового блока

Скриншот редактора блоков
Скриншот редактора блоков

Тестовый блок содержит две группы квадратов по три в каждой. В каждой группе общее свойство "Цвет" каждого квадрата определяет один из трех ссылочных режимов свойства: первый квадрат - "ПоСлою", второй - "ПоБлоку", третий "Значение" (зеленый цвет).

Первая группа размещена на дефолтном слое "0". Вторая - на пользовательском именованном слое "Компонент".

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

Вхождения тестового блока

Вхождения тестового блока в пространство модели также состоят из двух групп по три блока в каждой. Первая группа размещена на дефолтном слое "0". Вторая - на пользовательском именованном слое "Блок". В каждой группе общее свойство "Цвет" каждого блока принимает одно из трех значений: первый блок - "ПоСлою", второй - "ПоБлоку", третьему назначен фиолетовый цвет.

Окончательно получаем вот такую магию и красоту:

Матрица приоритетов значений общего свойства компонента блока в пространстве модели
Матрица приоритетов значений общего свойства компонента блока в пространстве модели

Отдельно матрицу приоритетов можно взять здесь

Формулирование правил приоритетов

Каждый столбец матрицы приоритетов соответствует одной вариации компонента блока в определении блока.

Каждая строка матрицы приоритетов соответствует одной вариации вхождения блока в пространстве модели.

Каждый элемент матрицы приоритетов соответствует одной вариации компонента блока во вхождении блока пространстве модели, и иллюстрирует значение общего свойства в зависимости от источника наследования этого значения в различных условиях вхождения блока в пространстве модели.

Правила приоритетов тесно связано с понятием устойчивости вариации. Собственно, первые обеспечивают второе, а второе иллюстрирует первое.
** Понятие устойчивости вариации раскрывается в части 1 данной статьи.

К полностью устойчивым вариациям относятся:

  • все вариации ссылочного режима "Значение" общего свойства компонента блока (столбцы 3 и 6 матрицы приоритетов);
  • вариации ссылочного режима "ПоСлою", при условии задания в определении блока в качестве ссылочного значения свойства "Слой" именованного пользовательского слоя, например "Компонент" (столбец 4).

Отсюда первое правило:

Правило 1. Общее свойство компонента блока при вхождении блока в пространстве модели наследует экземпляр общего свойства от компонента блока в определении блока либо для всех вариаций ссылочного режима "Значение", либо для вариаций режима "ПоСлою", в случае размещения компонента блока на именованном пользовательском слое в определении блока. В пространстве модели изменения ссылочного режима или ссылочного значения игнорируются.

Говоря человеческим языком, зеленый цвет, установленный для компонента блока в определении блока, не изменится ни за что, и никогда. Аналогично ведет себя голубой цвет, выбранный по слою в определении блока, поскольку это не дефолтный слой "0".

К частично устойчивым вариациям относятся:

  • вариации ссылочного режима "ПоСлою", при условии задания в определении блока в качестве ссылочного значения свойства "Слой" дефолтного слоя "0" (столбец 1).

Правило 2. Для вариаций режима "ПоСлою", при размещении компонента блока на дефолтном слое "0" в определении блока, общее свойство компонента блока при вхождении блока в пространстве модели наследует экземпляр общего свойства от слоя (именованного пользовательского или дефолтного), на котором это вхождение размещено.
В пространстве модели изменения ссылочного режима игнорируются, изменения ссылочного значения учитываются.

Иначе говоря, задав в определении блока режим "ПоСлою" и, в качестве значения, дефолтный слой "0", вы сможете оперировать значения общего свойства во вхождении блока в пространстве модели, перемещая блок со слоя на слой.

Остальные вариации являются неустойчивыми:
** и, соответственно, самыми управляемыми во вхождении блока в пространстве модели.

  • к таковым относятся вариации ссылочного режима "ПоБлоку", заданного в определении блока (столбцы 2 и 5).

Правило 3. Д ля вариаций режима "ПоБлоку", установленного в определении блока, общее свойство компонента блока при вхождении блока в пространстве модели наследует экземпляр общего свойства от вхождения блока в пространстве модели в соответствии со ссылочным режимом и ссылочными значениями вхождения блока.

Или проще - устанавливая в определении блока режим "ПоБлоку" для компонента блока, вы полностью передаете управление общим свойством компонента блока во вхождении блока в пространстве модели это самому вхождению блока. Управление осуществляется заданием ссылочного режима и ссылочных значений, включая значение свойства "Слой" для вхождения блока.

---------------------------------------------------------------

А далее... Сохраните матрицу приоритетов отсюда и будет вам щастье :))