SetCamera(p3dFront);
ViewAll();
LevBok = GetPanel("Укажите левую боковину");
LevBok.Selected = true;
PravBok = GetPanel("Укажите правую боковину");
PravBok.Selected = true;
Top = GetEdge('Укажите верхнюю границу фасада ящика (грязный размер)', AxisX).GFirst.y;
Action.ShowEdges = true;
Bottom = GetEdge('Укажите нижнюю границу фасада ящика (грязный размер)', AxisX).GFirst.y;
SetCamera(p3dLeft);
ViewAll();
InsideEdge = GetEdge('Укажите границу внутреннего пространства', AxisY).GFirst.z;
SetCamera(p3dIsometric);
ViewAll();
XLeft = LevBok.GabMax.x;
XRigh = PravBok.GabMin.x;
if (XLeft > XRigh) {
AAA = LevBok;
LevBok = PravBok;
PravBok = AAA;
}
if (Bottom > Top) {
AAA = Bottom;
Bottom = Top;
Top = AAA;
}
var KH = Top - Bottom; // Расстояние между верхней и нижней границами
var LT = LevBok.GabMax.z - InsideEdge; // Внутренняя глубина корпуса
var KB = LevBok.GabMin.x + PravBok.GabMax.x; // Внешняя ширина корпуса
var LW = PravBok.GabMin.x - LevBok.GabMax.x; // Внутренняя ширина корпуса
MakeProperties();
Action.Continue();
function MakeProperties() {
Prop = Action.Properties;
//ImageTipYash = Prop.NewImage('Тип устанавливаемого ящика', 'Логотип Metabox plus.jpg');
//ImageTipYash.MaxHeight = 23;
KolYash = Prop.NewCombo('Количество ящиков', 'n\n1 ящик\n2 ящика\n3 ящика\n4 ящика');
Seperator = KolYash.NewSeparator();
//ImageKorDvaYash = KolYash.NewImage('', 'Стол с 2-мя ящиками.jpg');
//ImageKorTriYash = KolYash.NewImage('', 'Стол с 3-мя ящиками.jpg');
//ImageKorFourYash = KolYash.NewImage('', 'Стол с 4-мя ящиками.jpg');
//Seperator = KolYash.NewSeparator();
// параметры для установки 1-го ящика
ParYashH = KolYash.NewGroup('Конструктив ящика');
H = ParYashH.NewNumber('Высота ящика (гр. размер)', KH);
H.Visible = false;
VrzRuchkaH = ParYashH.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH = ParYashH.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NL = ParYashH.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1 = ParYashH.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2 = ParYashH.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3 = ParYashH.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4 = ParYashH.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
Seperator = ParYashH.NewSeparator();
// параметры для установки 2-х и более ящиков
ParYashH2 = KolYash.NewGroup('Общие параметры');
VrzRuchkaH2 = ParYashH2.NewCombo('Наличие торцевых ВРЕЗНЫХ ручек (для всех ящиков)', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH2 = ParYashH2.NewBool('Наличие торцевых НАКЛАДНЫХ ручек (для всех ящиков)', false);
Seperator = ParYashH2.NewSeparator();
// параметры верхнего ящика (установка 2-х ящиков)
ParYashH2V = KolYash.NewGroup('Конструктив верхнего ящика - X2');
H2V = ParYashH2V.NewNumber('Высота ящика (гр. размер)', KH / 2);
VrzRuchkaH2V = ParYashH2V.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH2V = ParYashH2V.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH2V = ParYashH2V.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H2V = ParYashH2V.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H2V = ParYashH2V.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H2V = ParYashH2V.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H2V = ParYashH2V.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры нижнего ящика (установка 2-х ящиков)
ParYashH2N = KolYash.NewGroup('Конструктив нижнего ящика - X1');
H2N = ParYashH2N.NewNumber('Высота ящика (гр. размер)', KH / 2);
VrzRuchkaH2N = ParYashH2N.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH2N = ParYashH2N.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH2N = ParYashH2N.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H2N = ParYashH2N.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H2N = ParYashH2N.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H2N = ParYashH2N.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H2N = ParYashH2N.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
Seperator = ParYashH2N.NewSeparator();
// параметры для установки 3-х ящиков
ParYashH3 = KolYash.NewGroup('Общие параметры');
VrzRuchkaH3 = ParYashH3.NewCombo('Наличие торцевых ВРЕЗНЫХ ручек (для всех ящиков)', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH3 = ParYashH3.NewBool('Наличие торцевых НАКЛАДНЫХ ручек (для всех ящиков)', false);
Seperator = ParYashH3.NewSeparator();
// параметры верхнего ящика (установка 3-х ящиков)
ParYashH3V = KolYash.NewGroup('Конструктив верхнего ящика - X3');
H3V = ParYashH3V.NewNumber('Высота ящика (гр. размер)', (KH / 2) / 2);
VrzRuchkaH3V = ParYashH3V.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH3V = ParYashH3V.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH3V = ParYashH3V.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H3V = ParYashH3V.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H3V = ParYashH3V.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H3V = ParYashH3V.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H3V = ParYashH3V.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры среднего ящика (установка 3-х ящиков)
ParYashH3S = KolYash.NewGroup('Конструктив среднего ящика - X2');
H3S = ParYashH3S.NewNumber('Высота ящика (гр. размер)', (KH / 2) / 2);
VrzRuchkaH3S = ParYashH3S.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH3S = ParYashH3S.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH3S = ParYashH3S.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H3S = ParYashH3S.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H3S = ParYashH3S.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H3S = ParYashH3S.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H3S = ParYashH3S.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры нижнего ящика (установка 3-х ящиков)
ParYashH3N = KolYash.NewGroup('Конструктив нижнего ящика - X1');
H3N = ParYashH3N.NewNumber('Высота ящика (гр. размер)', KH / 2);
VrzRuchkaH3N = ParYashH3N.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH3N = ParYashH3N.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH3N = ParYashH3N.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H3N = ParYashH3N.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H3N = ParYashH3N.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H3N = ParYashH3N.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H3N = ParYashH3N.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
Seperator = ParYashH3N.NewSeparator();
// параметры для установки 4-х ящиков
ParYashH4 = KolYash.NewGroup('Общие параметры');
VrzRuchkaH4 = ParYashH4.NewCombo('Наличие торцевых ВРЕЗНЫХ ручек (для всех ящиков)', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH4 = ParYashH4.NewBool('Наличие торцевых НАКЛАДНЫХ ручек (для всех ящиков)', false);
Seperator = ParYashH4.NewSeparator();
// параметры 4-го ящика (установка 4-х ящиков)
ParYashH44 = KolYash.NewGroup('Конструктив 4-го ящика ящика - X4');
H44 = ParYashH44.NewNumber('Высота ящика (гр. размер)', KH / 4);
VrzRuchkaH44 = ParYashH44.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH44 = ParYashH44.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH44 = ParYashH44.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H44 = ParYashH44.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H44 = ParYashH44.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H44 = ParYashH44.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H44 = ParYashH44.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры 3-го ящика (установка 4-х ящиков)
ParYashH43 = KolYash.NewGroup('Конструктив 3-го ящика ящика - X3');
H43 = ParYashH43.NewNumber('Высота ящика (гр. размер)', KH / 4);
VrzRuchkaH43 = ParYashH43.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH43 = ParYashH43.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH43 = ParYashH43.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H43 = ParYashH43.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H43 = ParYashH43.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H43 = ParYashH43.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H43 = ParYashH43.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры 2-го ящика (установка 4-х ящиков)
ParYashH42 = KolYash.NewGroup('Конструктив 2-го ящика ящика - X2');
H42 = ParYashH42.NewNumber('Высота ящика (гр. размер)', KH / 4);
VrzRuchkaH42 = ParYashH42.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH42 = ParYashH42.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH42 = ParYashH42.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H42 = ParYashH42.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H42 = ParYashH42.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H42 = ParYashH42.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H42 = ParYashH42.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
// параметры нижнего ящика (установка 4-х ящиков)
ParYashH41 = KolYash.NewGroup('Конструктив нижнего ящика - X1');
H41 = ParYashH41.NewNumber('Высота ящика (гр. размер)', KH / 4);
VrzRuchkaH41 = ParYashH41.NewCombo('Наличие торцевой ВРЕЗНОЙ ручки', 'Нет ручки\nВрезная ручка №30\nВрезная ручка №389\nВрезная ручка №404/405/406');
NaklRuchkaH41 = ParYashH41.NewBool('Наличие торцевой НАКЛАДНОЙ ручки', false);
NLH41 = ParYashH41.NewCombo('Глубина ящика', 'Стандарт (NL=500)\nNL=450\nNL=400\nNL=350\nNL=270');
NL1H41 = ParYashH41.NewCombo('Глубина ящика', 'Стандарт (NL=450)\nNL=400\nNL=350\nNL=270');
NL2H41 = ParYashH41.NewCombo('Глубина ящика', 'Стандарт (NL=400)\nNL=350\nNL=270');
NL3H41 = ParYashH41.NewCombo('Глубина ящика', 'Стандарт (NL=350)\nNL=270');
NL4H41 = ParYashH41.NewCombo('Глубина ящика', 'Стандарт (NL=270)');
Seperator = ParYashH41.NewSeparator();
}
OkBtn = Prop.NewButton('Построить');
Action.OnStart = function() {
//обработка событий в любых полях ввода свойства
Prop.OnChange = Primenit;
Primenit();
}
OkBtn.OnClick = function() {
UnSelectAll();
SetCamera(p3dIsometric);
ViewAll();
Action.Finish();
}
Action.Continue();
function Primenit() {
//______________________________________________________________________________
// Выводим подсказки для дальнейшей установки
if (KolYash.ItemIndex == 0) {
Action.ErrorHint = 'Выберите нужное количество ящиков для построения';
} else if (KolYash.ItemIndex == 1) {
Action.ErrorHint = 'Определитесь с параметрами ящика и нажмите "Построить"';
} else {
Action.ErrorHint = 'Укажите грязные размеры фасадов, определитесь с параметрами ящиков и нажмите "Построить"';
}
//______________________________________________________________________________
// Определяем параметры в окне свойств
switch (KolYash.ItemIndex) {
case 0: // Количество ящиков - n
ParYashH.Visible = false;
ParYashH2.Visible = ParYashH3.Visible = ParYashH4.Visible = false;
ParYashH2N.Visible = ParYashH2V.Visible = false;
ParYashH3N.Visible = ParYashH3S.Visible = ParYashH3V.Visible = false;
ParYashH41.Visible = ParYashH42.Visible = ParYashH43.Visible = ParYashH44.Visible = false;
//ImageKorDvaYash.Visible = ImageKorTriYash.Visible = ImageKorFourYash.Visible = false;
break;
case 1: // Количество ящиков - 1 ящик
// Определяем видимость свойств
ParYashH.Visible = true;
ParYashH2.Visible = ParYashH3.Visible = ParYashH4.Visible = false;
ParYashH2N.Visible = ParYashH2V.Visible = false;
ParYashH3N.Visible = ParYashH3S.Visible = ParYashH3V.Visible = false;
ParYashH41.Visible = ParYashH42.Visible = ParYashH43.Visible = ParYashH44.Visible = false;
//ImageKorDvaYash.Visible = ImageKorTriYash.Visible = ImageKorFourYash.Visible = false;
break;
case 2: // Количество ящиков - 2 ящика
// Определяем видимость общих свойств
ParYashH.Visible = false;
ParYashH2.Visible = true;
ParYashH3.Visible = ParYashH4.Visible = false;
ParYashH2N.Visible = ParYashH2V.Visible = true;
ParYashH3N.Visible = ParYashH3S.Visible = ParYashH3V.Visible = false;
ParYashH41.Visible = ParYashH42.Visible = ParYashH43.Visible = ParYashH44.Visible = false;
//ImageKorDvaYash.Visible = true;
//ImageKorTriYash.Visible = ImageKorFourYash.Visible = false;
break;
case 3: // Количество ящиков - 3 ящика
// Определяем видимость свойств
ParYashH.Visible = false;
ParYashH3.Visible = true;
ParYashH2.Visible = ParYashH4.Visible = false;
ParYashH2N.Visible = ParYashH2V.Visible = false;
ParYashH3N.Visible = ParYashH3S.Visible = ParYashH3V.Visible = true;
ParYashH41.Visible = ParYashH42.Visible = ParYashH43.Visible = ParYashH44.Visible = false;
//ImageKorTriYash.Visible = true;
//ImageKorDvaYash.Visible = ImageKorFourYash.Visible = false;
break;
case 4: // Количество ящиков - 4 ящика
// Определяем видимость свойств
ParYashH.Visible = false;
ParYashH4.Visible = true;
ParYashH2.Visible = ParYashH3.Visible = false;
ParYashH2N.Visible = ParYashH2V.Visible = false;
ParYashH3N.Visible = ParYashH3S.Visible = ParYashH3V.Visible = false;
ParYashH41.Visible = ParYashH42.Visible = ParYashH43.Visible = ParYashH44.Visible = true;
//ImageKorFourYash.Visible = true;
//ImageKorDvaYash.Visible = ImageKorTriYash.Visible = false;
break;
}
}
[свернуть]