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

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

Меню

Маркет


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

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

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

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

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

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


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

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 599720
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 02.12.2019, 12:01   #71
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

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

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

Цитата:
Сообщение от Letos Посмотреть сообщение
1. С внешним движком нужно определиться - какой именно нужен. Желательно написанный на JS (если такой есть) - чтобы не тянуть лишнего за собой.
2. В одну строчку тоже можно заморочиться, но один в один (как на Windows 7) сделать будет сложно (если не невозможно).
3. У базиса с обработкой нажатия клавиш проблемы - это просто не реализовано, хотя очень хочется, ибо огромный простор для новых возможностей был бы.
спасибо за ответ, все понял
Vaseok23 вне форума   Ответить с цитированием Вверх
Старый 14.12.2019, 12:50   #73
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,946
Сказал(а) спасибо: 3,974
Поблагодарили 3,530 раз(а) в 1,157 сообщениях
Вес репутации: 1043
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 возвращает траекторию без учета смещения, соответственно результат работы скрипта неверный (
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 17.12.2019, 11:28   #74
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордится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, 13:31   #75
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,946
Сказал(а) спасибо: 3,974
Поблагодарили 3,530 раз(а) в 1,157 сообщениях
Вес репутации: 1043
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 Посмотреть сообщение
Не совсем понял про "середину паза". В вашем примере вы имеете в виду случай, когда траектория паза лежит на границе контура?
Да, совершенно верно.
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 09:39   #76
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордится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 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
bbb i ko (18.12.2019), Ovsyanicov (04.02.2023), wizardpnz (23.02.2020)
Старый 18.12.2019, 11:46   #77
Vaseok23
Новичок
 
Регистрация: 22.10.2017
Сообщений: 28
Сказал(а) спасибо: 38
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Vaseok23 пока не определено
По умолчанию параметрическая фурнитура

доброго всем времени суток, кто знает стало ли возможным скриптом через openfurniture или другим способом кроме newfurniture, вставить параметрическую фурнитуру в скрипт.
суть в том чтоб сделать фурнитуру по умолчанию или по выбору через newfurniture
Vaseok23 вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 13:59   #78
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,946
Сказал(а) спасибо: 3,974
Поблагодарили 3,530 раз(а) в 1,157 сообщениях
Вес репутации: 1043
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), но вот как далее понять прибавить нужно это значение или отнять (то есть в какую сторону сместить траекторию) ? Допустим для прямоугольной панели имеющей два паза по противолежащим сторонам (если берем одинаковый паз, одинаковое смещение) это полученное значение будет одинаковым, но для одного паза его нужно вычесть, а для другого прибавить.
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 18.12.2019, 14:28   #79
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордится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, 16:12   #80
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордится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 Кб, 75 просмотров)
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
maxgmv (03.03.2020), Ovsyanicov (18.12.2019), PEHAT (20.12.2019), Vaseok23 (19.12.2019)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 126 Вчера 08:56
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 714 06.03.2024 09:09
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 70 29.01.2024 17:25
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53


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


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

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