Форум профессиональных мебельщиков 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..
Просмотров: 985218
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
evilbaby1989 (10.07.2023)
Старый 30.08.2016, 17:31   #1211
Timofeyon
Пользователь
 
Регистрация: 09.10.2015
Сообщений: 34
Сказал(а) спасибо: 24
Поблагодарили 6 раз(а) в 4 сообщениях
Вес репутации: 0
Timofeyon пока не определено
По умолчанию

Цитата:
Сообщение от maxgmv Посмотреть сообщение
Если Вас правильно понял.
То у группы есть свойство Expanded (Развернуты ли вложенные свойства).
Спасибо за подсказку, но почему то не получается.
Правильно ли вывожу свойства
Material.Expanded = false; ?

Как работает "OnDeactivate" ?

Сколько интересных свойств, жаль что негде больше почитать и посмотреть на наглядных примерах.

Maxgmv, как вы освоили все эти методы и функции?



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


Kupe1 = Prop.NewCombo('Меню', 'Размеры\nМатериалы\nИнформация\nСекция1');
Kupe1.Visible = false;
Kupe2 = Prop.NewCombo('Меню', 'Размеры\nМатериалы\nИнформация\nСекция1\nСекция2');
Kupe2.Visible = false;
Kupe3 = Prop.NewCombo('Меню', 'Размеры\nМатериалы\nИнформация\nСекция1\nСекция2\nСекция3');
Kupe3.Visible = false;
Kupe4 = Prop.NewCombo('Меню', 'Размеры\nМатериалы\nИнформация\nСекция1\nСекция2\nСекция3\nСекция4');
Kupe4.Visible = false;

Gsize = Prop.NewGroup('Корпус'); // меню Корпус
z2 = Gsize.NewNumber('Глубина', 300); // под-меню - глубина
h2 = Gsize.NewNumber('Высота', 300); // под-меню - высота


Sek = Gsize.NewCombo('Количество секций', '2\n3\n4\n5\n6');
Gsize2 = Gsize.NewGroup('Основные');
Gsize2

t = Gsize2.NewNumber('Ширина', 400); // под-меню - ширина
h1 = Gsize2.NewNumber('Высота ног',100); // высота ног
z1 = Gsize2.NewNumber('Отступ от стены',0);

Material = Prop.NewGroup('Материалы');
Material.Expanded = false;
Mat = Material.NewMaterial('Корпус');
Mt = Material.NewMaterial('Задняя стенка');


OkBtn = Prop.NewButton('Построить'); //Обработка нажатия на кнопку Построить
OkBtn.OnClick = function()
{
[свернуть]
Timofeyon вне форума   Ответить с цитированием Вверх
Старый 30.08.2016, 18:29   #1212
Briz
Местный
 
Регистрация: 30.11.2011
Сообщений: 283
Сказал(а) спасибо: 275
Поблагодарили 803 раз(а) в 179 сообщениях
Вес репутации: 358
Briz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личностьBriz - просто великолепная личность
По умолчанию

1) OnActivate / OnDeactivate срабатывает когда пользователь выделяет строку со свойством и когда переходит с выделенного свойства на другое соответственно.

2) Я бы попробовал свертывать группу Material.Expanded = false; в то время, когда вы меняете видимость свойств
Briz вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
maxgmv (31.08.2016), zorro (30.08.2016)
Старый 30.08.2016, 18:57   #1213
Timofeyon
Пользователь
 
Регистрация: 09.10.2015
Сообщений: 34
Сказал(а) спасибо: 24
Поблагодарили 6 раз(а) в 4 сообщениях
Вес репутации: 0
Timofeyon пока не определено
По умолчанию

Цитата:
Сообщение от Briz Посмотреть сообщение
1) OnActivate / OnDeactivate срабатывает когда пользователь выделяет строку со свойством и когда переходит с выделенного свойства на другое соответственно.

