Форум профессиональных мебельщиков 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..
Просмотров: 425228
Ответить с цитированием Вверх
Старый 21.03.2019, 17:52   #381
Miracle01
Новичок
 
Регистрация: 26.02.2019
Сообщений: 14
Сказал(а) спасибо: 7
Поблагодарили 3 раз(а) в 2 сообщениях
Вес репутации: 0
Miracle01 пока не определено
По умолчанию

Кому интересно, вроде нашел параметр отвечающий за отрезки. Тут подсчет и решение для сметы.

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

PHP код:
if (Panel.Butts) {
    
n=Panel.Butts.Count//Количество кромок, но если кромка нанесена одним отрезком на радиусную деталь, считаем отдельно отрезки
    
for (i=0i<Panel.Butts.Counti++){ //Анализ по кромкам на панели
        
var butt Panel.Butts.Butts[i];
        var 
elem Panel.Contour.Objects[butt.ElemIndex];//элемент контура, на котором кромка
        
Result += (elem.ObjLength() + butt.Overhung)/1000;//Длина элемента контура + Значение свеса кромки
        
if (Panel.Butts.Butts[i].CutIndex>=0) { //Поиск отрезков кромки
            
otr=Panel.Butts.Butts[i].CutIndex+1;
            
otr_cnt +=1;
        }        
    }
}

Result Result/(n-(otr_cnt-otr)); 
[свернуть]

Последний раз редактировалось Miracle01; 22.03.2019 в 12:34.
Miracle01 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Dzen_zs (05.04.2022), volunka (22.03.2019)
Старый 25.03.2019, 15:19   #382
Miracle01
Новичок
 
Регистрация: 26.02.2019
Сообщений: 14
Сказал(а) спасибо: 7
Поблагодарили 3 раз(а) в 2 сообщениях
Вес репутации: 0
Miracle01 пока не определено
По умолчанию

Подскажите, как на панели найти длину фрезерованных резов (завалов), как внутренних так и по контуру ?
Miracle01 вне форума   Ответить с цитированием Вверх
Старый 04.04.2019, 19:04   #383
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Эластичность записана в параметрах объекта, но там дофига в отладчике покопаться надо, чтобы разобраться, откуда что доставать.
Вот пример, как получить ноду с описанием плоскостей эластичности:
PHP код:
var node block.ParamSectionNode('Elastic'False);
var 
planesNode node.Find('Planes'); 
там какая то мазафака) большой и сложный объект и я не понял где и как искать. Поковырялся - безрезультатно(.
Если есть советы/решение:
- как найти параметры "эластика" (min/max по осям и шаг)?
- как найти сколько плоскостей на "координате"? (к примеру мне нужно определять на все ли три оси "навешан" эластик у модуля).
напишите пожалуйста.

P.S вопросы для интереса:
planesNode - это какой то большой класс через API видно ?
Базис на Дельфи написан? или C++ ?

Последний раз редактировалось IStiv; 04.04.2019 в 20:43.
IStiv вне форума   Ответить с цитированием Вверх
Старый 05.04.2019, 10:51   #384
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
Базис на Дельфи написан? или C++ ?
Насколько я знаю, написан на Дельфи.

Кто-нибудь знает как получить материал облицовки пласти? Второй день пытаюсь в отладчике найти и безрезультатно.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 05.04.2019, 11:27   #385
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известностиwizardpnz скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
Насколько я знаю, написан на Дельфи.

Кто-нибудь знает как получить материал облицовки пласти? Второй день пытаюсь в отладчике найти и безрезультатно.
obj.Plastics.Plastics[0].Material
wizardpnz вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Letos (05.04.2019), Ovsyanicov (05.04.2019), volunka (06.04.2019)
Старый 05.04.2019, 12:40   #386
Ovsyanicov
Местный
 
Регистрация: 30.11.2013
Адрес: Кишинев
Сообщений: 734
Сказал(а) спасибо: 1,529
Поблагодарили 884 раз(а) в 376 сообщениях
Вес репутации: 402
Ovsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордитсяOvsyanicov за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
obj.Plastics.Plastics[0].Material
Огромное спасибо! А я зациклился на PlasticsList.
Ovsyanicov вне форума   Ответить с цитированием Вверх
Старый 08.04.2019, 19:07   #387
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Всем привет.
подскажите как правильно фурнитуру(ручку) на панели спозиционировать?
я так понимаю "ноль" панели зависит от того как ее технолог "крутил"?
Вообщем у меня есть X,Y и я знаю что их надо отмерять от нижнего левого угла.
нашел метод. но "ноль" то в панели , весьма условен..
может есть какой то правильный способ позиционирования ?)
PHP код:
    /**
     * Установить крепеж на плоскость панели
     * @param panel
     * @param x
     * @param y
     * @param z
     * @param angle Угол (В градусах)
     */
    
Mount1(panelPanelxnumberynumberznumberanglenumber): Object3
Добавлено через 2 минуты
P.S. еще раз на всякий случай спрошу. есть ли тут кто писал скрипты под Салон?
IStiv вне форума   Ответить с цитированием Вверх
Старый 09.04.2019, 10:00   #388
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
Всем привет.
подскажите как правильно фурнитуру(ручку) на панели спозиционировать?
я так понимаю "ноль" панели зависит от того как ее технолог "крутил"?
Вообщем у меня есть X,Y и я знаю что их надо отмерять от нижнего левого угла.
нашел метод. но "ноль" то в панели , весьма условен..
может есть какой то правильный способ позиционирования ?)
PHP код:
    /**
     * Установить крепеж на плоскость панели
     * @param panel
     * @param x
     * @param y
     * @param z
     * @param angle Угол (В градусах)
     */
    
