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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 13:22  
Скрипты. Готовые решения для БМ8-2024
 
Аватар для Igor_482
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174

Сказал(а) спасибо: 34
Поблагодарили 795 раз(а) в 113 сообщениях
Версия для печати Отправить по электронной почте
Igor_482 Igor_482 вне форума 13.01.2014, 13:22
Рейтинг: ()

Этот раздел предназначен для размещения готовых скриптов.
Здесь находятся ТОЛЬКО готовые скрипты. Для обсуждения есть отдельная тема: Обсуждение готовых скриптов.

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

Версии, указанные модератором, как прошедшие проверку:
8 - Демо-версия 8.0.7.9649
- "народная" 8.0.12.12765
9 - Демо-версия 9.0.8.18908
10 - Демо-версия 10.0.0.21602

Последний раз редактировалось AlexBolton; 03.03.2023 в 21:03..
Просмотров: 558854
Ответить с цитированием Вверх
13 пользователя(ей) сказали cпасибо:
Старый 14.05.2022, 09:59   #181
PravCom
Местный
 
Регистрация: 15.10.2019
Адрес: Кишинёв
Сообщений: 198
Сказал(а) спасибо: 492
Поблагодарили 72 раз(а) в 31 сообщениях
Вес репутации: 90
PravCom скоро придёт к известности
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
На видео первым переносится блок
По сути Вы частично реализовали параметрическую секцию более новых версий базиса. Для восьмёрки это очень актуально.
PravCom вне форума   Ответить с цитированием Вверх
Старый 14.05.2022, 23:49   #182
logika.yov
Местный
 
Аватар для logika.yov
 
Регистрация: 26.07.2015
Сообщений: 132
Сказал(а) спасибо: 103
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
logika.yov пока не определено
По умолчанию

Приветствую.У меня при запуске скрипта выдает такую ошыбку.
Изображения
Тип файла: bmp Screenshot_1.bmp (54.2 Кб, 71 просмотров)
logika.yov вне форума   Ответить с цитированием Вверх
Старый 14.05.2022, 23:52   #183
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
/*
CopyFromPoints v1.01
Перенос копий равномерно между точками по осям.
Для начала работы надо указать путь к файлу для сохранения настроек. Folder и settingsFile.
*/
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 15.05.2022, 00:24   #184
logika.yov
Местный
 
Аватар для logika.yov
 
Регистрация: 26.07.2015
Сообщений: 132
Сказал(а) спасибо: 103
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
logika.yov пока не определено
По умолчанию

Первую строку записал путь к папке, а во втором что должо быть?
Миниатюры
2.jpg  
logika.yov вне форума   Ответить с цитированием Вверх
Старый 15.05.2022, 00:37   #185
PravCom
Местный
 
Регистрация: 15.10.2019
Адрес: Кишинёв
Сообщений: 198
Сказал(а) спасибо: 492
Поблагодарили 72 раз(а) в 31 сообщениях
Вес репутации: 90
PravCom скоро придёт к известности
По умолчанию

Цитата:
Сообщение от logika.yov Посмотреть сообщение
Первую строку записал путь к папке, а во втором что должо быть?
const Folder = 'D:\\Скрипты\\Файлы для скрипт-сохр\\'
const settingsFile = Folder + 'CopyFromPoints.xml'

этого хватило
PravCom вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
logika.yov (15.05.2022)
Старый 15.05.2022, 00:57   #186
logika.yov
Местный
 
Аватар для logika.yov
 
Регистрация: 26.07.2015
Сообщений: 132
Сказал(а) спасибо: 103
Поблагодарили 3 раз(а) в 3 сообщениях
Вес репутации: 0
logika.yov пока не определено
По умолчанию

Цитата:
Сообщение от PravCom Посмотреть сообщение
const Folder = 'D:\\Скрипты\\Файлы для скрипт-сохр\\'
const settingsFile = Folder + 'CopyFromPoints.xml'

