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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 21.12.2017, 12:21  
Заявки на создание скрипта.
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565

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

Тема создана для размещения заявок на написание скриптов.

Для того, чтобы заявка была рассмотрена, необходимо составить максимально понятное техзадание :
1. Описать, какую задачу должен выполнять скрипт.
2. Какие данные должны использоваться скриптом.
3. Алгоритм (последовательность действий) работы скрипта.

Заявки типа "Мне нужен скрипт для расстановки полок" или подобные рискуют остаться без внимания.

Любые заявки не обязательны для рассмотрения. Если Вам не ответили, значит по какой-либо причине нет возможности её выполнить.
Альтернативный вариант - обратиться лично к тем, кто может оказать такую услугу

Другие сообщения, не соответствующие назначению темы, будут удалены без предупреждения!

Просьба после того, как заявка будет выполнена и утратившая актуальность по другим причинам, оставлять соответствующее сообщение в этой же теме или обратится к модератору для закрытия заявки.
__________________


Последний раз редактировалось Uncle; 03.02.2020 в 20:07.. Причина: Поправил шапку
Просмотров: 326057
Ответить с цитированием Вверх
Старый 23.03.2021, 12:29   #121
Анатолий.ru
Пользователь
 
Регистрация: 22.07.2014
Адрес: Sochi
Сообщений: 83
Сказал(а) спасибо: 143
Поблагодарили 135 раз(а) в 36 сообщениях
Вес репутации: 154
Анатолий.ru скоро придёт к известностиАнатолий.ru скоро придёт к известности
По умолчанию #Запрос. 3D DXF в Мебельщик.

Доброго времени суток.
#Запрос.
Импорт файла 3D DXF в Мебельщик.
Без скрипта: Алгоритм таков, загружаю в 3CAD, отрезкам предаю тело 1мм. После загружаю в мебельщик.
Вложения
Тип файла: zip 3D_DXF .zip (2.6 Кб, 13 просмотров)
Анатолий.ru вне форума   Ответить с цитированием Вверх
Старый 05.04.2021, 14:44   #122
Mullerr
Новичок
 
Регистрация: 28.01.2021
Сообщений: 17
Сказал(а) спасибо: 49
Поблагодарили 2 раз(а) в 2 сообщениях
Вес репутации: 0
Mullerr пока не определено
По умолчанию

Здравствуйте. Есть стандартный скрипт в 8БМ "Облицовка кромкой". Может кто-нибудь его изменить чтобы он работал не на всех панелях, а только на выделенных и облицовывал "все кромки/видимые/открытые". Скрипт прилагается.
Вложения
Тип файла: rar Облицовка кромкой.rar (977 байт, 3 просмотров)
Mullerr вне форума   Ответить с цитированием Вверх
Старый 07.04.2021, 19:23   #123
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 701 раз(а) в 265 сообщениях
Вес репутации: 293
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Human2Q Посмотреть сообщение
Текстовое значение же есть, можно подбирать заглужку с таким же текстовым значением
Решается через смету, операции и сопутствующие материалы.
Создаёте операцию допустим "заглушка эксцентрика белая", параметр для этой операции "кол-во глухих отверстий d15", кэтой операции назначает сопутствующие материал "заглушка эксц.белая"..
Делаете подобные операции для всех цветов заглушек.
По аналогии делаете такие же операции для всех видов заглушек.
Потом для удобства можно сделать операцию допустим "кол-во всех заглушек белые", параметр с модели не указываете, к данной операции по сопутствия подвязываете все ранее созданные операции, заглушки от которых используются для белого материала.
Далее эту обобщенную операцию подвязываете сопутствием ко всем белым материалам.
И вуаля.
Так называемая групповая операция не обязательна, можно все "вложенные" в неё сразу на материал назначить, просто мне было так удобнее, одну назначил а не десять)
У нас все работает и на лдсп и на профиль реагирует.
kos100pudov вне форума   Ответить с цитированием Вверх
Старый 07.04.2021, 23:21   #124
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 195
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от Mullerr Посмотреть сообщение
Здравствуйте. Есть стандартный скрипт в 8БМ "Облицовка кромкой". Может кто-нибудь его изменить чтобы он работал не на всех панелях, а только на выделенных и облицовывал "все кромки/видимые/открытые". Скрипт прилагается.

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

Код:
Materials = [];
PanelByMaterial = [];
var PanelChanged = 0;

var Selected = Model.SelectionCount;


Model.forEachPanel(
    function(Obj) {
        if (Selected && !Obj.Selected)
            return
        var MtName = Obj.MaterialName;
        var Index = Materials.indexOf(MtName);
        if (Index < 0) {
            Index = Materials.push(MtName) - 1;
            var Panels = [];
            PanelByMaterial.push(Panels);
        }
        PanelByMaterial[Index].push(Obj);
    });