Mount1(panelPanelxnumberynumberznumberanglenumber): Object3
Координаты x, y, z - глобальные координаты, куда, в теории, должен установиться крепёж. По факту, Базис корректирует координаты установки, чтобы крепёж ставился ровно.
Нижний левый угол фронтальной панели (в ГСК):
Код:
var corner = {
    x: panel.GabMin.x,
    y: panel.GabMin.y,
    z: panel.GabMax.z //GabMax - спереди, GabMin - сзади
}
И, я так понял, вам останется только прибавить отступы по Х и У для получения точки позиционирования крепежа.
Letos вне форума   Ответить с цитированием Вверх
Старый 09.04.2019, 16:58   #389
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
там какая то мазафака) большой и сложный объект и я не понял где и как искать. Поковырялся - безрезультатно(.
Если есть советы/решение:
- как найти параметры "эластика" (min/max по осям и шаг)?
- как найти сколько плоскостей на "координате"? (к примеру мне нужно определять на все ли три оси "навешан" эластик у модуля).
напишите пожалуйста.
Написал скрипт, который показывает чуть более расширенную информацию по эластичности:

Код

PHP код:
var props Action.Properties;
var 
objName props.NewString('Имя объекта');
var 
width props.NewGroup('Ширина');
var 
height props.NewGroup('Высота');
var 
depth props.NewGroup('Глубина');
// Два массива для перебора значений по осям
var fields = [
    
'x',
    
'y',
    
'z'
]
var 
sizeProps = [
    
width,
    
height,
    
depth
]


var 
planes props.NewGroup('Плоскости');
var 
vert planes.NewNumber('Вертикальные');
vert.Tag 0
var hor planes.NewNumber('Горизонтальные');
hor.Tag 1
var front planes.NewNumber('Фронтальные');
front.Tag 2
var axisGroups = [
    
vert,
    
hor,
    
front
];

// function CheckNode(node) {
//     for (var i = 0; i < node.Count; i++) {
//         var name = node.Nodes[i].Name;
//         if (name) {

//         }
//     }
// }

//Добавление информации о плоскости
function AddPlane(node) {
    var 
axis node.FindNode('Axis');
    var 
axisValue axis axis.Value 0;
    
//Ось плоскости
    
var planeGroup axisGroups[axisValue].NewGroup('');
    var 
pos node.FindNode('Pos');
    
posValue pos pos.Value 0;
    
//Положение плоскости
    
planeGroup.NewNumber('Позиция'pos.Value);
    var 
weight node.FindNode('Weight');
    if (
weight) {
        
// вес плоскости
        
planeGroup.NewNumber('Вес'weight.Value);
    }
}

// запись размера в числовое свойство оси
function AddSize(numbernodefield){
    var 
fieldNode node.FindNode(field);    
    if (
fieldNode){
        
number.Value fieldNode.Value;
    }
    else 
        
number.Value 0;
}

//запись размера в числовые свойства осей
function AddSizes(nodename){    
    for (var 
0sizeProps.lengthi++){
        var 
num sizeProps[i].NewNumber(name);
        
AddSize(numnodefields[i]);
    }
}

// заполнение информации об объекте
function FillObjectInfo(obj){
    
objName.Value '';
    
width.Clear();
    
height.Clear();
    
depth.Clear();
    
vert.Clear();
    
hor.Clear();
    
front.Clear();
    if (
obj){
        
objName.Value obj.Name;
        var 
elastic obj.ParamSectionNode('Elastic');    
        if (
elastic){
            var 
node elastic.FindNode('AreaMin');
            if (
node){
                
AddSizes(node'Минимум');
            }
            
node elastic.FindNode('AreaMax');
            if (
node){
                
AddSizes(node'Максимум');
            }
            
node elastic.FindNode('AreaStep');
            if (
node){
                
AddSizes(node'Шаг');
            }
            var 
planes elastic.FindNode('Planes');
            if (
planes){
                for (var 
0planes.Counti++){
                    
AddPlane(planes.Nodes[i]);
                }
            }
        }
        else
            
alert('Объект не является эластичным блоком');
    }
    for (var 
0axisGroups.lengthi++){
        
axisGroups[i].Value axisGroups[i].Count;
        
axisGroups[i].Expanded false;
    }
}

props.NewButton('Исследовать').OnClick = function(){
    
FillObjectInfo(Model.Selected);
}

{
    var 
obj Model.Selected;
    if (
obj)
        
FillObjectInfo(obj);
}

Action.Continue();
Action.Hint 'Выберите объект в структуре модели и нажмите кнопку "Исследовать"'
[свернуть]


Есть один косяк - если в TXBSNode содержится стандартное значение (0, false, ''), то этой ноды не существует.
Letos вне форума   Ответить с цитированием Вверх
5 пользователя(ей) сказали cпасибо:
IStiv (10.04.2019), maxgmv (14.02.2020), Ovsyanicov (10.04.2019), PravCom (30.07.2021), АлКузнецов (14.01.2022)
Старый 10.04.2019, 15:38   #390
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Написал скрипт, который показывает чуть более расширенную информацию по эластичности
в очередной раз большое спасибо. без Ваших подсказок, я бы не продвинулся в решении задач.
IStiv вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков 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


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


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

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