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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 00:17  
БАЗИС 11-2023 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,943

Сказал(а) спасибо: 7,295
Поблагодарили 16,918 раз(а) в 3,211 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 00:17
Рейтинг: ()

Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.

Новшества Базис Мебельщик версии 11:
.....
6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....

Новшества Базис Мебельщик версии 2021:

16. Отладчик скриптов.



VISUAL CODE

Код:
Примеры скриптов из видео

Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
node.js обновился с 7.0.0 до 8.11.3

Напиши себе Базис или Моя первая тумбочка 2
Комплект - руководство+ файлы+ скрипт

Обратите внимание на полезные ответы в этой теме!

__________________
.
▓▒░ Халявы не бывает ░▒▓

[ Как правильно задавать вопросы на форумах ] | [ Как просто, быстро и правильно опубликовать фото и файлы в сообщении 15.03.2024]

[ USDownloader - удобно и безопасно скачиваем с файлообменников 09.02.2024] | [ Обходим блокировки сайтов, торрентов, месенджеров, ФО - RU - UA]


Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д. >сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 599720
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 05.11.2019, 16:49   #31
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от seserg Посмотреть сообщение
теперь значение чекбокса в форме нужно писать без кавычек http://prntscr.com/psqwzx
Странно, всю жизнь без кавычек писал. А когда у вас надо было с кавычками писать?
Letos вне форума   Ответить с цитированием Вверх
Старый 05.11.2019, 17:21   #32
seserg
Новичок
 
Регистрация: 19.06.2013
Сообщений: 12
Сказал(а) спасибо: 5
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
seserg пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Странно, всю жизнь без кавычек писал. А когда у вас надо было с кавычками писать?
10 базис при построении формы так записывал. Теперь сам удивляюсь, что все работало без ошибок.
seserg вне форума   Ответить с цитированием Вверх
Старый 06.11.2019, 09:42   #33
t01849
Пользователь
 
Регистрация: 09.02.2014
Сообщений: 58
Сказал(а) спасибо: 16
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Опытным путём удалось получить следующий код:
PHP код:
var edge GetEdge('Выделите ребро', {
    
x0,
    
y0,
    
z0
);
var 
size AddSize(edge.GFirstedge.GLast, {
    
x: (edge.First.edge.Last.x) / 2,
    
y: (edge.First.edge.Last.y) / 2,
    
z: (edge.First.edge.Last.z) / 2
}); 
Есть где то информация по AddSize? И можно ли размер без стрелок ставить? Заранее спасибо!
t01849 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
wizardpnz (06.11.2019)
Старый 06.11.2019, 11:54   #34
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от t01849 Посмотреть сообщение
Есть где то информация по AddSize? И можно ли размер без стрелок ставить? Заранее спасибо!
1. Информации по функции AddSize кроме автодополнения нигде нет. Для неё указываются точка начала, точка конца и точка "верхняя". Как я понял, "верхняя" точка нужна для определения поворота размера в пространстве.
2. По коду не нашёл ничего похожего на настройку "со стрелками или без", не знаю, есть ли вообще возможность убрать стрелки у размера.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (06.11.2019), t01849 (06.11.2019)
Старый 08.11.2019, 12:55   #35
t01849
Пользователь
 
Регистрация: 09.02.2014
Сообщений: 58
Сказал(а) спасибо: 16
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

Всем привет. Может кто знает, как скриптом выделить несколько панелей(может и больше) и подсчитать их площадь. Пробовал через for, не получается. Спасибо.
t01849 вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 14:35   #36
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от t01849 Посмотреть сообщение
Всем привет. Может кто знает, как скриптом выделить несколько панелей(может и больше) и подсчитать их площадь. Пробовал через for, не получается. Спасибо.
1. Смотря как вам выделить надо - если пользователь выделяет нужные панели, а потом запускает скрипт, то тут всё просто: надо лишь пройтись по выделенным панелям.
PHP код:
for (var 0Model.SelectionCounti++){
  
// Выделенный объект за номером i
  
var sel Model.Selections[i];
  
// Дальше действия с выделенным объектом.

Если скрипт сам должен выделить панели - то по какому алгоритму?

2. Подсчёт площади - серьёзная вещь. Простой способ - перемножить ширину на длину, например

Выдать площадь выделенной панели в метрах квадратных


PHP код:
var Model.Selected.AsPanel;
var 
panelS p.Contour.Width p.Contour.Height 0.000001;
alert(panelS ' m2'); 
[свернуть]


Способ сложнее - считать площадь по элементам контура. Этого пока вроде никто не делал.
Letos вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 14:45   #37
t01849
Пользователь
 
Регистрация: 09.02.2014
Сообщений: 58
Сказал(а) спасибо: 16
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

после запуска скрипта - форма(не модальная) с кнопкой "вычислить"(это сам сделаю), выделяю панели(какие необходимы для просчёта), нажимаю кнопку, алерт - площадь...(тоже сам). Не получается у меня что то.

Добавлено через 2 минуты
Цитата:
Сообщение от t01849 Посмотреть сообщение
после запуска скрипта - форма(не модальная) с кнопкой "вычислить"(это сам сделаю), выделяю панели(какие необходимы для просчёта), нажимаю кнопку, алерт - площадь...(тоже сам). Не получается у меня что то.
Не могу сделать выделение нескольких панелей, затем суммировать их площади
t01849 вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 15:28   #38
Vaseok23
Новичок
 
Регистрация: 22.10.2017
Сообщений: 28
Сказал(а) спасибо: 38
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Vaseok23 пока не определено
По умолчанию в 10-тке работал, в 11 выдает кучу ошибок

подскажите в чем может быть дело

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


FileOptions = 'blum Box.xml';
MakeProperties();
NewBtn = NewButtonInput('APLICA');
NewBtn.OnChange = function() {
Action.Commit();
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);

}
Action.Finish();
}