len = Materials.length;
system.log(len);
for (var i = 0; i < len; ++i) {
    var Gr = Action.Properties.NewCombo(Materials[i], 'На видимые\nНа все\nУдалить');
    Gr.NewButt('Кромка');
    BtnPanSel = Gr.NewSelector('Панелей', PanelByMaterial[i].length + ' шт');
    BtnPanSel.Tag = i;
    BtnPanSel.OnClick = function(Sel) {
        UnSelectAll();
        var Panels = PanelByMaterial[Sel.Tag];
        var len = Panels.length;
        for (var j = 0; j < len; ++j) {
            Panels[j].Selected = true;
        }
    };

    BtnMake = Gr.NewButton('Применить');
    BtnMake.Tag = i;
    BtnMake.OnClick = function(Sel) {
        UnSelectAll();
        var Panels = PanelByMaterial[Sel.Tag];
        var Gr = Action.Properties.Items[Sel.Tag];
        CurAction = Gr.ItemIndex;
        var Butt = Gr.Items[0];
        plen = Panels.length;
        system.log('make butts: ' + plen);
        for (var j = 0; j < plen; ++j) {
          if (MakeButts(Panels[j], CurAction, Butt))
            PanelChanged++;
        }
        Action.Hint = 'отредактировано панелей: ' + PanelChanged;
        Action.Commit();
    };
}

NewButtonInput("Закончить").OnChange = function() { Action.Finish() };
NewButtonInput("Снять выделение").OnChange = function() { UnSelectAll() };

function MakeButts(Panel, Action, Butt) {
    var res = false;
    system.log('Panel: ' + Panel.Name);
    if (Action < 2 ) {
        if (Panel.Butts.Count === 0) {
            for (var i = 0; i < Panel.Contour.Count; i++) {
                if  ((Action == 1) || (Panel.IsButtVisible(i, 1))) {  //проверяет соприкасеется ли кромящиеся сторана(i) с другой пнелью на растояние 1мм
                    system.log('Editing panel butt ' + i);
                    StartEditing(Panel);
                    Panel.AddButt(Butt, i);
                    res = true;
                }
            }
        }
    }
    if (Action == 2) {
        if (Panel.Butts.Count > 0) {
          StartEditing(Panel);
          Panel.Butts.Clear();
          res = true;
        }
    }
    return res;
}

Action.Continue();
[свернуть]
sergio1982 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Mullerr (12.04.2021), toucaner (09.04.2021)
Старый 09.04.2021, 21:05   #125
Uncle
VIP
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,580
Сказал(а) спасибо: 14,588
Поблагодарили 20,026 раз(а) в 6,492 сообщениях
Вес репутации: 5258
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Нужен скрипт по типу функции в Excel "Найти/Заменить" для замены символов (отдельные знаки, буквы, цифры, слова, словосочетания) в наименованиях профилей и панелей.
Алгоритм примерно следующий:
1. Запустить скрипт.
2. В панели свойств поле для ввода "Найти". Вводим в это поле символы, которые нужно найти и заменить.
3. Нажимаем кнопку "Найти". Скрипт находит все сочетания указанных символов.
4. В поле "Заменить на" вводим символы, на которые нужно заменить найденные. Если поле остается пустым, значит найденные символы удаляются. Если ввести в поле замены ""пробел"", то есть, между кавычками нажать клавишу пробел, найденные символы заменяются соответственно на пробел...
5. Нажимаем кнопочку "Заменить".
Готов отблагодарить материально.

Решено. Обсуждение здесь
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...

Последний раз редактировалось Uncle; 11.04.2021 в 13:52.
Uncle вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
PravCom (18.07.2021)
Старый 12.04.2021, 17:24   #126
Mullerr
Новичок
 
Регистрация: 28.01.2021
Сообщений: 17
Сказал(а) спасибо: 49
Поблагодарили 2 раз(а) в 2 сообщениях
Вес репутации: 0
Mullerr пока не определено
По умолчанию

sergio1982, Спасибо. Можно добавить нанесение кромки на "открытые" торцы и чтобы в процессе нанесения на "видимые" торцы удалялась старая кромка Только с "видимых" торцов и клеилась новая?
Mullerr вне форума   Ответить с цитированием Вверх
Старый 14.04.2021, 23:33   #127
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 195
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Mullerr
Попытался сделать "правильно", удалять кромки только с тех сторон которые будут облицованы, но не вышло.
Добавил DeleteMode, сначала удаляются все кромки, потом наносятся новые.

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

Код HTML:
var DeleteMode = 1  // Удалять все кромки перед нанесением
var ButtVisible = 1  // Насколько мм не закрыта кромка панели чтобы считать её видимой
Materials = [];
PanelByMaterial = [];
var PanelChanged = 0;

var Selected = Model.SelectionCount;

Model.forEachPanel(
    function(Obj) {
        if (Selected && !Obj.Selected)
            return
        var MtName = Obj.MaterialName;
        var Index = Materials.indexOf(MtName);
        if (Index < 0) {
            Index = Materials.push(MtName) - 1;
            var Panels = [];
            PanelByMaterial.push(Panels);
        }
        PanelByMaterial[Index].push(Obj);
    });