2) Я бы попробовал свертывать группу Material.Expanded = false; в то время, когда вы меняете видимость свойств
Как это будет выглядеть в скрипте? Уже тритий час сижу не могу понять Не хватает мне знаний... так что спасибо всем кто не равнодушен к моим вопросам.
Timofeyon вне форума   Ответить с цитированием Вверх
Старый 31.08.2016, 10:17   #1214
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Timofeyon Посмотреть сообщение
Как это будет выглядеть в скрипте? Уже тритий час сижу не могу понять
Скиньте весь скрипт, посмотреть. Можете в личку.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
Старый 03.09.2016, 17:47   #1215
Timofeyon
Пользователь
 
Регистрация: 09.10.2015
Сообщений: 34
Сказал(а) спасибо: 24
Поблагодарили 6 раз(а) в 4 сообщениях
Вес репутации: 0
Timofeyon пока не определено
По умолчанию

Цитата:
Сообщение от maxgmv Посмотреть сообщение
Скиньте весь скрипт, посмотреть. Можете в личку.

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

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

Make();
Action.Continue();
function MakeProperties() {
Prop = Action.Properties;

Tumba = Prop.NewCombo('Меню', 'Размеры\nМатериалы\nИнформация');
Korpus = Prop.NewGroup('Корпус');
z2 = Korpus.NewNumber('Глубина', 300);
h2 = Korpus.NewNumber('Высота', 300);
t = Korpus.NewNumber('Ширина', 400);
Dop = Korpus.NewGroup('Дополнительно');
h1 = Dop.NewNumber('Высота ног',100);
z1 = Dop.NewNumber('Отступ от стены',0);

Material = Prop.NewGroup('Материалы');
Mat = Material.NewMaterial('Корпус');
Mt = Material.NewMaterial('Задняя стенка');
MatDop = Material.NewGroup('Дополнительно');
MatDvp = MatDop.NewMaterial('Дно ящика');
MatZc = Material.NewMaterial('Задняя стенка');

Info = Prop.NewGroup('Информация');
VFas = Info.NewString('Высота фасада');
VFas.Enabled = false;
VYaz = Info.NewString('Высота ящика');
VYaz.Enabled = false;
NapYaz = Info.NewString('Длина направл');
NapYaz.Enabled = false;


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

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

Prop.OnChange = function() { //Обработка любого изменения значений свойств
Make(); //Вызываем функцию построения всех панелей
}


}

function Make() {


DeleteNewObjects();
BeginParametricBlock("Тумбочка");

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

switch (Tumba.ItemIndex) {
case 0:
Korpus.Visible = true;
Material.Visible = false;
Info.Visible = false;
break

case 1:
Korpus.Visible = false;
Material.Visible = true;
Info.Visible = false;
break

case 2:
Korpus.Visible = false;
Material.Visible = false;
Info.Visible = true;
break
}


Боковина = AddVertPanel(z1.Value, h1.Value+Thick, z2.Value, h2.Value,0);
Боковина.Name = "Боковина";

Низ = AddHorizPanel(0, z1.Value, t.Value, z2.Value, h1.Value)
Низ.Name = "Низ";
Низ.TextureOrientation = TextureOrientation.Horizontal

}

EndParametricBlock(); // закончим создание тумбочки
[свернуть]
Timofeyon вне форума   Ответить с цитированием Вверх
Старый 05.09.2016, 10:26   #1216
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Timofeyon, теперь у Вас должно получится. В выпадающем списке Размеры сделал все группы свернуты. Дальше разберетесь.

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

FileOptions = 'Настройки.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Информация');
Korpus = Prop.NewGroup('Корпус');
Korpus.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
z2 = Korpus.NewNumber('Глубина', 300);
h2 = Korpus.NewNumber('Высота', 300);
t = Korpus.NewNumber('Ширина', 400);
Dop = Korpus.NewGroup('Дополнительно');
Dop.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
h1 = Dop.NewNumber('Высота ног', 100);
z1 = Dop.NewNumber('Отступ от стены', 0);

