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

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

Меню

Маркет


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

Сказал(а) спасибо: 7,296
Поблагодарили 16,965 раз(а) в 3,224 сообщениях
Версия для печати Отправить по электронной почте
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
Комплект - руководство+ файлы+ скрипт

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

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

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

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


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

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 617831
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 04.03.2020, 15:51   #201
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Используя скрипты в 11 версии базиса в js code, выходили сообщения в консоль отладки. Перейдя на 10 версию эти сообщения пропали.
Подскажите пожалуйста как мне в 10 версии базиса сделать чтобы выходили сообщения в консоль отладки vs code?
Боюсь, не получится. console.log по-разному работает. Попробуйте в 10 и в 11 версии запустить следующий код:
PHP код:
alert(console.log
У меня в 10 версии выдал функцию и её исходный код, который вызывает system.log.
А в 11 версии вывод уже function() {[native code]}, что говорит о том, что console.log в 11 версии не на js написан.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (05.09.2023), rombler (04.03.2020)
Старый 04.03.2020, 16:06   #202
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 403
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Ovsyanicov, подскажите где скачать обновление 10 базиса? перерыл весь сайт и не нашел.
Какой релиз нужен? После используемой Вами версии было ещё два релиза - октябрь и декабрь 2018. Если ТС на ключе была активна в декабре 2018, то могу скинуть Вам последний релиз 10-ки.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
rombler (04.03.2020)
Старый 04.03.2020, 16:11   #203
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Я не знаю какой релиз лучше, но думаю максимальный для 10 базиса лучше будет.
тс и сейчас ещё активна.
rombler вне форума   Ответить с цитированием Вверх
Старый 05.03.2020, 16:32   #204
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Вот такой скрипт переместит начало координат ЛСК выделенной панели в левый нижний угол относительно ГСК:

Код

PHP код:
var panel Model.Selected.AsPanel;
if (
panel){
    
Undo.Changing(panel);
    
// GabMin - Минимальная координата в ГСК по всем осям (левый нижний задний угол)
    
var corner panel.ToObject(panel.GabMin);
    
panel.TranslateLCS({
        
xcorner.x,
        
ycorner.y,
        
z0
    
})
    
panel.Contour.Move(-corner.x, -corner.y);
    
panel.Build();

[свернуть]


Алгоритм перемещения простой (по содержанию):
1. Найти нужную точку в ГСК (в примере это GabMin)
2. Перевести её в ЛСК перемещаемой панели.
3. Панель переместить в нужную точку (z=0 для простоты, ибо для перемещения по оси Z надо ещё анализировать, в какую сторону смещать).
4. Сместить контур и пазы в обратном направлении (здесь смещается только контур для простоты и, судя по вашему описанию, пазы добавляются скриптом, значит панель, скорее всего , без пазов).
5. Перестроить панель
Спасибо, с панелями находящимися в одной плоскости я разобрался. А вот как теперь быть если панель повёрнута на 90 градусов. Можно ли как то определить положение(направление) панели? Или возможно ли рисовать траектории линий пазов не в глобальной ск а в лск каждой панели?
rombler вне форума   Ответить с цитированием Вверх
Старый 05.03.2020, 16:48   #205
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Спасибо, с панелями находящимися в одной плоскости я разобрался. А вот как теперь быть если панель повёрнута на 90 градусов. Можно ли как то определить положение(направление) панели? Или возможно ли рисовать траектории линий пазов не в глобальной ск а в лск каждой панели?
Пазы рисуются относительно ЛСК панели. Применительно к тому коду, что вы процитировали, чтобы сместить так же пазы, нужно их траекторию сместить на тот же вектор, на который смещается контур.
Letos вне форума   Ответить с цитированием Вверх
Старый 05.03.2020, 17:17   #206
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Пазы рисуются относительно ЛСК панели. Применительно к тому коду, что вы процитировали, чтобы сместить так же пазы, нужно их траекторию сместить на тот же вектор, на который смещается контур.
А можно примерчик?
rombler вне форума   Ответить с цитированием Вверх
Старый 06.03.2020, 09:20   #207
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
А можно примерчик?

Код


PHP код:
/**
 * Смещение траекторий пазов на заданный вектор
 * @param {Panel} panel 
 * @param {Point} vec 
 */
function MoveCuts(panelvec){
    for (var 
0panel.Cuts.Counti++){
        
panel.Cuts.Cuts[i].Trajectory.Move(vec.xvec.y);
    }
}

var 
panel Model.Selected.AsPanel
if (
panel){ 
    
Undo.Changing(panel); 
    
// GabMin - Минимальная координата в ГСК по всем осям (левый нижний задний угол) 
    
var corner panel.ToObject(panel.GabMin); 
    
panel.TranslateLCS({ 
        
xcorner.x
        
ycorner.y
        
z
    
}) 
    
panel.Contour.Move(-corner.x, -corner.y); 
    
MoveCuts(panel, {
        
x: -corner.x,
        
y: -corner.y}
    );
    
panel.Build(); 

[свернуть]
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (05.09.2023), rombler (06.03.2020)
Старый 06.03.2020, 11:27   #208
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение

Код


PHP код:
/**
 * Смещение траекторий пазов на заданный вектор
 * @param {Panel} panel 
 * @param {Point} vec 
 */
function MoveCuts(panelvec){
    for (var 
0panel.Cuts.Counti++){
        
panel.Cuts.Cuts[i].Trajectory.Move(vec.xvec.y);
    }
}

var 
panel Model.Selected.AsPanel
if (
panel){ 
    
Undo.Changing(panel); 
    
// GabMin - Минимальная координата в ГСК по всем осям (левый нижний задний угол) 
    
var corner panel.ToObject(panel.GabMin); 
    
panel.TranslateLCS({ 
        
xcorner.x
        
ycorner.y
        
z
    
}) 
    
panel.Contour.Move(-corner.x, -corner.y); 
    
MoveCuts(panel, {
        
x: -corner.x,
        
y: -corner.y}
    );
    
panel.Build(); 

[свернуть]
Немного неправильный пример был. Но по нему я разобрался что нужно сделать. А неправильность вот в чем. Мы скриптом мы сначала перемещаем лск а потом перемещаем панель обратно. Далее строим паз и перемещаем его в положение где ранее стояла панель. А нужно перемещение контура поставить в условие, где делаем проверку
if (panel.GMin.x<0) { MoveCuts(panel, {x: panel.GMin.x, y: panel.GMin.y }); }
тогда мы переносим пазы тех панелей у которых левый нижний угол расположен на максимально удаленном расстоянии от ск.

Последний раз редактировалось rombler; 06.03.2020 в 15:13.
rombler вне форума   Ответить с цитированием Вверх
Старый 06.03.2020, 16:45   #209
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Подскажите как можно списком выбрать все трёхмерные объекты? Хочу сделать форму с кнопками. Нажимая кнопку что бы можно было пройти по всем панелям из мдф.
т.е. должно быть 2 кнопки. следующая панель и предыдущая панель.
Как перебрать все панели я представляю, но ведь у них нет никакого индекса, а мне нужно определить индекс именно нужной панели а потом найти индекс следующей.
rombler вне форума   Ответить с цитированием Вверх
Старый 06.03.2020, 18:00   #210
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 403
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Как перебрать все панели я представляю, но ведь у них нет никакого индекса, а мне нужно определить индекс именно нужной панели а потом найти индекс следующей.
Так Вы при переборе добавьте их в массив, а потом по индексу выделяйте (в массиве будут храниться ссылки на объекты).
Грубый пример:
PHP код:
let PanelsArr = [];
Model.forEachPanel(function(pan){
    
PanelsArr.push(pan);
});
let i 0;
let next Action.Properties.NewButton('next');
next.OnClick = function(){
    
Model.UnSelectAll();
    
PanelsArr[i].Selected true;
    
i++;
};
let prev Action.Properties.NewButton('prev');
prev.OnClick = function(){
    
Model.UnSelectAll();
    
PanelsArr[i].Selected true;
    
i--;
}

Action.Continue(); 
Ovsyanicov вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Letos (10.03.2020), rombler (06.03.2020)
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 715 14.04.2024 07:03
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 73 12.04.2024 17:08
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 137 11.04.2024 13:16
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1442 04.04.2024 11:28
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1525 30.03.2024 15:03


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


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

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