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

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

Меню

Маркет


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

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

Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Просмотров: 243408
Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (28.07.2021), Максим Геннадьевич (08.06.2018)
Старый 16.10.2019, 08:20   #161
Kartuz
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

и БМ 10 и 11 пробовал. Ошибок не выдаёт просто вот так это выглядит.
Миниатюры
2019-10-16_081725.jpg  

Последний раз редактировалось AlexBolton; 16.10.2019 в 08:57.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 16.10.2019, 10:25   #162
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Kartuz Посмотреть сообщение
и БМ 10 и 11 пробовал. Ошибок не выдаёт просто вот так это выглядит.
Цитата:
Сообщение от Kartuz Посмотреть сообщение
2. Открывается таблица со списком фурнитуры, где пользователь указывает нужное количество напротив нужной фурнитуры, проставляет это количество и жмёт УСТАНОВИТЬ
Я, видимо, не совсем понял этот пункт. На данный момент скрипт формирует таблицу из файлов фурнитуры, лежащих в папке со скриптом. А вам откуда фурнитуру брать нужно?
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Kartuz (16.10.2019)
Старый 16.10.2019, 10:35   #163
Kartuz
Пользователь
 
Регистрация: 16.12.2014
Сообщений: 32
Сказал(а) спасибо: 25
Поблагодарили 5 раз(а) в 5 сообщениях
Вес репутации: 0
Kartuz пока не определено
По умолчанию

Отлично !!! Вы сделали даже лучше чем нужно было ! Т.е я могу положить хоть 100 фурнитур в папку со скриптом и пунктов будет 100 . Всё работает !!!

Letos, На радостях вчера забыл проверить на БМ 11. На БМ 10 всё отлично, а вот на БМ 11 не работает, ошибку выдаёт. Можете поправить, а то скоро на БМ 11 окончательно перейдём ?

Последний раз редактировалось AlexBolton; 19.10.2019 в 20:21.
Kartuz вне форума   Ответить с цитированием Вверх
Старый 18.10.2019, 09:47   #164
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Kartuz Посмотреть сообщение
Letos, На радостях вчера забыл проверить на БМ 11. На БМ 10 всё отлично, а вот на БМ 11 не работает, ошибку выдаёт. Можете поправить, а то скоро на БМ 11 окончательно перейдём ?
Посмотрел, исправил пару ошибок. Вот новый скрипт, проверьте:

Код

PHP код:
var fs = require('fs');
var 
path = require('path');
const 
extensions = [
    
'.f3d',
    
'.fr3d'
]

var 
furnpaths = [];
var 
countlist = [];
{
    var 
paths fs.readdirSync(__dirname);
    for (var 
0paths.lengthi++) {
        var 
__dirname path.sep paths[i];
        if (
extensions.indexOf(path.extname(p)) >= 0) {
            
furnpaths.push(p);
            
countlist.push(0)
        }
    }
}
function 
InstallFurn(furnNamecount){
    var 
fast OpenFurniture(furnName);
    for (var 
0counti++){
        var 
obj fast.Make(1616);
        if (
obj)
            if (!
obj.Owner){
                
obj.Owner Model.Temp;
            }
    }
}

function 
ChangeCount(num){
    
countlist[num.Tag] = num.Value;
}

for (var 
0furnpaths.lengthi++) {
    var 
num Action.Properties.NewNumber(path.parse(furnpaths[i]).namecountlist[i]);
    
num.Tag i;
    
num.OnChange ChangeCount;
}
Action.Properties.NewButton('Установить').OnClick = function(){
    for (var 
0furnpaths.lengthi++){
        
InstallFurn(furnpaths[i], countlist[i]);
    }
    
Action.Finish();
}
Action.Continue(); 
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Kartuz (18.10.2019), Vogel (27.10.2019)
Старый 18.10.2019, 11:54   #165
wttgts
Новичок
 
Регистрация: 10.10.2019
Сообщений: 4
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
wttgts пока не определено
По умолчанию