Material = Prop.NewGroup('Материалы');
Mat = Material.NewMaterial('Корпус');
Mt = Material.NewMaterial('Задняя стенка');
MatDop = Material.NewGroup('Дополнительно');
MatDvp = MatDop.NewMaterial('Дно ящика');
MatZc = Material.NewMaterial('Задняя стенка');

Info = Prop.NewGroup('Информация');
VFas = Info.NewString('Высота фасада');
VFas.Enabled = false;
VYaz = Info.NewString('Высота ящика');
VYaz.Enabled = false;
NapYaz = Info.NewString('Длина направл');
NapYaz.Enabled = false;


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

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

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

break;
case 1:
Korpus.Visible = false;
Material.Visible = true;
Info.Visible = false;
break;
case 2:
Korpus.Visible = false;
Material.Visible = false;
Info.Visible = true;
break;
};
Make(); //Вызываем функцию построения всех панелей
};
Make();

function Make() {


DeleteNewObjects();
BeginParametricBlock("Тумбочка");

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



Боковина = AddVertPanel(z1.Value, h1.Value + Thick, z2.Value, h2.Value, 0);Боковина.Name = "Боковина";

Низ = AddHorizPanel(0, z1.Value, t.Value, z2.Value, h1.Value);Низ.Name = "Низ";Низ.TextureOrientation = TextureOrientation.Horizontal
EndParametricBlock(); // закончим создание тумбочки
};
[свернуть]
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
5 пользователя(ей) сказали cпасибо:
aleksanrhome (25.06.2017), andronf (05.09.2016), Briz (05.09.2016), Timofeyon (05.09.2016), тех.нолог (05.09.2016)
Старый 05.09.2016, 12:48   #1217
netonielo
Новичок
 
Регистрация: 24.03.2014
Сообщений: 19
Сказал(а) спасибо: 2
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
netonielo пока не определено
По умолчанию

Почему после добавления пазов скриптами они в спецификации не отображаются?
netonielo вне форума   Ответить с цитированием Вверх
Старый 05.09.2016, 14:17   #1218
maxgmv
VIP
 
Аватар для maxgmv
 
Регистрация: 15.11.2008
Адрес: г.Москва
Сообщений: 498
Сказал(а) спасибо: 3,218
Поблагодарили 1,353 раз(а) в 312 сообщениях
Вес репутации: 507
maxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордитсяmaxgmv за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от netonielo Посмотреть сообщение
Почему после добавления пазов скриптами они в спецификации не отображаются?
Скрипт скидывайте.
__________________
Обходя разложенные грабли - ты теряешь драгоценный ОПЫТ!
maxgmv вне форума   Ответить с цитированием Вверх
Старый 05.09.2016, 14:52   #1219
netonielo
Новичок
 
Регистрация: 24.03.2014
Сообщений: 19
Сказал(а) спасибо: 2
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
netonielo пока не определено
По умолчанию

Вот

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

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();

