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

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

Меню

Маркет


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

Сказал(а) спасибо: 7,296
Поблагодарили 16,951 раз(а) в 3,219 сообщениях
Версия для печати Отправить по электронной почте
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..
Просмотров: 610761
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 20.02.2020, 13:30   #161
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Подскажите пожалуйста. У меня имеется блок двустворчатой секции. Я скриптом на фасадах пытаюсь нарисовать пазы. на левой двери рисуется как нужно. А вот с правой проблемы. Сам контур для паза рисуется справа от фасада. Видимо фасад был создан отзеркаливанием левой створки. И я не пойму где у этой правой створки ноль или признак что фасад зеркальный.
rombler вне форума   Ответить с цитированием Вверх
Старый 20.02.2020, 14:09   #162
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 403
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
У меня имеется блок двустворчатой секции.
Блок создан скриптом? Если да, то следующее предположение:

Цитата:
Сообщение от rombler Посмотреть сообщение
Видимо фасад был создан отзеркаливанием левой створки.
Вы самостоятельно можете проверить.


Цитата:
Сообщение от rombler Посмотреть сообщение
И я не пойму где у этой правой створки ноль или признак что фасад зеркальный.
Как такового, признака зеркальной панели нет, но её ЛСК (ноль), действительно, не там, где кажется.


Если Вы хотите, чтобы Вам попытались помочь, то такие фразы
Цитата:
Сообщение от rombler Посмотреть сообщение
Я скриптом на фасадах пытаюсь нарисовать пазы.
надо сопровождать кодом, потому что ответ находится в нём.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 20.02.2020, 14:34   #163
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
Как такового, признака зеркальной панели нет, но её ЛСК (ноль), действительно, не там, где кажется.
А как перевести ЛСК в левый нижний угол? и чтобы не нарушалась структура самой секции.


Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
надо сопровождать кодом, потому что ответ находится в нём.
код очень большой. и связан в основном с тем что все траектории прописаны в макросах к3-мебель и приходится на лету конвертировать код макроса в код JS.

Как создана секция не знаю. Работаю с готовой сценой.

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

Цитата:
Сообщение от rombler Посмотреть сообщение
код очень большой.
А он и не нужен целиком. Для начала, надо видеть участок, в котором создаётся контур паза и что используется в качестве аргументов для функций построения 2D-элементов.

Цитата:
Сообщение от rombler Посмотреть сообщение
И ещё вопрос. Возможно ли выполнить проверку попадает присадка на пазы или нет?
Предполагаю, что готового решения нет. Можно перебирать координаты и размеры отверстий и пазов, а потом сопоставлять их.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 20.02.2020, 15:23   #165
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
А он и не нужен целиком. Для начала, надо видеть участок, в котором создаётся контур паза и что используется в качестве аргументов для функций построения 2D-элементов.
PHP код:
Cut panel.AddCut(String('Ris_'+FA[i]["frw"])) ; //это наименование паза
Traj Cut.Trajectory;
for (var 
iteraci 0iteraci FA[i]["traektor"][j].lengthiteraci++) { 
    if (
FA[i]["traektor"][j][iteraci]["Tip"] == "line") {
        
L1 Traj.AddLine(FA[i]["traektor"][j][iteraci]["nx"], FA[i]["traektor"][j][iteraci]["nz"], FA[i]["traektor"][j][iteraci]["kx"], FA[i]["traektor"][j][iteraci]["kz"]); 
        } 
//добавляем все линии из массива
}
Cut.Contour.Load(FileFreza);
Cut.Contour.Move(0panel.Thickness FA[i]["glub"][j]); 
На вход принимаем массив с координатами линий, глубиной, типом линии, и дальнейшими обработками на подобии эквидистанты.
Координаты рассчитываются исходя из габаритов фасада+лск фасада.
Но т.к эта лск при отзеркаливании перемещается из левого нижнего угла в правый нижний угол то следовательно и траектория паза перемещается за пределы фасада.
Подскажите как мне назначить лск фасада в левом нижнем углу?
rombler вне форума   Ответить с цитированием Вверх
Старый 20.02.2020, 16:29   #166
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

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

