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

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


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

искусственный камень Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 08:56  
БАЗИС 10 - Скрипты
systland
Модератор
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 559

Сказал(а) спасибо: 291
Поблагодарили 422 раз(а) в 177 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 08:56
Рейтинг: (3 голосов - 4.00 средняя оценка)

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


Последний раз редактировалось systland; 26.12.2017 в 10:52..
Просмотров: 36244
Ответить с цитированием Вверх
Старый 09.02.2018, 08:39   #91
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 190
Сказал(а) спасибо: 39
Поблагодарили 352 раз(а) в 133 сообщениях
Вес репутации: 103
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Sergenald Посмотреть сообщение
у меня кнопка "редактировать" появлялась только если модель создаётся в параметрическом блоке:

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

korp = BeginParametricBlock("Корпус");
//создание панелей
EndParametricBlock();
[свернуть]
Тогда если редактировать модель, лучше сделать так:
PHP код:
//если существует блок (скрипт запущен на редактирование)
// то выбираем его.
if (ParametricBlock)
    
korp ParametricBlock;
// иначе создаем редактируемый блок
else
    
korp BeginParametricBlock("Корпус");
//создание панелей
EndParametricBlock(); 
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Timofeyon (11.02.2018), wizardpnz (23.05.2018)
Старый 09.02.2018, 12:07   #92
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

Только я решил что разобрался с установкой схем фурнитуры, как пошло поехало. Цель - закрепить заднюю стенку гвоздями в торцы корпуса.
Я попробовал установить вручную, порядок такой - выделить заднюю стенку, выделить верхнюю панель. Согласно этому написал команду:

Window1.BackSheme.Value.MountScheme(BackPanel,TopP anel,FurniturePosition.Inside,NewVector(0,0,0));
Но увы
https://ibb.co/jiCoac

пробовал менять панели местами, менять в разных вариациях расположение фурнитуры и базовых точек, но результат всё время как на первом изображении.

Тогда решил делать костыли:
IDontKnowWhatImDoing =
Window1.BackSheme.Value.MountScheme(BackPanel,TopP anel,FurniturePosition.Inside,NewVector(0,0,0));
IDontKnowWhatImDoing.Rotate(Axis_X,90);
И да, я просто их развернул, что кстати почти сработало
https://ibb.co/mBoGTx
https://ibb.co/m5hX1H

Осталось их немного задвинуть, а именно:
IDontKnowWhatImDoing = Window1.BackSheme.Value.MountScheme(BackPanel,TopP anel,FurniturePosition.Inside,NewVector(0,0,0));
IDontKnowWhatImDoing.Rotate(Axis_X,90);
IDontKnowWhatImDoing.Translate(0,(TopPanel.Thickne ss)/2,15);
И вроде получилось
https://ibb.co/coms1H

Но назрел вопрос: как установить гвоздь, созданный фурнитурой типа "установка на плоскость" так, чтобы он проходил через пласть фронтальной панели в торец горизонтальной, без всех дополнительных поворотов и мытарств?

Последний раз редактировалось Sergenald; 09.02.2018 в 12:09. Причина: не отображаются изображения
Sergenald вне форума   Ответить с цитированием Вверх
Старый 09.02.2018, 14:03   #93
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 190
Сказал(а) спасибо: 39
Поблагодарили 352 раз(а) в 133 сообщениях
Вес репутации: 103
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Sergenald Посмотреть сообщение
Но назрел вопрос: как установить гвоздь, созданный фурнитурой типа "установка на плоскость" так, чтобы он проходил через пласть фронтальной панели в торец горизонтальной, без всех дополнительных поворотов и мытарств?
Думаю, самый простой способ - это создать гвоздь для установки "по пласти одной и торцу другой панели", как евровинт. Но если вам принципиально нужен гвоздь для установки "на плоскость панели", то тут, думаю, без костылей не обойтись.
Letos вне форума   Ответить с цитированием Вверх
Старый 09.02.2018, 14:24   #94
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

Досадно что руками всё нормально ставится, а в скрипте приходится велосипеды из костылей склеивать. Ещё эта точка базовая меняться не хочет, часа 2 уже с ней борюсь. Вот щит верхний - горизонтальная панель и стенка левая боковая - вертикальная панель. К симметричной схеме вопросов нет, схема с отступом ставит отступ от задней стенки и всё тут. По идее же изменение происходит по z. Если в ГСК задавать, либо по х, если в ЛСК. Я уже задавал координаты точек в ГСК потом в ЛСК, потом значения выходящие за границы панелей, не выходящие, рандомные координаты... И вообще ни чего, даже на миллиметр, ни разу не шелохнулось, аж раздражает, да хоть неправильно отстраивалась бы, а то вообще ни чего, как встала так и стоит.
Sergenald вне форума   Ответить с цитированием Вверх
Старый 12.02.2018, 07:15   #95
alexrain
Новичок
 