function MakeProperties() {
//Создание и заполнение окна свойств
Prop = Action.Properties;
Image = Prop.NewImage('Схема изделия', 'Схема.wmf');
Image.MaxHeight = 250;
Dl = Prop.NewNumber('Ширина', 600);
Gl = Prop.NewNumber('Глубина', 560);
H = Prop.NewNumber('Высота', 720);
Hd = Prop.NewNumber('Размер до дна', 0);
//Fas = Prop.NewNumber('Размер фаски', 50);
Korpus = Prop.NewGroup('Корпус')
MatKorp = Korpus.NewMaterial('Материал корпуса');
KrVidimKorp = Korpus.NewButt('Видимая кромка');
KrNotVidimKorp = Korpus.NewButt('Невидимая кромка');

Polki = Prop.NewGroup('Полки');
KolPolok = Polki.NewNumber('Количество полок', 0);
OtstPol = Polki.NewNumber('Отступ от Лев/Пр боковины', 2);
OtstPered = Polki.NewNumber('Отступ от переда', 20);
OtstZad = Polki.NewNumber('Отступ от зада', 16);
PolkD= Polki.NewNumber('Количество полкодерж ', 4);
PolkMinRasst= Polki.NewNumber('Мин расст от низа/верха', 208);
//kolPolok.value=1;

ZadnStenka = Prop.NewGroup('Задняя стенка');
MatZadnStenka = ZadnStenka.NewMaterial('Материал');
//KD=1;
Dver = Prop.NewGroup('Дверь');
KolDver = Dver.NewNumber('Количество дверей', 1);
//if (KD > 2)
//{
//alert ('Введите число не более 2’);
//KD=1;
//}
//KolDver = KD

MatDver = Dver.NewMaterial('Материал');
KrDver = Dver.NewButt('Кромка');
Petli = Dver.NewFurniture('Петля');
Freza = Dver.NewSelector('Профиль фрезы');
TipFilenki = Dver.NewCombo('Тип филенки', 'Тип1\nТип2\nТип3\nТип4');
Freza.OnClick = function() {
Freza.Value = system.askFileName('frw');
};

OtstupFil = Dver.NewNumber('Отступ филенки от края', 80);
Rad = Dver.NewNumber('Радиус сопряжений', 80);

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

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

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

function Make() {
//Удаление старых объектов из области скрипта
DeleteNewObjects();
//Определяем толщину задней стенки для правильного формирования толщины паза
MatZadnStenka.SetActive();
ThickZadSt = ActiveMaterial.Thickness;

MatKorp.SetActive();
//Считываем толщину текущего материала
Thick = ActiveMaterial.Thickness;

Krishka = AddHorizPanel(Thick, 0, Dl.Value - Thick, Gl.Value, H.Value - Thick);
//Присваиваем панели имя
Krishka.Name = 'Крышка';
Krishka.AddButt(KrNotVidimKorp, 0);
/* Krishka.AddButt(KrVidimKorp, 1); */
Krishka.AddButt(KrVidimKorp, 2);
/* Krishka.AddButt(KrVidimKorp, 3); */
// Стоим паз
Cut = Krishka.Cuts.Add();
Traj = Cut.Trajectory;
Traj.AddLine(0, -12, Dl.Value, -12);
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, 0, -ThickZadSt - 1, 10);
Krishka.Build();
//Ставим левый бок,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
LevBok = AddVertPanel(0, Hd.Value, Gl.Value, H.Value , 0);
//Присваиваем панели имя
LevBok.Name = 'Боковина левая';
//LevBok.Contour.Facet(0, 0, Fas.Value);
LevBok.AddButt(KrNotVidimKorp, 0);
LevBok.AddButt(KrVidimKorp, 1);
LevBok.AddButt(KrNotVidimKorp, 2)
LevBok.AddButt(KrNotVidimKorp, 3);
LevBok.AddButt(KrNotVidimKorp, 4);
Cut = LevBok.Cuts.Add();
Traj = Cut.Trajectory;
Traj.AddLine(12, 0, 12, H.Value );
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, 0, -ThickZadSt - 1, 10);
LevBok.Build();
//Ставим правый бок,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
PravBok = AddSymmetry(LevBok, NewVector(Dl.Value / 2, 0, 0), AxisX);
//Присваиваем панели имя
PravBok.Name = 'Боковина правая';




//Ставим дно...............................................................................
Dno = AddHorizPanel(Thick, 0, Dl.Value - Thick , Gl.Value, Hd.Value);

//Присваиваем панели имя
Dno.Name = 'Дно';
Dno.AddButt(KrNotVidimKorp, 0);
/* Dno.AddButt(KrVidimKorp, 1); */
Dno.AddButt(KrVidimKorp, 2)
/* Dno.AddButt(KrVidimKorp, 3); */
Cut = Dno.Cuts.Add();
Traj = Cut.Trajectory;
Traj.AddLine(0, -12, Dl.Value , -12);
ContPaz = Cut.Contour;
ContPaz.AddRectangle(0, Thick, -ThickZadSt - 1, Thick - 10);
Dno.Build();