Код

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. Перестроить панель
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
maxgmv (20.02.2020), Ovsyanicov (05.09.2023), rombler (20.02.2020), zorro (21.02.2020)
Старый 21.02.2020, 13:06   #167
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Смотря для каких целей. Текстовый файл без проблем прочитать можно. Вот чтобы "список" получить - файл обрабатывать надо. Вот простой пример, который запрашивает имя файла, считывает его содержимое и создаёт из строки список, используя символ перевода строки в качестве разделителя элементов (то есть, элементы списка будут соответствовать строкам в файле).
PHP код:
var filename 'Ris.mac' 
var textful system.readTextFile(filename); 
textful textful.replace(/[\r]+/g'');
var 
text textful.split('\n');
var list = [];

for (var 
1text.lengthi++){ 
    list[
i-1] = text[i].split('\t');
}
    
console.log(list); 
А уж в зависимости от того, какие данные в файле и какой список, нужно будет выбрать, как создавать список из строк (через split, JSON, регулярные выражения и т.д.).
А этот скрипт будет работать в 10 версии базиса? В 11 версии я получаю массив массивов, а в 10 версии получаю список элементов через запятую.
rombler вне форума   Ответить с цитированием Вверх
Старый 21.02.2020, 14:19   #168
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
А этот скрипт будет работать в 10 версии базиса? В 11 версии я получаю массив массивов, а в 10 версии получаю список элементов через запятую.
В лог в 10 и 11 версии выводится разная информация. В 10 версии выводится строка (для этого не-строка приводится к строке методом toString()), а в 11 версии что-то похожее на JSON.stringify, только отформатированное.
Вот пример вывода массива в лог разными способами (default - стандартный базисный):
PHP код:
// toString
console.log([[1], [23]].toString());
// JSON.stringify
console.log(JSON.stringify([[1], [23]]));
// default
console.log([[1], [23]]); 
В 10 версии третий метод и первый выводят одинаковый результат. В 11 версии третий и второй методы выводят похожие результаты.

В общем, сам скрипт работать в 10 и 11 версии будет одинаково, но в лог информация будет выводиться по-разному.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (21.02.2020), rombler (21.02.2020)
Старый 21.02.2020, 15:58   #169
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
В общем, сам скрипт работать в 10 и 11 версии будет одинаково, но в лог информация будет выводиться по-разному.
Ага понятно. Думал почему скрипт не работает в 10 версии. грешил на массивы. Теперь разобрался.
panel.UserProperty['VarFas'] = VarFas[0];
panel.UserPropertyVariants['VarFas'] = VarFas.join('\n'); //Эта строка выдавала ошибку.
В 10 версии базиса нет возможности добавить список в пользовательское свойство?
rombler вне форума   Ответить с цитированием Вверх
Старый 21.02.2020, 16:24   #170
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Ага понятно. Думал почему скрипт не работает в 10 версии. грешил на массивы. Теперь разобрался.
panel.UserProperty['VarFas'] = VarFas[0];
panel.UserPropertyVariants['VarFas'] = VarFas.join('\n'); //Эта строка выдавала ошибку.
В 10 версии базиса нет возможности добавить список в пользовательское свойство?
У себя в демке написал и проверил следующий код:
PHP код:
var variants = [123321'asd'];
var 
obj Model.Selected;
obj.UserProperty['prop'] = variants[0];
obj.UserPropertyVariants['prop'] = variants.join('\n'); 
У меня всё заработало и у выделенного объекта появилось пользовательское свойство и его варианты.
Попробуйте у себя и, если не запустится, пришлите скриншот ошибки в логе редактора скриптов.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (24.02.2020), wizardpnz (23.02.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


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


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

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