Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.
Новшества Базис Мебельщик версии 11:
..... 6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....
Новшества Базис Мебельщик версии 2021:
16. Отладчик скриптов.
Новшества Базис Мебельщик версии 2024:
5.«Использовать новый движок скриптов (в бета-тесте)» - Node.js v20.2.0
VISUAL CODE
Код:
Примеры скриптов из видео
Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д.>сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...
Последний раз редактировалось AlexBolton; 02.05.2024 в 11:30..
Всем доброго дня.
Есть такой скрипт, очищающий историю модели и поворачивающий её в определенный ракурс
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Как ещё добавить функцию Расставить все позиции заново и потом сохранить модель (просто Ctrl+S)? Из мануала прописал расстановку позиций, но не срабатывает(
Последний раз редактировалось destyner; 18.04.2024 в 13:16.
Всем доброго дня.
Есть такой скрипт, очищающий историю модели и поворачивающий её в определенный ракурс *** скрытый текст ***
Как ещё добавить функцию Расставить все позиции заново и потом сохранить модель (просто Ctrl+S)? Из мануала прописал расстановку позиций, но не срабатывает(
// расставить у всех
Action.ArrangePositions(FurnPositionMode.All, Model);
Спасибо, всё получилось. До этого не додумался, что через точку All указывать нужно))
А как "сохранить модель (просто Ctrl+S)"?
Action.SaveModel(), но базис пишет, что не удалось сохранить файл. Как будто атрибут "только для чтения" стоит.
/**
* Разрушить блок
* @param {List3D} block Блок для разрушения
* @param {boolean} recursive Флаг - разрушать ли вложенные блоки
*/
function DestroyBlock(block, recursive) {
// Если блок - Модель, то ничего не делаем, иначе посыпятся аксессы
if (block == Model)
return;
// Флаг, создан ли блок скриптом (находится во временной области модели)
var blockIsScript = block.IsOwner(Model.Temp);
Undo.Changing(block);
// список вложенных блоков. Используется если разрушение рекурсивное
var blocklist = [];
// Идём от последнего элемента к первому, т.к. при удалении объекта из блока,
// кол-во элементов внутри уменьшается.
for (var i = block.Count - 1; i >= 0; i--) {
var obj = block.Objects[i];
//Если не скриптовый блок, сохраняем изменения объекта в истории вручную
if (!blockIsScript) {
Undo.Changing(obj);
Undo.OwnerChanging(obj);
}
obj.ReTransform(obj.Owner, block.Owner);
obj.Owner = block.Owner;
if (obj.List){
blocklist.push(obj);
}
}
DeleteObject(block);
if (recursive) {
for (var i = 0; i < blocklist.length; i++) {
DestroyBlock(blocklist[i], true);
}
}
}
var block = Model.Selected.AsList();
for (var i = block.Count - 1; i >= 0; i--) {
var obj = block[i];
if (obj.List) {
DestroyBlock(obj, false);
}
}
[свернуть]
Скрипт разрушает блоки (и сборки и полуфабрикаты), находящиеся непосредственно в выделенном блоке. Если нужно, чтобы разрушались все блоки (вложенные во вложенные, вложенные во вложенные во вложенные и т.д.), тогда надо предпредпоследнюю строку
Код:
DestroyBlock(obj, false);
заменить на
Код:
DestroyBlock(obj, true);
По сути - заменить false на true
Добрый день. Можно сделать так чтобы этот скрипт разрушал только БЛОКИ, не затрагивая сборки, комплекты сборок и полуфабрикаты?
Спасибо, всё получилось. До этого не додумался, что через точку All указывать нужно))
А как "сохранить модель (просто Ctrl+S)"?
Action.SaveModel(), но базис пишет, что не удалось сохранить файл. Как будто атрибут "только для чтения" стоит.
А вот этот выводит диалоговое окно сохранения файла. Подтверждаю перезапись и опять выскакивает окно с невозможностью сохранения. Опять как будто стоит атрибут "только для чтения".
А вот этот выводит диалоговое окно сохранения файла. Подтверждаю перезапись и опять выскакивает окно с невозможностью сохранения. Опять как будто стоит атрибут "только для чтения".
Первый вариант пересохранит, если файл уже был сохранен. Если не был сохранен, то спросит куда сохранить. Второй вариант - вызовет Сохранить как.
А вот почему ошибку выдает при сохранении - без понятия.
Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д.>сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...
привет. Кто подскажет, как построить код на добавление нумерации блока в имя самого блока?
К примеру, если блок называется ШН500, ему присвоен номер блока 1, то имя блока должно получиться 1_ШН500