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

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


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

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

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

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


Последний раз редактировалось systland; 26.12.2017 в 10:52..
Просмотров: 46301
Ответить с цитированием Вверх
Старый 17.05.2018, 13:26   #141
Kartuz
Новичок
 
Регистрация: 16.12.2014
Сообщений: 25
Сказал(а) спасибо: 16
Поблагодарили 4 раз(а) в 4 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
На всякий случай замените вызов Model.forEach на следующий код:
Код:
function forEachInList(list, func) {
    if (!func)
        return;
    for (var i = 0; i < list.Count; i++) {
        var obj = list.Objects[i];
        func(obj);
        if (obj.List) {
            forEachInList(obj.AsList(), func);
        }
    }
}
forEachInList(Model, function (Object) {
    for (var i = 0; i < RegExps.length; i++) {
        if (RegExp(RegExps[i]).test(Object.Name)) 
            Object.Selected = true;
    };
});
В 10 криво работает Model.forEach и вместо некоторых объектов он передает undefined.
И еще меня смутили конечные регулярные выражения, которыми проверяются объекты. У меня выдало такой массив: [/^УДАЛИТЬ$/, /^Отрезок$/, /^Размер$/]. Судя по синтаксису RegExp, такое выражение эквивалентно проверке имени на равенство (то есть, объект с именем "Отрезок2" уже не пройдет проверку таким регулярным выражением). Поэтому интересно, как именно Вы хотите проверять имя объекта, или Вам достаточно того, как проверка происходит на данный момент (тогда логичнее было бы проверять имя на равенство без всяких регулярных выражений)?
У меня там куча различных вариаций слов на удаление. В зависимости от модели, над которой я работаю. Я приложил лишь самый простой.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 17.05.2018, 13:48   #142
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 215
Сказал(а) спасибо: 44
Поблагодарили 382 раз(а) в 146 сообщениях
Вес репутации: 113
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Kartuz Посмотреть сообщение
У меня там куча различных вариаций слов на удаление. В зависимости от модели, над которой я работаю. Я приложил лишь самый простой.
Попробуйте заменить код, как указано выше. Если заработает - хорошо. Если нет - опишите, какой результат вы хотели бы увидеть (Объекты с какими именами должны были выделиться), и какой результат оказался на самом деле.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Kartuz (18.05.2018)
Старый 18.05.2018, 12:35   #143
Kartuz
Новичок
 
Регистрация: 16.12.2014
Сообщений: 25
Сказал(а) спасибо: 16
Поблагодарили 4 раз(а) в 4 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Letos, Всё работает. Хотя странно, старые непеределанные тоже заработали.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 19.05.2018, 12:23   #144
wizardpnz
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 90
Сказал(а) спасибо: 47
Поблагодарили 39 раз(а) в 16 сообщениях
Вес репутации: 106
wizardpnz на пути к лучшему
По умолчанию

как узнать тип панели вертикальная, горизонтальная, фронтальная ?

Видел тут на форуме эту тему, но перелопатив 100 страниц не нашёл
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 19.05.2018, 23:24   #145
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 215
Сказал(а) спасибо: 44
Поблагодарили 382 раз(а) в 146 сообщениях
Вес репутации: 113
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
как узнать тип панели вертикальная, горизонтальная, фронтальная ?

Видел тут на форуме эту тему, но перелопатив 100 страниц не нашёл
Самый простой способ:

var axis = panel.NToGlobal(AxisZ);

Где panel - необходимая панель. Если у вектора axis
  • x=1, то панель вертиакльная
  • y=1, то панель горизонтальная
  • z=1, то панель фронтальная

P.S. Лучше сделать какую-нибудь функцию проверки на равенство с определённой точностью, например:

Код:
function Equals(a, b){
    return Math.abs(a - b) < 0.001;
}
Letos вне форума   Ответить с цитированием Вверх
Старый 20.05.2018, 20:52   #146
Kartuz
Новичок
 
Регистрация: 16.12.2014
Сообщений: 25
Сказал(а) спасибо: 16
Поблагодарили 4 раз(а) в 4 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Требуется два простеньких скрипта. Первый скрипт переворачивает блок на 180 градусов по оси Z ( как бы спиной), второй скрипт поворачивает тоже на 180 градусов вдоль оси Y. По простому, хочется реализовать вид на модель сзади и снизу.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 21.05.2018, 07:53   #147
wizardpnz
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 90
Сказал(а) спасибо: 47
Поблагодарили 39 раз(а) в 16 сообщениях
Вес репутации: 106
wizardpnz на пути к лучшему
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Самый простой способ:

var axis = panel.NToGlobal(AxisZ);

Где panel - необходимая панель. Если у вектора axis
  • x=1, то панель вертиакльная
  • y=1, то панель горизонтальная
  • z=1, то панель фронтальная

P.S. Лучше сделать какую-нибудь функцию проверки на равенство с определённой точностью, например:

Код:
function Equals(a, b){
    return Math.abs(a - b) < 0.001;
}
а если допустим панель фронтальная, а потом её "руками" повернули по Z она стала как бы вертикальная , то как быть
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 21.05.2018, 09:06   #148
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 215
Сказал(а) спасибо: 44
Поблагодарили 382 раз(а) в 146 сообщениях
Вес репутации: 113
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Kartuz Посмотреть сообщение
Требуется два простеньких скрипта. Первый скрипт переворачивает блок на 180 градусов по оси Z ( как бы спиной), второй скрипт поворачивает тоже на 180 градусов вдоль оси Y. По простому, хочется реализовать вид на модель сзади и снизу.
Вот оба скрипта:
Код:
var obj = Model.Selected;
obj.RotateGCS(AxisZ, 180);

var obj = Model.Selected;
obj.RotateGCS(AxisY, 180);
В этом примере поворачивается выделенный объект (если выделенных объектов несколько, то повернётся только один из них)
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Kartuz (21.05.2018)
Старый 21.05.2018, 09:10   #149
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 215
Сказал(а) спасибо: 44
Поблагодарили 382 раз(а) в 146 сообщениях
Вес репутации: 113
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
а если допустим панель фронтальная, а потом её "руками" повернули по Z она стала как бы вертикальная , то как быть
Думаю, никак. Никаких атрибутов, определяющих ориентацию панели (фронт/верт/гор) нет. Есть еще вариант проверять имя панели, но, думаю, он менее полезен, чем проверка по оси толщины.
Letos вне форума   Ответить с цитированием Вверх
Старый 21.05.2018, 12:12   #150
wizardpnz
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 90
Сказал(а) спасибо: 47
Поблагодарили 39 раз(а) в 16 сообщениях
Вес репутации: 106
wizardpnz на пути к лучшему
По умолчанию

как получить список материалов используемых на сцене?
Нашёл вот это. А проще можно, это долго?

IndexOf))) в массиве

Цитата:
Сообщение от Briz Посмотреть сообщение
PHP код:
var Materials Action.DS.MtList.Values.ToArray();
for (var 
0Materials.length; ++k)
  if (
Model.IsMaterialUse(Materials[k])) {
    
system.log(Materials[k].MaterialName);
  } 

Последний раз редактировалось wizardpnz; 21.05.2018 в 13:03.
wizardpnz вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Letos (21.05.2018), Ovsyanicov (21.05.2018)
Ответ

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

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

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

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

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

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


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


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