/* //Ставим цоколь,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Cokol = AddFrontPanel(0, 5, Dl.Value , Hd.Value, Gl.Value - 10 - Thick);
//Присваиваем панели имя
Cokol.Name = 'Цоколь';
Cokol.AddButt(KrNotVidimKorp, 0);
Cokol.AddButt(KrNotVidimKorp, 1);
Cokol.AddButt(KrNotVidimKorp, 2);
Cokol.AddButt(KrNotVidimKorp, 3);
Cokol.Build();
//...................................................... */
//Вычисляем монтажную планку
KolShag=Gl.Value / 32^ 0
ShMontPl=100;
/* if (ShMontPl < 84)
{
while (ShMontPl<84)
{
KolShag=KolShag-1;
ShMontPl=(Gl.Value-KolShag*32);
}
} */

//.....................................................................
//Вычисляем кол-во полкодержателей
KolPolkDer = PolkD.Value;
// alert('kol polkod'+KolPolkDer);
//alert(KolPolkDer.value);
ShagPolkDer=96;
RasstMegduKrPolk = (H.Value - Hd.Value- Thick- (KolPolkDer-1)*ShagPolkDer)/2;
//Кому не надо сообщение закомментируйте строку
alert('Количество полкодержателей '+' '+ KolPolkDer+' ' + 'Расстояние от края ' + ' '+ RasstMegduKrPolk);
//..............................................
//Устанавливаем ширину отступа от переда-зада для фурнитуры
Dz = Gl.Value - ShMontPl/2;
Dz1 = Gl.Value -Gl.Value + ShMontPl/2;
//....................................................
// if(KolPolkDer = 0)
// {
// Sdvig=(H.Value - Thick - Hd.Value - Thick - KolPolok.Value*Thick) / (KolPolok.Value + 1);
//}
//else
//{
Sdvig =RasstMegduKrPolk;
//}
//Sdvig=(H.Value - Thick - Hd.Value - Thick - KolPolok.Value*Thick) / (KolPolok.Value + 1);
Hp = Hd.Value+ Thick ;
HPol = Hp + Sdvig;
//alert(HPol);
for (var k = 0; k < KolPolkDer; k++)
{
OtvPolk = OpenFurniture('5x9.f3d');
OtvPolk.Mount1(LevBok, Thick, HPol, Dz, 0);
OtvPolk.Mount1(LevBok, Thick, HPol, Dz1, 0);
OtvPolk.Mount1(PravBok, Thick, HPol, Dz, 0);
OtvPolk.Mount1(PravBok, Thick, HPol, Dz1, 0);
HPol += ShagPolkDer

}
HPolki = Hp + Sdvig;
for (var i = 0; i < KolPolok.Value; i++)
{
Polka = AddHorizPanel(Thick + OtstPol.Value, OtstZad.Value , Dl.Value - Thick - OtstPol.Value, Gl.Value - OtstPered.Value, HPolki+2.5);
Polka.Name = 'Полка';
Polka.AddButt(KrNotVidimKorp, 0);
Polka.AddButt(KrNotVidimKorp, 1);
Polka.AddButt(KrVidimKorp, 2);
Polka.AddButt(KrNotVidimKorp, 3);
Polka.Build();
Polkodergatel = OpenFurniture('Полкодержатель.f3d');
Polkodergatel.Mount(Polka, LevBok, 2 * Thick, HPolki, Dz);
Polkodergatel.Mount(Polka, LevBok, 2 * Thick, HPolki, Dz1);
Polkodergatel.Mount(Polka, PravBok, 2 * Thick, HPolki, Dz);
Polkodergatel.Mount(Polka, PravBok, 2 * Thick, HPolki, Dz1);
HPolki+=ShagPolkDer;
}
/* //Ставим монтажные планки,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
MontPlZad = AddHorizPanel(Thick,16, Dl.Value- Thick,ShMontPl+16, H.Value- Thick );
//Присваиваем панели имя
MontPlZad.Name = 'Монт пл зад';
MontPlZad.AddButt(KrNotVidimKorp, 0);
MontPlZad.AddButt(KrVidimKorp, 2);
MontPlZad.Build();

MontPlPer = AddHorizPanel(Thick,Gl.Value-ShMontPl, Dl.Value- Thick,Gl.Value, H.Value- Thick );
//Присваиваем панели имя
MontPlPer.Name = 'Монт пл пер';
MontPlPer.AddButt(KrNotVidimKorp, 2);
MontPlPer.AddButt(KrVidimKorp, 0);
MontPlPer.Build(); */
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
//Ставим заднюю стенку,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
MatZadnStenka.SetActive();
ZadnStenka = AddFrontPanel(8, Hd.Value + 8,
Dl.Value - 8, H.Value-8, 13);
//Присваиваем панели имя
ZadnStenka.Name = 'Задняя стенка';
ZadnStenka.Build();
//,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
//Ставим двери,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
KolD=KolDver.Value * 1;

