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

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


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

искусственный камень Мебель196. Мебельный интернет-магазин в Екатеринбурге.
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 01:17  
БАЗИС 11 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 2,865

Сказал(а) спасибо: 6,732
Поблагодарили 13,827 раз(а) в 2,441 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 01:17
Рейтинг: ()

Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.

Новшества Базис Мебельщик версии 11:
.....
6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....


Код:
Примеры скриптов из видео

Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
node.js обновился с 7.0.0 до 8.11.3
__________________
.
▓▒░ Халявы не бывает ░▒▓

[ Как правильно задавать вопросы на форумах ] | [ Как просто, быстро и правильно опубликовать фото и файлы в сообщении 30.03.2019]

[ USDownloader - удобно и безопасно скачиваем с файлообменников 10.11.2019] | [ Обходим блокировки сайтов, торрентов, месенджеров, ФО - RU - UA]


Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д. >сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...

Последний раз редактировалось AlexBolton; 14.10.2019 в 11:09..
Просмотров: 9873
Ответить с цитированием Вверх
12 пользователя(ей) сказали cпасибо:
Старый 21.10.2019, 15:35   #11
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 386
Сказал(а) спасибо: 101
Поблагодарили 660 раз(а) в 250 сообщениях
Вес репутации: 200
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
там много букв сейчас курю excell4node вроде работает

теперь вопрос как подключить visual studio code к Б11
Отладчик к БМ11 ещё не завезли. С новой версией ноды новый протокол отладки появился. Вот такая конфигурация подключается к базису

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


