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

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

Меню

Маркет


беспроводные выключатели для мебели
Ответ
 
Опции темы Опции просмотра
Старый 14.09.2019, 00:17  
БАЗИС 11-2023 - Скрипты
 
Аватар для AlexBolton
AlexBolton
Модератор
Регистрация: 19.02.2008
Адрес: www
Сообщений: 3,943

Сказал(а) спасибо: 7,295
Поблагодарили 16,918 раз(а) в 3,211 сообщениях
Версия для печати Отправить по электронной почте
AlexBolton AlexBolton вне форума 14.09.2019, 00:17
Рейтинг: ()

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

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

Новшества Базис Мебельщик версии 2021:

16. Отладчик скриптов.



VISUAL CODE

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

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

Напиши себе Базис или Моя первая тумбочка 2
Комплект - руководство+ файлы+ скрипт

Обратите внимание на полезные ответы в этой теме!

__________________
.
▓▒░ Халявы не бывает ░▒▓

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

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


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

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 599755
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 21.10.2019, 14:35   #11
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордится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, 15:34   #12
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известности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 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
olegstoyota (21.11.2022)
Старый 21.10.2019, 15:45   #13
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордится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 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
olegstoyota (21.11.2022), Ovsyanicov (22.10.2019)
Старый 21.10.2019, 16:56   #14
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известностиwizardpnz скоро придёт к известности
По умолчанию

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

я как бы сам писал на работе за ЗП, а теперь опять время тратить, а шефу платить
wizardpnz вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
olegstoyota (21.11.2022)
Старый 23.10.2019, 09:07   #15
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известности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, 10:01   #16
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордится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 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Andrey73 (26.12.2019), Ovsyanicov (23.10.2019), wizardpnz (23.10.2019)
Старый 23.10.2019, 10:06   #17
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известностиwizardpnz скоро придёт к известности
По умолчанию

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

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

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

Еще интересует вывод имени "Типа" блока, к которому принадлежит выделяемая панель с плоскостью. Как до него добраться через скрипт?
Vogel вне форума   Ответить с цитированием Вверх
Старый 27.10.2019, 17:00   #19
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
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
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 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 код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 126 Вчера 08:56
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 714 06.03.2024 09:09
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1441 27.02.2024 10:48
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 70 29.01.2024 17:25
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1524 07.12.2022 19:53


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


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

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