Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: руководителей мебельных предприятий, конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к мебельному бизнесу. Программы для конструирования мебели, дизайна, для комплексной автоматизации мебельного предприятия. Мебельная литература и обучающие пособия.
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик 9.0

Реклама

Реклама на портале PROMEBELclub
шкаф-купе со скидкой по акции
Реклама на портале PROMEBELclub

искусственный камень купить мебель в Екатеринбурге
Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 12:22  
БАЗИС 9 - Скрипты
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 130

Сказал(а) спасибо: 28
Поблагодарили 564 раз(а) в 70 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 12:22
Рейтинг: (34 голосов - 2.79 средняя оценка)

ВНИМАНИЕ! Правила выкладывания скриптов.

1. Если в скрипте нет ссылок на фурнитуру, фрагменты и.т.д то достаточно его упаковать в архив и выложить.

2. Если в скрипте есть ссылки на фурнитуру, фрагменты и т.д. то архив должен содержать папку с самим скриптом и всеми файлами на которые есть ссылки в тексте скрипта.


Т.к. при запуске скрипта на другом компе возникает ошибка о не возможности открыть то или иной файл и скрипт до конца не отрабатывает свой текст. Не соблюдается "чистота проверки" работы скрипта.

__________________________________________________ _______________

Интересует информация по редактору скриптов в БМ8. Существует ли справочная документация и примеры использования скриптов в БМ8. Какие возможности дает данная функция? Владеющим информацией по данному вопросу просьба поделиться ею.

Для работы скриптов от Igor_482 необходим установленный ODBC драйвер FireBird, установленные и зарегистрированные в ОС модули FBDBDialog.dll, MSDATGRD.OCX, MSCOMCTL.OCX и MSSTDFMT.DLL (сообщение с описанием установки этих модулей в ОС, ссылка на модули и исходник "FBDBDialog.dll") а так же файл "ADODB.ini" с настройками соединения к БД в папке со скриптом.

ADODB.ini


[General]
FDBServ = t001
FBSPort = 14357
FDBFile = D:\DBBM\Библиотека\БД\BMDB09.FDB
FBCFile = C:\Windows\System32\fbclient.dll
----------------------------------------------
Переменные .ini:
FDBServ - имя ПК на котором находится сервер FireBird с используемой БД (если локально, то параметр: localhost или 127.0.0.1);
FBSPort - в настройке не нуждается (по умолчанию: 14357);
FDBFile - локальный путь к БД на сервере FireBird;
FBCFile - путь к файлу "fbclient.dll" (находится в корневой папке программы Базис).
[свернуть]

Последний раз редактировалось systland; 23.09.2016 в 12:52..
Просмотров: 464708
Ответить с цитированием Вверх
Старый 23.05.2017, 13:16   #1341
sx233077
Новичок
 
Регистрация: 11.11.2013
Сообщений: 12
Сказал(а) спасибо: 7
Поблагодарили 2 раз(а) в 1 сообщении
Вес репутации: 0
sx233077 пока не определено
По умолчанию

Добрый день!

Народ,
поделитесь пожалуйста скриптом - тумба с ящиками.
Ну очень нужен.

Спасибо
sx233077 вне форума   Ответить с цитированием Вверх
Старый 25.05.2017, 18:37   #1342
sx233077
Новичок
 
Регистрация: 11.11.2013
Сообщений: 12
Сказал(а) спасибо: 7
Поблагодарили 2 раз(а) в 1 сообщении
Вес репутации: 0
sx233077 пока не определено
По умолчанию

Добрый день!

Никто не хочет поделится скриптом для установки ящиков, пытаюсь что то сделать сам.

Помогите ящик притянуть фасаду, или может подскажете другой вариант установки ящиков

Скрипт

FileOptions = 'Настройки_scrypt4.xml';
MakeProperties();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}

Action.Continue();

function MakeProperties() {
Prop = Action.Properties;

Tumba = Prop.NewCombo('Меню', 'Корпус\nДверцята\nПолка\nСтільниця\nМатериалы\nФурнітура\nИнформация');
Korpus = Prop.NewGroup('Розміри');
Korpus.Visible = true;//ВИДИМОСТЬ ГРУППЫ
h2 = Korpus.NewNumber('Висота', 860);
t = Korpus.NewNumber('Ширина', 600);
z2 = Korpus.NewNumber('Глибина', 510);
// = Korpus.NewNumber('Відступ від стіни', 0);
h1 = Korpus.NewNumber('Висота ножки', 100);
Dop = Korpus. NewCombo ('Конструкція секції', 'Стандартна\nЛіва сторона видима\nПрава сторона видима\nВидимі обидві сторони');
Dop.Expanded = true;//ВИДИМОСТЬ ГРУП


Standart = Dop.NewGroup('Стандарна');
Standart.Visible = false;//ВИДИМОСТЬ ГРУППЫ

LivaVydyma=Dop.NewGroup('Ліва сторона видима');
LivaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

PravaVydyma=Dop.NewGroup('Права сторона видима');
PravaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

LivaPravaVydyma=Dop.NewGroup('Видимі обидві сторони');
LivaPravaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

Material = Prop.NewGroup('Материалы');
Material.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Mat = Material.NewMaterial('Корпус');
KromkaVydyma = Material.NewButt('Видима крайка');
KromkaNevydyma = Material.NewButt('Невидима крайка');
MatZadSt = Material.NewMaterial('Задня стінка');
MatDop = Material.NewGroup('Додатково');
MatDop.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
MatDvp = MatDop.NewMaterial('Дно ящика');
MatZc = MatDop.NewMaterial('Задня стінка');







/*
//группа фасад
Doors = Prop.NewBool('Дверцята')
Doors.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Doors.Value = true ;
Doors.OnChange = function() {
Doors.ChildrenEnabled = Doors.Value
}
MatFas = Doors.NewMaterial('Матеріал')

ButtD = Doors.NewBool('Кромка')
ButtD.Value = true
ButtD.OnChange = function() {
ButtD.ChildrenEnabled = ButtD.Value
}
MatButtD = ButtD.NewButt('Кромка')

KolDv = Doors.NewCombo('К-сть дверей', '1\n2')
PetliLeftRight = Doors.NewCombo('Завіси', 'Слева\nСправа');


if (t.Value > 600)
{
PetliLeftRight.Enabled = false;
KolDv.Enabled = false;
}
else
{
if (t.Value == 600)
{
KolDv.Enabled = true;
if (KolDv.ItemIndex == 0)
PetliLeftRight.Enabled = true;
else
PetliLeftRight.Enabled = false;
}
else
{
KolDv.Enabled = false;
PetliLeftRight.Enabled = true;
}
}

*/
//группа столешница
Stolesh = Prop.NewBool('Стільниця')
Stolesh.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Stolesh.Value = true
Stolesh.OnChange = function() {
Stolesh.ChildrenEnabled = Stolesh.Value
}
MatStol = Stolesh.NewMaterial('Матеріал')





/*

//группа вставная полка
PolkaVs = Prop.NewBool('Полка')
PolkaVs.Visible = false;//ВИДИМОСТЬ ГРУППЫ
PolkaVs.Value = true
PolkaVs.OnChange = function() {
PolkaVs.ChildrenEnabled = PolkaVs.Value
}
//CountPol = PolkaVs.NewNumber('Количество')
//CountPol.Value = 1
ShelfOffset = PolkaVs.NewNumber('Відступ з боків');
ShelfOffset.Value = 1.5
ShelfZag = PolkaVs.NewNumber('Відступ від лиця')
ShelfZag.Value = 20
*/

Furnitura = Prop.NewGroup('Фурнітура');
Furnitura.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Zavisa = Furnitura.NewFurniture('Завіса');
Polycetrymach = Furnitura.NewFurniture('Полицетримач');
Konfirmat = Furnitura.NewFurniture('Конфірмат');
Minifix = Furnitura.NewFurniture('Minifix');
Shkant = Furnitura.NewFurniture('Шкант');
Opora = Furnitura.NewFurniture('Ножка');
Ruchky = Furnitura.NewFurniture('Ручка');
Angle = Furnitura.NewCombo('Кут повороту ручки', '0\n90')


Info = Prop.NewGroup('Інформація');
Info.Visible = false;//ВИДИМОСТЬ ГРУППЫ
VFas = Info.NewString('Высота фасада');
VFas.Expanded = false;
VYaz = Info.NewString('Высота ящика');
VYaz.Expanded = false;
NapYaz = Info.NewString('Длина направл');
NapYaz.Expanded = false;

OkBtn = Prop.NewButton('Побудувати'); //Обработка нажатия на кнопку Построить

OkBtn.OnClick = function() {
//Make(); //Вызываем функцию построения всех панелей
Action.Finish();
};

};
Prop.OnChange = function() { //Обработка любого изменения значений свойств
switch (Tumba.ItemIndex) {
case 0:
Korpus.Visible = true;
//Doors.Visible = false;
// PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 1:
Korpus.Visible = false;
//Doors.Visible = true;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 2:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = true;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 3:
Korpus.Visible = false;
//Doors.Visible = false;
// PolkaVs.Visible = false;
Stolesh.Visible = true;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 4:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = true;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 5:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = true;
Info.Visible = false;
break;

case 6:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
ble = true;
break;

};


switch (Dop.ItemIndex) {
case 0:
Standart.Visible = true;
LivaVydyma.Visible = false;
PravaVydyma.Visible = false;
LivaPravaVydyma.Visible = false;
break;

case 1:
Standart.Visible = false ;
LivaVydyma.Visible = true ;
PravaVydyma .Visible = false;
LivaPravaVydyma.Visible = false;
break;

case 2:
Standart.Visible = false ;
LivaVydyma.Visible = false ;
PravaVydyma .Visible = true ;
LivaPravaVydyma.Visible = false;
break;

case 3:
Standart.Visible = false ;
LivaVydyma.Visible = false ;
PravaVydyma .Visible = false;
LivaPravaVydyma.Visible = true;
break;
};




Make(); //Вызываем функцию построения всех панелей
};
Make();

