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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 08:56  
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565

Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 08:56
Рейтинг: ()

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


Последний раз редактировалось systland; 26.12.2017 в 11:52..
Просмотров: 425154
Ответить с цитированием Вверх
Старый 09.02.2018, 09:39   #91
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится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, 13: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 в 13:09. Причина: не отображаются изображения
Sergenald вне форума   Ответить с цитированием Вверх
Старый 09.02.2018, 15:03   #93
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

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

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

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

Подскажите, пожалуйста, в чем может быть причина?
Заранее спасибо!
alexrain вне форума   Ответить с цитированием Вверх
Старый 13.02.2018, 14:19   #96
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

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

Подскажите, пожалуйста, в чем может быть причина?
Заранее спасибо!
Причина в разрабах - это просто не работает(( Хотя вроде обещают поправить в будущем.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
alexrain (13.02.2018)
Старый 14.02.2018, 16: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, 09:21   #98
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится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, 16: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, 16:55   #100
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится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 1264 13.03.2024 22:48
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7 2230 29.11.2019 10:37
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


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


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

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