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

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


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

искусственный камень Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 01:17  
БАЗИС 11 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 2,872

Сказал(а) спасибо: 6,726
Поблагодарили 13,812 раз(а) в 2,438 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 01:17
Рейтинг: ()

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

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


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

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

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

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


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

Последний раз редактировалось AlexBolton; 14.10.2019 в 11:09..
Просмотров: 9019
Ответить с цитированием Вверх
12 пользователя(ей) сказали cпасибо:
Старый 05.11.2019, 16:49   #31
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 384
Сказал(а) спасибо: 99
Поблагодарили 647 раз(а) в 248 сообщениях
Вес репутации: 196
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
Сообщений: 34
Сказал(а) спасибо: 10
Поблагодарили 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
Сообщений: 384
Сказал(а) спасибо: 99
Поблагодарили 647 раз(а) в 248 сообщениях
Вес репутации: 196
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
Сообщений: 34
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

Всем привет. Может кто знает, как скриптом выделить несколько панелей(может и больше) и подсчитать их площадь. Пробовал через for, не получается. Спасибо.
t01849 вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 14:35   #36
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 384
Сказал(а) спасибо: 99
Поблагодарили 647 раз(а) в 248 сообщениях
Вес репутации: 196
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
Сообщений: 34
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
t01849 пока не определено
По умолчанию

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

Добавлено через 2 минуты
Цитата:
Сообщение от t01849 Посмотреть сообщение
после запуска скрипта - форма(не модальная) с кнопкой "вычислить"(это сам сделаю), выделяю панели(какие необходимы для просчёта), нажимаю кнопку, алерт - площадь...(тоже сам). Не получается у меня что то.
Не могу сделать выделение нескольких панелей, затем суммировать их площади
t01849 вне форума   Ответить с цитированием Вверх
Старый 08.11.2019, 15:28   #38
Vaseok23
Новичок
 
Регистрация: 22.10.2017
Сообщений: 9
Сказал(а) спасибо: 2
Поблагодарили 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&#178;');

}
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
Сообщений: 34
Сказал(а) спасибо: 10
Поблагодарили 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&#178;');

}
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
Местный
 
Аватар для PEHAT
 
Регистрация: 07.09.2014
Сообщений: 182
Сказал(а) спасибо: 155
Поблагодарили 179 раз(а) в 64 сообщениях
Вес репутации: 118
PEHAT - весьма и весьма положительная личностьPEHAT - весьма и весьма положительная личность
По умолчанию

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

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1198 08.11.2019 09:58
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 491 01.11.2019 18:04
Скрипты. Готовые решения для БМ8-11. Igor_482 Базис-мебельщик. Скрипты 63 11.10.2019 13:25
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1426 18.03.2019 00:00
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36


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


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