function Make() {
DeleteNewObjects();

NameBL = 'Секція ';
BeginParametricBlock(NameBL + t.Value);




Mat.SetActive(); // Установить материал активным.Все последующие элементы будут построены из этого материала.
Thick = ActiveMaterial.Thickness; // Thickness - Толщина материала корпуса.
//Побудова тумбочки

if (Dop.ItemIndex === 0) {
LeftPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
RightPanel =AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Dno = AddHorizPanel(0, 0, t.Value, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(0, 0, t.Value, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 1.5, h1.Value + 1.5, t.Value -1.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}
if (Dop.ItemIndex === 1) {
LeftPanel = AddVertPanel(0 - (600-36-z2.Value) , 0, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
Cut1 = LeftPanel.AddCut('Паз (8х4)'); //Паз на ліву панель
Cut1.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, LeftPanel.ContourHeight);
Cut1.Contour.AddRectangle(-2, 0, 2, 8);
RightPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Dno = AddHorizPanel(Thick, 0, t.Value, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(Thick, 0, t.Value, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 10.5, h1.Value + 1.5, t.Value -1.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}
if (Dop.ItemIndex === 2) {
LeftPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
RightPanel =AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Cut2 = RightPanel.AddCut('Паз (8х4)');//Паз на праву панель
Cut2.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, RightPanel.ContourHeight);
Cut2.Contour.AddRectangle(-2, RightPanel.Thickness, 2, RightPanel.Thickness - 8);
Dno = AddHorizPanel(0, 0, t.Value - Thick, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(0, 0, t.Value - Thick, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 1.5, h1.Value + 1.5, t.Value -10.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}

if (Dop.ItemIndex === 3) {

LeftPanel = AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
Cut1 = LeftPanel.AddCut('Паз (8х4)'); //Паз на ліву панель
Cut1.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, LeftPanel.ContourHeight);
Cut1.Contour.AddRectangle(-2, 0, 2, 8);
RightPanel =AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Cut2 = RightPanel.AddCut('Паз (8х4)');//Паз на праву панель
Cut2.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, RightPanel.ContourHeight);
Cut2.Contour.AddRectangle(-2, RightPanel.Thickness, 2, RightPanel.Thickness - 8);
Dno = AddHorizPanel(Thick, 0, t.Value - Thick, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(Thick, 0, t.Value - Thick, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка задня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 10.5, h1.Value + 1.5, t.Value -10.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}

//- схеми монтажу фурнітури
function Minifix_Zadnii(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix.Value.Mount(Panel1, Panel2, X, Y, Z);
Shkant.Value.Mount(Panel1, Panel2, X, Y, Z + 32);
}
function Minifix_Perednii(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix.Value.Mount(Panel1, Panel2, X, Y, Z);
Shkant.Value.Mount(Panel1, Panel2, X, Y, Z - 32);
}
function Minifix_Pravyi(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix_Right.Value.Mount(Panel1, Panel2, X, Y, Z);
ShkantR.Value.Mount(Panel1, Panel2, X, Y, Z + 32);
}
function Konfirmat_Standart(Panel1, Panel2, X, Y, Z, Sdvig) {
Konfirmat.Value.Mount(Panel1, Panel2, X, Y, Z);
}

/*
function Ruchka(Panel, X, Y, Z, S) {
Ruchky.Value.Mount1(Panel, X, Y, Z, S)
}
if (Angle.ItemIndex === 0){
Fi = 0;
}else{
Fi = 90;
}


function Petlya(DverL, DverR , X, Y, Z) {
Zavisa.Value.Mount(DverL, DverR , X, Y, Z);
}


function PetliLeft() {
Petlya(LeftPanel, (DverL || DverR || DverL1), Thick, h1.Value + 100, Thick, t.Value - Fuga);
Petlya(LeftPanel, (DverL || DverR || DverL1), Thick, h2.Value - Fuga1 - 100, Thick, t.Value - Fuga );
}

function PetliRight() {
Petlya(RightPanel, (DverL || DverR || DverL1), Thick , h1.Value + 100, Thick, t.Value - Fuga );
Petlya(RightPanel, (DverL || DverR || DverL1), Thick , h2.Value - Fuga1 - 100, Thick, t.Value - Fuga );
}

if (PolkaVs.Value == true) {

//Высота проема в секции
Hp = h2.Value - Thick - h1.Value - Thick;
//Высота полки в проеме
Hp = Hp / 2 - 0.5 * Thick;
//Высота полки в глобальной системе координат
Hp = Hp + h1.Value + Thick;
Mat.SetActive()
Polka = AddHorizPanel(Thick + ShelfOffset.Value, 0, t.Value - Thick - ShelfOffset.Value, z2.Value - ShelfZag.Value, Hp);
//Присваиваем панели имя
Polka.Name = 'Полка';
Polka.AddButt(KromkaNevydyma, 0);
Polka.AddButt(KromkaNevydyma, 1);
Polka.AddButt(KromkaVydyma, 2)
Polka.AddButt(KromkaNevydyma, 3);

Polkodergatel = Polycetrymach.Value;
Ost = (z2.Value - 37 - 40) % 32;
k = ((z2.Value - 37 - 40) - Ost) / 32;
Dz = z2.Value - 37 - k * 32;
Dz1 = z2.Value - ShelfZag.Value - 37 - 32;
Polkodergatel.Mount(Polka, LeftPanel, 2 * Thick, Hp, Dz);
Polkodergatel.Mount(Polka, LeftPanel, 2 * Thick, Hp, Dz1);
Polkodergatel.Mount(Polka, RightPanel, 2 * Thick, Hp, Dz);
Polkodergatel.Mount(Polka, RightPanel, 2 * Thick, Hp, Dz1);

}
*/
if (Stolesh.Value == true) {
MatStol.SetActive()
Stol = AddHorizPanel(0,0 - (600-z2.Value-36), t.Value, z2.Value + 36, h2.Value);Stol.Name = "Cтільниця"; Stol.TextureOrientation = TextureOrientation.Horizontal// установка дна
Stol.Name = 'Столешница';

}



Block = BeginBlock("Кріплення")

//-----НОЖКИ----
Opor = Opora.Value;
Opor.Mount1(Dno, 0 + 48, -10, z2.Value -66, 0);
Opor.Mount1(Dno, 0 + 48, -10, 0 + 80, 0);
Opor.Mount1(Dno, t.Value - 48, -10, z2.Value - 66, 0);
Opor.Mount1(Dno, t.Value - 48, -10, 0 + 80, 0);

if (Dop.ItemIndex === 0) {
Konfirmat_Standart (LeftPanel, Dno, 0, 0, 50);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (RightPanel, Dno, 0, 0, 50);
Konfirmat_Standart (RightPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 60);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 20);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 20);
}

if (Dop.ItemIndex === 1) {
Minifix_Zadnii (Dno, LeftPanel, Thick, 0, 32);
Minifix_Perednii (Dno, LeftPanel, Thick, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, LeftPanel, Thick,0 , 24);
Minifix_Perednii (PlankaP, LeftPanel, Thick, 0, z2.Value -24);
Konfirmat_Standart (RightPanel, Dno, 0, 0, 50);
Konfirmat_Standart (RightPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 20);
}

if (Dop.ItemIndex === 2) {
Minifix_Zadnii (Dno, RightPanel, 0, 0, 32);
Minifix_Perednii (Dno, RightPanel, 0, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, RightPanel, 0,0 , 24);
Minifix_Perednii (PlankaP, RightPanel, 0, 0, z2.Value -24);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, 50);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 20);
}
if (Dop.ItemIndex === 3) {
Minifix_Zadnii (Dno, RightPanel, 0, 0, 32);
Minifix_Perednii (Dno, RightPanel, 0, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, RightPanel, 0,0 , 24);
Minifix_Perednii (PlankaP, RightPanel, 0, 0, z2.Value -24);
Minifix_Zadnii (Dno, LeftPanel, Thick, 0, 32);
Minifix_Perednii (Dno, LeftPanel, Thick, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, LeftPanel, Thick,0 , 24);
Minifix_Perednii (PlankaP, LeftPanel, Thick, 0, z2.Value -24);
}

EndBlock();

/*
Fuga = 1.5 // зазори для дверей
Fuga1 = 4

function Dver1() //установка оной двери с петлями и ручкой
{
DB1 = BeginBlock("Дверь");
MatFas.SetActive();
DverL = AddFrontPanel(0+Fuga, h1.Value, t.Value - Fuga, h2.Value - Fuga1, z2.Value + Fuga);
DverL.TextureOrientation = ftoVertical; //направление текстуры
DverL.AddButt(MatButtD, 0);
DverL.AddButt(MatButtD, 1);
DverL.AddButt(MatButtD, 2);
DverL.AddButt(MatButtD, 3);

if (PetliLeftRight.ItemIndex == 0) {
if (h2.Value > 600) {
//Ruchka((DverL || DverR || DverL1), t.Value - Fuga - 80 , h2.Value - Fuga1 - 50, z2.Value, Fi);
DverL.Name = 'Дверь левая';
EndBlock();
DB1.AnimType = AnimationType.DoorLeft;
PetliLeft();
} else {
//Ruchka((DverL || DverR || DverL1), t.Value - Fuga - 80, h2.Value - Fuga1 - 50, z2.Value, Fi);
DverL.Name = 'Дверь левая';
EndBlock();
DB1.AnimType = AnimationType.DoorLeft;
//PetliLeft();
}
} else {
if (h2.Value > 820) {
//Ruchka((DverL || DverR || DverL1), 0 + Fuga - 50, h2.Value -Fuga1- 80, z2.Value, Fi);
DverL.Name = 'Дверь правая';
EndBlock();
DB1.AnimType = AnimationType.DoorRight;
PetliRight();
} else {
//Ruchka((DverL || DverR || DverL1), 0 + Fuga - 50, h2.Value - Fuga1 - 80, z2.Value, Fi);
DverL.Name = 'Дверь правая';
EndBlock();
DB1.AnimType = AnimationType.DoorRight;
PetliRight();
}
}
}

function Dver2() //установка двух дверей с петлями и ручками
{
MatFas.SetActive()
DB2 = BeginBlock("Дверь")
DverL = AddFrontPanel(0+Fuga, h1.Value, t.Value / 2 - Fuga, h2.Value - Fuga1, z2.Value+ Fuga);
DverL.TextureOrientation = ftoVertical; //направление текстуры
DverL.AddButt(MatButtD, 0);
DverL.AddButt(MatButtD, 1);
DverL.AddButt(MatButtD, 2);
DverL.AddButt(MatButtD, 3);
DverL.Name = 'Дверь левая';
if (h2.Value) {
//Ruchka(t.Value / 2 + Fuga - 30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB2.AnimType = AnimationType.DoorLeft;
PetliLeft();
} else {
//Ruchka(DverL, t.Value / 2 + Fuga -30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB2.AnimType = AnimationType.DoorLeft;
PetliLeft();
}

DB3 = BeginBlock("Дверь");
DverR = AddFrontPanel(t.Value / 2 + Fuga, h1.Value, t.Value - Fuga, h2.Value - Fuga1, z2.Value+ Fuga);
DverR.TextureOrientation = ftoVertical; //направление текстуры
DverR.AddButt(MatButtD, 0);
DverR.AddButt(MatButtD, 1);
DverR.AddButt(MatButtD, 2);
DverR.AddButt(MatButtD, 3);
DverR.Name = 'Дверь правая';
if (h2.Value) {
//Ruchka(DverR, t.Value / 2 + Fuga + 30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB3.AnimType = AnimationType.DoorRight;
PetliRight();
} else {
//Ruchka(DverR, t.Value / 2 + Fuga + 30, h2.Value- Fuga1 - 50, z2.Value, Fi)
EndBlock();
DB3.AnimType = AnimationType.DoorRight;
PetliRight();
}
}

if (Doors.Value == true) {
if (t.Value == 600) //корпус равен строго 600 мм установка дверей, петель и ручек
{
if (confirm//('Установить одну дверь?\nНет - установятся две двери!')//)
Dver1()
else
Dver2()
} else //корпус не равен 600 мм
{
if (t.Value < 600)
Dver1()
else
Dver2()
}
}


*/

B = BeginBlock("Ящик");
Th = ActiveMaterial.Thickness;



m1 = h1.Value + Thick + 16 // від дна до боковини нижнього ящика
m2 = m1 + 13 // підйом дна
m3 = (((((h2.Value - Thick)- (h1.Value + Thick))) / 2) -20) + h1.Value // висота боковини нижнього ящика
m4 = ( ((((h2.Value - Thick)- (h1.Value + Thick))) / 2) - 1.5) + h1.Value // висота фасаду
m5 = 500 // довжина напрямної

AddHorizPanel(Thick*2 + 5, Thick, t.Value - Thick*2 - 5, m5-10, m2).Name = 'Дно';
AddVertPanel(0, m1, m5-10, m3, Thick + 5).Name = 'Боковина левая';
AddVertPanel(0, m1, m5-10, m3, (t.Value - Thick*2 )-5).Name = 'Боковина правая';
AddFrontPanel(Thick*2 + 5, m2 +Thick, (t.Value - Thick*2 )-5, m3, z2.Value-Thick).Name = 'Передня панель';
AddFrontPanel(Thick*2 + 5, m2 , (t.Value - Thick*2 )-5, m3, 0).Name = 'Задня панель';
AddFrontPanel(0, h1.Value, t.Value, m4, z2.Value).Name = 'Фасад';
EndBlock();
B.AnimType = AnimationType.Box;

EndParametricBlock(); // закончим создание тумбочки
};
[свернуть]



Спасибо
sx233077 вне форума   Ответить с цитированием Вверх
Старый 28.05.2017, 18:17   #1343
sx233077
Новичок
 
Регистрация: 11.11.2013
Сообщений: 12
Сказал(а) спасибо: 7
Поблагодарили 2 раз(а) в 1 сообщении
Вес репутации: 0
sx233077 пока не определено
По умолчанию

Привет.

После всех мучений. методом нродного тыка. родился вот этот скрипт.
Сделан конечно через Ж. Но в програмировании я нуб так что имеем что имеем.

Скрип создает тумбу с ящиками.

Помогите прикурить к нему направлялки.


Скрипт

FileOptions = 'Настройки_scrypt2.xml';
MakeProperties();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}

