Выгрузка информации обо всех мебельных элементах

Материал из K3-Macro
Макро | Мебельные команды и функции | Выгрузка информации в мебельную базу | Обработки | Информация о мебельных элементах | Панели | Профили | Балюстрады | Длинномеры | Комплектующие | Кромки | Мебельные изделия | Общие параметры сцены | Информация о заказе | Материалы и сборочные единицы | Примеры задач, решаемые выгрузкой

Основная таблица выгрузки – TElems.

Структура таблицы TElems
Имя поля
Тип
Описание

UnitPos

Числовой длинное целое

Уникальный номер мебельного элемента

ParentPos

Числовой длинное целое

Номер родителя элемента

TopParentPos

Числовой длинное целое

Номер 'верхнего' родителя элемента

DetailPos

Числовой длинное целое

Номер элемента в рамках объекта

CommonPos

Числовой длинное целое

Пользовательский номер элемента

LevelPos

Числовой длинное целое

Иерархический номер элемента

FurnType

Текстовый

Тип мебельного элемента

FurnKind

Текстовый

Подтип мебельного элементы

Name

Текстовый

Имя элемента

PriceID

Числовой длинное целое

ID элемента в номенклатурном справочнике

GoodsID

Числовой длинное целое

ID элемента в справочнике сборочных единиц

SumCost

Денежный формат

Стоимость элемента

XUnit

Числовой двойной с плавающей точкой

X габарит элемента

YUnit

Числовой двойной с плавающей точкой

Y габарит элемента

ZUnit

Числовой двойной с плавающей точкой

Z габарит элемента

Count

Числовой длинное целое

Количество мебельных элементов

HashCode

Числовой длинное целое

Хэш-код элемента

MatrA11 - MatrA34

Числовой двойной с плавающей точкой

Коэффициенты матрицы положения

Data

Memo

Дополнительные данные о элементе

Матрица положения объекта в пространстве имеет следующий вид:

Formul.png

Матрица определяет положение элемента относительно его родительского элемента, или, если элемент является элементом верхнего уровня и не имеет родителя, то относительно глобальной системы координат (ГСК).

Габариты объекта определяются в его локальной системе координат.

Поля UnitPos, ParentPos, TopParentPos, DetailPos, CommonPos, LevelPos, FurnType, FurnKind, PriceID содержат значения одноименных атрибутов. Если элемент является сборочной единицей, то полу GoodsID содержит идентификатор из справочника сборочных единиц. В этом случае поле PriceID=-1. Если элемент содержится в номенклатурном справочнике, поле GoodsID=-1. Поле Name содержит значение атрибута ElemName. Поле Data содержит значение атрибута PrimM.

Поле SumCost содержит рассчитанную стоимость мебельного элемента.

Отдельно имеет смысл описать поле HashCode. Это хэш-код элемента, который служит он для выборки одинаковых элементов из разных заказов. Он гарантировано одинаковый для одинаковых элементов, но может совпадать для разных элементов. То есть, если нужно, чтобы была гарантированная точность, то элементы с одинаковым хэш-кодом нужно сравнивать дополнительно. Правда вероятность такого события составляет где-то 1/58000.

На данный момент хэш-коды создаются не для всех типов элементов. Если для какого-то элемента хэш-код не вычислялся, то значение поля HashCode равно -1. В дальнейшем число элементов с вычисляемым хэш-кодом будет увеличиаться.

Дополнительно к вышеперечисленным данным каждый мебельный элемент может содержать дополнительную информацию в других таблицах.

Дополнительная информация о мебельных элементах
Название таблицы
Содержимое
TAttributes
Пользовательские атрибуты
TParams
Пользовательские параметры
THoles
Отверстия

Атрибуты[править | править код]

Основная таблица выгрузки – TAttributes

Имя поля
Тип
Описание

UnitPos

Числовой длинное целое

Номер элемента в таблице TElems

Name

Текстовый

Имя атрибута

AttrType

Числовой длинное целое

Тип атрибута

AttrReal

Числовой двойной с плавающей точкой

Значение числового или логического атрибута

AttrString

Текстовый

Значение строкового атрибута

AttrText

Memo

Значение текстового атрибута

В K3 каждому мебельному элементу могут быть приписаны пользовательские атрибуты. Таблица TAttributes предназначена для выгрузки значений этих атрибутов. В данную таблицу попадают только те атрибуты, имена которых содержаться в файле AttrList.txt (по одному имени в строке). Файл AttrList.txt находится в папке Proto. Если этот файл отсутствует, то в таблицу TAttributes попадают все атрибуты. Если пользователь изменял этот файл, то изменения вступают в силу после перезапуска K3 Мебель.

В зависимости от типа атрибута (числовой, логический, строковой или текстовый), значение атрибута содержится в полях:

  • AttrReal для строкового или логического атрибута;
  • AttrString для строкового атрибута;
  • AttrText для текстового атрибута.

Поле AttrType содержит код типа атрибута:

  • 1 – строковый атрибут;
  • 2 – числовой атрибут;
  • 3 – текстовый атрибут;
  • 4 – логический атрибут.

