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

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


Реклама на портале PROMEBELclub
шкаф-купе со скидкой по акции
Реклама на портале PROMEBELclub

искусственный камень Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 09:56  
БАЗИС 10 - Скрипты
systland
Модератор
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 560

Сказал(а) спасибо: 291
Поблагодарили 428 раз(а) в 180 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 09:56
Рейтинг: (3 голосов - 4.00 средняя оценка)

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


Последний раз редактировалось systland; 26.12.2017 в 11:52..
Просмотров: 75458
Ответить с цитированием Вверх
Старый 10.01.2019, 12:37   #321
fanest
Пользователь
 
Регистрация: 26.09.2014
Сообщений: 31
Сказал(а) спасибо: 39
Поблагодарили 13 раз(а) в 4 сообщениях
Вес репутации: 60
fanest на пути к лучшему
По умолчанию

Некоторые изделия не просчитывает. Ошибок нет, но выдает: Примерный вес изделия: 0 Кг
fanest вне форума   Ответить с цитированием Вверх
Старый 10.01.2019, 14:32   #322
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 277
Сказал(а) спасибо: 57
Поблагодарили 500 раз(а) в 186 сообщениях
Вес репутации: 149
Letos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от fanest Посмотреть сообщение
Некоторые изделия не просчитывает. Ошибок нет, но выдает: Примерный вес изделия: 0 Кг
Попробуйте такой скрипт:

Код

Код:
var Плотность = 0.68;

var weight = 0;
var spam = confirm('Подсвечивать панели в процессе взвешивания?');

Model.forEachPanel(function (panel){
    panel.Selected = true;
    if (panel.AsPanel) {
        weight = weight +
            (panel.GSize.x) *
            (panel.GSize.y) *
            (panel.GSize.z) / 1000 / 1000 * Плотность;
        if (spam) { alert('Панель взвешена'); }
    }
    panel.Selected = false;
})

alert('Примерный вес изделия: ' + Math.round(weight) + 'кг');
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
10 пользователя(ей) сказали cпасибо:
Старый 10.01.2019, 15:16   #323
fanest
Пользователь
 
Регистрация: 26.09.2014
Сообщений: 31
Сказал(а) спасибо: 39
Поблагодарили 13 раз(а) в 4 сообщениях
Вес репутации: 60
fanest на пути к лучшему
По умолчанию

Отлично! Все работает! Спасибо большое!
fanest вне форума   Ответить с цитированием Вверх
Старый 18.01.2019, 17:40   #324
Dima1313
Местный
 
Регистрация: 16.06.2008
Адрес: Подольск Мск Обл
Сообщений: 501
Сказал(а) спасибо: 1,106
Поблагодарили 596 раз(а) в 170 сообщениях
Вес репутации: 301
Dima1313 - это имя известно всемDima1313 - это имя известно всемDima1313 - это имя известно всемDima1313 - это имя известно всемDima1313 - это имя известно всемDima1313 - это имя известно всем
По умолчанию

поясните пжл, возможно ли скриптами сделать вычитание одной операцией одного тела из нескольких-многих тел? Т.е. допустим есть сборный фасад с филенкой и штапиками, я делаю прямоугольное тело больше фасада и которое наполовину пересекает фасад, выделяю фасад (целиком несколько деталей) и говорю вычесть прямоугольное тело, получаем пол фасада...,далее я копирую его в буфер вставляю в 2д получаю сечение фасада. Тоже самое допустим для целого шкафа получим его разрез... Скрипты такое могут?
Dima1313 вне форума   Ответить с цитированием Вверх
Старый 18.01.2019, 17:47   #325
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 277
Сказал(а) спасибо: 57
Поблагодарили 500 раз(а) в 186 сообщениях
Вес репутации: 149
Letos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от Dima1313 Посмотреть сообщение
поясните пжл, возможно ли скриптами сделать вычитание одной операцией одного тела из нескольких-многих тел? Т.е. допустим есть сборный фасад с филенкой и штапиками, я делаю прямоугольное тело больше фасада и которое наполовину пересекает фасад, выделяю фасад (целиком несколько деталей) и говорю вычесть прямоугольное тело, получаем пол фасада...,далее я копирую его в буфер вставляю в 2д получаю сечение фасада. Тоже самое допустим для целого шкафа получим его разрез... Скрипты такое могут?
Нет. Скриптами сделать вычитание тел не получится.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Dima1313 (18.01.2019), Ovsyanicov (21.01.2019)
Старый 01.02.2019, 11:39   #326
Ozimko
VIP
 