Никто не подскажет? Хотя бы по 2 пункту. Все что есть в документации по товару: Article, Name, Material, GroupMaterial, TypeElement, ObjList.

Цитата:
Сообщение от wttgts Посмотреть сообщение
Добрый день.
Подскажите, пожалуйста, по скриптам для менеджера прайс-листов (или салона):

1. Как получить название файла товара?

Пробовал через
PHP код:
system.getFileNameWithoutExtension(Action.ModelFilename); 
не получилось - Cannot read property ModelFilename...
Я так понимаю, в прайс-листе все иначе.

2. Как назначить изображение товара ?

Я экспортировал изображение модели под нужным углом из БМ

PHP код:
Action.Control.SavePicture(filename); 
А теперь надо в прайс-лист к товару добавить.
wttgts вне форума   Ответить с цитированием Вверх
Старый 18.10.2019, 15:39   #166
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от wttgts Посмотреть сообщение
Никто не подскажет? Хотя бы по 2 пункту. Все что есть в документации по товару: Article, Name, Material, GroupMaterial, TypeElement, ObjList.
По первому пункту могу сказать, что свойство Action есть только в БМ.
Из модели этой информации не достать.

По второму пункту ничего не могу сказать, т.к. с Салоном не работал. Может быть, IStiv может что-то подсказать.

З.Ы. Для проверки модели использовал самописный скрипт обхода свойств и значений объекта. Его, по идее, можно улучшить, но это неизвестно когда будет. И на больших иерархиях (типа Action) он зависает. Может, доработаю его в будущее время. А пока выкладываю тот вариант, который есть (может кому из скриптописателей поможет). Заранее предупреждаю: сохраните всё несохранённое перед запуском скрипта (особенно, если изменили объект обхода), есть вероятность, что БМ зависнет.

Код скрипта

PHP код:
const filename 'D:\\struct.txt';

const 
maxDepth 0;
var 
curMaxDepth 0;
/**
 * @type {{obj: Object, desc: string}[]}
 */
var objList = [];
function 
FindInList(obj) {
    for (var 
0objList.lengthi++) {
        if (
objList[i].obj == obj) {
            return 
objList[i];
        }
    }
}
function 
AddToList(objcdescr) {
    var 
result = {
        
objobjc,
        
descdescr
    
}
    
objList.push(result);
    return 
result;
}

function 
tabs(tabcount) {
    return 
'\t'.repeat(tabcount);
}

function 
CheckObject(objresulttabCountdepthLevel) {
    if (
maxDepth == 0){
        
curMaxDepth Math.max(curMaxDepthdepthLevel);
    }
    if (
maxDepth && depthLevel >= maxDepth){
        return 
result;
    }
    var 
desc FindInList(obj);
    if (!
desc) {
        
desc AddToList(objobj.constructor obj.constructor.name 'object');
    }
    for (var 
key in obj) {
        var 
objValue obj[key];
        var 
fullPath desc.desc '.' key;
        if (
typeof objValue == 'Object' || typeof objValue == 'object') {
            
result += tabs(tabCount) + fullPath ': ';
            try {
                var 
objDesc FindInList(objValue);
                if (
objDesc) {
                    
result += objDesc.desc '\n';
                }
                else {
                    try {
                        var 
objName objValue.constructor.name;
                        
result += objName;
                        
AddToList(objValuefullPath);
                    }
                    finally {
                        
result += '\n';
                    }
                    
result CheckObject(objValueresulttabCount 1depthLevel 1);
                }
            }
            catch (
e) {
                
result += '\n' tabs(tabCount 1) + e.Message '\n';
            }
        }
        else
            
result += tabs(tabCount) + fullPath ': ' objValue '\n';
    }
    return 
result;
}
var 
result '';
AddToList(Model'Model');
result CheckObject(Modelresult01);
console.log(curMaxDepth);
if (
curMaxDepth !== 0){
    
result 'DEPTH = ' curMaxDepth '\n' result;
}
require(
'fs').writeFileSync(filenameresult); 
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Ovsyanicov (18.10.2019), wttgts (18.10.2019), zorro (18.10.2019)
Старый 19.10.2019, 20:15   #167
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от wttgts Посмотреть сообщение
Добрый день.
Подскажите, пожалуйста, по скриптам для менеджера прайс-листов (или салона):
1. Как получить название файла товара?
под файлом товара имеется именно файл модели (.b3d) ? зачем это надо?
прямого доступа вроде нет. можно подключиться к базе из скрипта или иным способом и выполнить
PHP код:
SELECT NAME_MODEL FROM MODELS 
Цитата:
Сообщение от wttgts Посмотреть сообщение
Как назначить изображение товара ?
там штатно разве это нельзя сделать ??
PHP код:
SELECT FROM ICONS 
в TOVAR попадает через KOD_ICON