Action.Properties.Load(FileOptions);
function MakeProperties() {

Prop = Action.Properties;
Tip = Prop.NewCombo('Tip Box', 'TandemBox plus\nTandembox Antaro\nLegrabox')
T = Prop.NewImage('TandemBOX', 'Antaro.png')
L = Prop.NewImage('Legrabox', 'Legrabox.png')
Num = Prop.NewNumber('Numar Sertare',1)
HSertar = Prop.NewCombo('H-Sertar', 'M\nB-C\nF');
Spate = Prop.NewCombo('Tip Spate', 'PAL\nMetal')
Adancime = Prop.NewNumber('Adancime',500);
Material = Prop.NewMaterial('Material');
Cant = Prop.NewButt('Cant');




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

Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
Action.Finish();
}
Prop.OnChange = function(){
Make()}

}

SetCamera(p3dFront);
LeftPanel = GetPanel('Укажите левую панель');
RightPanel = GetPanel('Укажите правую панель');
Left = LeftPanel.GabMax.x;
Right = RightPanel.GabMin.x;
Top = GetEdge('Укажите верхнюю границу', AxisX).First.y;
Bottom = GetEdge('Укажите нижнюю границу', AxisX).First.y;

SetCamera(p3dLeft);
Front = GetEdge('Укажите переднюю границу', AxisY).First.z;

Make()
function Make(){
T.Visible = true
L.Visible = true
DeleteNewObjects()
if (Tip.ItemIndex ==1){
NL = 24
LWspt = 87
Lwfund = 75
M = 84
C = 167
D = 199 }
if (Tip.ItemIndex ==0){
NL = 24
LWspt = 87
Lwfund = 75
M = 84
B = 135
D = 199 }
if (Tip.ItemIndex ==2){
NL = 10
LWspt = 38
Lwfund = 35
M = 63
C = 148
F = 212 }

Material.SetActive()
Count = Num.Value;
Thick = ActiveMaterial.Thickness;
function Glisiere(){
if (Tip.ItemIndex == 1){
if (Adancime.Value ==500){
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L500, L.fr3d')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L500, R.fr3d')
}}
if (Adancime.Value ==400){
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L400, L.fr3d')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L400, R.fr3d')
}}}