Action.Continue();

function MakeProperties() {
Prop = Action.Properties;

Tumba = Prop.NewCombo('Меню', 'Корпус\nДверцята\nПолка\nСтільниця\nМатериалы\nФурнітура\nИнформация');
Korpus = Prop.NewGroup('Розміри');
Korpus.Visible = true;//ВИДИМОСТЬ ГРУППЫ
h2 = Korpus.NewNumber('Висота', 860);
t = Korpus.NewNumber('Ширина', 600);
z2 = Korpus.NewNumber('Глибина', 510);
// = Korpus.NewNumber('Відступ від стіни', 0);
h1 = Korpus.NewNumber('Висота ножки', 100);
Dop = Korpus. NewCombo ('Конструкція секції', 'Стандартна\nЛіва сторона видима\nПрава сторона видима\nВидимі обидві сторони');
Dop.Expanded = true;//ВИДИМОСТЬ ГРУП


Standart = Dop.NewGroup('Стандарна');
Standart.Visible = false;//ВИДИМОСТЬ ГРУППЫ

LivaVydyma=Dop.NewGroup('Ліва сторона видима');
LivaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

PravaVydyma=Dop.NewGroup('Права сторона видима');
PravaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

LivaPravaVydyma=Dop.NewGroup('Видимі обидві сторони');
LivaPravaVydyma.Visible = false;//ВИДИМОСТЬ ГРУППЫ

Material = Prop.NewGroup('Материалы');
Material.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Mat = Material.NewMaterial('Корпус');
KromkaVydyma = Material.NewButt('Видима крайка');
KromkaNevydyma = Material.NewButt('Невидима крайка');
MatZadSt = Material.NewMaterial('Задня стінка');
MatDop = Material.NewGroup('Додатково');
MatDop.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
MatDvp = MatDop.NewMaterial('Дно ящика');
MatZc = MatDop.NewMaterial('Задня стінка');







/*
//группа фасад
Doors = Prop.NewBool('Дверцята')
Doors.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Doors.Value = true ;
Doors.OnChange = function() {
Doors.ChildrenEnabled = Doors.Value
}
MatFas = Doors.NewMaterial('Матеріал')

ButtD = Doors.NewBool('Кромка')
ButtD.Value = true
ButtD.OnChange = function() {
ButtD.ChildrenEnabled = ButtD.Value
}
MatButtD = ButtD.NewButt('Кромка')

KolDv = Doors.NewCombo('К-сть дверей', '1\n2')
PetliLeftRight = Doors.NewCombo('Завіси', 'Слева\nСправа');


if (t.Value > 600)
{
PetliLeftRight.Enabled = false;
KolDv.Enabled = false;
}
else
{
if (t.Value == 600)
{
KolDv.Enabled = true;
if (KolDv.ItemIndex == 0)
PetliLeftRight.Enabled = true;
else
PetliLeftRight.Enabled = false;
}
else
{
KolDv.Enabled = false;
PetliLeftRight.Enabled = true;
}
}

*/
//группа столешница
Stolesh = Prop.NewBool('Стільниця')
Stolesh.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Stolesh.Value = true
Stolesh.OnChange = function() {
Stolesh.ChildrenEnabled = Stolesh.Value
}
MatStol = Stolesh.NewMaterial('Матеріал')





/*

//группа вставная полка
PolkaVs = Prop.NewBool('Полка')
PolkaVs.Visible = false;//ВИДИМОСТЬ ГРУППЫ
PolkaVs.Value = true
PolkaVs.OnChange = function() {
PolkaVs.ChildrenEnabled = PolkaVs.Value
}
//CountPol = PolkaVs.NewNumber('Количество')
//CountPol.Value = 1
ShelfOffset = PolkaVs.NewNumber('Відступ з боків');
ShelfOffset.Value = 1.5
ShelfZag = PolkaVs.NewNumber('Відступ від лиця')
ShelfZag.Value = 20
*/

Furnitura = Prop.NewGroup('Фурнітура');
Furnitura.Visible = false;//ВИДИМОСТЬ ГРУППЫ
Zavisa = Furnitura.NewFurniture('Завіса');
Polycetrymach = Furnitura.NewFurniture('Полицетримач');
Konfirmat = Furnitura.NewFurniture('Конфірмат');
Minifix = Furnitura.NewFurniture('Minifix');
Shkant = Furnitura.NewFurniture('Шкант');
Opora = Furnitura.NewFurniture('Ножка');
Ruchky = Furnitura.NewFurniture('Ручка');
Angle = Furnitura.NewCombo('Кут повороту ручки', '0\n90')


Info = Prop.NewGroup('Інформація');
Info.Visible = false;//ВИДИМОСТЬ ГРУППЫ
VFas = Info.NewString('Высота фасада');
VFas.Expanded = false;
VYaz = Info.NewString('Высота ящика');
VYaz.Expanded = false;
//NapYaz = Prop.NewNumber('Довжина напрямної', 500);
//NapYaz.Expanded = false;


OkBtn = Prop.NewButton('Побудувати'); //Обработка нажатия на кнопку Построить

OkBtn.OnClick = function() {
//Make(); //Вызываем функцию построения всех панелей
Action.Finish();
};

};
Prop.OnChange = function() { //Обработка любого изменения значений свойств
switch (Tumba.ItemIndex) {
case 0:
Korpus.Visible = true;
//Doors.Visible = false;
// PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 1:
Korpus.Visible = false;
//Doors.Visible = true;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 2:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = true;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 3:
Korpus.Visible = false;
//Doors.Visible = false;
// PolkaVs.Visible = false;
Stolesh.Visible = true;
Material.Visible = false;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 4:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = true;
Furnitura.Visible = false;
Info.Visible = false;
break;

case 5:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = true;
Info.Visible = false;
break;

case 6:
Korpus.Visible = false;
//Doors.Visible = false;
//PolkaVs.Visible = false;
Stolesh.Visible = false;
Material.Visible = false;
Furnitura.Visible = false;
ble = true;
break;

};


switch (Dop.ItemIndex) {
case 0:
Standart.Visible = true;
LivaVydyma.Visible = false;
PravaVydyma.Visible = false;
LivaPravaVydyma.Visible = false;
break;

case 1:
Standart.Visible = false ;
LivaVydyma.Visible = true ;
PravaVydyma .Visible = false;
LivaPravaVydyma.Visible = false;
break;

case 2:
Standart.Visible = false ;
LivaVydyma.Visible = false ;
PravaVydyma .Visible = true ;
LivaPravaVydyma.Visible = false;
break;

case 3:
Standart.Visible = false ;
LivaVydyma.Visible = false ;
PravaVydyma .Visible = false;
LivaPravaVydyma.Visible = true;
break;
};





Make(); //Вызываем функцию построения всех панелей
};
Make();

