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

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

Меню

Маркет


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

Сказал(а) спасибо: 34
Поблагодарили 794 раз(а) в 113 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 13:22
Рейтинг: ()

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

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 в 11:52..
Просмотров: 985418
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 25.05.2017, 17:37   #1341
sx233077
Новичок
 
Регистрация: 11.11.2013
Сообщений: 12
Сказал(а) спасибо: 7
Поблагодарили 10 раз(а) в 2 сообщениях
Вес репутации: 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, 17:17   #1342
sx233077
Новичок
 
Регистрация: 11.11.2013
Сообщений: 12
Сказал(а) спасибо: 7
Поблагодарили 10 раз(а) в 2 сообщениях
Вес репутации: 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
Просмотров: 69
Размер:	25.6 Кб
ID:	119306


Спасибо
sx233077 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
PravCom (01.02.2022)
Старый 08.06.2017, 04:07   #1343
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордится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 в 04:42.
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 04:39   #1344
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордится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 в 05:25.
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 07:28   #1345
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

Как в Render задать разрешение не текущее, а любое, как в Viewer9?
v22884 вне форума   Ответить с цитированием Вверх
Старый 08.06.2017, 11:37   #1346
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
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, 10:02   #1347
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордится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, 03:52   #1348
v22884
Местный
 
Регистрация: 17.04.2014
Адрес: д.Сибирцево, ателье-уют.рф
Сообщений: 454
Сказал(а) спасибо: 241
Поблагодарили 1,094 раз(а) в 210 сообщениях
Вес репутации: 386
v22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордитсяv22884 за этого человека можно гордится
По умолчанию

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

или

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

Последний раз редактировалось v22884; 17.06.2017 в 04:48.
v22884 вне форума   Ответить с цитированием Вверх
Старый 18.06.2017, 11:55   #1349
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,024 раз(а) в 6,492 сообщениях
Вес репутации: 5257
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 вне форума   Ответить с цитированием Вверх
Старый 24.07.2017, 19:34   #1350
FIDEL
VIP
 
Аватар для FIDEL
 
Регистрация: 24.06.2010
Адрес: Україна, Проскурів
Сообщений: 1,950
Сказал(а) спасибо: 6,603
Поблагодарили 5,053 раз(а) в 1,304 сообщениях
Вес репутации: 1373
FIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспоримаFIDEL репутация неоспорима
По умолчанию

Хочу спросить специалистов по скриптам: есть ли возможность скриптом выбрать все панели определенного материала в модели и переименовать это материал произвольным образом ( не выбирая из Базы материалов).
И насколько сложным может быть такой скрипт, чтобы просить его сделать?
ниже- пояснение, зачем это может быть нужно. Штатными методами, а также просьбе сделать такую возможность средствами Базиса- было отказано в ГТП.

Из письма в ЛК:

"Есть пожелание иметь возможность изменять наименование материала в свойствах материала.
Что имею ввиду:
При выделении панели или элемента модели в окне свойств отображается материал этой панели или элемента.
Мы имеем возможность прямо из окна свойств заменить материал на материал из Базы. Прекрасно и удобно.
Но! хочется иметь возможность еще просто вписать в это окно любое произвольное наименование материала данной панели или элемента. То есть необязательно, чтобы материал, имя которого мы записываем в окне свойств был у нас в базе материалов.
Для чего это нужно:
При проектировании изделия нужно "раскрасить" элементы интерьера - плитку на стенах, обои и тд и тп. Текстуры нужно нанести такие, чтобы соответствовали текстурам закупленной заказчиком плитки, линолеума и тд и тп. ТО есть нет необходимости заводить материал "Плитка заказчика Иванова для пола" в базу материалов.
А так мы можем изменить материал на произвольное наименование " Плитка заказчика Иванова для пола" и назначить ему текстуру. Такой материал больше не будет использоваться нигде и никогда, поэтому не хочется захламлять Базу материалов.
Можно , конечно , в Базе иметь материал Плитка, но тогда во всех заказах будет или одна текстура ( а у каждого заказчика она ведь своя)."
FIDEL вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53
БАЗИС 9 nayrogi Базис-мебельщик 9 785 01.10.2022 23:13
БАЗИС-ЧПУ 8 chingisnah Базис-мебельщик 8 119 21.12.2017 22:04
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 16.01.2014 00:37


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


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика