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

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


Реклама на портале PROMEBELclub
шкаф-купе со скидкой по акции
Реклама на портале PROMEBELclub

искусственный камень Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 21.03.2018, 13:48  
Обсуждение скриптов в Системе Базис
Letos
Консультант
Регистрация: 28.06.2017
Сообщений: 213

Сказал(а) спасибо: 43
Поблагодарили 378 раз(а) в 145 сообщениях
Версия для печати Отправить по электронной почте
Letos Letos вне форума 21.03.2018, 13:48
Рейтинг: (3 голосов - 4.00 средняя оценка)

Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Просмотров: 18902
Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Старый 18.04.2018, 11:41   #31
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 213
Сказал(а) спасибо: 43
Поблагодарили 378 раз(а) в 145 сообщениях
Вес репутации: 112
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Rudolf Посмотреть сообщение
Добрый день.
Есть ли возможность имортировать через скрипт в Базис 8 данные из формата csv, например
артикул1;длина1;ширина1;колво1
артикул2;длина2;ширина2;колво2
...
После импорта будут созданы панели с этими параметрами.
Вот пример для описанного Вами случая:
PHP код:
//имя файла
var csvName system.askFileName('csv');
//содержимое файла
var content system.readTextFile(csvName);
// массив, элемент которого равен строке из файла
var panels content.split('\r\n');
// позиция (геометрическая) панели
var curPos NewVector(0,0,0);
for (var 
0panels.lengthi++){
    
// массив, содержащий информацию по конкрентой панели
    
var panel panels[i].split(';');
    
// Позиция (артикул) панели
    
var art panel[0];
    
//длина панели
    
var length panel[1];
    
//ширина панели
    
var width panel[2];
    
// кол-во панелей
    
var count panel[3];
    for (var 
0countk++){
        
//добавление панели
        
var AddVertPanel(00widthlength0);
        
//назначение позиции (артикула)
        
p.ArtPos art;
        
// назначение позиции геометрической
        
p.Position curPos;
        
// увеличение позиции по х, чтобы все панели были на одной линии
        
curPos.+= 50;
    }

Писал в 10 версии, но, думаю, будет работать во всех. Если вдруг не заработает, запустите его из встроенного редактора и напишите текст ошибки, попробую исправить.
Letos вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Ovsyanicov (18.04.2018), Rudolf (19.04.2018), Uncle (18.04.2018)
Старый 18.04.2018, 12:07   #32
Uncle
Модератор
 
Аватар для Uncle
 
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 8,307
Сказал(а) спасибо: 13,411
Поблагодарили 16,311 раз(а) в 5,180 сообщениях
Вес репутации: 4220
Uncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспоримаUncle репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
PHP код:
Сергей, просветите, пожалуйста, что сделать с PHP-кодом, что бы он стал полноценным скриптом ? ) То есть, вставил в редактор скриптов и сразу можно нажимать Запуск ..
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Uncle вне форума   Ответить с цитированием Вверх
Старый 18.04.2018, 12:23   #33
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 213
Сказал(а) спасибо: 43
Поблагодарили 378 раз(а) в 145 сообщениях
Вес репутации: 112
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от Uncle Посмотреть сообщение
Сергей, просветите, пожалуйста, что сделать с PHP-кодом, что бы он стал полноценным скриптом ? ) То есть, вставил в редактор скриптов и сразу можно нажимать Запуск ..
Да. Контейнер "PHP код" я использовал для более красивого отображения на форме, ибо контейнер "код" пишет все сплошным текстом без выделения ключевых слов и комментариев.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Uncle (18.04.2018)
Старый 18.04.2018, 13:29   #34
Rudolf
Новичок
 
Регистрация: 29.11.2014
Сообщений: 4
Сказал(а) спасибо: 1
Поблагодарили 3 раз(а) в 1 сообщении
Вес репутации: 0
Rudolf пока не определено
По умолчанию

Огромное спасибо.
Все работает на 99% - читает из файла и создает детали, но почему-то размером 2х2
Алерты перед AddVertPanel показывают правильные цифры, разбираюсь.
Rudolf вне форума   Ответить с цитированием Вверх
Старый 19.04.2018, 10:54   #35
Rudolf
Новичок
 
Регистрация: 29.11.2014
Сообщений: 4
Сказал(а) спасибо: 1
Поблагодарили 3 раз(а) в 1 сообщении
Вес репутации: 0
Rudolf пока не определено
По умолчанию

Нашел проблему.
Значения размеров записывались в переменные как строка.
Вот такой все заработало:
PHP код:
var csvName system.askFileName('csv');
var 
content system.readTextFile(csvName);
var 
panels content.split('\r\n');
var 
curPos NewVector(0,0,0);
for (var 
0panels.lengthi++){
    var 
panel panels[i].split(';');
    var 
art panel[0];
    var 
length Number(panel[1]); // из строки в число
    
var width Number(panel[2]); // из строки в число
    
var count panel[3];
    for (var 
0countk++){
        var 
AddVertPanel(00widthlength0);
        
p.Name art// у меня артикул - имя
        
p.Position curPos;
        
curPos.+= 50;
    }

Rudolf вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Letos (19.04.2018), Ovsyanicov (19.04.2018), Uncle (19.04.2018)
Старый 19.04.2018, 21:24   #36
bbb i ko
VIP
 
Аватар для bbb i ko
 
Регистрация: 04.07.2012
Сообщений: 1,555
Сказал(а) спасибо: 2,881
Поблагодарили 2,884 раз(а) в 900 сообщениях
Вес репутации: 808
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 репутация неоспорима
По умолчанию

Подскажите пож.(не нашел в мануале): как назначить ориентацию текстуры для создаваемой панели HPanel=AddHorizPanel(...) ?
и еще такой вопрос: кромку на панель ставлю так:
for(var side_butt=0; side_butt < 4; side_butt++){
Butt_Material = arr[row][4+side_butt*3];
if (Butt_Material != '')
{
Butt = HPanel.Butts.Add();
Butt.Material = arr[row][4+side_butt*3];
Butt.Material.Allowance = 0.5;
Butt.Material.ClipPanel = true;
Butt.ElemIndex = side_butt;
Butt.Sign = arr[row][6+side_butt*3];
Butt.Thickness = Number(arr[row][5+side_butt*3],10);
}
}
}
в итоге толщина кромки в БМ не попадает, хотя в исходнике(строка CSV) толщина присутствует
соответственно, что делаю неправильно?
Миниатюры
Безымянный.jpg  
__________________
http://www.upro.su
скачать демоверсию системы
Автоматизация мебельного бизнеса на базе 1С
Нетривиальное решение с широкими возможностями
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 20.04.2018, 10:00   #37
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 213
Сказал(а) спасибо: 43
Поблагодарили 378 раз(а) в 145 сообщениях
Вес репутации: 112
Letos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человекLetos - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Подскажите пож.(не нашел в мануале): как назначить ориентацию текстуры для создаваемой панели HPanel=AddHorizPanel(...) ?
HPanel.TextureOrientation = TextureOrientation.Horizontal; //Например

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
и еще такой вопрос: кромку на панель ставлю так:
for(var side_butt=0; side_butt < 4; side_butt++){
Butt_Material = arr[row][4+side_butt*3];
if (Butt_Material != '')
{
Butt = HPanel.Butts.Add();
Butt.Material = arr[row][4+side_butt*3];
Butt.Material.Allowance = 0.5;
Butt.Material.ClipPanel = true;
Butt.ElemIndex = side_butt;
Butt.Sign = arr[row][6+side_butt*3];
Butt.Thickness = Number(arr[row][5+side_butt*3],10);
}
}
}
в итоге толщина кромки в БМ не попадает, хотя в исходнике(строка CSV) толщина присутствует
соответственно, что делаю неправильно?
Сделал тестовый пример у себя на основе вашего кода - у меня все нормально (БМ10). Все, написанное ниже относится к 10 версии, поэтому где-то я могу быть не прав:
1. Вот эти две строки мне не понятны:
Код:
Butt.Material.Allowance = 0.5;
Butt.Material.ClipPanel = true;
в БМ10 свойство Material - строковое. А свойства Allowance и ClipPanel доступны у объекта кромки. Думаю, эти строки должны быть такими:
Код:
Butt.Allowance = 0.5;
Buttl.ClipPanel = true;
2. Самый простой способ проверить, проверить, почему толщина кромки не попадает, это алертом вывести толщину, например:
Код:
alert(Number(arr[row][5+side_butt*3],10))
Butt.Thickness = Number(arr[row][5+side_butt*3],10);
алерт выведет, какое значение вы пытаетесь получить.
Кстати, с дробными числами есть еще одна неприятная вещь: если в строке разделитель дроби - запятая, а не точка, то такое преобразование вернет Nan. Возможно, в этом проблема.


P.S. И, напоследок, пара советов:
  1. У вас идет два присвоения одного и того же сложного значения:
    Код:
    //1
    Butt_Material = arr[row][4+side_butt*3];
    //промежуточный код
    //2
    Butt.Material = arr[row][4+side_butt*3];
    Предлагаю во второй раз брать значение из уже заданной переменной:
    Код:
    //1
    Butt_Material = arr[row][4+side_butt*3];
    //промежуточный код
    //2
    Butt.Material = Butt_Material;
    Так уже идет доступ сразу к Butt_material, а не к arr->arr[row]->arr[row][4+side_butt*3]. Но, что более важно, если что-то изменится (например, нужно будет брать значение не из [4+side_butt*3], а из [2+side_butt*2]), то править код надо будет всего в одном месте, что уменьшает вероятность ошибки при запуске измененного/исправленного кода
  2. У вас очень часто повторяется arr[row]. Можно и его записать в отдельную переменную. Особо видимых плюсов не принесет, поэтому это из разряда "придраться".
  3. И еще из разряда "придраться" по поводу правил хорошего тона. В JS принято называть переменные с маленькой буквы (а названия функций и классов - с большой). Из видимых плюсов - меньше Shift лишний раз нажимать.
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
bbb i ko (20.04.2018), Briz (26.04.2018), maxgmv (20.04.2018), Ovsyanicov (21.04.2018)
Старый 20.04.2018, 17:44   #38
bbb i ko
VIP
 
Аватар для bbb i ko
 
Регистрация: 04.07.2012
Сообщений: 1,555
Сказал(а) спасибо: 2,881
Поблагодарили 2,884 раз(а) в 900 сообщениях
Вес репутации: 808
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 репутация неоспорима
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
Кстати, с дробными числами есть еще одна неприятная вещь: если в строке разделитель дроби - запятая, а не точка, то такое преобразование вернет Nan. Возможно, в этом проблема.
да, спасибо - дело было именно в запятой. Исправил на точку - и все ок.
Сбило с толку, что в материале толщина проставляется, а в кромке - нет. А там как раз целочисленное значение просто.
__________________
http://www.upro.su
скачать демоверсию системы
Автоматизация мебельного бизнеса на базе 1С
Нетривиальное решение с широкими возможностями
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 25.04.2018, 15:11   #39
Максим Геннадьевич
Новичок
 
Регистрация: 11.04.2018
Сообщений: 28
Сказал(а) спасибо: 10
Поблагодарили 4 раз(а) в 1 сообщении
Вес репутации: 0
Максим Геннадьевич пока не определено
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
И еще хотелось бы узнать, какую ошибку выдает.
Ошибка была банальная. Пример брался из справки Subtraction(contour) и в примере допущена ошибка c.Substraction(Hole).
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 25.05.2018, 08:22   #40
wizardpnz
Пользователь
 
Регистрация: 02.07.2011
Сообщений: 89
Сказал(а) спасибо: 47
Поблагодарили 38 раз(а) в 16 сообщениях
Вес репутации: 104
wizardpnz на пути к лучшему
По умолчанию

это можно сделать в смете без скриптов назначив каждому материалу сопутствующий материал вес

добавил сопутствующий материал МАССА 1кг на 1кв м зеркала
Миниатюры
масса.png  
wizardpnz вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
anb (25.05.2018)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - общее обсуждение DTioutiou Базис-мебельщик 8.0 1816 23.09.2018 13:37
Обсуждение готовых скриптов Letos Базис-мебельщик. Скрипты 43 28.08.2018 14:23
БАЗИС 8 - Фурнитура, обсуждение nayrogi Базис-мебельщик 8.0 1171 18.05.2018 11:12
Общие вопросы по системе БАЗИС 7.0 COBA Базис-мебельщик 7.0 905 27.09.2016 05:59
MasterBox 7. Работа с ящиками в системе БАЗИС Daddy Базис-мебельщик 7.0 602 25.09.2016 22:45


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


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
© 2007-2018 PROMEBEL