if (Tip.ItemIndex == 2){
if (Adancime.Value ==500){
if (HSertar.ItemIndex==0){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox M Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox M Orion L500, R.FR3D')
}
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox C Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox C Orion L500, R.FR3D')
}
if (HSertar.ItemIndex==2){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox F Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox F Orion L500, R.FR3D')
}
} }
GlisieraL.Mount1(LeftPanel, Left, PosY + Thick, Front, 0)

GlisieraR.Mount1(RightPanel, Right - Thick, PosY + Thick, Front, 0)
}
function FaltL16(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Cut.Contour.AddRectangle(0, 0, 38, 8)
Cut.Name = 'Falt L ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}
function FaltR16(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(Fund.GSize.x, 0, Fund.GSize.x, -Adancime.Value+NL)
Cut.Contour.AddRectangle(0, 0, -38, 8)
//Cut.Contour.AddRectangle(0, 18, 12, 16)
Cut.Name = 'Falt R ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}
function FaltTL(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddRectangle(0, 0, 16, 2)

Cut.Name = 'Falt L ' +'16/'+ 2 + ' pe ' + (Adancime.Value - NL);
}
function FaltTR(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(Fund.GSize.x, 0, Fund.GSize.x, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddRectangle(0, 0, -16, 2)

Cut.Name = 'Falt R ' +'16/'+ 2 + ' pe ' + (Adancime.Value - NL);
}


function FaltL18(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddLine(0, 0, 0, 10)
Paz.AddLine(0, 10, 38, 10)
Paz.AddLine(38, 10, 38, 2)
Paz.AddLine(38, 2, 54, 2)
Paz.AddLine(54, 2, 54, 0)
Paz.AddLine(54, 0, 0, 0)
Cut.Name = 'Falt L ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}

function FaltR18(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddLine(Fund.GSize.x, 0, Fund.GSize.x, 10)
Paz.AddLine(Fund.GSize.x, 10, Fund.GSize.x-38, 10)
Paz.AddLine(Fund.GSize.x-38, 10, Fund.GSize.x-38, 2)
Paz.AddLine(Fund.GSize.x-38, 2, Fund.GSize.x-54, 2)
Paz.AddLine(Fund.GSize.x-54, 2, Fund.GSize.x-54, 0)
Paz.AddLine(Fund.GSize.x-54, 0, Fund.GSize.x, 0)
Cut.Name = 'Falt R ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}

function abs(){
for (var c = 0; c < 4; c++) {
SpateP.AddButt(Cant, c)
Fund.AddButt(Cant, c)}
}

PosY = Bottom;
SectionHeight = Top - Bottom;

if (HSertar.ItemIndex==0) {
Hbox = M
HboxN = 'M'}
if (HSertar.ItemIndex==1) {
if (Tip.ItemIndex ==0){
Hbox = C
HboxN = 'C' }
if (Tip.ItemIndex ==1){
Hbox = C
HboxN = 'Plus B'}
if (Tip.ItemIndex ==2){
Hbox = C
HboxN = 'C'}
}
if (HSertar.ItemIndex==2) {
if (Tip.ItemIndex ==0){
Hbox = D
HboxN = 'D'}
if (Tip.ItemIndex ==1){
Hbox = D
HboxN = 'Plus D'}
if (Tip.ItemIndex ==2){
Hbox = F
HboxN = 'F'}
}
YInc = (SectionHeight - Count * Hbox) / (Count + 1);

for (var k = 0; k < Count; k++) {
PosY += YInc;

Block = BeginParametricBlock()

if (Tip.ItemIndex ==1){
T.Visible = true
L.Visible = false


Block.Name = ('Tandembox ' + HboxN + ' la '+ Adancime.Value )


if (HSertar.ItemIndex ==0) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + M, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
} ;
if (HSertar.ItemIndex ==1) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + C, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
};
if (HSertar.ItemIndex ==2) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + D, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
};
if (Material.Thickness > 16){
FaltTL()
FaltTR() }

};
if (Tip.ItemIndex ==2){
L.Visible = true
T.Visible = false

Block.Name = ('Legrabox ' + HboxN + ' la '+ Adancime.Value )
if(HSertar.ItemIndex ==0) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + M + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};
if(HSertar.ItemIndex ==1){
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + C + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};
if(HSertar.ItemIndex ==2){
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + F + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};

if (Material.Thickness < 18){
FaltL16()
FaltR16() }
else{
FaltL18()
FaltR18()
}

}
Glisiere()

abs()
Fund.Build();
SpateP.Build();
PosY += Hbox;
EndParametricBlock()

}

SetCamera(p3dFront);}
Action.Continue()