этого хватило
Спасибо.Заработал.
logika.yov вне форума   Ответить с цитированием Вверх
Старый 25.05.2022, 22:03   #187
АлКузнецов
Местный
 
Аватар для АлКузнецов
 
Регистрация: 15.04.2012
Адрес: Санкт-Петербург
Сообщений: 104
Сказал(а) спасибо: 56
Поблагодарили 276 раз(а) в 63 сообщениях
Вес репутации: 213
АлКузнецов как роза среди колючекАлКузнецов как роза среди колючекАлКузнецов как роза среди колючек
По умолчанию

Связка из двух скриптов делает прогноз по затратам времени на производстве.


задуманный "расчёт по формуле" в итоге превратился в подгонку "поправочных коэффициентов". Сейчас подгонка закончена и скрипт считает достаточно точно (+/- 30 сек. на изделие).

Если у вас расчёты не будут сходиться с фактом -- пишите личку: подскажу где исправить.

ВИМАНИЕ! Публикуемый скрипт НЕ СЧИТАЕТ время на фрезеровку контуров деталей и пазов.

подключаемая база материалов


нужна для получения данных [цены] [плотности] и [модуля упругости]
без этой базы, время раскроя будет "гулять" в пределах 10-15%
PHP код:
/* Оперативный массив базы материалов

Дан пример. заполнения. Данные должны быть ваши.
Данные по плотности и модулю упругости лучше вносить не из справочников, а из  сертификатов и сопроводительных документов на груз.

*/