function Make() {
DeleteNewObjects();

NameBL = 'Секція ';
BeginParametricBlock(NameBL + t.Value);




Mat.SetActive(); // Установить материал активным.Все последующие элементы будут построены из этого материала.
Thick = ActiveMaterial.Thickness; // Thickness - Толщина материала корпуса.
//Побудова тумбочки

if (Dop.ItemIndex === 0) {
LeftPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
RightPanel =AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Dno = AddHorizPanel(0, 0, t.Value, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(0, 0, t.Value, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 1.5, h1.Value + 1.5, t.Value -1.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}
if (Dop.ItemIndex === 1) {
LeftPanel = AddVertPanel(0 - (600-36-z2.Value) , 0, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
Cut1 = LeftPanel.AddCut('Паз (8х4)'); //Паз на ліву панель
Cut1.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, LeftPanel.ContourHeight);
Cut1.Contour.AddRectangle(-2, 0, 2, 8);
RightPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Dno = AddHorizPanel(Thick, 0, t.Value, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(Thick, 0, t.Value, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 10.5, h1.Value + 1.5, t.Value -1.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}
if (Dop.ItemIndex === 2) {
LeftPanel = AddVertPanel(0, h1.Value + Thick, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
RightPanel =AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Cut2 = RightPanel.AddCut('Паз (8х4)');//Паз на праву панель
Cut2.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, RightPanel.ContourHeight);
Cut2.Contour.AddRectangle(-2, RightPanel.Thickness, 2, RightPanel.Thickness - 8);
Dno = AddHorizPanel(0, 0, t.Value - Thick, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(0, 0, t.Value - Thick, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка передня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 1.5, h1.Value + 1.5, t.Value -10.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}

if (Dop.ItemIndex === 3) {

LeftPanel = AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, 0); LeftPanel.Name = "Боковина лiва"; LeftPanel.TextureOrientation = TextureOrientation.Vertical;///установка левого бока
Cut1 = LeftPanel.AddCut('Паз (8х4)'); //Паз на ліву панель
Cut1.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, LeftPanel.ContourHeight);
Cut1.Contour.AddRectangle(-2, 0, 2, 8);
RightPanel =AddVertPanel(0 - (600-36-z2.Value), 0, z2.Value, h2.Value, t.Value - Thick);RightPanel .Name = "Боковина права";RightPanel.TextureOrientation = TextureOrientation.Vertical;///установка правого бока
Cut2 = RightPanel.AddCut('Паз (8х4)');//Паз на праву панель
Cut2.Trajectory.AddLine((600-36-z2.Value) - 2, 0, (600-36-z2.Value) - 2, RightPanel.ContourHeight);
Cut2.Contour.AddRectangle(-2, RightPanel.Thickness, 2, RightPanel.Thickness - 8);
Dno = AddHorizPanel(Thick, 0, t.Value - Thick, z2.Value, h1.Value);Dno.Name = "Дно"; Dno.TextureOrientation = TextureOrientation.Horizontal// установка дна
Cokol = AddFrontPanel(Thick, 0, t.Value - Thick, h1.Value - 5, z2.Value - 36 );Cokol.Name = "Цоколь"; Cokol.TextureOrientation = ftoHorizontal;//установка цоколя
PlankaZ = AddHorizPanel(Thick, 0, t.Value - Thick, 80, h2.Value - Thick ); PlankaZ.Name = "Планка задня"; PlankaZ.TextureOrientation = ftoHorizontal; //установка задней планки
PlankaP = AddHorizPanel(Thick, z2.Value, t.Value - Thick, z2.Value - 80, h2.Value - Thick);PlankaP.Name = "Планка задня"; PlankaP.TextureOrientation = ftoHorizontal;//установка передней планки
MatZadSt.SetActive();
ZadSt = AddFrontPanel (0 + 10.5, h1.Value + 1.5, t.Value -10.5, h2.Value - 1.5, 0 - 3);ZadSt.Name = "Задня стінка"; ZadSt.TextureOrientation = ftoVertical;//установка задньої стінки
LeftPanel.AddButt(KromkaNevydyma, 0);
LeftPanel.AddButt(KromkaVydyma, 1);
LeftPanel.AddButt(KromkaNevydyma, 2);
LeftPanel.AddButt(KromkaNevydyma, 3);
RightPanel.AddButt(KromkaNevydyma, 0);
RightPanel.AddButt(KromkaVydyma, 1);
RightPanel.AddButt(KromkaNevydyma, 2);
RightPanel.AddButt(KromkaNevydyma, 3);
Dno.AddButt(KromkaNevydyma, 0);
Dno.AddButt(KromkaNevydyma, 1);
Dno.AddButt(KromkaVydyma, 2);
Dno.AddButt(KromkaNevydyma, 3);
Cokol.AddButt(KromkaNevydyma, 0);
Cokol.AddButt(KromkaNevydyma, 1);
Cokol.AddButt(KromkaNevydyma, 2);
Cokol.AddButt(KromkaNevydyma, 3);
PlankaZ.AddButt(KromkaNevydyma, 0);
PlankaZ.AddButt(KromkaNevydyma, 1);
PlankaZ.AddButt(KromkaNevydyma, 2);
PlankaZ.AddButt(KromkaNevydyma, 3);
PlankaP.AddButt(KromkaVydyma, 0);
PlankaP.AddButt(KromkaNevydyma, 1);
PlankaP.AddButt(KromkaNevydyma, 2);
PlankaP.AddButt(KromkaNevydyma, 3);
}

//- схеми монтажу фурнітури
function Minifix_Zadnii(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix.Value.Mount(Panel1, Panel2, X, Y, Z);
Shkant.Value.Mount(Panel1, Panel2, X, Y, Z + 32);
}
function Minifix_Perednii(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix.Value.Mount(Panel1, Panel2, X, Y, Z);
Shkant.Value.Mount(Panel1, Panel2, X, Y, Z - 32);
}
function Minifix_Pravyi(Panel1, Panel2, X, Y, Z, Sdvig) {
Minifix_Right.Value.Mount(Panel1, Panel2, X, Y, Z);
ShkantR.Value.Mount(Panel1, Panel2, X, Y, Z + 32);
}
function Konfirmat_Standart(Panel1, Panel2, X, Y, Z, Sdvig) {
Konfirmat.Value.Mount(Panel1, Panel2, X, Y, Z);
}

/*
function Ruchka(Panel, X, Y, Z, S) {
Ruchky.Value.Mount1(Panel, X, Y, Z, S)
}
if (Angle.ItemIndex === 0){
Fi = 0;
}else{
Fi = 90;
}


function Petlya(DverL, DverR , X, Y, Z) {
Zavisa.Value.Mount(DverL, DverR , X, Y, Z);
}


function PetliLeft() {
Petlya(LeftPanel, (DverL || DverR || DverL1), Thick, h1.Value + 100, Thick, t.Value - Fuga);
Petlya(LeftPanel, (DverL || DverR || DverL1), Thick, h2.Value - Fuga1 - 100, Thick, t.Value - Fuga );
}

function PetliRight() {
Petlya(RightPanel, (DverL || DverR || DverL1), Thick , h1.Value + 100, Thick, t.Value - Fuga );
Petlya(RightPanel, (DverL || DverR || DverL1), Thick , h2.Value - Fuga1 - 100, Thick, t.Value - Fuga );
}

if (PolkaVs.Value == true) {

//Высота проема в секции
Hp = h2.Value - Thick - h1.Value - Thick;
//Высота полки в проеме
Hp = Hp / 2 - 0.5 * Thick;
//Высота полки в глобальной системе координат
Hp = Hp + h1.Value + Thick;
Mat.SetActive()
Polka = AddHorizPanel(Thick + ShelfOffset.Value, 0, t.Value - Thick - ShelfOffset.Value, z2.Value - ShelfZag.Value, Hp);
//Присваиваем панели имя
Polka.Name = 'Полка';
Polka.AddButt(KromkaNevydyma, 0);
Polka.AddButt(KromkaNevydyma, 1);
Polka.AddButt(KromkaVydyma, 2)
Polka.AddButt(KromkaNevydyma, 3);

Polkodergatel = Polycetrymach.Value;
Ost = (z2.Value - 37 - 40) % 32;
k = ((z2.Value - 37 - 40) - Ost) / 32;
Dz = z2.Value - 37 - k * 32;
Dz1 = z2.Value - ShelfZag.Value - 37 - 32;
Polkodergatel.Mount(Polka, LeftPanel, 2 * Thick, Hp, Dz);
Polkodergatel.Mount(Polka, LeftPanel, 2 * Thick, Hp, Dz1);
Polkodergatel.Mount(Polka, RightPanel, 2 * Thick, Hp, Dz);
Polkodergatel.Mount(Polka, RightPanel, 2 * Thick, Hp, Dz1);

}
*/
if (Stolesh.Value == true) {
MatStol.SetActive()
Stol = AddHorizPanel(0,0 - (600-z2.Value-36), t.Value, z2.Value + 36, h2.Value);Stol.Name = "Cтільниця"; Stol.TextureOrientation = TextureOrientation.Horizontal// установка дна
Stol.Name = 'Столешница';

}



Block = BeginBlock("Кріплення")

//-----НОЖКИ----
Opor = Opora.Value;
Opor.Mount1(Dno, 0 + 48, -10, z2.Value -66, 0);
Opor.Mount1(Dno, 0 + 48, -10, 0 + 80, 0);
Opor.Mount1(Dno, t.Value - 48, -10, z2.Value - 66, 0);
Opor.Mount1(Dno, t.Value - 48, -10, 0 + 80, 0);

if (Dop.ItemIndex === 0) {
Konfirmat_Standart (LeftPanel, Dno, 0, 0, 50);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (RightPanel, Dno, 0, 0, 50);
Konfirmat_Standart (RightPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 60);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 20);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 20);
}

if (Dop.ItemIndex === 1) {
Minifix_Zadnii (Dno, LeftPanel, Thick, 0, 32);
Minifix_Perednii (Dno, LeftPanel, Thick, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, LeftPanel, Thick,0 , 24);
Minifix_Perednii (PlankaP, LeftPanel, Thick, 0, z2.Value -24);
Konfirmat_Standart (RightPanel, Dno, 0, 0, 50);
Konfirmat_Standart (RightPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, RightPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, RightPanel, 0, 0, z2.Value - 20);
}

if (Dop.ItemIndex === 2) {
Minifix_Zadnii (Dno, RightPanel, 0, 0, 32);
Minifix_Perednii (Dno, RightPanel, 0, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, RightPanel, 0,0 , 24);
Minifix_Perednii (PlankaP, RightPanel, 0, 0, z2.Value -24);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, 50);
Konfirmat_Standart (LeftPanel, Dno, 0, 0, z2.Value - 50 );
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 20);
Konfirmat_Standart (PlankaZ, LeftPanel, 0, 0, 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 60);
Konfirmat_Standart (PlankaP, LeftPanel, 0, 0, z2.Value - 20);
}
if (Dop.ItemIndex === 3) {
Minifix_Zadnii (Dno, RightPanel, 0, 0, 32);
Minifix_Perednii (Dno, RightPanel, 0, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, RightPanel, 0,0 , 24);
Minifix_Perednii (PlankaP, RightPanel, 0, 0, z2.Value -24);
Minifix_Zadnii (Dno, LeftPanel, Thick, 0, 32);
Minifix_Perednii (Dno, LeftPanel, Thick, 0, z2.Value -32);
Minifix_Zadnii (PlankaZ, LeftPanel, Thick,0 , 24);
Minifix_Perednii (PlankaP, LeftPanel, Thick, 0, z2.Value -24);
}

EndBlock();

/*
Fuga = 1.5 // зазори для дверей
Fuga1 = 4

function Dver1() //установка оной двери с петлями и ручкой
{
DB1 = BeginBlock("Дверь");
MatFas.SetActive();
DverL = AddFrontPanel(0+Fuga, h1.Value, t.Value - Fuga, h2.Value - Fuga1, z2.Value + Fuga);
DverL.TextureOrientation = ftoVertical; //направление текстуры
DverL.AddButt(MatButtD, 0);
DverL.AddButt(MatButtD, 1);
DverL.AddButt(MatButtD, 2);
DverL.AddButt(MatButtD, 3);

if (PetliLeftRight.ItemIndex == 0) {
if (h2.Value > 600) {
//Ruchka((DverL || DverR || DverL1), t.Value - Fuga - 80 , h2.Value - Fuga1 - 50, z2.Value, Fi);
DverL.Name = 'Дверь левая';
EndBlock();
DB1.AnimType = AnimationType.DoorLeft;
PetliLeft();
} else {
//Ruchka((DverL || DverR || DverL1), t.Value - Fuga - 80, h2.Value - Fuga1 - 50, z2.Value, Fi);
DverL.Name = 'Дверь левая';
EndBlock();
DB1.AnimType = AnimationType.DoorLeft;
//PetliLeft();
}
} else {
if (h2.Value > 820) {
//Ruchka((DverL || DverR || DverL1), 0 + Fuga - 50, h2.Value -Fuga1- 80, z2.Value, Fi);
DverL.Name = 'Дверь правая';
EndBlock();
DB1.AnimType = AnimationType.DoorRight;
PetliRight();
} else {
//Ruchka((DverL || DverR || DverL1), 0 + Fuga - 50, h2.Value - Fuga1 - 80, z2.Value, Fi);
DverL.Name = 'Дверь правая';
EndBlock();
DB1.AnimType = AnimationType.DoorRight;
PetliRight();
}
}
}

function Dver2() //установка двух дверей с петлями и ручками
{
MatFas.SetActive()
DB2 = BeginBlock("Дверь")
DverL = AddFrontPanel(0+Fuga, h1.Value, t.Value / 2 - Fuga, h2.Value - Fuga1, z2.Value+ Fuga);
DverL.TextureOrientation = ftoVertical; //направление текстуры
DverL.AddButt(MatButtD, 0);
DverL.AddButt(MatButtD, 1);
DverL.AddButt(MatButtD, 2);
DverL.AddButt(MatButtD, 3);
DverL.Name = 'Дверь левая';
if (h2.Value) {
//Ruchka(t.Value / 2 + Fuga - 30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB2.AnimType = AnimationType.DoorLeft;
PetliLeft();
} else {
//Ruchka(DverL, t.Value / 2 + Fuga -30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB2.AnimType = AnimationType.DoorLeft;
PetliLeft();
}

DB3 = BeginBlock("Дверь");
DverR = AddFrontPanel(t.Value / 2 + Fuga, h1.Value, t.Value - Fuga, h2.Value - Fuga1, z2.Value+ Fuga);
DverR.TextureOrientation = ftoVertical; //направление текстуры
DverR.AddButt(MatButtD, 0);
DverR.AddButt(MatButtD, 1);
DverR.AddButt(MatButtD, 2);
DverR.AddButt(MatButtD, 3);
DverR.Name = 'Дверь правая';
if (h2.Value) {
//Ruchka(DverR, t.Value / 2 + Fuga + 30, h2.Value - Fuga1 - 50, z2.Value, Fi);
EndBlock();
DB3.AnimType = AnimationType.DoorRight;
PetliRight();
} else {
//Ruchka(DverR, t.Value / 2 + Fuga + 30, h2.Value- Fuga1 - 50, z2.Value, Fi)
EndBlock();
DB3.AnimType = AnimationType.DoorRight;
PetliRight();
}
}

if (Doors.Value == true) {
if (t.Value == 600) //корпус равен строго 600 мм установка дверей, петель и ручек
{
if (confirm//('Установить одну дверь?\nНет - установятся две двери!')//)
Dver1()
else
Dver2()
} else //корпус не равен 600 мм
{
if (t.Value < 600)
Dver1()
else
Dver2()
}
}


*/
if (z2.Value > 560)
alert ('Глибина копуса більша ніж 560 мм!\nВведіте значення ще раз.')
else
function Make()
DeleteNewObjects();

if (z2.Value <=255)
alert('Глибина копуса менша ніж 254 мм!\nВведіте значення ще раз.')
else
function Make()
DeleteNewObjects();


if (z2.Value <=559){
m5 = 550}

if (z2.Value <=550){
m5 = 500}

if (z2.Value <=500){
m5 = 450}

if (z2.Value <=450){
m5 = 400}

if (z2.Value <=400){
m5 = 350}
if (z2.Value <=350){
m5 = 300}
if (z2.Value <=300){
m5 = 270}
if (z2.Value <=270){
m5 = 250}



j1=1.5
j2=1.5
j3=4
j4=3
j5=0

B = BeginBlock("Ящик");
m1 = h1.Value + Thick + 16 // від дна до боковини нижнього ящика
m2 = m1 + 13 // підйом дна
m3 = (((((h2.Value - Thick)- (h1.Value + Thick))) / 2) - 8) + h1.Value // висота боковини нижнього ящика
m4 = ((h2.Value+h1.Value)-j3-j4-j5)/2 // висота фасаду
//m5 = NapYaz.Value // довжина напрямної
m6 = 19 // від нижнього фасаду до боковини верхнього ящика
m7 = 13 // підйом дна

AddHorizPanel(Thick*2 + 7, (2 +(z2.Value - m5)+10)+Thick, t.Value - Thick*2 - 7,z2.Value, m2).Name = 'Дно';
AddVertPanel( (0 +(z2.Value - m5)+10), m1, (0 +(z2.Value - m5)) + m5, m3, Thick + 5).Name = 'Боковина левая';
AddVertPanel((0 +(z2.Value - m5)+10), m1, (0 +(z2.Value - m5)) + m5, m3, (t.Value - Thick*2 )-7).Name = 'Боковина правая';
AddFrontPanel(Thick*2 + 7, m2 +Thick+2, (t.Value - Thick*2 )-7, m3, z2.Value-Thick-2).Name = 'Передня панель';
AddFrontPanel(Thick*2 + 7, m2 , (t.Value - Thick*2 )-7, m3, (0 +(z2.Value - m5)+10)).Name = 'Задня панель';
AddFrontPanel(0, h1.Value, t.Value, m4 , z2.Value).Name = 'Фасад';
EndBlock();
B.AnimType = AnimationType.Box;

B1 = BeginBlock("Ящик1");

AddHorizPanel(Thick*2 + 7, (2 +(z2.Value - m5)+10)+Thick, t.Value - Thick*2 - 7, z2.Value, m4+m6+m7 ).Name = 'Дно';
AddVertPanel( (0 +(z2.Value - m5)+10), m4+m6 , (0 +(z2.Value - m5)) + m5, h2.Value - 25, Thick + 5).Name = 'Боковина левая';
AddVertPanel((0 +(z2.Value - m5)+10), m4+m6, (0 +(z2.Value - m5)) + m5, h2.Value - 25, (t.Value - Thick*2 )-7).Name = 'Боковина правая';
AddFrontPanel(Thick*2 + 7, (m4+m6+m7+Thick)+2, (t.Value - Thick*2 )-7, h2.Value - 25, z2.Value-Thick-2).Name = 'Передня панель';
AddFrontPanel(Thick*2 + 7, m4+m6+m7, (t.Value - Thick*2 )-7, h2.Value - 25, (0 +(z2.Value - m5)+10)).Name = 'Задня панель';
AddFrontPanel(0, m4+j4, t.Value, h2.Value - j3 , z2.Value).Name = 'Фасад';
EndBlock();
B.AnimType = AnimationType.Box;

EndParametricBlock(); // закончим создание тумбочки

};
[свернуть]