Регистрация: 03.04.2016
Адрес: Бронницы
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
alexrain пока не определено
По умолчанию

Всем привет.
В 9-ой версии Базиса можно было зашифровать текст скрипта.
В 10-ке - уже не получается тем же методом: весь текст просто удаляется.

Подскажите, пожалуйста, в чем может быть причина?
Заранее спасибо!
alexrain вне форума   Ответить с цитированием Вверх
Старый 13.02.2018, 13:19   #96
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 190
Сказал(а) спасибо: 39
Поблагодарили 352 раз(а) в 133 сообщениях
Вес репутации: 103
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от alexrain Посмотреть сообщение
Всем привет.
В 9-ой версии Базиса можно было зашифровать текст скрипта.
В 10-ке - уже не получается тем же методом: весь текст просто удаляется.

Подскажите, пожалуйста, в чем может быть причина?
Заранее спасибо!
Причина в разрабах - это просто не работает(( Хотя вроде обещают поправить в будущем.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
alexrain (13.02.2018)
Старый 14.02.2018, 15:47   #97
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

Объясните пожалуйста, что я делаю не так?
Вот код для добавления дух панелей и установки на них схемы крепежа:

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

var p1 = AddHorizPanel(0,0,1000,1000,1000);
var p2 = AddVertPanel(0,0,1000,p1.GabMin.y,0);
if (p1 && p2){
Action.Continue();
var scheme = Action.Properties.NewFurniture('схема');
scheme.OnChange = function (){
scheme.Value.MountScheme(p1, p2, FurniturePosition.Inside, NewVector(0, 0, 0));
Action.Finish();
}
}
[свернуть]


при установке на них схемы с отступом с одного края, отступ проставляется от 0,0,0... как в целом и указано в векторе.
НО, если я хочу что бы отступ проставлялся с другой стороны, то я задаю координаты такие:

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

var p1 = AddHorizPanel(0,0,1000,1000,1000);
var p2 = AddVertPanel(0,0,1000,p1.GabMin.y,0);
if (p1 && p2){
Action.Continue();
var scheme = Action.Properties.NewFurniture('схема');
scheme.OnChange = function (){
scheme.Value.MountScheme(p1, p2, FurniturePosition.Inside, NewVector(p2.GabMax.x, p2.GabMax.y, p2.GabMax.z));
Action.Finish();
}
}
[свернуть]

но это вообще ни как не влияет на схему, она продолжает строиться от 0,0,0.
Как её отстроить от другой стороны?
Sergenald вне форума   Ответить с цитированием Вверх
Старый 15.02.2018, 08:21   #98
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 190
Сказал(а) спасибо: 39
Поблагодарили 352 раз(а) в 133 сообщениях
Вес репутации: 103
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Sergenald Посмотреть сообщение
Объясните пожалуйста, что я делаю не так?
Вот код для добавления дух панелей и установки на них схемы крепежа:

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

var p1 = AddHorizPanel(0,0,1000,1000,1000);
var p2 = AddVertPanel(0,0,1000,p1.GabMin.y,0);
if (p1 && p2){
Action.Continue();
var scheme = Action.Properties.NewFurniture('схема');
scheme.OnChange = function (){
scheme.Value.MountScheme(p1, p2, FurniturePosition.Inside, NewVector(0, 0, 0));
Action.Finish();
}
}
[свернуть]


при установке на них схемы с отступом с одного края, отступ проставляется от 0,0,0... как в целом и указано в векторе.
НО, если я хочу что бы отступ проставлялся с другой стороны, то я задаю координаты такие:

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

var p1 = AddHorizPanel(0,0,1000,1000,1000);
var p2 = AddVertPanel(0,0,1000,p1.GabMin.y,0);
if (p1 && p2){
Action.Continue();
var scheme = Action.Properties.NewFurniture('схема');
scheme.OnChange = function (){
scheme.Value.MountScheme(p1, p2, FurniturePosition.Inside, NewVector(p2.GabMax.x, p2.GabMax.y, p2.GabMax.z));
Action.Finish();
}
}
[свернуть]

но это вообще ни как не влияет на схему, она продолжает строиться от 0,0,0.
Как её отстроить от другой стороны?
Думаю, проблема та же, что и с шифрованием кода - это косяк самих скриптов. Было бы в скриптах эластичное растягивание - можно было бы написать костыль. А так остается только ждать исправления.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (15.02.2018), Sergenald (15.02.2018)
Старый 19.02.2018, 15:01   #99
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

Вопрос по созданию формы.
На форме есть статическая группа "Group1", которая есть всегда и ни как не меняется.
Так же есть кнопка, при нажатии на которую в Group1 добавляется группа с какими-то вложенными свойствами. При каждом нажатии на кнопку со смещением добавляется новая группа в Group1 так, что новая группа создаётся под старой. Для этого использую свойство Count. (к примеру windows1.Group1.Count) И получаю количество уже отрисованных групп, умножая на высоту группы, получаю координату отрисовки новой группы.
НО, появилась надобность их удалять. И тут я попал в тупик. Я получаю список созданных групп свойством Items. Но как из него удалить элемент мне не ясно. Есть ли такой функционал в скриптах базиса?

Вот костыли что пришли в голову:
Мысль 1: Сохранять все группы в массив. При нажатии на удаление вызывать свойство Group1.Clear, за тем отрисовать обратно всё сохранённое. Тогда как добавить обратно в окно сохранённые группы? Или же не обратно, а добавлять новые группы по длине массива, а потом перезаписать их в массив... НО, возможно, это будет достаточно долго выполняться на большом количестве упаковок.

Мысль 2: Не делать привязку к Items, создавать новые упаковки основываясь на своём счётчике в переменной, удаляемые группы просто скрывать... Но если очень постараться, то можно создать ненароком пару десятков групп и потом работать в подлагивающем окне.

Мысль 3: Создавать группы не в том же окне, а в маленьких новых окнах, так же смещая их по координатам, тогда на каждом окошке будет по своей кнопке удалить, тогда закрытие окна будет значить удаление упаковки, которое можно отслеживать массивом задавая окнам какие-то ID... Но не слишком ли много окон?
Sergenald вне форума   Ответить с цитированием Вверх
Старый 19.02.2018, 15:55   #100
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 190
Сказал(а) спасибо: 39
Поблагодарили 352 раз(а) в 133 сообщениях
Вес репутации: 103
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Sergenald Посмотреть сообщение
Вопрос по созданию формы.
На форме есть статическая группа "Group1", которая есть всегда и ни как не меняется.
Так же есть кнопка, при нажатии на которую в Group1 добавляется группа с какими-то вложенными свойствами. При каждом нажатии на кнопку со смещением добавляется новая группа в Group1 так, что новая группа создаётся под старой. Для этого использую свойство Count. (к примеру windows1.Group1.Count) И получаю количество уже отрисованных групп, умножая на высоту группы, получаю координату отрисовки новой группы.
НО, появилась надобность их удалять. И тут я попал в тупик. Я получаю список созданных групп свойством Items. Но как из него удалить элемент мне не ясно. Есть ли такой функционал в скриптах базиса?

Вот костыли что пришли в голову:
Мысль 1: Сохранять все группы в массив. При нажатии на удаление вызывать свойство Group1.Clear, за тем отрисовать обратно всё сохранённое. Тогда как добавить обратно в окно сохранённые группы? Или же не обратно, а добавлять новые группы по длине массива, а потом перезаписать их в массив... НО, возможно, это будет достаточно долго выполняться на большом количестве упаковок.

Мысль 2: Не делать привязку к Items, создавать новые упаковки основываясь на своём счётчике в переменной, удаляемые группы просто скрывать... Но если очень постараться, то можно создать ненароком пару десятков групп и потом работать в подлагивающем окне.

Мысль 3: Создавать группы не в том же окне, а в маленьких новых окнах, так же смещая их по координатам, тогда на каждом окошке будет по своей кнопке удалить, тогда закрытие окна будет значить удаление упаковки, которое можно отслеживать массивом задавая окнам какие-то ID... Но не слишком ли много окон?
Вот такая вот вещь "изобрелась":
Код:
btn.Owner.DeleteSelf();    
Window1.Group1.Visible = false;
Window1.Group1.Visible = true;
Где
1. btn.Owner - группа, которую нужно удалить
2. Window1.Group1 - статическая группа, содержащая добавляемые/удаляемые группы.

Смена видимости у статической группы нужна для перерисовки группы (автоматически почему-то не делается), после которой удаляется убранная группа.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (19.02.2018), Sergenald (20.02.2018)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-Мебельщик 10 systland Базис-мебельщик 10.0 553 Вчера 17:30
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7.0 2228 12.09.2016 18:13
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 09:08


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


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