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

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

Меню

Маркет


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

Сказал(а) спасибо: 7,295
Поблагодарили 16,919 раз(а) в 3,212 сообщениях
Версия для печати Отправить по электронной почте
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..
Просмотров: 600045
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 01.06.2021, 12:04   #471
АлексМЕ
Пользователь
 
Регистрация: 27.04.2021
Сообщений: 44
Сказал(а) спасибо: 41
Поблагодарили 91 раз(а) в 17 сообщениях
Вес репутации: 58
АлексМЕ скоро придёт к известности
По умолчанию

ОГРОМНОЕ СПАСИБО!!! Работает!!!)))

Добавлено через 2 минуты
Цитата:
Сообщение от Ovsyanicov Посмотреть сообщение
Попробуйте такой скрипт для Сметы:
PHP код:
var PanelArea GetParam('(48)Габаритная площадь готовой детали');
if(!
Panel.IsContourRectangle){
    
Result PanelArea;
} else {
    
Result 0;

ОГРОМНОЕ СПАСИБО!!! Работает!)))
АлексМЕ вне форума   Ответить с цитированием Вверх
Старый 02.06.2021, 14:51   #472
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Часть кода это я предоставил, ваш код который вы предлагаете работает отдельно, но когда я его применяю в своем коде то он не срабатывает. Спасибо. Будем искать
Добрый день!
пишу сюда, чтоб коллеги тоже видели, вдруг кому пригодится.
ответ от ТП по данному вопросу:

Цитата:
Добрый день, Артём. Проблема в назначении панели в выделенный блок. Объекты, создаваемые в скриптах являются "временными" и не должны существовать в модели. Поэтому они пишутся во временную область модели, и по завершении скрипта или после вызова Action.Commit() в модели создаются нормальные объекты и их создание записывается в историю модели. Обычное решение такой проблемы заключается в разбиении скрипта на два этапа:
1. Создание объектов во временной области и сохранение их в модели с помощью Action.Commit()
2. "Перетаскивание" объектов из модели в нужный блок.
Пример для вашего кода:

var block=Model.Selected;
var pan=AddFrontPanel(0,0,100,100,0);
pan.Build();
Action.Commit();

pan = Model.Objects[Model.Count - 1];
// Перемещает и поворачивает панель, чтобы при изменении родительского объекта панели
// положение и поворот панели не изменилось относительно ГСК
pan.ReTransform(pan.Owner, block);
pan.Owner=block;
Конкретно в вашем случае, указание блока через выделение уже существующей в нем панели, необходимо лишь заменить первую строку на
var block=GetPanel('Укажите панель').Owner;

Надеюсь все будет Ок)
kos100pudov вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Ovsyanicov (02.06.2021), Максим Геннадьевич (02.06.2021)
Старый 02.06.2021, 16:03   #473
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от kos100pudov Посмотреть сообщение
Надеюсь все будет Ок)
Все отлично работает, но не в моем коде. Где то у меня перемудрено в основном коде, буду думать. За то родился новый код по выделению блока (может кто и знает другой вариант), тестируйте
PHP код:
var block=GetPanel('Укажите панель').Owner;
block.Selected true
Добавлено через 17 минут
Может кто использовал функцию
PHP код:
/**
* Проверка пересечения объектов
*/
ObjIntersectionAnalyzeboolean
с последуйщим выделением пересекающихся объектов
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Uncle (02.06.2021)
Старый 04.06.2021, 07:12   #474
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию Контур детали с кромкой и без

Друзья помогите!!
Нужно получить контур детали с кромкой и без кромки.
Весь мозг сломал, штатных функций или свойств не нашёл.
У кого есть мысли?
Пишу альтернативную выгрузку спецификации по типу xml, но более подробную.
kos100pudov вне форума   Ответить с цитированием Вверх
Старый 05.06.2021, 02:20   #475
Meccano
Пользователь
 
Аватар для Meccano
 
Регистрация: 30.10.2015
Адрес: Ростов-на-Дону
Сообщений: 61
Сказал(а) спасибо: 52
Поблагодарили 68 раз(а) в 34 сообщениях
Вес репутации: 198
Meccano - очень-очень хороший человекMeccano - очень-очень хороший человекMeccano - очень-очень хороший человекMeccano - очень-очень хороший человекMeccano - очень-очень хороший человек
По умолчанию

Цитата:
Сообщение от kos100pudov Посмотреть сообщение
Друзья помогите!!
Нужно получить контур детали с кромкой и без кромки.
Весь мозг сломал, штатных функций или свойств не нашёл.
У кого есть мысли?
Пишу альтернативную выгрузку спецификации по типу xml, но более подробную.
Решаю подобную задачу в данный момент. Написал заплатку, но она не всегда работает.

Скрытый текст