Параметры[править | править код]

Основная таблица выгрузки – TParams.

Имя поля
Тип
Описание

ParamID

Числовой длинное целое

Уникальный ID универсального параметра

UnitPos

Числовой длинное целое

Номер элемента для параметра в таблице TElems

HoldTable

Текстовый

Таблица, где хозяин параметра

Hold1

Числовой длинное целое

Первый идентификатор ключа записи

Hold2

Числовой длинное целое

Второй идентификатор ключа записи

Hold3

Числовой длинное целое

Третий идентификатор ключа записи

ParamName

Текстовый

Название параметра

ParamType

Числовой длинное целое

Тип параметра

NumValue

Числовой двойной с плавающей точкой

Значение параметра

StrValue

Текстовый

Значение параметра

Параметры мебельного элемента содержатся в Scratch атрибуте ProtoParams. По умолчанию, параметры мебельного элемента представляют собой параметры прототипа, по которому этот мебельный элемент создан.

Помимо указанного, таблица универсальных параметров TParams может содержать параметры другого рода. В любом случае, в поле HoldTable указывается имя таблицы, к которому относится параметр, UnitPos, если не сказано иное, содержит уникальный номер элемента, к которому относится параметр. Поля Hold1, Hold2, Hold3, содержат идентификаторы ключа записи. Назначение и смысл этих идентификаторов описывается отдельно. Для мебельных элементов значения этих идентификаторов равны нулю.

Поле ParamName содержит строку с именем параметра. Желательно, чтобы имена параметров для одного мебельного элемента имели уникальные номера.

Поля NumValue и StrValue содержат значение параметров для числового и строкового параметра соответственно. Тип параметра определяется значением поля ParamType:

  • 0 – параметр числового типа;
  • 1 – параметр строкового типа.

Отверстия[править | править код]

Основная таблица выгрузки – THoles.

Имя поля
Тип
Описание

UnitPos

Числовой длинное целое

Номер элемента, где есть отверстие

HolePos

Числовой длинное целое

Номер отверстия в рамках элемента

MatrA11 - MatrA34

Числовой двойной с плавающей точкой

Коэффициенты матрицы положения

Diameter

Числовой двойной с плавающей точкой

Диаметр отверстия

Depth

Числовой двойной с плавающей точкой

Глубина отверстия

HolderPos

Числовой длинное целое

Номер элемента (UnitPos), породившего отверстие

Как уже было сказано, отверстия считаются не для всех мебельных элементов, а только для панелей и профилей. Положение отверстия относительно мебельного элемента определяется его матрицей положения[embim11.wmf], коэффициенты которой содержатся в таблице THoles в одноименных полях. Поле HolderPos содержит номер элемента (его UnitPos), породившего отверстия – то есть номер элемента, в составе которого находился отрезок сверловки, по которому построено отверстие.

Pluso.png Информация о положении отверстий выгружается в базу только при наличии специализированного Модуля технологического экспорта

Отделки[править | править код]

Основная таблица – TDecorates.

Структура таблицы TDecorates
Имя поля
Тип
Описание

DecoratePos

Числовой длинное целое

Номер отделки (в рамках элемента)

UnitPos

Числовой длинное целое

Номер элемента, которому принадлежит отделки

Map

Числовой длинное целое

Номер секции отделки:

1 - Торец E (Y+)

2 - Торец D (Y-)

3 - Торец C (X+)

4 - Торец B (X-)

5 - Пласть “A” верхняя (Z+)

6 - Пласть “F” нижняя (Z-)

7 - Угол 1

8 - Угол 2

9 - Угол 3

10 - Угол 4

11 – Первая дополнительная секция

12 – Вторая дополнительная секция

-1 - Отделка всех поверхностей

-2 - Отделка торцов

Order

Числовой длинное целое

Порядковый номер отделки

TypeID

Числовой длинное целое

Тип отделки

MaterialID

Числовой длинное целое

Тип материала отделки

TypeName

Текстовый

Название типа отделки

IsParametric

Логический

Признак параметрической отделки

Square

Числовой двойной с плавающей точкой

Площадь отделки в кв. м.

Поле Мар содержит номер секции отделки согласно таблице.

Поле Order содержит порядок наложения отделок на секцию.

Поле TypeID содержит ID типа отделки из номенклатурного справочника. Поле MaterialID содержит ID материала отделки из номенклатурного справочника. Отделка представляет собой комбинацию типа отделки и материала отделки. Например «Лакировка лак красный» и пр.

Поле TypeName содержит название типа отделки, которому соответствует TypeID.

Поле IsParametric равно «истине», если отделка имеет параметры. В противном случае значение равно «ложь».

Поле Square содержит площадь отделки в кв. м.


Макро | Мебельные команды и функции | Выгрузка информации в мебельную базу | Обработки | Информация о мебельных элементах | Панели | Профили | Балюстрады | Длинномеры | Комплектующие | Кромки | Мебельные изделия | Общие параметры сцены | Информация о заказе | Материалы и сборочные единицы | Примеры задач, решаемые выгрузкой