Нажмите на изображение для увеличения
Название: тумбочка.jpg
Просмотров: 43
Размер:	25.6 Кб
ID:	119306


Спасибо
sx233077 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 05:07   #1344
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 383
Сказал(а) спасибо: 180
Поблагодарили 750 раз(а) в 150 сообщениях
Вес репутации: 233
v22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личность
По умолчанию

Фото.

Скрытый текст


Lights = Model.DS.LightList;
Min = Model.GMin;
Max = Model.GMax;
Pos = Model.GCenter;
Rad = Model.SphereRad;


var $$FileName = Action.Control.Owner.FileName

function ActiveFilePath()
{
return $$FileName.substring(0, $$FileName.lastIndexOf("\\") + 1);
}

function ActiveFileNameS_RasshireniyemTolko()
{
return $$FileName.substring($$FileName.lastIndexOf("\\") + 1, $$FileName.length);
}

if(ActiveFilePath().indexOf("!!!!!!!!!!!!!!Серийные")>-1)
{seriynoye=true} else {seriynoye=false}


Action.Control.Owner.Control3D.FSAALevel=4
Model.DS.LineSmooth=true

if(seriynoye){
DelLights()
UnSelectAll();
MakeLights()
} else
{
Action.Control.Owner.LimitsVisible=false
}

