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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 21.03.2018, 14:48  
Обсуждение скриптов в Системе Базис
Letos
Консультант
Регистрация: 28.06.2017
Сообщений: 555

Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Версия для печати Отправить по электронной почте
Letos Letos вне форума 21.03.2018, 14:48
Рейтинг: ()

Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Просмотров: 237695
Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (28.07.2021), Максим Геннадьевич (08.06.2018)
Старый 21.10.2019, 16:17   #171
Metabol
Новичок
 
Регистрация: 21.10.2019
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Metabol пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Могу быть неправ, но, насколько мне известно, самого функционала скриптов в Раскрое нет.
Вот мне тоже не ясно, даже если что-то напишешь, как вообще из Раскроя их запусть?
Сотрудник попросил решить задачу быстрого автоматизированного сброса в Эксель содержимого кроя по всем материалам. По одному-то материалу экспорт встроен в Раскрой.
Metabol вне форума   Ответить с цитированием Вверх
Старый 21.10.2019, 18:47   #172
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Metabol Посмотреть сообщение
Сотрудник попросил решить задачу быстрого автоматизированного сброса в Эксель содержимого кроя по всем материалам.
Если есть Мебельщик и необходимая информация находится в модели/моделях мебельщика - сделайте скриптами в БМ с выгрузкой в Эксель, это возможно.
IStiv вне форума   Ответить с цитированием Вверх
Старый 22.10.2019, 09:23   #173
Metabol
Новичок
 
Регистрация: 21.10.2019
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Metabol пока не определено
По умолчанию Скрипт вывода списка размеров деталей из Раскроя

Заковыка в том, что крой черновой, т.е. с припусками на деталь или на группу деталей. Фактически размеры забиваются вручную, исходя из визуального анализа раскладки фанерованных деталей
Metabol вне форума   Ответить с цитированием Вверх
Старый 01.11.2019, 03:52   #174
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 0
Vogel на пути к лучшему
По умолчанию Translate и TranslateGCS, Rotate и RotateGCS

Не могу понять как работают эти методы для объектов:

Translate — Сместить объект.
Rotate — Повернуть вокруг заданной оси.
TranslateGCS — Сместить объект в глобальной СК.
RotateGCS — Повернуть объект в глобальной СК.

В описании для метод ...GCS указано, что они смещают объекты относительно Глобальной Системы координат. Но по факту создав панель и сместив ее от начало координат (ГСК) она вращается относительно себя при применении методов Rotate и RotateGCS, а смещается всегда относительно ГСК. Коллеги, объясните как ими правильно пользоваться?

У меня стоит задача повернутую относительно всех осей панель сместить на ее толщину. Это из глобальной задачи. Вот изучаю методы и столкнулся с непонятным для меня результатом.
Vogel вне форума   Ответить с цитированием Вверх
Старый 01.11.2019, 09:57   #175
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Vogel Посмотреть сообщение
Не могу понять как работают эти методы для объектов:

Translate — Сместить объект.
Rotate — Повернуть вокруг заданной оси.
TranslateGCS — Сместить объект в глобальной СК.
RotateGCS — Повернуть объект в глобальной СК.

В описании для метод ...GCS указано, что они смещают объекты относительно Глобальной Системы координат. Но по факту создав панель и сместив ее от начало координат (ГСК) она вращается относительно себя при применении методов Rotate и RotateGCS, а смещается всегда относительно ГСК. Коллеги, объясните как ими правильно пользоваться?

У меня стоит задача повернутую относительно всех осей панель сместить на ее толщину. Это из глобальной задачи. Вот изучаю методы и столкнулся с непонятным для меня результатом.
Translate - смещает относительно ЛСК родительского объекта. Если у вас панель в корне модели, то родительский объект панели - модель и разницы в этому случае между Translate и TranslateGCS нет. Для смещения относительно ЛСК объекта есть метод TranslateLCS.

Посмотрел, как работает RotateGCS. Он действительно поворачивает панель относительно её нулевой точки, но поворачивает относительно оси в ГСК, в отличие от Rotate, который поворачивает относительно оси в ЛСК.
Letos вне форума   Ответить с цитированием Вверх
Старый 01.11.2019, 11:27   #176
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 0
Vogel на пути к лучшему
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Посмотрел, как работает RotateGCS. Он действительно поворачивает панель относительно её нулевой точки, но поворачивает относительно оси в ГСК, в отличие от Rotate, который поворачивает относительно оси в ЛСК.
Т.е. Если у нас создана "Фронтальная панель" не помещена в блок, то мы эффекта не увидим, если будем вращать вокруг оси Z, которая совпадает в этом случае с ЛСК панели и ГСК. А если мы повернем панель и вокруг оси Y "ручками", поместим в блок и применим те же методы, то увидим разницу. попробовал работает.

Подскажите, метод TranslateLCS применим к панели или к панели, помещенной в блок? // Проверил - работает для ЛСК объекта. Т.е. для панели.
Vogel вне форума   Ответить с цитированием Вверх
Старый 05.11.2019, 02:56   #177
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 0
Vogel на пути к лучшему
По умолчанию [object TFurnBlock],[object TFurnAsm],[object TDraftBlock]

Коллеги, добраться до типа объекта Родителя, в который помещен объект под курсором. Определить что это. Но не просто в строке состояния увидеть надпись: [object TFurnBlock] или [object TFurnAsm] или[object TDraftBlock] или ... , а именно свойство. С помощью этого свойства хочу выбрать действие для каждого из типов. Можно ли как-то опрашивать объект, на принадлежность его к какому-то типу?

