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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 08:56  
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565

Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 08:56
Рейтинг: ()

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


Последний раз редактировалось systland; 26.12.2017 в 11:52..
Просмотров: 425054
Ответить с цитированием Вверх
Старый 17.05.2018, 13:26   #141
Kartuz
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 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 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
АлКузнецов (01.03.2020)
Старый 17.05.2018, 13:48   #142
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

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

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

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

Видел тут на форуме эту тему, но перелопатив 100 страниц не нашёл
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 19.05.2018, 23:24   #145
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится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
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Требуется два простеньких скрипта. Первый скрипт переворачивает блок на 180 градусов по оси Z ( как бы спиной), второй скрипт поворачивает тоже на 180 градусов вдоль оси Y. По простому, хочется реализовать вид на модель сзади и снизу.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 21.05.2018, 07:53   #147
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известности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
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится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 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Kartuz (21.05.2018), vas64 (13.04.2021)
Старый 21.05.2018, 09:10   #149
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
а если допустим панель фронтальная, а потом её "руками" повернули по Z она стала как бы вертикальная , то как быть
Думаю, никак. Никаких атрибутов, определяющих ориентацию панели (фронт/верт/гор) нет. Есть еще вариант проверять имя панели, но, думаю, он менее полезен, чем проверка по оси толщины.
Letos вне форума   Ответить с цитированием Вверх
Старый 21.05.2018, 12:12   #150
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известности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 1264 13.03.2024 22:48
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7 2230 29.11.2019 10:37
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


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


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

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