Camera1()



//f="\\\\192.168.137.5\\!заказы\\фонУЮТ - копия.jpg"
//Action.Control.Owner.Control3D.Background.Image = f

GladkostDugMax()

OtrisovkaSohraneniye("ф")



//GladkostDugMin()
//DelLights()


Camera2()
OtrisovkaSohraneniye("фф")



yestAnim = false
Model.forEach(function(obj) {
if ((obj.AnimType >0))
{yestAnim = true}
});

if (yestAnim)
{
system.include("\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Scripts\\ОткрытьДвериЯщики.js")
alert('Двери ящики открылись?' )
ViewAll();
if(seriynoye){
DelLights()
MakeLights()
}
OtrisovkaSohraneniye("ффф")
}

GladkostDugMin()
if(seriynoye){
DelLights()
}


Action.Control.Owner.Control3D.FSAALevel=0
Model.DS.LineSmooth=false



function OtrisovkaSohraneniye(fileName){
if(seriynoye){
Action.Control.Owner.Render()
alert('Дождись отрисовки, потом жми ОК, чтобы сохранить '+fileName+'.jpg.' )
}
//+Action.Control.Owner.Control3D.Rendering
//while ()


f = ActiveFilePath()+'\\'+fileName+'.jpg'
Action.Control.Owner.SaveToPicture(f)




}