if (KolD==1)
{
Block = BeginBlock("Дверь")
MatDver.SetActive();
ThickDver = ActiveMaterial.Thickness;
Dver = AddFrontPanel(2, Hd.Value + 2, Dl.Value - 2, H.Value - 2, Gl.Value);
//Присваиваем панели имя
Dver.Name = 'Дверь';
for (var k = 0; k < 4; k++) {
Dver.AddButt(KrDver, k)
}
Rucka = OpenFurniture('Ручка-скоба 128 UN47_128.f3d');
Rucka.Mount1(Dver, Dl.Value - 2 - 40, H.Value - 115, Gl.Value + ThickDver, 0);


FPetli = Petli.Value;
Block.AnimType = AnimationType.DoorLeft;
Ost = (Dver.GSize.y - 200) % 32 //Остаток от деления высоты двери - 200 на 32
k = (Dver.GSize.y - 200 - Ost) / 32 // Сколько раз укладывается размер 32
Dy = (Dver.GSize.y - k * 32) * 0.5 //Смещение пели от низа или верха двери
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy, 0);
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy + k * 32, 0);
}
else
{
Block = BeginBlock("Дверь")

MatDver.SetActive();
ThickDver = ActiveMaterial.Thickness;
Dver = AddFrontPanel(2, Hd.Value + 2, Dl.Value /2- 2, H.Value - 2, Gl.Value);
//Присваиваем панели имя
Dver.Name = 'Дверь1';
for (var k = 0; k < 4; k++) {
Dver.AddButt(KrDver, k)
}
Rucka = OpenFurniture('Ручка-скоба 128 UN47_128.f3d');
Rucka.Mount1(Dver, Dl.Value /2 - 42, H.Value - 115, Gl.Value + ThickDver, 0);


FPetli = Petli.Value;
Block.AnimType = AnimationType.DoorLeft;
Ost = (Dver.GSize.y - 200) % 32 //Остаток от деления высоты двери - 200 на 32
k = (Dver.GSize.y - 200 - Ost) / 32 // Сколько раз укладывается размер 32
Dy = (Dver.GSize.y - k * 32) * 0.5 //Смещение пели от низа или верха двери
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy, 0);
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy + k * 32, 0);
MatDver.SetActive();

ThickDver = ActiveMaterial.Thickness;


Dver1 = AddFrontPanel(Dl.Value /2+ 2, Hd.Value + 2, Dl.Value- 2, H.Value - 2, Gl.Value);
//Присваиваем панели имя
Dver.Name = 'Дверь2';
for (var k = 0; k < 4; k++) {
Dver.AddButt(KrDver, k)
}
Rucka = OpenFurniture('Ручка-скоба 128 UN47_128.f3d');
Rucka.Mount1(Dver, Dl.Value /2+ 42, H.Value - 115, Gl.Value + ThickDver, 0);

