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

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


Реклама на портале PROMEBELclub
Реклама на портале PROMEBELclub

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

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

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

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


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

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

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

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


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

Последний раз редактировалось AlexBolton; 14.10.2019 в 10:09..
Просмотров: 72930
Ответить с цитированием Вверх
12 пользователя(ей) сказали cпасибо:
Старый 02.12.2019, 11:01   #71
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 509
Сказал(а) спасибо: 1,016
Поблагодарили 621 раз(а) в 258 сообщениях
Вес репутации: 281
Ovsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личностьOvsyanicov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
2. В одну строчку тоже можно заморочиться, но один в один (как на Windows 7) сделать будет сложно (если не невозможно).
Можно сделать даже с отображением истории действий, но только с использованием мыши, так как работа с клавиатурой упрётся в то, что:

Цитата:
Сообщение от Letos Посмотреть сообщение
3. У базиса с обработкой нажатия клавиш проблемы - это просто не реализовано, хотя очень хочется, ибо огромный простор для новых возможностей был бы.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Vaseok23 (03.12.2019)
Старый 03.12.2019, 10:17   #72
Vaseok23
Новичок
 
Регистрация: 22.10.2017
Сообщений: 19
Сказал(а) спасибо: 14
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Vaseok23 пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
1. С внешним движком нужно определиться - какой именно нужен. Желательно написанный на JS (если такой есть) - чтобы не тянуть лишнего за собой.
2. В одну строчку тоже можно заморочиться, но один в один (как на Windows 7) сделать будет сложно (если не невозможно).
3. У базиса с обработкой нажатия клавиш проблемы - это просто не реализовано, хотя очень хочется, ибо огромный простор для новых возможностей был бы.
спасибо за ответ, все понял
Vaseok23 вне форума   Ответить с цитированием Вверх
Старый 14.12.2019, 11:50   #73
bbb i ko
VIP
 
Аватар для bbb i ko
 
Регистрация: 04.07.2012
Сообщений: 1,826
Сказал(а) спасибо: 3,577
Поблагодарили 3,351 раз(а) в 1,071 сообщениях
Вес репутации: 950
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Как считать траекторию паза "посередине паза"? Пытаюсь определить глухой паз/не глухой:
Код:
Panel = Model.Selected;
Result = 0;
Cnt = Panel.Contour;
for (var i = 0; i < Panel.Cuts.Count; i++){
         TCut = Panel.Cuts[i].Trajectory;    
         if(TCut.IsInContour(Cnt)){
             Result += 1
         }
}
 alert(Result);
