Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 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..
Спасибо.
А вырез по контуру скриптом как можно сделать?
Типа такого?
PHP код:
var sel = Model.Selected.AsPanel;
Undo.Changing(sel);
var cut = sel.Cuts.Add();
//cut.CutType = 2; // тип паза. стандартный = 1
//cut.Thickness = -10; // знак определяет с какой стороны панели ставится паз.
cut.Contour.AddRectangle(10, 10, 20, 20);
cut.Trajectory.AddEquidistant(sel.Contour, 30, false, false);
sel.Build();
Код на базе предыдущего варианта. В случае стандартного паза (не выемки) траектория задаётся в ЛСК панели (координаты XY).
var sel = Model.Selected.AsPanel;
Undo.Changing(sel);
var cut = sel.Cuts.Add();
//cut.CutType = 2; // тип паза. стандартный = 1
//cut.Thickness = -10; // знак определяет с какой стороны панели ставится паз.
cut.Contour.AddRectangle(10, 10, 20, 20);
cut.Trajectory.AddEquidistant(sel.Contour, 30, false, false);
sel.Build();
Код на базе предыдущего варианта. В случае стандартного паза (не выемки) траектория задаётся в ЛСК панели (координаты XY).
Что-то я вас не пойму.
Этим кодом создаётся на панели паз.
Как создать на панели выемку я тоже понял. Нужно в параметрах паза прописать тип2.
А вот как по контуру на примере выше создать сквозной вырез на панели?
P. S. Ещё хотелось бы узнать как на панеле врезать паз с обратной стороны.
Случаи разные встречаются и их необходимо все предусмотреть. В справочника базиса же про многое ничего не сказано.
Позже выложу видео работы скрипта если интересно.
Спасибо. Теперь понял как сделать вырез. Попробую.
Цитата:
Сообщение от Letos
Сторона выемки определяется знаком толщины. Минус - с одной стороны. Плюс - с другой.
Про сторону выемки я понял. Меня интересует сторона для паза. На сколько я понял отрицательное значение у паза будет означать что профиль фрезы необходимо поднять, а не заглубить.
Про сторону выемки я понял. Меня интересует сторона для паза.
Если я правильно понял, то так:
PHP код:
var sel = Model.Selected.AsPanel;
Undo.Changing(sel);
var low = sel.LowZ, hi = sel.HighZ;
// паз 1
var cut = sel.Cuts.Add();
cut.Contour.AddRectangle(10, hi - 5, 20, hi);
cut.Trajectory.AddEquidistant(sel.Contour, 30, false, false);
// паз 2
cut = sel.Cuts.Add();
cut.Contour.AddRectangle(10, low, 20, low + 5);
cut.Trajectory.AddEquidistant(sel.Contour, 30, false, false);
sel.Build();
За сторону отвечает ось Y контура паза (эквивалентна оси Z в ЛСК панели). одна сторона начинается с минимума Z панели (0, если нет облицовки пласти) в плюс, другая - с максимума Z панели (значение толщины, если нет облицовки пласти) в минус.
Пробую создать скрипт который проверяет на детали размером меньше 100 и с криволинейным контуром добавляет припуск (в виде кромки)150...200 мм, чтобы можно было закрепить на станке с ЧПУ обработкой.
Собственно наброски
PHP код:
//размер детали
var size = 100;
//припуск детали
var allowance = 150;
//материал кромки
var kr = NewButtMaterialInput("+150").Allowance = allowance;
//перебор деталей
for (var i = 0; i < Model.Count; i++){
Model.forEachPanel(function(obj) {
//проверка на размер и прямоугольность
if(!obj.IsContourRectangle & !obj.ContourWidth < size & !obj.ContourHeight < size)
obj.Selected = true;
Пробую создать скрипт который проверяет на детали размером меньше 100 и с криволинейным контуром добавляет припуск (в виде кромки)150...200 мм, чтобы можно было закрепить на станке с ЧПУ обработкой.
После нескольких исправлений у меня получился такой вариант:
PHP код:
//размер детали
var size = 100;
//припуск детали
var allowance = 150;
//материал кромки
var kr = NewButtMaterialInput("+150");
kr.Allowance = allowance;
//перебор деталей
Model.forEachPanel(function (obj) {
//проверка на размер и прямоугольность
if (!obj.IsContourRectangle & !obj.ContourWidth < size & !obj.ContourHeight < size) {
Undo.Changing(obj);
//добавление кромки
for (var i = 0; i < obj.Contour.Count; i ++)
obj.AddButt(kr, i);
}
});