PHP код:
 {
            
"type""node",
            
"request""launch",
            
"name""Bazis 11"
            
"runtimeExecutable""D:\\Bazis\\Bazis.exe",
            
"runtimeArgs": [
                
"--inspect-brk=5858",
            ],
            
"port"5858,
            
"cwd""C:\\",
            
"program""${file}"
        

[свернуть]

Где
  • "runtimeExecutable" - путь к БМ,
  • "cwd" - "текущая рабочая директория", в параметры запуска передаётся путь к скрипту относительно этой папки. В моём случае это другой диск, чтобы передавался полный путь скрипта, ибо он лежит на диске D. Возможно, подойдёт путь к папке скриптов.
  • "runtimeArgs" - дополнительные аргументы запуска. "--inspect-brk" - запуск отладки с остановкой на первой строке скрипта (для ожидания подключения, если точку останова не ставить, то в VSCode не остановится на первой строке), 5858 - порт отладки, продублирован в одноимённом параметре.

НО: При отладке скрипта в уже запущенном базисе у меня произошло следующее - скрипт остановился на первой точке останова (на первой же строке), через пару мгновений забил на нёё и продолжил выполнение. Через раз сыпятся аксессы.
Если запускать с выключенным БМ (то есть, VSCode запускает БМ и при завершении/отмене скрипта грохает процесс БМ), то всё нормально.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
maxgmv (29.10.2019), wizardpnz (31.10.2019)
Старый 21.10.2019, 16:34   #12
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 142
Сказал(а) спасибо: 72
Поблагодарили 71 раз(а) в 27 сообщениях
Вес репутации: 131
wizardpnz скоро придёт к известности
По умолчанию

Model.forEach(function (obj) {

if (obj instanceof TFastener) console.log(obj.Name)

});

зависает если много предметов на сцене, или много нельзя в консоль посылать?

Добавлено через 15 минут
[INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.

ругается(((
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 21.10.2019, 16:45   #13
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 386
Сказал(а) спасибо: 101
Поблагодарили 660 раз(а) в 250 сообщениях
Вес репутации: 200
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
Model.forEach(function (obj) {

if (obj instanceof TFastener) console.log(obj.Name)

});

зависает если много предметов на сцене, или много нельзя в консоль посылать?
Консоль, по сути своей, - буфер. Поэтому, возможно, она переполняется и из-за этого зависает. Попробуйте так:
PHP код:
var log '';
Model.forEach(function (obj) {
    if (
obj instanceof TFastener
        
log += obj.Name '\n';
});
console.log(log); 
PS. Скорее всего так же будет зависать, поэтому вместо console.log можно добавить следующий изврат (В конце выполнения скрипта запускается асинхронный вывод: при записи в консоль идёт следующая итерация таймера и в это время в лог выводится сообщение и буфер консоли очищается. Но это Костыль с большой буквы.):
PHP код:
Action.Continue();
var 
splittedlog log.split('\n');
var 
0;
var 
inter = require('timers').setInterval(()=>{
    
console.log(splittedlog[i]);
    
i++;
    if (
i>= splittedlog.length){
        require(
'timers').clearInterval(inter);
        
Action.Finish();
    }
}, 
1); 
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Ovsyanicov (22.10.2019)
Старый 21.10.2019, 17:56   #14
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 142
Сказал(а) спасибо: 72
Поблагодарили 71 раз(а) в 27 сообщениях
Вес репутации: 131
wizardpnz скоро придёт к известности
По умолчанию

блин а ведь люди скрипты за деньги заказывают теперь все заглючит у многих

я как бы сам писал на работе за ЗП, а теперь опять время тратить, а шефу платить
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 23.10.2019, 10:07   #15
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 142
Сказал(а) спасибо: 72
Поблагодарили 71 раз(а) в 27 сообщениях
Вес репутации: 131
wizardpnz скоро придёт к известности
По умолчанию

Код HTML:
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var ws = workbook.addWorksheet('Распиловка');
ws.getCell("A1").value = 123;
workbook.xlsx.writeFile(process.env.USERPROFILE
                + "/Desktop/"
                + Action.Control.Article.Name
                + ".xlsx").then(function() {});
как заставить работать этот код? В Б10 работает.
Миниатюры
excelljs.jpg  
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 23.10.2019, 11:01   #16
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 386
Сказал(а) спасибо: 101
Поблагодарили 660 раз(а) в 250 сообщениях
Вес репутации: 200
Letos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личностьLetos - просто великолепная личность
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
Код HTML:
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var ws = workbook.addWorksheet('Распиловка');
ws.getCell("A1").value = 123;
workbook.xlsx.writeFile(process.env.USERPROFILE
                + "/Desktop/"
                + Action.Control.Article.Name
                + ".xlsx").then(function() {});
как заставить работать этот код? В Б10 работает.
Та же проблема с Boolean. Я в начале скрипта добавил
Код:
Boolean = function(val){
        return !!val;
    }
и заработало без ошибок. Файл экселя оказался битым из-за незавершённого промиса, поэтому я модифицировал последние строки так:
PHP код:
Action.Continue();
workbook.xlsx.writeFile(process.env.USERPROFILE
                
"/Desktop/"
                
Action.Control.Article.Name
                
".xlsx").then(function() {
                    
Action.Finish();
                }); 
И у меня всё заработало.
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (23.10.2019), wizardpnz (23.10.2019)
Старый 23.10.2019, 11:06   #17
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 142
Сказал(а) спасибо: 72
Поблагодарили 71 раз(а) в 27 сообщениях
Вес репутации: 131
wizardpnz скоро придёт к известности
По умолчанию

фуууууууух заработало

ещё при отладке нельзя много писать в консольлог, иначе виснет
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 26.10.2019, 12:54   #18
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 20
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Vogel пока не определено
По умолчанию

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

Еще интересует вывод имени "Типа" блока, к которому принадлежит выделяемая панель с плоскостью. Как до него добраться через скрипт?
Vogel вне форума   Ответить с цитированием Вверх
Старый 27.10.2019, 17:00   #19
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 58
Сказал(а) спасибо: 14
Поблагодарили 34 раз(а) в 16 сообщениях
Вес репутации: 49
IStiv на пути к лучшему
По умолчанию синхронные вызовы

всем привет.
A синхронные функции не могли же сломаться в БМ 11 или могли?

тестирую на простом случае, всякие fs.writeFileSync() все вроде норм, но на реальном скрипте с большой логикой тот же fs.writeFileSync() не отрабатывает .
Однако если идти отладчиком, пошагово , я так понимаю вызовы "успевают" выполняться и fs.writeFileSync() отрабатывает.

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


PHP код:
var pth = require('path');
var 
fs = require('fs');

checkFileExistsAndWrite("D:\\""test.txt""hi");


function 
checkFileExistsAndWrite(targetDirectoryfileNamestr) {
  var 
absolutNameAndPt pth.join(targetDirectoryfileName);

  var 
isExists fs.existsSync(absolutNameAndPt);
  var 
flVersion 0;

  if (
isExists) {
    
flVersion++;
    
fileName flVersion "_" fileName;
    
checkFileExistsAndWrite(targetDirectoryfileName);
  }
  else {
    
fs.writeFileSync(absolutNameAndPtstr);
  }

[свернуть]


Добавлено через 25 минут
Цитата:
Сообщение от Vogel Посмотреть сообщение
Еще интересует вывод имени "Типа" блока, к которому принадлежит выделяемая панель с плоскостью. Как до него добраться через скрипт?
не уверен что верно понял вопрос.
все объекты выше в дереве модели можно получить через .Owner

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


PHP код:
var pn GetPanel();
var 
pnOwner pn.Owner;

if (
pnOwner instanceof TFurnBlock) {
  
alert("Hi I am BM block, my name is - " pnOwner.Name);

[свернуть]
IStiv вне форума   Ответить с цитированием Вверх
Старый 28.10.2019, 07:39   #20
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 20
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Vogel пока не определено
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
всем привет.
A синхронные функции не могли же сломаться в БМ 11 или могли?

тестирую на простом случае, всякие fs.writeFileSync() все вроде норм, но на реальном скрипте с большой логикой тот же fs.writeFileSync() не отрабатывает .
Однако если идти отладчиком, пошагово , я так понимаю вызовы "успевают" выполняться и fs.writeFileSync() отрабатывает.

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


PHP код:
var pth = require('path');
var 
fs = require('fs');

checkFileExistsAndWrite("D:\\""test.txt""hi");


function 
checkFileExistsAndWrite(targetDirectoryfileNamestr) {
  var 
absolutNameAndPt pth.join(targetDirectoryfileName);

  var 
isExists fs.existsSync(absolutNameAndPt);
  var 
flVersion 0;

  if (
isExists) {
    
flVersion++;
    
fileName flVersion "_" fileName;
    
checkFileExistsAndWrite(targetDirectoryfileName);
  }
  else {
    
fs.writeFileSync(absolutNameAndPtstr);
  }

[свернуть]


Добавлено через 25 минут

не уверен что верно понял вопрос.
все объекты выше в дереве модели можно получить через .Owner

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


PHP код:
var pn GetPanel();
var 
pnOwner pn.Owner;

if (
pnOwner instanceof TFurnBlock) {
  
alert("Hi I am BM block, my name is - " pnOwner.Name);

[свернуть]
Добавлено через 3 минуты
Цитата:
Сообщение от Vogel Посмотреть сообщение
не уверен что верно понял вопрос.
все объекты выше в дереве модели можно получить через .Owner
Я имею ввиду Свойсво Блока, которое пользователь задает самостоятельно для Фрагментов. По нему еще происходит корректная замена одного блока на другой.
Vogel вне форума   Ответить с цитированием Вверх
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1198 08.11.2019 09:58
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 491 01.11.2019 18:04
Скрипты. Готовые решения для БМ8-11. Igor_482 Базис-мебельщик. Скрипты 63 11.10.2019 13:25
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1426 18.03.2019 00:00
Заявки на скрипты dr_john Система БАЗИС 37 01.03.2016 10:36


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


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