[свернуть]


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

Добавлено через 2 минуты
Цитата:
Сообщение от t01849 Посмотреть сообщение
Не могу сделать выделение нескольких панелей, затем суммировать их площади
может так ?

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


MakeProperties();

function MakeProperties() {
Prop = Action.Properties;

OkBtn = Prop.NewButton('Расчитать');

OkBtn.OnClick = function() {
alert((weight).toFixed(2) + 'm²');

}
OkBtn = Prop.NewButton('Закончить');

OkBtn.OnClick = function() {
Action.Finish()()

}

var weight = 0;

{
i=0
while (i<10)
{



panel = GetPanel("Alege Panou");
if (panel.AsPanel) {
weight = weight +
((panel.Contour.Width) /1000) *((panel.Contour.Height) /1000 )

} } } }

[свернуть]
Vaseok23 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Letos (08.11.2019), Ovsyanicov (08.11.2019), t01849 (08.11.2019)
Старый 08.11.2019, 15:36   #39
t01849
Пользователь
 
Регистрация: 09.02.2014
Сообщений: 58
Сказал(а) спасибо: 16
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

Цитата:
Сообщение от Vaseok23 Посмотреть сообщение
подскажите в чем может быть дело

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


FileOptions = 'blum Box.xml';
MakeProperties();
NewBtn = NewButtonInput('APLICA');
NewBtn.OnChange = function() {
Action.Commit();
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);

}
Action.Finish();
}

Action.Properties.Load(FileOptions);
function MakeProperties() {

Prop = Action.Properties;
Tip = Prop.NewCombo('Tip Box', 'TandemBox plus\nTandembox Antaro\nLegrabox')
T = Prop.NewImage('TandemBOX', 'Antaro.png')
L = Prop.NewImage('Legrabox', 'Legrabox.png')
Num = Prop.NewNumber('Numar Sertare',1)
HSertar = Prop.NewCombo('H-Sertar', 'M\nB-C\nF');
Spate = Prop.NewCombo('Tip Spate', 'PAL\nMetal')
Adancime = Prop.NewNumber('Adancime',500);
Material = Prop.NewMaterial('Material');
Cant = Prop.NewButt('Cant');




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

Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
Action.Finish();
}
Prop.OnChange = function(){
Make()}

}

SetCamera(p3dFront);
LeftPanel = GetPanel('Укажите левую панель');
RightPanel = GetPanel('Укажите правую панель');
Left = LeftPanel.GabMax.x;
Right = RightPanel.GabMin.x;
Top = GetEdge('Укажите верхнюю границу', AxisX).First.y;
Bottom = GetEdge('Укажите нижнюю границу', AxisX).First.y;

SetCamera(p3dLeft);
Front = GetEdge('Укажите переднюю границу', AxisY).First.z;

