Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 11 в этой теме.
Новшества Базис Мебельщик версии 11:
..... 6. Работоспособность скриптов, созданных в более ранних версиях, не гарантируется в версии БАЗИС 11.
.....
52. Разработана панель инструментов для скриптов, на которую можно вывести, например, часто используемые скрипты, со своими иконками, хинтами и т.д.
53. Добавлена возможность автозапуска выбранного скрипта на любое из двух событий – Загрузка модели, и/или Сохранение модели.
.....
Новшества Базис Мебельщик версии 2021:
16. Отладчик скриптов.
VISUAL CODE
Код:
Примеры скриптов из видео
Вес панелей.js
Выделить панели без облицовки.js
Панель по 3 точкам.js
Прифуговка кромки.js
Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д.>сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...
Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
это вам не поможет
у базиса нет однозначной нулевой точки для панели
например два бока высотой 2 метра у одного бока координаты будут 0 0 а у второго
может быть запросто 500 2000 с поворотом 180 градусов а координаты фурнитуры считаются возможно по такому же принципу (я до этого ещё не дошёл)
проблема будет однозначно переконвертировать координаты контура детали и координаты отверстий в нормальный вид без разворотов и сдвигов
Добрый день!
В последних версиях базиса для блоков/фрагментов добавлены некоторые свойства, а именно "Тип" (не путать с тип для салона), "Сборочная единица", ""Создавать сборочный чертеж", "Создавать схему сборки", "Игнорировать при создании чертежей"
Как получить к ним доступ?
Добавлено через 2 минуты
Цитата:
Сообщение от Letos
Узнать какие именно отверстия на панели можно только вручную - встроенной базисной функции нет. Есть лишь функция FindConnectedFasteners у панели, которая возвращает список фурнитуры, которая сверлится в панель. Можно почитать в этом посте (ответ на первую цитату с ссылкой на ещё один пост) как определять отверстия в конкретной панели. Для определения координат отверстия на панели нужно всего лишь перевести координаты отверстия из ЛСК фурнитуры в ЛСК панели:
Абстрактный пример перевода координат
PHP код:
// Точка из ЛСК fast в ЛСК panel
function FromFastTOPanel(fast, panel, v){
return panel.ToObject(fast.ToGlobal(v))
}
// Вектор из ЛСК fast в ЛСК panel
function NFromFastTOPanel(fast, panel, v){
return panel.NToObject(fast.NToGlobal(v))
}
var p1 = Model.Selected.AsPanel;
var fasts = p1.FindConnectedFasteners();
alert(fasts);
// фурнитура
var f = fasts[0];
// Отвертсие
var fHole = f.Holes[0];
// Положение
var pos = FromFastTOPanel(f, p1, fHole.Position);
// Направление
var dir = NFromFastTOPanel(f, p1, fHole.Direction);
[свернуть]
Спасибо!
Ответ как всегда отличный. Буду пробовать)
Добавлено через 4 минуты
Цитата:
Сообщение от wizardpnz
это вам не поможет
у базиса нет однозначной нулевой точки для панели
например два бока высотой 2 метра у одного бока координаты будут 0 0 а у второго
может быть запросто 500 2000 с поворотом 180 градусов а координаты фурнитуры считаются возможно по такому же принципу (я до этого ещё не дошёл)
проблема будет однозначно переконвертировать координаты контура детали и координаты отверстий в нормальный вид без разворотов и сдвигов
это возможно.. придется как то отслеживать. в любом случае планируется создание панелей именно скриптом, т.е. в нем и можно будет отслеживать повернута/отображена деталь или нет и применять какие то переменные для корректировок положений
Добрый день!
В последних версиях базиса для блоков/фрагментов добавлены некоторые свойства, а именно "Тип" (не путать с тип для салона), "Сборочная единица", ""Создавать сборочный чертеж", "Создавать схему сборки", "Игнорировать при создании чертежей"
Как получить к ним доступ?
Существует на данный момент скрипт позволяющий автоматически нумеровать панели раздельно по материалам в проекте? Т.е. например присваивать номера на ЛДСП с 1 по 15. На МДФ с 15 по 20, на ХДФ с 20 по 25.
Существует на данный момент скрипт позволяющий автоматически нумеровать панели раздельно по материалам в проекте? Т.е. например присваивать номера на ЛДСП с 1 по 15. На МДФ с 15 по 20, на ХДФ с 20 по 25.
я занимался подобной задачей одно время. суть в том что сквозную нумерацию по материалам сделать довольно просто(пусть и с учетом диапазона задаваемых значений).
проблема заключается в том что у одинаковых панелей - вообще должны быть один номер (м.б. у вас не так конечно). И тут начинается проблемс. в API базиса нет такой штуки (а может и есть но я не нашел) чтобы можно было compare(panel 1,panel 2). посему пришлось изобрести собственный "великий сравниватель" панелей с помощью API. Надо полагать , подобный сравниватель и работает под капотом в "расставить позиции" - только он написан на более низкоуровневом языке.
мой скрипт по итогу заработал, и он классифицирует панели с учетом "одинаковости" и материала. но это как бы костыль).
Так что в результате получилось, можете выложить пример результатов работы скрипта?
документ полностью создан, скриптом.
в т.ч. группировки по материалам. раннее для корректной групировки мы использовали самописный "сравниватель" для панелей, сейчас изменели логику и используем штатную нумерацию Базиса, которую вызываем скриптом. для тестов БМ11.xls