вообщем. если надо че то разово делать с БД, какую нибудь пакетную операцию, я не юзаю штатные средства(потому как их очень мало), и глючные (то ли я рукожоп) драйверы подключения из JS к БД. ставишь любой менеджер БД, смотришь схему базы и фигачишь запросы на SQL.

Добавлено через 7 минут
Цитата:
Сообщение от Letos Посмотреть сообщение
Для проверки модели использовал самописный скрипт обхода свойств и значений объекта
тоже такое делал. профит этой затеи сомнителен, т.к. не факт что если свойство есть, оно реально что то вернет в скрипте. уж не говоря о функциях. хотя в случаях если Базис реализовал (ну или не закрыл) доступ к свойству, но не описал это в справке, сей способ может быть полезным))
IStiv вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
wttgts (21.10.2019)
Старый 21.10.2019, 11:35   #168
wttgts
Новичок
 
Регистрация: 10.10.2019
Сообщений: 4
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
wttgts пока не определено
По умолчанию

IStiv,
Спасибо за совет, попробую реализовать через запросы в БД.

Штатно можно, но такие задачи мне нужны для того, чтобы быстро добавить порядка 1000 товаров в одну *.bmz. В МПЛ можно назначить каждому (или всем выделенным) товару скрипт, что очень удобно. Таким образом, я бы одним кликом добавил 1000 товаров и изображения к ним.

Название файла (без пути и расширений) == Названию изображения модели (к этому файлу), поэтому нужен был 1 пункт моего сообщения.

Можно было бы брать не имя файла, а имя товара, что более логично, но имя товара присваивается из "Параметры изделия" в БМ. Ок. На формуме подсказали как присвоить имя в "Параметры изделия" и получился скрипт в пару строк, который работает через раз:

PHP код:
var fName system.getFileNameWithoutExtension(Action.ModelFilename);
Action.Control.Article.Name fName
Первый запуск скрипта выдает ошибку, второй - скрипт выполняется.
Код:
Access violation at address 00410179 in module 'Bazis10.exe'. Read of address 7A79777D.
Это если открыто сразу несколько файлов и я по очереди применяю скрипт к каждому из них, но если открывать по одному файлу и каждый раз перезапускать БМ, то ошибку не выдает.

Поэтому решил сразу в МПЛ присваивать имя товару из названия файла модели.
wttgts вне форума   Ответить с цитированием Вверх
Старый 21.10.2019, 16:09   #169
Metabol
Новичок
 
Регистрация: 21.10.2019
Сообщений: 3
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Metabol пока не определено
По умолчанию Скрипты для Базис-Раскрой

Добрый день, господа мебельщики
Вопрос видимо чайника: существуют ли в природе скрипты под Базис-Раскрой?
Metabol вне форума   Ответить с цитированием Вверх
Старый 21.10.2019, 16:12   #170
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от Metabol Посмотреть сообщение
Добрый день, господа мебельщики
Вопрос видимо чайника: существуют ли в природе скрипты под Базис-Раскрой?
Могу быть неправ, но, насколько мне известно, самого функционала скриптов в Раскрое нет.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Metabol (21.10.2019)
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждение готовых скриптов Letos Базис-мебельщик. Скрипты 493 Сегодня 13:18
БАЗИС 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:44. Часовой пояс GMT +3.


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

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