function PriceDensityObj(Obj) {
var 
bdMat = {};       //строка базы материалов
/* где:
id_m:           - номер строки базы материалов
m_Name:         - наименование материала
m_Art:          - артикул материала
m_Price:             - цена материала
m_Weight:     - вес материала
m_Density:     - Плотность материала
*/
var id 0;           //Номер строки
bdMat[0] = { id_m0id_t0m_Name'материала нет в базе'm_Art''m_Price0,  m_Weight0.0,  m_Density0};
bdMat[++id] = { id_m49262id_t25m_Name'МДФ шлифованный'm_Art'MDF4'm_Price4,  m_Weight3.26,  m_Density815}; 
bdMat[++id] = { id_m49281id_t26m_Name'Стекло бесцветное  5мм'm_Art'ST5'm_Price18,  m_Weight13.25,  m_Density2650}; 
bdMat[++id] = { id_m49986id_t14m_Name'ДСП 16мм шлиф'm_Art''m_Price11.6043956,  m_Weight10.56,  m_Density658}; 
bdMat[++id] = { id_m50016id_t14m_Name'ДСП 18мм шлиф'm_Art''m_Price13.05494505,  m_Weight11.88,  m_Density661}; 
bdMat[++id] = { id_m50017id_t14m_Name'ДСП 25мм шлиф'm_Art''m_Price18.13186813,  m_Weight16.5,  m_Density663}; 
bdMat[++id] = { id_m50004id_t17m_Name'Фанера 15мм'm_Art'Fan15'm_Price11.25,  m_Weight9.75,  m_Density650};
/**/
var idf id;
//alert("база материалов загружена ");     //сигнал отладки базы материалов

var Obj.MaterialName;                //например 'ЛДВП Бежевая'&'LDVP3.2' где

//alert("обработка " + Obj.Name);
//alert("обработка " + m);
//Отладка и поиск размыкания базы данных

        
for (var key in bdMat// цикл по ключевому полю
        
{

        
/*
                                                            анализ значения текста Obj.MaterialName;
        */
        
var bdMat[key].m_Name;                             //'ЛДВП Бежевая'
        
var bdMat[key].m_Art;                            //'LDVP3.2'
        
var ost m.length n.length a.length;            // остаток строки '&' набор неизвестных символов
        /*var etn = ExtractMatName(Obj.MaterialName);
        var eta = ExtractMatCode(Obj.MaterialName);*/
        
var etn m.substring(0n.length);                    // эталон сравнения названия равной длины
        //var eta = m.substring(n.length + ost, m.length);    // эталон сравнения артикула равной длины
        //alert("остаток строки " + ost);
        //alert("совпадение названия " + (n == etn)) ;
        //alert("совпадение артикула " + (a== eta));
        
--idf;
    switch (
true) {                                         //через if не работает -- беконечный цикл
        
case == etn// && a== eta:                 //арикул и наименование материала совпадет
            
return bdMat[key];                        //возвращаем свойства материала
        
break;
    default:
            if (
idf==&& key>0){                     //число попыток равно числу строк базы данных
            //alert("материал " + m + " не найден в базе. Исправьте модель!");
            
            
return bdMat[0];}                        //возвращаем "пустой" материал   bdMat[0]  или выхоим из цикла
    
break;
}

        }


[свернуть]


если вам влом заниматься настройками просто замените материалы "ЛДСП 16" на 'ДСП 16мм шлиф' или нужной толщины.

Подсчет времени


"По-уму", к скрипту нужно написать окно свойств с настраиваемыми паромерами и привязать кнопку на панели инструментов, но мне тупо тень. (Устал, и в отпуск хочу).

Пока, всё в лучших традициях: "стоит на костылях" и запускается исключительно кнопкой (F5) из окна редактора скриптов.

PHP код:
system.include('D:\\js\\bazaMaterialov.js');   // подключаем (прописываем правильный путь) оперативную базу материалов.


function okrugl(chn) {
  
// функция округления числа с заданной точностью
  // ch - число
  // n - количество знаков
    
if(isNaN(ch) || isNaN(n)) return false;
    var 
Math.pow(10,n);
  return 
Math.round(ch*m)/m;
}

var   
w_Izd 0;            // вес изделия
var   $_Izd 0;            // вес изделия
var iZ_Rakr 0;            // время раскроя
var iZ_Krom 0;            // время на кромку
var iZ_Pris 0;            // время на ЧПУ
var iZ_Sborki 0;            // время на Сборку
const t_reza 3.2;            // толщина реза пилы мм
const lob_reza 5100000;    // производительность пилы мм^3
const lob_men 0.165;        // производительность человека кг./м*сек
const lob_krom 183.33;    // производительность кромочника мм/сек
const lob_prisad 225;    // производительность фрез ЧПУ мм^3
const sdvigGolovy 13;    // среднее время на сдвиг головы ЧПУ между отверстиями (сек.)
const tr_rasr 1.5;        // длина руч.переноса деталей на уч.раскроя 1,5 м.пог. х1
const tr_krom 2.2;        // длина руч.переноса деталей на уч.кромки 1,1 м.пог. х2
const tr_prisad 3.2;        // длина руч.переноса деталей на уч.присадки 1,6 м.пог. х2

Model.forEach(function(Obj)
{

        if(!
Obj)
        return;

        switch (
true)
        {

        
/* ТЕЛА ВРАЩЕНИЯ*/
case Obj instanceof TRotationBody:
    
Obj.Delete() // удаляем  т.к. уходит в бесконечный цикл и зависает.
break;
/* -------------------------------*/
            /* ПАНЕЛИ */
case Obj instanceof TFurnPanel:
        
alert("панель "  Obj.Name);
        var 
u_Smet PriceDensityObj(Obj);        // срока соответствия базе материалов

        
iZ_Sborki =iZ_Sborki 0.25;  // добавляем 15 секунд на каждую панель при сборке
            /* УЧАСТОК РАСКРОЯ */
        
var m_Zagotovki 0;
        
m_Zagotovki Obj.ContourWidth Obj.ContourHeight Obj.Thickness u_Smet.m_Density/1000000000;   //вес заготовки в кг
        
console.log('вес заготовки '  Obj.Name" " okrugl(m_Zagotovki3) +' кг.' );
        
Obj.UserProperty['вес заготовки(кг.)'] = okrugl(m_Zagotovki3);
                
w_Izd w_Izd m_Zagotovki;
        var 
cutting_time 0;
        
cutting_time = (Obj.ContourWidth+Obj.ContourHeight)*Obj.Thickness t_reza u_Smet.m_Density/lob_reza//время реза в сек.
        
cutting_time cutting_time/48;
        
console.log('время чистого реза заготовки  '  cutting_time +' сек.' );

        
Obj.UserProperty['время чистого реза заготовки (сек)'] = okrugl(cutting_time2);

        var 
cutting_time_min 0;
        
cutting_time_min cutting_time /60;
        
console.log('время на уч. раскроя  '  Obj.Name +' ' cutting_time_min +' мин.' );
        
Obj.UserProperty['время на уч. раскроя (мин.)'] = 0.20 okrugl(cutting_time_min2);

        
iZ_Rakr iZ_Rakr 0.20 +  okrugl(cutting_time_min2); // Суммируем время раскроя
        
console.log('время на уч. раскроя  (сумма) '  iZ_Rakr +' мин.' );

        
iZ_Pris iZ_Pris 0.15;

        
/* УЧАСТОК КРОМКИ */
        
var Objkr = {};        //доп свойства кромки
        
var $_Kr 0;        //общая стоимость кромки
        
var l_Kr 0;        //общая длина кромок панели

        
for (var iKr=0iKr<Obj.Butts.CountiKr++)
                { 
//считаем кромки панели
                
Objkr.butt Obj.Butts.Butts[iKr];
                
//Objkr.MaterialName = Objkr.butt.Material;
                //Objkr.zenaKr = PriceDensityObj(Objkr).m_Price;
                
Objkr.elem Obj.Contour.Objects[Objkr.butt.ElemIndex];         //элемент контура, на котором кромка
                
Objkr.l= (Objkr.elem.ObjLength() + Objkr.butt.Overhung)/1000;    //Длина элемента контура + Значение свеса кромки
            
l_Kr l_Kr Objkr.l;
            
//Objkr.$ = Objkr.l*Objkr.zenaKr;
            //$_Kr = $_Kr + Objkr.$;
                
};

        
Obj.UserProperty['кол-во кромок (шт.)'] = Obj.Butts.Count;
        
Obj.UserProperty['длина кромок (м.п)'] = okrugl(l_Kr3);
        
//Obj.UserProperty['цена кромок панели (y.e)'] = okrugl($_Kr, 2);

        
var krom_time l_Kr*1000/lob_krom;
        
Obj.UserProperty['чистое время работы кромочника (сек)'] = okrugl(krom_time2);
        
Obj.UserProperty['время на уч. облицовки (мин.)'] = okrugl((krom_time Obj.Butts.Count*20)/602);
        
iZ_Krom iZ_Krom + (krom_time Obj.Butts.Count*20)/60;  // Суммируем время облицовки

break;
            
/* ФУРНИТУРА*/

   
case Obj instanceof TFastener:

        /
УЧАСТОК ПРИСАДКИ/
         
//alert("крепеж " + Obj.Name);                 //название крепежа
        //alert(Obj.Name + " содержит " + Obj.Holes.Count + " вложеных отверстия " );
        
var prisad_time 0;
        var 
sborka_time 0;
        for(
let i 0Obj.Holes.Counti++)    //перебор вложенных элементов
         
let _f Obj.Holes[i];   // обращаеся к объекту
        //console.log(' Ø' + _f.Diameter + 'x' +_f.Depth);
        //console.log('объём стружки = ' + (_f.Diameter*_f.Diameter)/4 * Math.PI * _f.Depth);   //
        
prisad_time prisad_time +(_f.Diameter*_f.Diameter)/Math.PI _f.Depth/lob_prisad;
        
sborka_time sborka_time +(_f.Diameter*_f.Diameter)/Math.PI _f.Depth/180;
          }

        
iZ_Sborki =iZ_Sborki sborka_time/60;
        
Obj.UserProperty['чистое время работы ЧПУ (сек)'] = okrugl(prisad_time2);
        
Obj.UserProperty['время на уч. присадки (мин.)'] = okrugl((prisad_time +(Obj.Holes.Count*sdvigGolovy))/602);
        
Obj.UserProperty['время сборки (мин.)'] =  okrugl(sborka_time/60,1);
        
iZ_Pris iZ_Pris + (prisad_time +(Obj.Holes.Count*sdvigGolovy))/60;
        
iZ_Sborki =iZ_Sborki okrugl(sborka_time/60,1);
        
prisad_time 0;
        
sborka_time 0;
break;
}

         
//Model.UserProperty['цена  Изделия (y.e)'] = okrugl($_Izd, 3);
        
Model.UserProperty['Вес Изделия(кг)'] = okrugl(w_Izd3);
        
Model.UserProperty['Время на раскрой (мин.)']      = okrugl(iZ_Rakr2);
        
Model.UserProperty['Время на кромку  (мин)']      = okrugl(iZ_Krom2);
        
Model.UserProperty['Время на присадку ЧПУ(мин)'] = okrugl(iZ_Pris2);
        
Model.UserProperty['Время на Сборку (мин)'] = okrugl(iZ_Sborki0)*1.25;

/---------------------
конец forEach------------------/
});

alert('Вес Изделия ' okrugl(w_Izd3) + ' кг. \n'+
    
'Время на раскрой 'okrugl(iZ_Rakr2) + ' мин. \n'+
    
'Время на кромку 'okrugl(iZ_Krom0) + ' мин. \n'+
    
'Время на присадку ЧПУ 'okrugl(iZ_Pris2) + ' мин.\n'+
    
'Время на Сборку 'okrugl(iZ_Sborki*1.252) + ' мин.'
[свернуть]


Итог должен выглядеть примерно так.

__________________
С уважением Кузнецов Александр

Последний раз редактировалось АлКузнецов; 25.05.2022 в 22:58.
АлКузнецов вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Ovsyanicov (26.05.2022), PravCom (27.05.2022), zzerg (27.05.2022)
Старый 27.05.2022, 07:11   #188
Анастасия Ясип
Новичок
 
Регистрация: 22.05.2022
Сообщений: 1
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Анастасия Ясип пока не определено
По умолчанию

Здравствуйте! а в смету заглушки должны залетать? как настроить?..это к скрипту по добавлению заглушек
Анастасия Ясип вне форума   Ответить с цитированием Вверх
Старый 01.06.2022, 21:55   #189
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 701 раз(а) в 265 сообщениях
Вес репутации: 294
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию скрываем лишнее

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

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

Код HTML:
var selects = []
var all_objects = [];
for (var i = 0; i < Model.SelectionCount; ++i) {
    selects.push(Model.Selections[i]);
}
Model.forEach(function(obj) {
    all_objects.push({
        obj: obj,
        vis: obj.Visible
    });
});
for (var i = 0; i < all_objects.length; ++i) {
    all_objects[i].obj.Visible = false;
}
for (var i = 0; i < selects.length; ++i) {
    selects[i].Visible = true;
}
alert('в этот момент можно что то делать))');
for (var i = 0; i < all_objects.length; ++i) {
    all_objects[i].obj.Visible = all_objects[i].vis;
}
[свернуть]
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
kos100pudov вне форума   Ответить с цитированием Вверх
6 пользователя(ей) сказали cпасибо:
Старый 11.06.2022, 03:11   #190
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию Рисование текста в модели 3D



Обновление.

Добавлен файл "Текст2.js".
+ Позиционирование текста относительно текущего вида
+ Оформление
+ Привязки


Скрипт разработан на основе кода от Igor_482.

Текст.zip
sergio1982 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
cudesnic09 (11.06.2022), Ovsyanicov (11.06.2022), PravCom (11.06.2022)
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 11-2024 - Скрипты AlexBolton Базис-мебельщик. Скрипты 990 21.05.2024 08:06
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 715 14.04.2024 07:03
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1525 30.03.2024 15:03
Скрипты в чертежах sergio1982 Базис-мебельщик. Скрипты 35 10.02.2024 15:45
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36


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


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

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