Аватар для Ozimko
 
Регистрация: 11.07.2008
Сообщений: 923
Сказал(а) спасибо: 209
Поблагодарили 262 раз(а) в 120 сообщениях
Вес репутации: 275
Ozimko как роза среди колючекOzimko как роза среди колючекOzimko как роза среди колючек
По умолчанию

Господа, я так понял, эластичные фрагменты установить скриптом пока никак?
Ozimko вне форума   Ответить с цитированием Вверх
Старый 05.02.2019, 17:27   #327
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 277
Сказал(а) спасибо: 57
Поблагодарили 500 раз(а) в 186 сообщениях
Вес репутации: 149
Letos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от Ozimko Посмотреть сообщение
Господа, я так понял, эластичные фрагменты установить скриптом пока никак?
Есть способ: загружать их как фурнитуру.
Код:
var frag = OpenFurniture('D:\\Полки.fr3d');
if (frag){
    var obj = frag.Make(0, 0);    
    if (obj){
        obj.ElasticResize({
            x: 800,
            y: 1000,
            z: 400
        });
        obj.Owner = Model.Temp;
    }
}
По порядку, что происходит
1. Загружаем как фурнитуру файл "D:\Полки.fr3d"
2. Если файл загрузился создаём 3д объект (два параметра функции Make для фурнитуры - толщина первой и второй панели - не должны никак влиять на установку фрагмента).
3. Если объект создался, меняем его размеры на (800, 100, 400) и назначаем ему Owner (временная область модели, чтобы по завершении скрипта Базис сам автоматически добавил его в историю).
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Ozimko (05.02.2019)
Старый 05.02.2019, 22:24   #328
Ozimko
VIP
 
Аватар для Ozimko
 
Регистрация: 11.07.2008
Сообщений: 923
Сказал(а) спасибо: 209
Поблагодарили 262 раз(а) в 120 сообщениях
Вес репутации: 275
Ozimko как роза среди колючекOzimko как роза среди колючекOzimko как роза среди колючек
По умолчанию

Спасибо. Работает. Осталось только заставить фрагмент устанавливать на определенной высоте..... Помогайте.

SetCamera(p3dFront);
Bok1 = GetPanel("Укажите 1-ую вертикальную панель");
Bok2 = GetPanel("Укажите 2-ую вертикальную панель");
SetCamera(p3dTop);
Back = GetEdge('Укажите заднюю границу', AxisX).First.z;
Front = GetEdge('Укажите переднюю границу', AxisX).First.z;
SetCamera(p3dFront);

x1 = Bok1.GabMax.x + 0;
x2 = Bok2.GabMin.x - 0;
z1 = Back;
z2 = Front;
var frag = OpenFurniture('C:\\Bazis 10\\Фрагменты\\35\\11.fr3d');
if (frag){
var obj = frag.Make(0, 0);
if (obj){
obj.ElasticResize({
x: x2,
y: Action.Pos3.y,
z: z2
});
obj.Owner = Model.Temp;
}
}



Упс. И не только высоту.... еще и первая точка фрагмента - начало координат....
Ozimko вне форума   Ответить с цитированием Вверх
Старый 06.02.2019, 09:45   #329
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 277
Сказал(а) спасибо: 57
Поблагодарили 500 раз(а) в 186 сообщениях
Вес репутации: 149
Letos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царствеLetos - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от Ozimko Посмотреть сообщение
Спасибо. Работает. Осталось только заставить фрагмент устанавливать на определенной высоте.
И не только высоту.... еще и первая точка фрагмента - начало координат....
Дополнил ваш код и добавил немного комментариев.
Странно, что вы решили взять для высоты координату "Action.Pos3.y", ведь позиция курсора в этот момент может быть любой. Я решил, что будет логичнее брать границы высоты по границам указанных вертикальных панелей. Также изменил вычисление размера объекта и добавил назначение позиции (трёхмерной точки).