len = Materials.length;
system.log(len);
for (var i = 0; i < len; ++i) {
    var Gr = Action.Properties.NewCombo(Materials[i], 'На видимые\nНа все\nУдалить');
    Gr.NewButt('Кромка');
    BtnPanSel = Gr.NewSelector('Панелей', PanelByMaterial[i].length + ' шт');
    BtnPanSel.Tag = i;
    BtnPanSel.OnClick = function(Sel) {
        UnSelectAll();
        var Panels = PanelByMaterial[Sel.Tag];
        var len = Panels.length;
        for (var j = 0; j < len; ++j) {
            Panels[j].Selected = true;
        }
    };

    BtnMake = Gr.NewButton('Применить');
    BtnMake.Tag = i;
    BtnMake.OnClick = function(Sel) {
        UnSelectAll();
        var Panels = PanelByMaterial[Sel.Tag];
        var Gr = Action.Properties.Items[Sel.Tag];
        CurAction = Gr.ItemIndex;
        var Butt = Gr.Items[0];
        plen = Panels.length;
        system.log('make butts: ' + plen);
        for (var j = 0; j < plen; ++j) {
          if (MakeButts(Panels[j], CurAction, Butt))
            PanelChanged++;
        }
        Action.Hint = 'отредактировано панелей: ' + PanelChanged;
        Action.Commit();
    };
}

NewButtonInput("Закончить").OnChange = function() { Action.Finish() };
NewButtonInput("Снять выделение").OnChange = function() { UnSelectAll() };

function MakeButts(Panel, Mode, Butt) {
    var res = false;
    system.log('Panel: ' + Panel.Name);
    if (Mode == 2 || DeleteMode) {
        if (Panel.Butts.Count > 0) {
          StartEditing(Panel);
          Panel.Butts.Clear();
          res = true;
        }
    }
    if (Mode < 2) {
        StartEditing(Panel);
        for (var i = 0; i < Panel.Contour.Count; i++) {
            if  ((Mode == 1) || (Panel.IsButtVisible(i, ButtVisible))) {  //проверяет соприкасеется ли кромящиеся сторана(i) с другой пнелью на растояние 1мм
                system.log('Editing panel butt ' + i);
                Panel.AddButt(Butt, i)
                res = true;
            }
        }
    }
    Panel.Build();
    return res;
}
Action.Continue();
[свернуть]
sergio1982 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Mullerr (15.04.2021)
Старый 27.04.2021, 22:06   #128
Slav
Местный
 
Регистрация: 15.05.2012
Адрес: Москва
Сообщений: 259
Сказал(а) спасибо: 43
Поблагодарили 211 раз(а) в 89 сообщениях
Вес репутации: 213
Slav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личностьSlav - весьма и весьма положительная личность
По умолчанию

Коллеги. Нужен скрипт для поиска и выделения панелей с габаритами имеющими дробные окончания размеров. Как такое написать?
Slav вне форума   Ответить с цитированием Вверх
Старый 28.04.2021, 06:51   #129
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 166
Сказал(а) спасибо: 57
Поблагодарили 244 раз(а) в 46 сообщениях
Вес репутации: 139
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от Slav Посмотреть сообщение
Коллеги. Нужен скрипт для поиска и выделения панелей с габаритами имеющими дробные окончания размеров. Как такое написать?
Пробуйте
PHP код:
Model.forEachPanel(
        function(
obj) {
            var 
xo = ((obj.GSize.0) === obj.GSize.x) ;
            var 
yo = ((obj.GSize.0) === obj.GSize.y) ;
            if( !
xo || !yo) {
                
obj.Selected true;
            }
        }
    ); 
Но помните, что в БМ кол-во знаков после запятой 3, а панель может иметь больше знаков. Т.е панель 720,000 , а на самом деле 720,000008 и скрипт эту панель выделит.
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 28.04.2021, 09:11   #130
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 701 раз(а) в 265 сообщениях
Вес репутации: 293
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Пробуйте
PHP код:
Model.forEachPanel(
        function(
obj) {
            var 
xo = ((obj.GSize.0) === obj.GSize.x) ;
            var 
yo = ((obj.GSize.0) === obj.GSize.y) ;
            if( !
xo || !yo) {
                
obj.Selected true;
            }
        }
    ); 
Но помните, что в БМ кол-во знаков после запятой 3, а панель может иметь больше знаков. Т.е панель 720,000 , а на самом деле 720,000008 и скрипт эту панель выделит.
Можно перед проверкой добавить принудительное округление до 3х знаков, все равно сам базис также округлит. И потом проверять.
kos100pudov вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Slav (28.04.2021)
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заявки на фурнитуру, сборки, фрагменты Kudesnick Базис-мебельщик. Элементы фурнитуры и Комплектующих 1392 03.04.2024 19:51
"Мастер скриптов" — изменение скрипта блока в сцене KD ViPeS KitchenDraw (KD) 40 16.10.2023 19:23
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36
Генерирую заявки на шкафы за агентское вознаграждение в Москве. mavar Предлагаю работу 26 21.11.2014 16:06


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


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

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