Make()
function Make(){
T.Visible = true
L.Visible = true
DeleteNewObjects()
if (Tip.ItemIndex ==1){
NL = 24
LWspt = 87
Lwfund = 75
M = 84
C = 167
D = 199 }
if (Tip.ItemIndex ==0){
NL = 24
LWspt = 87
Lwfund = 75
M = 84
B = 135
D = 199 }
if (Tip.ItemIndex ==2){
NL = 10
LWspt = 38
Lwfund = 35
M = 63
C = 148
F = 212 }

Material.SetActive()
Count = Num.Value;
Thick = ActiveMaterial.Thickness;
function Glisiere(){
if (Tip.ItemIndex == 1){
if (Adancime.Value ==500){
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L500, L.fr3d')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L500, R.fr3d')
}}
if (Adancime.Value ==400){
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L400, L.fr3d')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Tandembox\\Tandembox Antaro C Alb L400, R.fr3d')
}}}

if (Tip.ItemIndex == 2){
if (Adancime.Value ==500){
if (HSertar.ItemIndex==0){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox M Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox M Orion L500, R.FR3D')
}
if (HSertar.ItemIndex==1){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox C Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox C Orion L500, R.FR3D')
}
if (HSertar.ItemIndex==2){
GlisieraL = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox F Orion L500, L.FR3D')
GlisieraR = OpenFurniture('D:\\Sharing\\Bazis10 Online\\003 Samples\\Blum\\Sertare\\Legrabox\\Legrabox F Orion L500, R.FR3D')
}
} }
GlisieraL.Mount1(LeftPanel, Left, PosY + Thick, Front, 0)

GlisieraR.Mount1(RightPanel, Right - Thick, PosY + Thick, Front, 0)
}
function FaltL16(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Cut.Contour.AddRectangle(0, 0, 38, 8)
Cut.Name = 'Falt L ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}
function FaltR16(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(Fund.GSize.x, 0, Fund.GSize.x, -Adancime.Value+NL)
Cut.Contour.AddRectangle(0, 0, -38, 8)
//Cut.Contour.AddRectangle(0, 18, 12, 16)
Cut.Name = 'Falt R ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}
function FaltTL(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddRectangle(0, 0, 16, 2)

Cut.Name = 'Falt L ' +'16/'+ 2 + ' pe ' + (Adancime.Value - NL);
}
function FaltTR(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(Fund.GSize.x, 0, Fund.GSize.x, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddRectangle(0, 0, -16, 2)

Cut.Name = 'Falt R ' +'16/'+ 2 + ' pe ' + (Adancime.Value - NL);
}


function FaltL18(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddLine(0, 0, 0, 10)
Paz.AddLine(0, 10, 38, 10)
Paz.AddLine(38, 10, 38, 2)
Paz.AddLine(38, 2, 54, 2)
Paz.AddLine(54, 2, 54, 0)
Paz.AddLine(54, 0, 0, 0)
Cut.Name = 'Falt L ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}

function FaltR18(){
Cut = Fund.AddCut()
Traj= Cut.Trajectory
Traj.AddLine(0, 0, 0, -Adancime.Value+NL)
Paz = Cut.Contour
Paz.AddLine(Fund.GSize.x, 0, Fund.GSize.x, 10)
Paz.AddLine(Fund.GSize.x, 10, Fund.GSize.x-38, 10)
Paz.AddLine(Fund.GSize.x-38, 10, Fund.GSize.x-38, 2)
Paz.AddLine(Fund.GSize.x-38, 2, Fund.GSize.x-54, 2)
Paz.AddLine(Fund.GSize.x-54, 2, Fund.GSize.x-54, 0)
Paz.AddLine(Fund.GSize.x-54, 0, Fund.GSize.x, 0)
Cut.Name = 'Falt R ' +'38/'+ 8 + ' pe ' + (Adancime.Value - NL);
}

function abs(){
for (var c = 0; c < 4; c++) {
SpateP.AddButt(Cant, c)
Fund.AddButt(Cant, c)}
}

PosY = Bottom;
SectionHeight = Top - Bottom;

if (HSertar.ItemIndex==0) {
Hbox = M
HboxN = 'M'}
if (HSertar.ItemIndex==1) {
if (Tip.ItemIndex ==0){
Hbox = C
HboxN = 'C' }
if (Tip.ItemIndex ==1){
Hbox = C
HboxN = 'Plus B'}
if (Tip.ItemIndex ==2){
Hbox = C
HboxN = 'C'}
}
if (HSertar.ItemIndex==2) {
if (Tip.ItemIndex ==0){
Hbox = D
HboxN = 'D'}
if (Tip.ItemIndex ==1){
Hbox = D
HboxN = 'Plus D'}
if (Tip.ItemIndex ==2){
Hbox = F
HboxN = 'F'}
}
YInc = (SectionHeight - Count * Hbox) / (Count + 1);

for (var k = 0; k < Count; k++) {
PosY += YInc;

Block = BeginParametricBlock()

if (Tip.ItemIndex ==1){
T.Visible = true
L.Visible = false


Block.Name = ('Tandembox ' + HboxN + ' la '+ Adancime.Value )


if (HSertar.ItemIndex ==0) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + M, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
} ;
if (HSertar.ItemIndex ==1) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + C, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
};
if (HSertar.ItemIndex ==2) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar' ;
SpateP = AddFrontPanel(Left + LWspt/2, PosY, Right - LWspt/2, PosY + D, Front - Adancime.Value + NL - Thick);
SpateP.Name = 'Spate Sertar' ;
};
if (Material.Thickness > 16){
FaltTL()
FaltTR() }

};
if (Tip.ItemIndex ==2){
L.Visible = true
T.Visible = false

Block.Name = ('Legrabox ' + HboxN + ' la '+ Adancime.Value )
if(HSertar.ItemIndex ==0) {
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + M + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};
if(HSertar.ItemIndex ==1){
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + C + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};
if(HSertar.ItemIndex ==2){
Fund = AddHorizPanel(Left + Lwfund/2, Front - Adancime.Value + NL, Right - Lwfund/2, Front, PosY);
Fund.Name = 'Fund Sertar';
SpateP = AddFrontPanel(Left + LWspt/2, PosY + Thick, Right - LWspt/2, PosY + F + Thick, Front - Adancime.Value + NL);
SpateP.Name = 'Spate Sertar';
};

if (Material.Thickness < 18){
FaltL16()
FaltR16() }
else{
FaltL18()
FaltR18()
}

}
Glisiere()

abs()
Fund.Build();
SpateP.Build();
PosY += Hbox;
EndParametricBlock()

}

SetCamera(p3dFront);}
Action.Continue()

