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

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

Меню

Маркет


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

Сказал(а) спасибо: 7,296
Поблагодарили 16,952 раз(а) в 3,220 сообщениях
Версия для печати Отправить по электронной почте
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..
Просмотров: 612268
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 18.03.2020, 14:52   #231
Kroha
Новичок
 
Регистрация: 05.05.2017
Сообщений: 19
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Kroha пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
А как выглядит полностью код, который не работает?
Я не разбираюсь в кодах и т.п.,спросил тут готовый скрипт,то что Вы мне советуете-не работает в качестве скрипта.
так что люди добрые.у кого есть скрипт для разрушения блоков,сборок,фрагментов в конкретно выделенном блоке -поделитесь,пожалуйста,им
Kroha вне форума   Ответить с цитированием Вверх
Старый 18.03.2020, 16:11   #232
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Kroha Посмотреть сообщение
Я не разбираюсь в кодах и т.п.,спросил тут готовый скрипт,то что Вы мне советуете-не работает в качестве скрипта.
так что люди добрые.у кого есть скрипт для разрушения блоков,сборок,фрагментов в конкретно выделенном блоке -поделитесь,пожалуйста,им
Целиком скрипт будет выглядеть так:

Код

PHP код:
/**
 * Разрушить блок
 * @param {List3D} block Блок для разрушения
 * @param {boolean} recursive Флаг - разрушать ли вложенные блоки
 */
function DestroyBlock(blockrecursive) {
    
// Если блок - Модель, то ничего не делаем, иначе посыпятся аксессы
    
if (block == Model)
        return;
    
// Флаг, создан ли блок скриптом (находится во временной области модели)
    
var blockIsScript block.IsOwner(Model.Temp);
    
Undo.Changing(block);
    
// список вложенных блоков. Используется если разрушение рекурсивное
    
var blocklist = [];
    
// Идём от последнего элемента к первому, т.к. при удалении объекта из блока, 
    // кол-во элементов внутри уменьшается.
    
for (var block.Count 1>= 0i--) {
        var 
obj block.Objects[i];
        
//Если не скриптовый блок, сохраняем изменения объекта в истории вручную
        
if (!blockIsScript) {
            
Undo.Changing(obj);
            
Undo.OwnerChanging(obj);
        }
        
obj.ReTransform(obj.Ownerblock.Owner);
        
obj.Owner block.Owner;
        if (
obj.List){
            
blocklist.push(obj);
        }
    }
    
DeleteObject(block);
    if (
recursive) {
        for (var 
0blocklist.lengthi++) {
            
DestroyBlock(blocklist[i], true);
        }
    }
}