Код


Код:
const filename = 'C:\\Bazis 10\\Фрагменты\\35\\11.fr3d';

SetCamera(p3dFront);
var Bok1 = GetPanel("Укажите 1-ую вертикальную панель");
var Bok2 = GetPanel("Укажите 2-ую вертикальную панель");
SetCamera(p3dTop);
var Back = GetEdge('Укажите заднюю границу', AxisX).First.z;
var Front = GetEdge('Укажите переднюю границу', AxisX).First.z;
SetCamera(p3dFront);

var x1 = Bok1.GabMax.x + 0;
var x2 = Bok2.GabMin.x - 0;
// Максимальная координата по высоте из двух минимальных координат панелей
var y1 = Math.max(Bok1.GabMin.y, Bok2.GabMin.y);
// Минимальная координата по высоте из двух максимальных координат панелей
var y2 = Math.min(Bok1.GabMax.y, Bok2.GabMax.y);
var z1 = Back;
var z2 = Front;
var frag = OpenFurniture(filename);
if (frag) {
    var obj = frag.Make(0, 0);
    if (obj) {
        // размер по оси = максимум - минимум
        obj.ElasticResize({
            x: x2 - x1,
            y: y2 - y1,
            z: z2 - z1
        });
        obj.Owner = Model.Temp;
    }
    // минимальная координата идёт в координату позиции
    obj.Position = {
        x: x1,
        y: y1,
        z: z1
    }
}
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Ozimko (06.02.2019)
Старый 06.02.2019, 09:58   #330
Ozimko
VIP
 
Аватар для Ozimko
 
Регистрация: 11.07.2008
Сообщений: 923
Сказал(а) спасибо: 209
Поблагодарили 262 раз(а) в 120 сообщениях
Вес репутации: 275
Ozimko как роза среди колючекOzimko как роза среди колючекOzimko как роза среди колючек
По умолчанию

Огромное спасибо, все работает. Что бы мы, дилетанты, без вас делали....
А по этому скрипту - нельзя ли сделать точку вставки фрагмента привязанной либо к положению курсора, либо вводом высоты полки в выпадающее окно либо в панели свойств? Добили бы тогда офигенный скрипт.

с вводом высоты справился. А вот с привязкой к курсору мыши не могу....

const filename = 'C:\\Bazis 10\\Фрагменты\\35\\11.fr3d';
pozY = NewNumberInput('высота полки');
pozY.Value = 30;
SetCamera(p3dFront);
var Bok1 = GetPanel("Укажите 1-ую вертикальную панель");
var Bok2 = GetPanel("Укажите 2-ую вертикальную панель");
SetCamera(p3dTop);
var Back = GetEdge('Укажите заднюю границу', AxisX).First.z;
var Front = GetEdge('Укажите переднюю границу', AxisX).First.z;
SetCamera(p3dFront);

var x1 = Bok1.GabMax.x + 0;
var x2 = Bok2.GabMin.x - 0;
// Максимальная координата по высоте из двух минимальных координат панелей
var y1 = Math.max(Bok1.GabMin.y, Bok2.GabMin.y);
// Минимальная координата по высоте из двух максимальных координат панелей
var y2 = Math.min(Bok1.GabMax.y, Bok2.GabMax.y);
var z1 = Back;
var z2 = Front;
var frag = OpenFurniture(filename);
if (frag) {
var obj = frag.Make(0, 0);
if (obj) {
// размер по оси = максимум - минимум
obj.ElasticResize({
x: x2 - x1,
y: y2 - y1,
z: z2 - z1
});
obj.Owner = Model.Temp;
}
// минимальная координата идёт в координату позиции
obj.Position = {
x: x1,
y: y1 + pozY.Value,
z: z1
}
}
Ozimko вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-Мебельщик 10 systland Базис-мебельщик 10.0 780 Сегодня 10:52
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7.0 2228 12.09.2016 19:13
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


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


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