Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.
Новшества Базис Мебельщик версии 11:
..... 6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....
Новшества Базис Мебельщик версии 2021:
16. Отладчик скриптов.
VISUAL CODE
Код:
Примеры скриптов из видео
Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д.>сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...
Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
var fs = require('fs'); var path = require('path'); var xml2js = require('xml2js'); // npm i xml2js
module.exports = { /** * read BM settings xml for current user */ getBMSettings: function () { var userName = process.env['USERPROFILE'].split(path.sep)[2]; var bmSettingsXml = "C:/Users/" + userName + "/AppData/Roaming/Bazis11 DEMO/Settings.xml"; var xmlSettingsStr = fs.readFileSync(bmSettingsXml, "utf8"); return xmlSettingsStr; },
/** * what using now for numerate positions?(ArtPos or Designation) * @param {Object} xmlSettingsStr BM settings */ getNumeratorTypeFromBM: function (xmlSettingsStr) {
var valueSetting; var parserXml = new xml2js.Parser({ attrkey: "ATTR" }); parserXml.parseString(xmlSettingsStr, function (error, result) { if (error === null) { valueSetting = (String(result.Settings.FurnPositions[0].Compare[0].Hierarchical)); } else { alert(error); } });
var numeratorType; switch (valueSetting) { case "N": numeratorType = "ArtPos"; break; case "Y": numeratorType = "Designation"; } return numeratorType; } };
подскажите куда выведется информация после этой команды: system.log()
Должно вывести в лог редактора скриптов. У себя в 11 проверил - не вывело почему-то. Лучше тогда использовать вызов console.log, а если уже есть скрипт, который вызывает много system.log, можно (чтобы не переписывать все вызовы) добавить в начало скрипта такую строчку:
почему не поворачивается камера? нужен угол 20 по Х и 160 по У
У себя проверил - повернуло на угол 20/20. Поигрался с плюсами/минусами значений - углы менялись, так что предполагаю, что тот вектор поворота всё делает правильно.
Чтобы не мучаться с вычислением этих векторов предлагаю пользоваться вариантом попроще:
PHP код:
Action.DS.Camera.AngleX = 20;
Action.DS.Camera.AngleY = 160;
Action.Control.ViewAll(); //Показать все
У себя проверил - повернуло на угол 20/20. Поигрался с плюсами/минусами значений - углы менялись, так что предполагаю, что тот вектор поворота всё делает правильно.
там почему-то нет реакции если менять третью координату,
Цитата:
Сообщение от Letos
Чтобы не мучаться с вычислением этих векторов предлагаю пользоваться вариантом попроще:
PHP код:
Action.DS.Camera.AngleX*=*20;
Action.DS.Camera.AngleY*=*160;
Action.Control.ViewAll();*//Показать*все
блин, я мучился , а тут оказывается есть простое решение... . Спасибо.
а сложный скрипт : задача сделать рядом например на расстоянии 200мм копию всего выделенного , но развернутого на 180грд. т.е. есть шкаф он стоит к нам лицом , нужна его копия рядом, и так чтобы он к нам стоял задней стенкой. ?
а сложный скрипт : задача сделать рядом например на расстоянии 200мм копию всего выделенного , но развернутого на 180грд. т.е. есть шкаф он стоит к нам лицом , нужна его копия рядом, и так чтобы он к нам стоял задней стенкой. ?
пытаемся подключиться к базе. при подключении напрямую, все работает. при попытке подключиться по сети используя псевдоним, выдает ошибку: 84 - Unavailable database. ниже кусок кода. подскажите что не так. или невозможно подключиться к базе используя псевдоним?
var Firebird = require('node-firebird');
var options = {};
options.host = '192.168.1.32';
options.port = 14357;
options.database = 'OFFICE4:MaterialsBase';//с кириллицей не разобрался E:\\db9.FDB
options.user = 'SYSDBA';
options.password = 'masterkey';
options.lowercase_keys = false; // set to true to lowercase keys
options.role = null; // default
options.pageSize = 4096; // default when creating database
пытаемся подключиться к базе. при подключении напрямую, все работает. при попытке подключиться по сети используя псевдоним, выдает ошибку: 84 - Unavailable database. ниже кусок кода. подскажите что не так. или невозможно подключиться к базе используя псевдоним?
var Firebird = require('node-firebird');
var options = {};
options.host = '192.168.1.32';
options.port = 14357;
options.database = 'OFFICE4:MaterialsBase';//с кириллицей не разобрался E:\\db9.FDB
options.user = 'SYSDBA';
options.password = 'masterkey';
options.lowercase_keys = false; // set to true to lowercase keys
options.role = null; // default
options.pageSize = 4096; // default when creating database
Проблема скорее всего в пути к базе:
Цитата:
options.database = 'OFFICE4:MaterialsBase'
Подозреваю, что не хватает расширения .fdb в конце пути.
Сам не настраивал, но когда-то с кем-то общался по поводу сетевого доступа - вроде надо было указывать локальный путь на самой машине. То есть, если на хосте "192.168.1.32" путь к базе выглядит "D:\Base\base.fdb", то и в options.database он должен также выглядеть (только слэши дублировать из-за формата строк в JS).