var 
block Model.Selected.AsList();
for (var 
block.Count 1>= 0i--) {
    var 
obj block[i];
    if (
obj.List) {
        
DestroyBlock(objfalse);
    }

[свернуть]


Скрипт разрушает блоки (и сборки и полуфабрикаты), находящиеся непосредственно в выделенном блоке. Если нужно, чтобы разрушались все блоки (вложенные во вложенные, вложенные во вложенные во вложенные и т.д.), тогда надо предпредпоследнюю строку
Код:
DestroyBlock(obj, false);
заменить на
Код:
DestroyBlock(obj, true);
По сути - заменить false на true
Letos вне форума   Ответить с цитированием Вверх
5 пользователя(ей) сказали cпасибо:
andronf (18.03.2020), botik (25.06.2020), Kroha (19.03.2020), PravCom (30.07.2021), toucaner (30.07.2022)
Старый 19.03.2020, 11:01   #233
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Подскажите пожалуйста.
Допустим замкнутый имеется контур построенный линиями.
этому контуру нужно построить еквидистанту во внутрь.
3 параметром функции я задаю false. все строится нормально, новый контур строится внутри исходного контура.
Меняю направление линий контура и повторяю попытку. Контур строится уже снаружи исходного контура. Т.е мне необходимо каким то образом определить действительно контур построился внутри или же все таки нужно 3 параметр функции поменять.
Набросал примерный код задуманного.

Код

PHP код:
var panelModel.Selected.AsPanel;
Undo.Changing(panel);

var 
Cut panel.AddCut(NamePaz); //это наименование паза
Traj Cut.Trajectory;

... 
//добавляем линии

var Cut2 panel.AddCut(NamePaz); //создаем эквидистанту
Traj2 Cut2.Trajectory;
Traj2.AddEquidistant(Traj,equi,equinequis);

if (!
equin&&Traj2.IsInContour(Traj)||equin&&!Traj2.IsInContour(Traj) )  {  
//определяем направление эквидистанты если новый контур внутри создаем новый контур
    
if (equin) { equin=false; } else { equin=true; }
    
Cut3 panel.AddCut(NamePaz)
    
Traj3 Cut3.Trajectory;
    
Traj3.AddEquidistant(Traj,equi,equinequis);
    
panel.Cuts.Delete(panel.Cuts.Count-2); //удаляем контур новой эквидистанты
    
Cut2=Cut3//переименовываем
}
 
panel.Cuts.Delete(panel.Cuts.Count-2); //удаляем контур эквидистанты
 
Cut=Cut2//переименовываем
 
 
Cut.Contour.Load(FileFreza);
 
Cut.Contour.Move(0panel.Thickness FA[i]["glub"][j]); 
[свернуть]


Всё работало пока не понадобилось строить эквидистанту не к траекториям, а к контурам панели.
Т.е для формирования паза должен быть уже другой код
var Cut = panel.Cuts.Add();
Cut.CutType = 2; // тип паза. стандартный = 1
Cut.Thickness = panel.Thickness;
Traj = Cut.Contour;
а к этому контуру уже не получается применить функцию Traj2.IsInContour(Traj)
Вопрос. возможно ли определить направление эквидистанты без всех этих манипуляций или как проверить вложен ли контур в другой контур.
p/s обещал скинуть ролик работы скрипта: https://youtu.be/vooVjij8adM
rombler вне форума   Ответить с цитированием Вверх
Старый 19.03.2020, 11:49   #234
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Т.е мне необходимо каким то образом определить действительно контур построился внутри или же все таки нужно 3 параметр функции поменять.
Точно утверждать не могу, но проверил на паре примеров - работает.
при построении эквидистанты, третьим параметром можно поставить направление контура (против/по часовой стрелке):
PHP код:
cut.Trajectory.AddEquidistant(panel.Contouroffsetpanel.Contour.IsClockOtherWise()); 
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (04.02.2023), rombler (19.03.2020)
Старый 19.03.2020, 12:54   #235
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

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

Построил эквидистанту с 4 параметром=true, получился контур как на картинке. Что можно сделать что бы не было этих дуг на концах? Или как можно замкнуть контур?
Миниатюры
1.jpg  

Последний раз редактировалось rombler; 19.03.2020 в 13:51.
rombler вне форума   Ответить с цитированием Вверх
Старый 19.03.2020, 14:58   #236
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Ага, спасибо. Помогло.
А почему ранее вы говорили что для вырезов лучше использовать редактирование контура, а не выборку? Какие подводные камни могут быть? Мне просто проще использовать именно выборку а не контур панели, т.к выборку можно найти по имени и удалить при следующем редактировании, а вот контур уже нет. если только новую панель строить.

Построил эквидистанту с 4 параметром=true, получился контур как на картинке. Что можно сделать что бы не было этих дуг на концах? Или как можно замкнуть контур?
4 параметр отвечает за скругление, но его настроек вроде нет.

Построение контура панели отличается от построения паза тем, что паз делается сложнее: создаётся тело паза по параметрам и вычитается из панели. Операция вычитания сама по себе затратная и может сопровождаться ошибками.
В случае создания выреза пазом могут увеличиться время построения панели и размер файла по сравнению с внутренним контуром.
Для примера можете сделать в двух окнах по одной панели - в одном сделать вырез пазом, а в другом внутренним контуром и в каждом окне сделать (например) 200 копий, после чего нажать кнопку "Перестроить модель". Такое кол-во копий нужно чтобы визуально увидеть разницу во времени работы перестроения модели.
Letos вне форума   Ответить с цитированием Вверх
Старый 19.03.2020, 15:19   #237
rombler
Пользователь
 
Регистрация: 13.01.2020
Сообщений: 69
Сказал(а) спасибо: 48
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
rombler пока не определено
По умолчанию

Ну пока ошибок вроде не наблюдалось. И работать с ним проще чем с контуром.
Вы ничего не сказали про то как замкнуть контур. Возможно ли это как то сделать?
Видимо когда контур сформирован из линий, даже если начало совпадает с концом контур все равно не замыкается.
rombler вне форума   Ответить с цитированием Вверх
Старый 19.03.2020, 15:33   #238
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от rombler Посмотреть сообщение
Ну пока ошибок вроде не наблюдалось. И работать с ним проще чем с контуром.
Вы ничего не сказали про то как замкнуть контур. Возможно ли это как то сделать?
Видимо когда контур сформирован из линий, даже если начало совпадает с концом контур все равно не замыкается.
Можете приложить простенький пример скрипта, который делает незамкнутый контур?
Беглым поиском никакой встроенной функции по замыканию контура не нашёл.
Letos вне форума   Ответить с цитированием Вверх
Старый 22.03.2020, 21:58   #239
Funman
Пользователь
 
Регистрация: 01.01.2020
Сообщений: 30
Сказал(а) спасибо: 17
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
Funman пока не определено
По умолчанию

Здравствуйте. Установил демо базис 11. Пытаюсь подключить к нему Visual Studio Code. Почти все сделал как описано тут https://github.com/BazisSoft/Scripts/wiki за исключением одного пункта 3. Добавьте новую конфигурацию. Для отладки скриптов в модуле Базис-Мебельщик выберите Базис. (не понял что именно и где выбирать)
В итоге получил ошибку. Можете подсказать как исправить или с демо версией да еще 11-ой это не реально?
Миниатюры
Безымянный.jpg  
Funman вне форума   Ответить с цитированием Вверх
Старый 23.03.2020, 10:46   #240
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Funman Посмотреть сообщение
Здравствуйте. Установил демо базис 11. Пытаюсь подключить к нему Visual Studio Code. Почти все сделал как описано тут https://github.com/BazisSoft/Scripts/wiki за исключением одного пункта 3. Добавьте новую конфигурацию. Для отладки скриптов в модуле Базис-Мебельщик выберите Базис. (не понял что именно и где выбирать)
В итоге получил ошибку. Можете подсказать как исправить или с демо версией да еще 11-ой это не реально?
Основная проблема в том, что инструкция и отладчик для БМ10, для 11 пока не завезли отладчик.
Letos вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков 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


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


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

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