Скрытый текст


function BT(Obj){
T_List = new Array('[object TFurnBlock]','[object TFurnAsm]','[object TDraftBlock]');
T_NameList = new Array('Блок', 'Сборка', 'Полуфабрикат');
for(i=0;i<TList.length;++i){
if(Obj.Owner==TList[i]){
A = T_NameList[i];
}
}

return A;
}
Action.OnMove = function(){
DeleteNewObjects();
A = Action.Get3DObject();
TB = BT(A);
Action.Hint = TB;
}
Action.OnClick= function(){
//
DeleteNewObjects();
Action.Finish();
}
Action.Continue();
[свернуть]
Vogel вне форума   Ответить с цитированием Вверх
Старый 05.11.2019, 17:17   #178
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Vogel Посмотреть сообщение
Можно ли как-то опрашивать объект, на принадлежность его к какому-то типу?
instanceof

Скрытый текст

PHP код:
var obj
if (
obj instanceof T2DTrajectoryBody) {

}
else if (
obj instanceof TExtrusionBody) {
    
}

else if{
obj instanceof TFurnPanel){
            
}
else{
            

[свернуть]
IStiv вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Letos (05.11.2019)
Старый 06.11.2019, 11:31   #179
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 репутация неоспорима
По умолчанию

Есть такая проблема: отрисованные склейкой по пласти панели (например, 16+16) нуждаются в обработке на чпу еще до склейки, то есть каждая 16-тая по-отдельности. Конструкторы отрисовывают данные "обработки" в виде доп. панелей, то есть в итоге в приведенном выше примере рисуются три панели:

1. 16мм (1ый слой склееной панели)

2. 16мм (2ой слой склееной панели)

3. 32м (собственно итоговая панель)
на каждую из этих трех панелей наносятся те обработки (отверстия, пазы и проч.) , которые должны быть произведены с панелью. С ЧПУ вопрос таким образом решается, но есть задача передачи данных в управляющую программу, которая должна сформировать соответствующие этапы поизводства. И здесь возникает проблема: поскольку панели никак не связаны, то идентифицировать их принадлежность друг к другу не представляется возможным (без доп. телодвижений). Идентификация по номеру позиции (или по обозначению) тоже не слишком удобный вариант .. то есть записывая позицию ассоциируемой панели в пользовательское свойство, получаем мину замедленного действия, приводимую в действие при перерастановке позиций.

Собственно обращаюсь за поддержкой коллективного разума .. Решение представляется в след.виде: нужно написать скрипт, который бы генерировал некий уникальный идентификатор и по указанию пользователя записывал его в пользовательские свойства выбранных пользователем панелей. Можно ли сформировать такой уникальный идентификатор средствами скрипта?


для идентификатора вполне подойдет строка полученая из даты:
var now = new Date();
id = String(now);


как организовать в коде такой механизм работы:
1. запускаем скрипт
2. выделяем панели
3. присваиваем идентификатор
4. снимаем выделение

пп 2,3,4 - в цикле
выход из цикла по кнопке "Завершить"
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko на форуме   Ответить с цитированием Вверх
Старый 06.11.2019, 15:04   #180
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
как организовать в коде такой механизм работы:
1. запускаем скрипт
2. выделяем панели
3. присваиваем идентификатор
4. снимаем выделение

пп 2,3,4 - в цикле
выход из цикла по кнопке "Завершить"
Надеюсь, правильно понял задачу. В данном скрипте пункты 3 и 4 выполняются одновременно по нажатию кнопки. Идентификатор беру числовой и увеличиваю его в зависимости от идентификаторов других объектов в модели.

Код

PHP код:
const PropName 'UID_PROP';
Model.UnSelectAll();

// получить новый ID перебором всех объектов
function GetNewID(){
    var 
result 1;
    
Model.forEach(function (obj){
        if (
obj){
            for (var 
0obj.UserPropCounti++){
                if (
obj.UserPropertyName[i] == PropName){
                    var 
value obj.UserProperty[i];
                    if (
Number(value) >= result){
                        
result Number(value) + 1;
                    }
                }
            }
        }
    })
    return 
result;
}
Action.Continue();
// список текущих панелей
var pList = [];

Action.Properties.NewButton('Назанчить ID').OnClick = ()=>{
    var 
id GetNewID();
    for (var 
0pList.lengthi++){
        var 
obj pList[i];
        
obj.Selected false;
        
obj.UserProperty[PropName] = id;
    }
    
// очищаем список
    
pList.length 0;
}
var 
running true;
Action.OnFinish = function (){
    
running false;
}

while (
running){
    var 
GetPanel('Выделите панель');
    
p.Selected true;
    
pList.push(p);

[свернуть]
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
bbb i ko (06.11.2019), zorro (06.11.2019)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждение готовых скриптов Letos Базис-мебельщик. Скрипты 492 04.03.2024 11:42
БАЗИС 8 - общее обсуждение DTioutiou Базис-мебельщик 8 2092 15.08.2023 01:44
БАЗИС 8 - Фурнитура, обсуждение nayrogi Базис-мебельщик 8 1390 16.04.2022 22:47
MasterBox 7. Работа с ящиками в системе БАЗИС Daddy Базис-мебельщик 7 605 13.11.2019 11:13
Общие вопросы по системе БАЗИС 7.0 COBA Базис-мебельщик 7 904 24.08.2016 19:16


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


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

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