function ConturPanel(p) {
var pLenght = Math.round(p.ContourHeight);
var pWidth = Math.round(p.ContourWidth);
var SizePanel = {};
var line=[];
var dx = 0;
var dy = 0;

if (p.Butts.Count > 0) {
for (var i = 0; i < p.Butts.Count; i++) {
var ang = angleLine(p.Contour[p.Butts[i].ElemIndex].Pos1.x, p.Contour[p.Butts[i].ElemIndex].Pos2.x, p.Contour[p.Butts[i].ElemIndex].Pos1.y, p.Contour[p.Butts[i].ElemIndex].Pos2.y)
if (ang % 90 == 0 && p.Butts[i].Thickness > 0 && p.Butts[i].ClipPanel) {
switch (ang) {
case -90:
case 90:
if (line.filter(function(r){return r==Math.round(p.Contour[p.Butts[i].ElemIndex].Pos1.x)}).length==0) {dx += p.Butts[i].Thickness;}
line.push(Math.round(p.Contour[p.Butts[i].ElemIndex].Pos1.x))

break;
case 0:
line.push(Math.round(p.Contour[p.Butts[i].ElemIndex].Pos1.y))
if (line.filter(function(r){return r==Math.round(p.Contour[p.Butts[i].ElemIndex].Pos1.y)}).length==0) {dy += p.Butts[i].Thickness;}
break;
}

}

}
}

if (p.TextureOrientation == 2) {
SizePanel.Lenght = pLenght - Math.round(dy);
SizePanel.Width = pWidth - Math.round(dx);
}
else {
SizePanel.Lenght = pWidth - Math.round(dx);
SizePanel.Width = pLenght - Math.round(dy);
}

return SizePanel
}
[свернуть]


Может есть проще путь. Присоединяюсь к просьбе.
Meccano вне форума   Ответить с цитированием Вверх
Старый 15.06.2021, 11:41   #476
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию Паз к какой пласти.

Пытаюсь получить к какой пласти относиться паз. Понимаю, что нужно отталкиваться от контура паза panel.Cuts[0].Contour.Min.y, но как сравнить с panel.GMin.z не пойму. У кого может есть решение. Спасибо
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 16.06.2021, 07:03   #477
kos100pudov
Местный
 
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 700 раз(а) в 265 сообщениях
Вес репутации: 292
kos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личностьkos100pudov - просто великолепная личность
По умолчанию

Цитата:
Сообщение от Максим Геннадьевич Посмотреть сообщение
Пытаюсь получить к какой пласти относиться паз. Понимаю, что нужно отталкиваться от контура паза panel.Cuts[0].Contour.Min.y, но как сравнить с panel.GMin.z не пойму. У кого может есть решение. Спасибо
Точно не помню, но кажется, если в пределах координат У сечения паза есть ноль, то это одна сторона, если есть значение равное толщине панели, то другая.
kos100pudov вне форума   Ответить с цитированием Вверх
Старый 16.06.2021, 07:15   #478
Максим Геннадьевич
Местный
 
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 162
Сказал(а) спасибо: 57
Поблагодарили 242 раз(а) в 45 сообщениях
Вес репутации: 137
Максим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личностьМаксим Геннадьевич - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от kos100pudov Посмотреть сообщение
Точно не помню, но кажется, если в пределах координат У сечения паза есть ноль, то это одна сторона, если есть значение равное толщине панели, то другая.
Спасибо нашел решение. GMin.z панели равняется Min.y контура и GMax.z панели равен Max.y контура
Максим Геннадьевич вне форума   Ответить с цитированием Вверх
Старый 18.06.2021, 10:26   #479
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известностиwizardpnz скоро придёт к известности
По умолчанию

Как можно построить 2Д контур в 3Д окне скриптами?

типа addline, addarc,addpoint

нашёл

var ContourObject = AddContour();
ContourObject.Contour.AddCircle(0, 0, 10);
wizardpnz вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
andronf (01.07.2021), kos100pudov (23.06.2021), Ovsyanicov (18.06.2021)
Старый 25.06.2021, 09:36   #480
Максим Титов
Новичок
 
Регистрация: 18.12.2020
Сообщений: 14
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Максим Титов пока не определено
По умолчанию

Коллеги подскажите.
Пытаюсь найти фурнитуру по имени.

Скрытый текст

Model.forEach(function (obj) {
if (obj.Name == "Опора пластиковая 100мм черная") {
fastener.push(obj);
}
});
[свернуть]

Но если фурнитура содержи артикул, то этот артикул записывается каким то образом в строку имени. И я не могу понять как мне этот артикул указать.
Максим Титов вне форума   Ответить с цитированием Вверх
Ответ

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 127 Сегодня 11:30
БАЗИС 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


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


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

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