//alert ('Ручка-скоба 128 UN47_128.f3d');
FPetli = Petli.Value;
Block.AnimType = AnimationType.DoorLeft;
Ost = (Dver.GSize.y - 200) % 32 //Остаток от деления высоты двери - 200 на 32
k = (Dver.GSize.y - 200 - Ost) / 32 // Сколько раз укладывается размер 32
Dy = (Dver.GSize.y - k * 32) * 0.5 //Смещение пели от низа или верха двери
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy, 0);
FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy + k * 32, 0);
}

//Block = BeginBlock("Дверь")
// MatDver.SetActive();
// ThickDver = ActiveMaterial.Thickness;
// Dver = AddFrontPanel(2, Hd.Value + 2, Dl.Value - 2, H.Value - 2, Gl.Value);
//Присваиваем панели имя
// Dver.Name = 'Дверь';
// for (var k = 0; k < 4; k++) {
// Dver.AddButt(KrDver, k)
// }
// Rucka = OpenFurniture('Ручка-скоба 128 UN47_128.f3d');
// Rucka.Mount1(Dver, Dl.Value - 2 - 40, H.Value - 115, Gl.Value + ThickDver, 0);


// FPetli = Petli.Value;
// Block.AnimType = AnimationType.DoorLeft;
// Ost = (Dver.GSize.y - 200) % 32 //Остаток от деления высоты двери - 200 на 32
// k = (Dver.GSize.y - 200 - Ost) / 32 // Сколько раз укладывается размер 32
// Dy = (Dver.GSize.y - k * 32) * 0.5 //Смещение пели от низа или верха двери
// FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy, 0);
// FPetli.Mount(LevBok, Dver, 2 * Thick, Dver.PositionY + Dy + k * 32, 0);




//Евровинт 6х50.f3d
Evrovint = OpenFurniture('Евровинт 6х50.f3d');
Evrovint.Mount(Dno, LevBok, Thick/2, Hd.Value, Dz);
Evrovint.Mount(Dno, LevBok, Thick/2, Hd.Value, Dz1);
Evrovint.Mount(Dno, PravBok,Dl.Value- Thick/2, Hd.Value, Dz);
Evrovint.Mount(Dno, PravBok,Dl.Value- Thick/2, Hd.Value, Dz1);
Evrovint.Mount(Krishka, LevBok, Thick/2, Hd.Value, Dz);
Evrovint.Mount(Krishka, LevBok, Thick/2, Hd.Value, Dz1);
Evrovint.Mount(Krishka, PravBok, Dl.Value- Thick/2, Hd.Value, Dz);
Evrovint.Mount(Krishka, PravBok, Dl.Value- Thick/2, Hd.Value, Dz1);


//Опора регулируемая 100..125 в сборе.f3d

/* Lag = OpenFurniture('Опора регулируемая 100..125 в сборе.f3d'); */



