Работа с комплектующими
accessory [Property <Ident> <iValue>] <FurnType> <ID> <ChildType> {yes | no} <PlaceType>
Команда accessory добавляет комплектующий в сцену, запрашивая его тип по классификатору мебельных элементов <FurnType>
, номер комплектующего в номенклатурном справочнике <ID>
, типу «ребёнка» комплектующего <ChildType>
и флагу, показывающему, является ли данный комплектующий самостоятельным (yes
) или частью последнего добавленного комплектующего (no
). После чего запрашивается тип размещения комплектующего <PlaceType>
.
Если указан ключ Property
, после которого задана строка <Ident>
с Ident свойства и целочисленным значением <iValue>
этого свойства, то добавляемой комплектующей кроме свойства Accessory = <ChildType>
должно быть назначено свойство с указанным Ident и значением <iValue>.
accessory assign <Object>
Команда назначает CSG (служебную информацию) уже добавленному комплектующему <Object>
accessory edit <Object>
Команда редактирует комплектующий <Object>
accessory recreate <Object>
Пересоздать объекты <Object>
, внутри которых есть комплектующие.
accessory apply <AccObject>
Команда позволяет применить созданную командной accessory [Property <Ident> <iValue>] <FurnType> <ID> <ChildType> {yes | no} <PlaceType>
(см. выше) ручку <AccObject>
к мебельной панели, на которую она установлена (если надо, то подрезать торец панели, добавить фрезеровки в панель, добавить вырезы в панель).
Среди прямоугольных мебельных панелей находим панель, на которую заданная ручка установлена.
Если ручка устанавливается на торец панели (торцевая ручка), то:
- если номенклатурной единице ручки назначено свойство MillID1 (профиль фрезы), то это интегрированная ручка и это свойство задаёт фрезу, а свойства Dept, Height и ShiftY задают параметры для фрезеровки
- если номенклатурной единице ручки не назначено свойство MillID1, то свойство CutSide задаёт величину подрезки торца, на который эта ручка устанавливается.
- Если в составе ручки есть Окружности, Контура (в том числе, Прямоугольники или Многоугольники) или Полилинии (линия), то они задают вырезы в панели, глубина которых задаётся атрибутом Depth, назначенных линии (нулевая глубина или не назначенный атрибут — сквозной вырез). Свойство EH_SlotOffset, назначенное ручке при не нулевом значении атрибута Depth, задаёт смещение несквозного выреза по толщине панели. Положительное значение атрибута Depth задаёт вырез со стороны пласти A, а отрицательное — со стороны пласти F.
- Eсли ручка устанавливается на пласть панели и в ее составе есть линии (Окружность, Контур, Полилиния), то такая линия задаёт вырез глубиной, задаваемой назначенным ей атрибутом Depth.
accessory AccToPanel <PanelObject> 1 <AccObject> [<IDPoly> <IDLine>]
accessory AccToPanel <PanelObject> <Num> <Array> [<IDPoly> <IDLine>]
Переместить в состав мебельной панели <PanelObject>
созданную командой accessory [Property <Ident> <iValue>] <FurnType> <ID> <ChildType> {yes | no} <PlaceType>
(см. выше) комплектующую <AccObject>
, которая привязывается к пласти панели, если не заданы <IDPoly>
и <IDLine>
, или к торцу панели <IDLine>
на контуре <IDPoly>
.
Если задан <Num>
, имеющее значение больше 1, то это количество одновременно добавляемых в состав мебельной панели комплектующих, ссылки на которые задают элементы массива <Array>
c 1 по <Num>
.
Имеет смысл расписать технологию подробнее. У каждого комплектующего есть свой <FurnType>
, определяющий тип этого комплектующего. Каждый комплектующий должен быть внесен в номенклатурный справочник и ему должен быть назначен номер (<ID>
). В зависимости от этих двух параметров определяется группа подстановки, в которой этот комплектующий должен быть. То есть комплектующий с заданным <ID>
должен быть включен в группу, которая определяется по его <FurnType>
. Далее, комплектующие могут быть самостоятельными и состоять из одного единственного элемента (например, ручка), а могут быть составными (например, направляющие для ящиков, которые по отдельности не существуют и располагаются геометрически на разном расстоянии, в зависимости от типа и ширины ящика). То есть несамостоятельные комплектующие добавляются в два или больше этапов. Для этого и служат параметр <ChildType>
и ключ {yes | no}
. Если комплектующий несамостоятельный, то для добавления первой его части используют ключ yes
, который говорит о том, что будет добавляться новый комплектующий, а не следующая часть от предыдущего добавленного, а для последующих частей — no
, что говорит о том, что это — оставшиеся части от того, который добавлен с ключом yes
.
Возможные типы <ChildType>
. Эти типы — значения свойства Accessory в номенклатурном справочнике.
- 1 — Левый
- 2 — Правый
- 3 — Первый/Нижний
- 4 — Второй/Верхний
- 5 — Третий
- 6 — Четвертый
- 10 — Левый или правый
- 11 — Соединительный
Возможные типы <PlaceType>
— значение свойства AccPlace в номенклатурном справочнике, которое является битовой маской, отдельные биты в которой означают следующее:
- 0x0001 (1) — На видимой пласти панели
- 0x0002 (2) — На невидимой пласти панели
- 0x0004 (4) — На торец панели
- 0x0008 (8) — На ось профиля
- 0x0010 (16) — На конец профиля
- 0x0020 (32) — Свободно
- 0x0040 (64) — с переворотом
- 0x0180 — двухбитная маска: 00 —+y; 01 (128) — -y; 10 (256) — +z; 11 (384) — -z
- 0x0200 (512) — Разрешено ставить на фасад
- 0x0400 (1024) — Ставить зеркально относительно оси X
- 0x0800 (2048) — Поворот относительно оси комплектующего на 90 градусов
В номенклатурном справочнике представлены значения перечисляемого свойства AccPlace
- 4 — На торец панели
- 32 — Свободно
- 129 (1+128) — На видимой пласти -y
- 257 (256+1) — На видимой пласти +z
- 258 (256+2) — На обратной пласти +z
- 322 (256+64+2) — На обратной пласти с переворотом +z
- 386 (384+2) — На обратной пласти панели -z
- 513 (512+1) — На видимой пласти +y +фасад
- 514 (512+2) — На обратной пласти +y +фасад
- 769 (512+256+1) — На видимой пласти +z +фасад