function MakeLights() {



koef_Udaleniya = Model.GMax.y/1000
if(Model.GMax.y<1000){koef_Udaleniya = 1}
//alert(koef_Udaleniya)
nl = NewVector(Model.GMin.x-300,Model.GMin.y-100,Model.GMax.z+200*koef_Udaleniya)
np = NewVector(Model.GMax.x+300,Model.GMin.y-100,Model.GMax.z+200*koef_Udaleniya)

vp = NewVector(Model.GMax.x+300,Model.GMax.y+300,Model.GMax.z+400*koef_Udaleniya)
vl = NewVector(Model.GMin.x-300,Model.GMax.y+300,Model.GMax.z+400*koef_Udaleniya)





Asm = AddAssembly("НизЛево");
Asm.Load('ЛампаНиз.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = nl;

lamp.Name = "НизЛево" ;


Asm = AddAssembly("НизПраво");
Asm.Load('ЛампаНиз.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = np;

lamp.Name = "НизПраво" ;

Asm = AddAssembly("ВерхЛево");
Asm.Load('ЛампаВерх.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = vl;

lamp.Name = "ВерхЛево" ;

Asm = AddAssembly("ВерхПраво");
Asm.Load('ЛампаВерхМягкая.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = vp;
//lamp.Softness = 0.5
lamp.Name = "ВерхПраво" ;




}

function Camera1()
{
Action.DS.AngleX=15
Action.DS.AngleY=30
if(seriynoye){
Action.DS.Perspective = true
}else{Action.DS.Perspective = false}
ViewAll();
}

function Camera2()
{
Action.DS.AngleX=15
Action.DS.AngleY=30-50
if(seriynoye){
Action.DS.Perspective = true
}else{Action.DS.Perspective = false}
ViewAll();
}


function GladkostDugMax()
{
Action.Control.Owner.Control3D.Background.Mode=2
Action.Control.Owner.Control3D.DS.ModelAccuracy=0
Model.DS.ModelAccuracy=0
}

function GladkostDugMin()
{
Action.Control.Owner.Control3D.Background.Mode=0
Action.Control.Owner.Control3D.DS.ModelAccuracy=1
Model.DS.ModelAccuracy=0
}


function DelLights()
{
Lights = Model.DS.LightList;
while (Lights.Count > 0)
DeleteObject(Lights.Light[0]);

}

/*QualityRendering()



function QualityRendering() {
system.secureExec("" +
"AQAA/wF4nGNigAA2IA7OLy1KTv0PBIwgIUaYlCaQ" +
"cGRIZihhyGTIZ8hj0GNwBtMlDEVAOgfID2JIZKgE" +
"iiYyFANFNcAypQypDDoMCljZmgzWDAAvIhVd" +
"");
}

*/

[свернуть]


Буду крайне благодарен за варианты решения средствами Базис-Скрипт(без AHK, например):
- дождаться завершения рендеринга. ????

(пока писал понял как дождаться завершения открытия дверей ящиков, потом доделаю.)

почему то присвоением некоторые параметры ламп не срабатывают например Softness.
Как назначить Softness лампе???
поэтому пока лампы фрагментами.Такими же как с прошлого варианта скрипта. Вроде загружал..., но можно и свои сделать фрагменты ламп с параметрами на свой вкус.

Открыть двери ящики выкладывал.

Последний раз редактировалось v22884; 08.06.2017 в 05:42.
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 05:39   #1345
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 383
Сказал(а) спасибо: 180
Поблагодарили 750 раз(а) в 150 сообщениях
Вес репутации: 233
v22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от t01849 Посмотреть сообщение
как скриптом выбрать плоскость и чтоб ручка смещалась вдоль этой плоскости, чтоб произвольно установить?
есть функции выбора точки, объекта, грани, но нет выбора плоскости.

Если б я сегодня решал вопрос, то сделал бы функцию:
1) при перемещении курсора на поверхности панели создавал псевдо панель толщиной, например, 0,1мм, выделял псевдо панель.
2) удалять псевдо панель после перевода курсора с панели и по завершению.

наверно, как-то так.

А может так поможет:

Скрытый текст



Ruchka = NewFurnitureInput("Ручка")
Action.Continue(); // continue action
Action.OnMove = function() {
DeleteNewObjects()
Obj = Action.Get3DObject();
if(typeof Obj == "undefined")
{}
else
{
if (Obj.AsPanel) {
p = Obj.ToObject(Action.Pos3);
/*Hole = NewContour();
Hole.AddCircle(p.x, p.y, 50);
Obj.AsPanel.Contour.Subtraction(Hole);
Obj.Build(); */
Ruchka.Mount1(Obj,Action.Pos3.x,Action.Pos3.y,Action.Pos3.z, 0)

}
}
}
[свернуть]


тока разумеется доделать надо.

Последний раз редактировалось v22884; 08.06.2017 в 06:25.
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 08:28   #1346
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 383
Сказал(а) спасибо: 180
Поблагодарили 750 раз(а) в 150 сообщениях
Вес репутации: 233
v22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личность
По умолчанию

Как в Render задать разрешение не текущее, а любое, как в Viewer9?
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 12:37   #1347
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 277
Сказал(а) спасибо: 268
Поблагодарили 713 раз(а) в 165 сообщениях
Вес репутации: 262
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

Action.Control.RayCast(true, true, true, undefined, undefined, 800, 600);
Briz вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
v22884 (09.06.2017)
Старый 09.06.2017, 11:02   #1348
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 383
Сказал(а) спасибо: 180
Поблагодарили 750 раз(а) в 150 сообщениях
Вес репутации: 233
v22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Briz Посмотреть сообщение
Action.Control.RayCast(true, true, true, undefined, undefined, 800, 600);
Спасибо!

Action.Control.RayCast(true, true, true, undefined, undefined, 1800, 1600)

чот только по высоте отрисовывает, а по ширине обрезает???

а где посмотреть описание параметров?

Добавлено через 2 минуты

Фото.
(сохранение всех фото в "1" кнопку. Осталось правда научить скрипт дождаться завершения рендеринга. И для маленьких мониторов ноутбуков прорисовывать разрешение бОльшее чем в окне.)

Скрытый текст



Lights = Model.DS.LightList;
Min = Model.GMin;
Max = Model.GMax;
Pos = Model.GCenter;
Rad = Model.SphereRad;


var $$FileName = Action.Control.Owner.FileName

function ActiveFilePath()
{
return $$FileName.substring(0, $$FileName.lastIndexOf("\\") + 1);
}

function ActiveFileNameS_RasshireniyemTolko()
{
return $$FileName.substring($$FileName.lastIndexOf("\\") + 1, $$FileName.length);
}

if(ActiveFilePath().indexOf("!!!!!!!!!!!!!!Серийные")>-1)
{seriynoye=true} else {seriynoye=false}

//скрыть 2д объекты
UnSelectAll();
Action.Control.Owner.Select2DObjects()
Action.Control.Owner.SelectAuxObjects()
Action.Control.Owner.HideSelection()
Action.Control.Owner.LimitsVisible=false


//
zakryt_()
Model.DS.DrawMode=4

Action.Control.Owner.Control3D.FSAALevel=4
Model.DS.LineSmooth=true

Model.DS.ActiveViewport.ViewOffset.TopLeft.X=-1000


if(seriynoye){
DelLights()
UnSelectAll();
MakeLights()
} else
{

}

Camera1()



//f="\\\\192.168.137.5\\!заказы\\фонУЮТ - копия.jpg"
//Action.Control.Owner.Control3D.Background.Image = f

GladkostDugMax()

OtrisovkaSohraneniye("ф")



//GladkostDugMin()
//DelLights()


Camera2()
OtrisovkaSohraneniye("фф")



yestAnim = false
Model.forEach(function(obj) {
if ((obj.AnimType >0))
{yestAnim = true}
});

if (yestAnim)
{
//system.include("\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Scripts\\ОткрытьДвериЯщики.js")
//alert('Двери ящики открылись?' )
otkryt_()

ViewAll();
if(seriynoye){
DelLights()
MakeLights()
}
OtrisovkaSohraneniye("ффф")
}

GladkostDugMin()
if(seriynoye){
DelLights()
}


Action.Control.Owner.Control3D.FSAALevel=0
Model.DS.LineSmooth=false
Action.DS.Perspective = false



Model.SetVisibleAllObjects()
//system.include("\\\\192.168.137.5\\!заказы\\__________ПО\\Bazis8\\Scripts\\ОткрытьДвериЯщики.js")
zakryt_()
/////////////////////////

function OtrisovkaSohraneniye(fileName){
if(seriynoye){
Action.Control.Owner.Render()
alert('Дождись отрисовки, потом жми ОК, чтобы сохранить '+fileName+'.jpg.' )
}
//+Action.Control.Owner.Control3D.Rendering
//while ()


f = ActiveFilePath()+'\\'+fileName+'.jpg'
Action.Control.Owner.SaveToPicture(f)




}

function MakeLights() {



koef_Udaleniya = Model.GMax.y/1000
if(Model.GMax.y<1000){koef_Udaleniya = 1}
//alert(koef_Udaleniya)
nl = NewVector(Model.GMin.x-300,Model.GMin.y-100,Model.GMax.z+200*koef_Udaleniya)
np = NewVector(Model.GMax.x+300,Model.GMin.y-100,Model.GMax.z+200*koef_Udaleniya)

vp = NewVector(Model.GMax.x+300,Model.GMax.y+300,Model.GMax.z+400*koef_Udaleniya)
vl = NewVector(Model.GMin.x-300,Model.GMax.y+300,Model.GMax.z+400*koef_Udaleniya)





Asm = AddAssembly("НизЛево");
Asm.Load('ЛампаНиз.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = nl;

lamp.Name = "НизЛево" ;


Asm = AddAssembly("НизПраво");
Asm.Load('ЛампаНиз.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = np;

lamp.Name = "НизПраво" ;

Asm = AddAssembly("ВерхЛево");
Asm.Load('ЛампаВерх.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = vl;

lamp.Name = "ВерхЛево" ;

Asm = AddAssembly("ВерхПраво");
Asm.Load('ЛампаВерхМягкая.fr3d');
lamp = Asm.Objects[0]
lamp.Owner = Model;
Asm.Free();
lamp.Position = vp;
//lamp.Softness = 0.5
lamp.Name = "ВерхПраво" ;




}

function Camera1()
{
Action.DS.AngleX=15
Action.DS.AngleY=30
if(seriynoye){
Action.DS.Perspective = true
}else{Action.DS.Perspective = false}
ViewAll();
}

function Camera2()
{
Action.DS.AngleX=15
Action.DS.AngleY=30-50
if(seriynoye){
Action.DS.Perspective = true
}else{Action.DS.Perspective = false}
ViewAll();
}


function GladkostDugMax()
{
Action.Control.Owner.Control3D.Background.Mode=2
Action.Control.Owner.Control3D.DS.ModelAccuracy=0
Model.DS.ModelAccuracy=0
}

function GladkostDugMin()
{
Action.Control.Owner.Control3D.Background.Mode=0
Action.Control.Owner.Control3D.DS.ModelAccuracy=1
Model.DS.ModelAccuracy=0
}


function DelLights()
{
Lights = Model.DS.LightList;
while (Lights.Count > 0)
DeleteObject(Lights.Light[0]);

}


function otkryt_(){
Model.forEach(function(obj) {
if ((obj.AnimType >0))
{

obj.Animation.AnimPos=1

}
});
}


function zakryt_(){
Model.forEach(function(obj) {
if ((obj.AnimType >0))
{

obj.Animation.AnimPos=0

}
});
}

/*QualityRendering()



function QualityRendering() {
system.secureExec("" +
"AQAA/wF4nGNigAA2IA7OLy1KTv0PBIwgIUaYlCaQ" +
"cGRIZihhyGTIZ8hj0GNwBtMlDEVAOgfID2JIZKgE" +
"iiYyFANFNcAypQypDDoMCljZmgzWDAAvIhVd" +
"");
}

*/
[свернуть]
v22884 вне форума   Ответить с цитированием Вверх
Старый 17.06.2017, 04:52   #1349
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 383
Сказал(а) спасибо: 180
Поблагодарили 750 раз(а) в 150 сообщениях
Вес репутации: 233
v22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личностьv22884 - просто великолепная личность
По умолчанию

Загрузить DXF (в контур панели) ?

или

Алгоритм Компановки как в Арткаме (или лучше) ?

Последний раз редактировалось v22884; 17.06.2017 в 05:48.
v22884 вне форума   Ответить с цитированием Вверх
Старый 18.06.2017, 12:55   #1350
Uncle
Модератор
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 7,714
Сказал(а) спасибо: 13,078
Поблагодарили 15,186 раз(а) в 4,805 сообщениях
Вес репутации: 3926
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Уважаемые знатоки скрипта.. Подскажите, пожалуйста. Имеется скрипт для установки подпятников на торцы боковин:

Скрытый текст


FileOptions = 'Подпятники Основные настройки.xml';










MakeProperties();

Action.Properties.Load(FileOptions);



Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
BtnMake = NewButtonInput('Закончить');
BtnMake.OnChange = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}


Make();



Action.Continue();













true;





//////////////////////////////////////////


//////////////////////////////////////////

////////////////////////////////////////// --------- ОКНО СВОЙСТВ


function MakeProperties() {

Prop = Action.Properties;



otsPered = Prop.NewNumber('Отступ Перед',50);
otsZad = Prop.NewNumber('Отступ Зад',70);


K_row = Prop.NewNumber('Количество на деталь',2);

K_row.OnChange = function() {

if (K_row.Value<1) {

K_row.Value=1
}
}

Krepej = Prop.NewFurniture('Ножки в торец или подпятники');
V_razniyeStorony = Prop.NewBool('В разные стороны')
V_Drugiye_razniyeStorony = Prop.NewBool('В ДРУГИЕ разные стороны')
PovernutDop = Prop.NewCombo('Развернить ножку на X', '0\n90\n180\n270');
PovernutDopY = Prop.NewCombo('Развернить ножку на Y', '0\n90\n180\n270');
PovernutDopZ = Prop.NewCombo('Развернить ножку на Z', '0\n90\n180\n270');
OtrazitX = Prop.NewBool('Отразить X')
OtrazitY = Prop.NewBool('Отразить Y')
OtrazitZ = Prop.NewBool('Отразить Z')
NaSeredinuTolshiny = Prop.NewBool('НаСерединуТолщины(дляТипаРучка))')


OkBtn = Prop.NewButton('Построить',true);


OkBtn.OnClick = function() {
Make(); //Вызываем функцию построения всех панелей
Action.Finish();
}







Prop.OnChange = function() {
//if (Fas.Value > Hd.Value) alert('Предупреждение! Фаска больше чем высота дна.')
Make(); //Вызываем функцию построения всех панелей
};


}





//Obj = Model.Selected;


function Make()
{
DeleteNewObjects();
//FileFreza = 'Фреза1.frw';
// conturFrezi=NewContour();
// conturFrezi.Load(FileFreza);
Model.forEach (function(Obj) {

if (Obj.Selected == true)

{
Nojki(Obj)




}
} )





}

function Nojki(Obj) {

//if (system.fileExists(Krepej.Value))
if (Krepej.Value)
{


otsPered_=otsPered.Value;
otsZad_=otsZad.Value;

ryadov = K_row.Value;


lnpv = GabarityContura(Obj);


ln =lnpv[0];
pv = lnpv[1];



//Niz = OpredelitNiz(Obj, ln, pv)

// NizWdol = p.ContourWidth
// NizH = p.ContourHeight

// пока не определили

if(V_razniyeStorony.Value)
{

ugolPovorotaPered=(-(135+(90*(ryad-1)/(ryadov-1)))) + Math.round(PovernutDop.Value)
ugolPovorotaZad=(-(45-(90*(ryad-1)/(ryadov-1)))) + Math.round(PovernutDop.Value)

}
else
{

ugolPovorotaPered=0
ugolPovorotaZad=0
}







mejdu_ryadov = (pv.x-ln.x-otsPered_-otsZad_)/(ryadov-1)

seredinaX = ln.x + (pv.x - ln.x) / 2

if (Math.round(ryadov)==1)
{

p1 = NewPoint(seredinaX, ln.y)

podp = Ustanovit1Krepiyoj(Obj, p1, ugolPovorotaPered)


}
else if (ryadov>1)
{
p1 = NewPoint( pv.x - otsPered_ , ln.y)

Ustanovit1Krepiyoj(Obj, p1, ugolPovorotaPered)

otsZad_ = ln.x + otsZad_
p1 = NewPoint(otsZad_, ln.y)


Ustanovit1Krepiyoj(Obj, p1, ugolPovorotaZad)

ryad=3

while (ryad<ryadov+1)
{







p1 = NewPoint(otsZad_+mejdu_ryadov*(ryad-2), ln.y)





Ustanovit1Krepiyoj(Obj, p1, ugolPovorotaPered)



ryad++;
}
}
//Niz.Free()

}


}

function Ustanovit1Krepiyoj(Obj, p1, ugolPovorota, drstorona ) {


pos = Obj.ObjectToGlobal(NewVector(p1.x, p1.y,0))


podp = Krepej.Value.Mount1(Obj, pos, ugolPovorota);



podp.Rotate(podp.NToGlobal(AxisX), Math.round(PovernutDop.Value) * (Math.PI / 180))
podp.Rotate(podp.NToGlobal(AxisY), Math.round(PovernutDopY.Value) * (Math.PI / 180))
podp.Rotate(podp.NToGlobal(AxisZ), Math.round(PovernutDopZ.Value) * (Math.PI / 180))
// podp.Translate(NewVector(SmestitX.Value, SmestitY.Value, SmestitZ.Value))
if (NaSeredinuTolshiny.Value)
{

/*x=podp.PositionX
y=podp.PositionY
z=podp.PositionZ
*/
posL = Obj.GlobalToObject(podp.Position)
pos1 = NewVector(posL.x, posL.y, Obj.Thickness/2)
posG = Obj.ObjectToGlobal(pos1)

//ppp = AddPanel(5, 5)
//ppp.Translate(posG)

podp.Position = (posG)
}
return podp
}


function OpredelitNiz(Obj, ln, pv)
{
//Obj = Obj.AsPanel
tolshina = Obj.Thickness;
ln_ = Obj.ObjectToGlobal(ln);
pv_ = Obj.ObjectToGlobal(pv);
p = AddPanel(pv.x, tolshina)
p.Thickness = 0.000000001;
p.Translate(ln_)
p.Rotation = Obj.Rotation
p.Rotate(p.NToGlobal(AxisX), 90)

return p

}



function GabarityContura(Obj)

{
var text = '';


ln = NewPoint(0, 0); //левый низ
lv = NewPoint(0, 0); //левый верх
pn = NewPoint(0, 0); //правый низ
pv = NewPoint(0, 0); //правый верх контура

kontur = Obj.Contour;

kstoron = kontur.Count;
// var k_ne_krugov = 0;
for (i = 0; i < kstoron; i++) {
if (kontur[i].ElType != 3) { //k_ne_krugov = k_ne_krugov+1

ln = NewPoint(Math.round(kontur[i].Pos1.x * 10) / 10, Math.round(kontur[i].Pos1.y * 10) / 10);
lv = NewPoint(Math.round(kontur[i].Pos1.x * 10) / 10, Math.round(kontur[i].Pos1.y * 10) / 10);
pn = NewPoint(Math.round(kontur[i].Pos1.x * 10) / 10, Math.round(kontur[i].Pos1.y * 10) / 10);
pv = NewPoint(Math.round(kontur[i].Pos1.x * 10) / 10, Math.round(kontur[i].Pos1.y * 10) / 10);
}

};



for (i = 0; i < kstoron; i++) {
if (kontur[i].ElType != 3) {
Pos1x = Math.round(kontur[i].Pos1.x * 10) / 10;
Pos1y = Math.round(kontur[i].Pos1.y * 10) / 10;
Pos2x = Math.round(kontur[i].Pos2.x * 10) / 10;
Pos2y = Math.round(kontur[i].Pos2.y * 10) / 10;


if (ln.x > Pos1x) {
ln.x = Pos1x
};
if (ln.x > Pos2x) {
ln.x = Pos2x
};
if (ln.y > Pos1y) {
ln.y = Pos1y
};
if (ln.y > Pos2y) {
ln.y = Pos2y
};

if (lv.x > Pos1x) {
lv.x = Pos1x
};
if (lv.x > Pos2x) {
lv.x = Pos2x
};
if (lv.y < Pos1y) {
lv.y = Pos1y
};
if (lv.y < Pos2y) {
lv.y = Pos2y
};

if (pn.x < Pos1x) {
pn.x = Pos1x
};
if (pn.x < Pos2x) {
pn.x = Pos2x
};
if (pn.y > Pos1y) {
pn.y = Pos1y
};
if (pn.y > Pos2y) {
pn.y = Pos2y
};

if (pv.x < Pos1x) {
pv.x = Pos1x
};
if (pv.x < Pos2x) {
pv.x = Pos2x
};
if (pv.y < Pos1y) {
pv.y = Pos1y
};
if (pv.y < Pos2y) {
pv.y = Pos2y
};

}
};

text4 = ('ln ---- ' + ln.x + ' - ' + ln.y + '\n' +
'lv ---- ' + lv.x + ' - ' + lv.y + '\n' +
'pn ---- ' + pn.x + ' - ' + pn.y + '\n' +
'pv ---- ' + pv.x + ' - ' + pv.y + '\n');
// alert(text4);
ln_v = ln; //левый низ выреза
pv_v = pv; //правый верх выреза

if (ln_v.x < lv.x) {
ln_v.x = lv.x
};
if (ln_v.y < pn.y) {
ln_v.y = pn.y
};

if (pv_v.x > pn.x) {
pv_v.x = pn.x
};
if (pv_v.y > lv.y) {
pv_v.y = lv.y
};





SeredinaVisotiPaneli = (pv_v.y - ln_v.y) * 0.5;
SeredinaShiriniPaneli = (pv_v.x - ln_v.x) * 0.5;






lnpv = []




lnpv.push(ln_v);
lnpv.push(pv_v);



return lnpv
}
[свернуть]


Если указан в качестве устанавливаемого подпятник, созданный как фурнитура, все работает корректно. Если же указать подпятник, созданный как составная фурнитура, устанавливается непонятно как. Но при замене установленной скриптом фурнитуры "Подпятник" составная фурнитура устанавливается корректно...
В чем причина? Можно ли как то исправить скрипт?
Прилагаю оба подпятника для экспериментов:
Составная Опора регулируемая М6.rar
Фурнитура Подпятник черный.rar

P.S. Скрипт писал не я, где взял - не помню, вроде тут же на форуме..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик 9.0

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8.0 118 09.12.2017 21:43
Скрипты в БАЗИС 8 Igor_482 Базис-мебельщик 8.0 942 07.12.2017 10:22
БАЗИС 9 nayrogi Базис-мебельщик 9.0 636 18.11.2017 13:08
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 15.01.2014 23:37


Текущее время: 12:17. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
© 2007-2017 PROMEBEL