// ножки на горизонтальные
/*
Lag.Mount1(Dno, 53, -50, Gl.Value-100, 0);
Lag.Mount1(Dno, Dl.Value -53, -50, Gl.Value-100, 0);
Lag.Mount1(Dno, Dl.Value -53, -50, 100, 0);
Lag.Mount1(Dno, 53, -50, 100, 0);

Samorez = OpenFurniture('Шуруп 4х30.f3d');
Samorez.Mount1(MontPlPer, Dl.Value-Dl.Value+100, H.Value - Thick, Gl.Value -ShMontPl/2, 0);
Samorez.Mount1(MontPlPer, Dl.Value-100, H.Value - Thick, Gl.Value -ShMontPl/2, 0);
Samorez.Mount1(MontPlZad, Dl.Value-Dl.Value+100, H.Value - Thick, ShMontPl/2+16, 0);
Samorez.Mount1(MontPlZad, Dl.Value-100, H.Value - Thick, ShMontPl/2+16, 0);
//Ставим гвозди,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
//Шаг установки гвоздя,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
ShagGvozd = 150;
//,,,,,,,,,,,,,,,,,,,,,,,,,,,
Gvozd = OpenFurniture('Гвоздь 1х16.f3d');
X=Dl.Value/2-ShagGvozd/2;
for (k=Dl.Value/2+ShagGvozd/2;k<Dl.Value;k++)
{
Gvozd.Mount(Dno,ZadnStenka, X, Hd.Value+Thick, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(Dno,ZadnStenka, k, Hd.Value+Thick, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(MontPlZad,ZadnStenka, X, H.Value-Thick, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(MontPlZad,ZadnStenka, k, H.Value-Thick, Gl.Value-Gl.Value-ThickZadSt);
k+=ShagGvozd;
X+=-ShagGvozd;
}
Y=(H.Value-Hd.Value)/2-ShagGvozd/2;
for (k=(H.Value-Hd.Value)/2+ShagGvozd/2;k<H.Value;k++)
{
Gvozd.Mount(LevBok,ZadnStenka, Dl.Value -Dl.Value +Thick/2, Y, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(LevBok,ZadnStenka, Dl.Value -Dl.Value +Thick/2, k, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(PravBok,ZadnStenka, Dl.Value -Thick/2, Y, Gl.Value-Gl.Value-ThickZadSt);
Gvozd.Mount(PravBok,ZadnStenka, Dl.Value -Thick/2, k, Gl.Value-Gl.Value-ThickZadSt);
k+=ShagGvozd;
X+=-ShagGvozd;

} */
}
[свернуть]
netonielo вне форума   Ответить с цитированием Вверх
Старый 05.09.2016, 15:15   #1220
Timofeyon
Пользователь
 
Регистрация: 09.10.2015
Сообщений: 34
Сказал(а) спасибо: 24
Поблагодарили 6 раз(а) в 4 сообщениях
Вес репутации: 0
Timofeyon пока не определено
По умолчанию

Цитата:
Сообщение от maxgmv Посмотреть сообщение
Timofeyon, теперь у Вас должно получится. В выпадающем списке Размеры сделал все группы свернуты. Дальше разберетесь.

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

FileOptions = 'Настройки.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Информация');
Korpus = Prop.NewGroup('Корпус');
Korpus.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
z2 = Korpus.NewNumber('Глубина', 300);
h2 = Korpus.NewNumber('Высота', 300);
t = Korpus.NewNumber('Ширина', 400);
Dop = Korpus.NewGroup('Дополнительно');
Dop.Expanded = false;//ВИДИМОСТЬ ГРУППЫ
h1 = Dop.NewNumber('Высота ног', 100);
z1 = Dop.NewNumber('Отступ от стены', 0);

Material = Prop.NewGroup('Материалы');
Mat = Material.NewMaterial('Корпус');
Mt = Material.NewMaterial('Задняя стенка');
MatDop = Material.NewGroup('Дополнительно');
MatDvp = MatDop.NewMaterial('Дно ящика');
MatZc = Material.NewMaterial('Задняя стенка');

Info = Prop.NewGroup('Информация');
VFas = Info.NewString('Высота фасада');
VFas.Enabled = false;
VYaz = Info.NewString('Высота ящика');
VYaz.Enabled = false;
NapYaz = Info.NewString('Длина направл');
NapYaz.Enabled = false;


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

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

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

break;
case 1:
Korpus.Visible = false;
Material.Visible = true;
Info.Visible = false;
break;
case 2:
Korpus.Visible = false;
Material.Visible = false;
Info.Visible = true;
break;
};
Make(); //Вызываем функцию построения всех панелей
};
Make();

function Make() {


DeleteNewObjects();
BeginParametricBlock("Тумбочка");

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



Боковина = AddVertPanel(z1.Value, h1.Value + Thick, z2.Value, h2.Value, 0);Боковина.Name = "Боковина";

Низ = AddHorizPanel(0, z1.Value, t.Value, z2.Value, h1.Value);Низ.Name = "Низ";Низ.TextureOrientation = TextureOrientation.Horizontal
EndParametricBlock(); // закончим создание тумбочки
};
[свернуть]
Спасобо Maxgmv! Но увы... А у Вас работает? Если работает, тогда наверное попробую переустановить Базис.
Timofeyon вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков 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


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


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

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