[свернуть]


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

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

может так ?

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


MakeProperties();

function MakeProperties() {
Prop = Action.Properties;

OkBtn = Prop.NewButton('Расчитать');

OkBtn.OnClick = function() {
alert((weight).toFixed(2) + 'm²');

}
OkBtn = Prop.NewButton('Закончить');

OkBtn.OnClick = function() {
Action.Finish()()

}

var weight = 0;

{
i=0
while (i<10)
{



panel = GetPanel("Alege Panou");
if (panel.AsPanel) {
weight = weight +
((panel.Contour.Width) /1000) *((panel.Contour.Height) /1000 )

} } } }

[свернуть]
Спасибо. Доковыряю дальше. А как сделать чтобы выделение оставалось, если выделяешь несколько панелей?
t01849 вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 15:56   #40
PEHAT
Местный
 
Регистрация: 07.09.2014
Сообщений: 187
Сказал(а) спасибо: 182
Поблагодарили 211 раз(а) в 69 сообщениях
Вес репутации: 177
PEHAT - весьма и весьма положительная личностьPEHAT - весьма и весьма положительная личностьPEHAT - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от Vaseok23 Посмотреть сообщение
подскажите в чем может быть дело
нет условия
if (Tip.ItemIndex == 0){
в котором назначается GlisieraL и GlisieraR
PEHAT вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Letos (08.11.2019)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 126 Вчера 08:56
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 714 06.03.2024 09:09
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 70 29.01.2024 17:25
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53


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


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

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