Перенумерация объектов

Материал из K3-Macro
Макро | Мебельные команды и функции | Мебельные объекты | Указание | Создание схемы сборки | Перенумерация | Показ кромок | Показ крепежа | Расстановка крепежа и сверловки | Поиск пятен контакта | Показать информацию | Каталоги стандартных моделей | Сдвиг | Количество | Позиции | Комментарий | Классификатор мебельных элементов | Работа с комплектующими | Специальная расстановка

INT Renumerate([{LOGICAL <OnlyDelete> | STRING <AttrName>[, INTEGER <Criteria1>, INTEGER <Criteria2>, INTEGER <Criteria3>[, INTEGER <BegNum>[, INTEGER <Type>]]]}]

Функция вызывает нумератор — присваивает мебельным объектам значения следующих атрибутов:

1. UnitPos - уникальный номер объекта;

2. DetailPos - уникальный номер объекта в пределах родителя;

3. ParentPos - Номер (UnitPos) непосредственного родителя;

4. TopParentPos - номер (UnitPos) верхнего родителя;

5. LevelPos - порядковый номер уровня вложенности мебельных объектов.

Если параметр <OnlyDelete> равен единице, то функция удаляет вышеописанные атрибуты у всех мебельных объектов.

Если задан параметр <AttrName>, то функция возвращает максимальное значение этого параметра среди мебельных элементов сцены.

Если заданы параметры <AttrName> и <Criteria>, то функция присваивает мебельным объектам атрибут с именем <AttrName>. Значения этого атрибута будут одинаковы для одинаковых (по критерию <Criteria>) мебельных объектов, и будут различаться для разных мебельных объектов. Параметр <Criteria> представляет собой битовую маску из указанных ниже значений.

Если значение <Criteria> отрицательное, то функция возвращает максимальное значение атрибута у элемента с типом <Type>. Параметр <BegNum> при этом игнорируется.

Значение <Criteria> складывается из <Criteria1>+<Criteria2>*4294967295+<Criteria3>*18446744065119617025. То есть битовая маска состоит из <Criteria3><Criteria2><Criteria1>.

Необязательный параметр <BegNum> задает номер, начиная с которого будет производиться нумерация. Если он не задан, нумерация производится с единицы.

Необязательный параметр <Type> определяет тип элементов, для которых нужно производить нумерацию. Если он не задан, нумерация производится для всех элементов. При этом, если мебельный элемент уже имеет атрибут <AttrName>, то этот элемент не обрабатывается.

Критерии сравнения панелей
<Type>
Действие
0
Производить нумерацию для всех мебельных элементов
1
Производить нумерацию только для панелей
2
Производить нумерацию только для профилей
3
Производить нумерацию только для комплектующих и деталей крепежа
4
Производить нумерацию только для групп крепежа
5
Производить нумерацию только для изделий
-1
Производить нумерацию только для тех типов мебельных элементов, которые отсутствуют в списке выше

Функция возвращает максимальное присвоенное значение атрибута <AttrName> или, если в функцию передавался один или ноль параметров, 1 - в случае успешного завершения и 0 - в случае ошибки.

Pluso.png Критерии сравнения пока действуют только на панели, профили и комплектующие, группы крепежа и детали крепежа.
Pluso.png Различие в работе функции с <Type>=0 и без <Type> в том, что в первом случае номер присваивается только тем элементам, которым он не присвоен, а во втором случае производится удаление присвоенного номера.
Критерии сравнения панелей
Критерий
Описание
0x000000000000000
Вообще не сравниваем. Все мебельные элементы различны
Панели
0x000000000000001
Габариты заготовки
0x000000000000002
Толщина панели
0x000000000000004
Материал панели
0x000000000000008
Форма внешнего контура заготовки
0x000000000000010
Основное расположение панели (11 - стойка и т.п.)
0x000000000000020
Форма внешнего контура заготовки и небулевских вырезов
0x000000000000040
Форма гнутья панели
0x000000000000080
Пропилы
0x000000000000100
Торцевые пазы
0x000000000000200
Линии крепежа
0x000000000000400
Отделки
0x000000000000800
К3-файл с заготовкой
0x000000000001000
Реальные вырезы
0x000000000002000
Линии маркировки
0x000000000004000
Кромки прямолинейная
0x000000000008000
Кромки криволинейная
0x000000000010000
Фрезеровки
0x000000000020000
Допуск (пока не реализовано)
0x000000000040000
Отверстия торцев
0x000000000080000
Отверстия пласти
0x000000000100000
Отверстия под углом
Профили
0x000000100000000
Длина профиля
0x000000200000000
Тип профиля
0x000000400000000
Цвет профиля
0x000000800000000
Полная геометрия профиля
0x000001000000000
Подрезка концов профиля под углом
0x000002000000000
Отделки
Комплектующие
0x000100000000000
ID комплектующего в номенклатуром справочнике
Группы крепежа
0x010000000000000
ID типа крепежа
Общее
0xfffffffffffffff
По всем параметрам

Пример:

=renumerate();  // Вызываем нумератор
=renumerate("CommonPos",268435455,268435455,268435455);  // Сравнение по всем критериям

Макро | Мебельные команды и функции | Мебельные объекты | Указание | Создание схемы сборки | Перенумерация | Показ кромок | Показ крепежа | Расстановка крепежа и сверловки | Поиск пятен контакта | Показать информацию | Каталоги стандартных моделей | Сдвиг | Количество | Позиции | Комментарий | Классификатор мебельных элементов | Работа с комплектующими | Специальная расстановка