но Panel.Cuts[i].Trajectory возвращает траекторию без учета смещения, соответственно результат работы скрипта неверный (
__________________
http://www.upro.su
заказать презентацию системы
Автоматизация мебельного бизнеса на базе 1С
Нетривиальное решение с широкими возможностями
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 17.12.2019, 10:28   #74
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 552
Сказал(а) спасибо: 125
Поблагодарили 877 раз(а) в 354 сообщениях
Вес репутации: 267
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Как считать траекторию паза "посередине паза"? Пытаюсь определить глухой паз/не глухой:
Код:
Panel = Model.Selected;
Result = 0;
Cnt = Panel.Contour;
for (var i = 0; i < Panel.Cuts.Count; i++){
         TCut = Panel.Cuts[i].Trajectory;    
         if(TCut.IsInContour(Cnt)){
             Result += 1
         }
}
 alert(Result);
но Panel.Cuts[i].Trajectory возвращает траекторию без учета смещения, соответственно результат работы скрипта неверный (
Не совсем понял про "середину паза". В вашем примере вы имеете в виду случай, когда траектория паза лежит на границе контура?
Letos вне форума   Ответить с цитированием Вверх
Старый 17.12.2019, 12:31   #75
bbb i ko
VIP
 
Аватар для bbb i ko
 
Регистрация: 04.07.2012
Сообщений: 1,826
Сказал(а) спасибо: 3,577
Поблагодарили 3,351 раз(а) в 1,071 сообщениях
Вес репутации: 950
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Не совсем понял про "середину паза". В вашем примере вы имеете в виду случай, когда траектория паза лежит на границе контура?
Да, совершенно верно.
__________________
http://www.upro.su
заказать презентацию системы
Автоматизация мебельного бизнеса на базе 1С
Нетривиальное решение с широкими возможностями
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 08:39   #76
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 552
Сказал(а) спасибо: 125
Поблагодарили 877 раз(а) в 354 сообщениях
Вес репутации: 267
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Да, совершенно верно.
Изобрёлся вот такой метод:
PHP код:
Panel Model.Selected;
Result 0;
// Делаем копию контура, чтобы изменения не затронули исходную панель
var Cnt Panel.Contour.MakeCopy();
// Расширяем контур на 0.1 мм в каждую сторону, чтобы прошли проверку траектории
// пазов, лежащих на границе
Cnt.Fit(Cnt.Min.0.1Cnt.Min.0.1Cnt.Max.0.1Cnt.Max.0.1);
for (var 
0Panel.Cuts.Counti++){
         
TCut Panel.Cuts[i].Trajectory;    
         if(
TCut.IsInContour(Cnt)){
             
Result += 1
         
}
}
 
alert(Result); 
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
bbb i ko (18.12.2019), wizardpnz (22.02.2020)
Старый 18.12.2019, 10:46   #77
Vaseok23
Новичок
 
Регистрация: 22.10.2017
Сообщений: 19
Сказал(а) спасибо: 14
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Vaseok23 пока не определено
По умолчанию параметрическая фурнитура

доброго всем времени суток, кто знает стало ли возможным скриптом через openfurniture или другим способом кроме newfurniture, вставить параметрическую фурнитуру в скрипт.
суть в том чтоб сделать фурнитуру по умолчанию или по выбору через newfurniture
Vaseok23 вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 12:59   #78
bbb i ko
VIP
 
Аватар для bbb i ko
 
Регистрация: 04.07.2012
Сообщений: 1,826
Сказал(а) спасибо: 3,577
Поблагодарили 3,351 раз(а) в 1,071 сообщениях
Вес репутации: 950
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Изобрёлся вот такой метод:
просто снимаю шляпу . До такого не додумался.
Но проблема таким образом решается не полностью. Поскольку сечение паза можно вручную отредактировать, то возникают варианты .. Копал в сторону чтения контура сечения, получаю его смещение по Х относительно 0 (Contour.Min.X), но вот как далее понять прибавить нужно это значение или отнять (то есть в какую сторону сместить траекторию) ? Допустим для прямоугольной панели имеющей два паза по противолежащим сторонам (если берем одинаковый паз, одинаковое смещение) это полученное значение будет одинаковым, но для одного паза его нужно вычесть, а для другого прибавить.
__________________
http://www.upro.su
заказать презентацию системы
Автоматизация мебельного бизнеса на базе 1С
Нетривиальное решение с широкими возможностями
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 13:28   #79
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 552
Сказал(а) спасибо: 125
Поблагодарили 877 раз(а) в 354 сообщениях
Вес репутации: 267
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Поскольку сечение паза можно вручную отредактировать, то возникают варианты .. Копал в сторону чтения контура сечения, получаю его смещение по Х относительно 0 (Contour.Min.X), но вот как далее понять прибавить нужно это значение или отнять (то есть в какую сторону сместить траекторию) ? Допустим для прямоугольной панели имеющей два паза по противолежащим сторонам (если берем одинаковый паз, одинаковое смещение) это полученное значение будет одинаковым, но для одного паза его нужно вычесть, а для другого прибавить.
В поисках предыдущего решения писал вариант с преобразованием траектории (спойлер - не получилось применить):

Код


PHP код:
var Panel Model.Selected.AsPanel;
Result 0;
var 
Cnt Panel.Contour;
for (var 
0Panel.Cuts.Counti++) {
    
/**@type {Contour2D} */
    
var TCut Panel.Cuts[i].Trajectory;
    if (
TCut.Count == 0)
        
TCut Panel.Cuts[i].Contour;
    
/**@type {Contour2D} */
    
var copy TCut.MakeCopy();
    if (!
copy.IsClosedContour()) {
        var 
shift = { x0y};
        if (
copy.Min.Cnt.Max.0.1)
            
shift.-= 0.1;
        if (
copy.Max.Cnt.Min.0.1)
            
shift.+= 0.1;
        if (
copy.Min.Cnt.Max.0.1)
            
shift.-= 0.1;
        if (
copy.Max.Cnt.Min.0.1)
            
shift.+= 0.1;
        
copy.Move(shift);
    }
    if (
copy.IsInContour(Cnt)) {
        
Result += 1
    
}
}
alert(Result); 
[свернуть]

Суть этой идей была в следующем - анализировать положение траектории паза относительно контура и сдвигать саму траекторию внутрь контура. Проблема возникла банальная с пазом на сторону панели - там происходило смещение по одной оси, а по второй точки оставались на границе контура. Я не совсем понял что и куда вам надо смещать, но, думаю, код, где переменная shift меняется, может вам помочь с определением знака.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
bbb i ko (18.12.2019)
Старый 18.12.2019, 15:12   #80
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 552
Сказал(а) спасибо: 125
Поблагодарили 877 раз(а) в 354 сообщениях
Вес репутации: 267
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Vaseok23 Посмотреть сообщение
доброго всем времени суток, кто знает стало ли возможным скриптом через openfurniture или другим способом кроме newfurniture, вставить параметрическую фурнитуру в скрипт.
суть в том чтоб сделать фурнитуру по умолчанию или по выбору через newfurniture
Когда-то давно писал модуль для работы с параметрической фурнитурой. (у меня на компе лежит в папке forum, однако по поиску не нашёл, чтобы я его сюда заливал, странно, но не суть)
Модуль умеет искать параметрическую фурнитуру в файле типа Fasteners.config, делать из этой пф объект типа InfFurniture (который получается путём вызова Action.Properties.NewFurnitureValue()) и записывать пф в поле выбора фурнитуры.
Для вашей задачи я написал пример, который ищет в файле fasteners.config (который должен находиться в папке со скриптом) пф с именем "ЕВ от базы" . Если нашёл, то пишет пф в поле выбора скрипта.

В приложенном архиве два файла - модуль (fasteners.js) и пример (sample.js). Я старался максимально снабдить комментариями всё, но если что непонятно или не получается - спрашивайте, не стесняйтесь
Вложения
Тип файла: rar fasteners.rar (1.8 Кб, 17 просмотров)
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
maxgmv (03.03.2020), Ovsyanicov (18.12.2019), PEHAT (20.12.2019), Vaseok23 (19.12.2019)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 543 03.07.2020 12:41
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1289 22.06.2020 10:47
Скрипты. Готовые решения для БМ8-11. Igor_482 Базис-мебельщик. Скрипты 67 20.06.2020 12:36
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1426 17.03.2019 23:00
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 09:36


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


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