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

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

Меню

Маркет


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

Сказал(а) спасибо: 7,296
Поблагодарили 16,954 раз(а) в 3,222 сообщениях
Версия для печати Отправить по электронной почте
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
Комплект - руководство+ файлы+ скрипт

Обратите внимание на полезные ответы в этой теме!

__________________
.
▓▒░ Халявы не бывает ░▒▓

[ Как правильно задавать вопросы на форумах ] | [ Как просто, быстро и правильно опубликовать фото и файлы в сообщении 28.03.2024]

[ USDownloader - удобно и безопасно скачиваем с файлообменников 31.03.2024] | [ Обходим блокировки сайтов, торрентов, месенджеров, ФО - RU - UA]


Любые вопросы по любому системному и мебельному софту, любые конвертации, настройки и т.д. >сюда< (кроме озвученных в мануалах, инструкциях и темах форума) ...

Последний раз редактировалось AlexBolton; 09.01.2024 в 11:56..
Просмотров: 612635
Ответить с цитированием Вверх
14 пользователя(ей) сказали cпасибо:
Старый 16.04.2020, 19:17   #261
a_riva
Местный
 
Регистрация: 25.04.2009
Сообщений: 201
Сказал(а) спасибо: 118
Поблагодарили 29 раз(а) в 15 сообщениях
Вес репутации: 209
a_riva на пути к лучшему
По умолчанию

разобрались. надо было писать не псевдоним, а реальный путь к базе!
a_riva вне форума   Ответить с цитированием Вверх
Старый 17.04.2020, 21:58   #262
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
ещё бы вызвать её программно с установленной галкой спецификация хмл
такое можно сделать с помощью определенных костылей.
решал подобную задачу. пачка зависимостей но работает.
технологии: базис скрипты + robin-language
если только очень надо, такое стоит делать).
будет необходимо расскажу как сделать.
IStiv вне форума   Ответить с цитированием Вверх
Старый 18.04.2020, 12:50   #263
wizardpnz
Местный
 
Регистрация: 02.07.2011
Сообщений: 191
Сказал(а) спасибо: 93
Поблагодарили 105 раз(а) в 44 сообщениях
Вес репутации: 196
wizardpnz скоро придёт к известностиwizardpnz скоро придёт к известности
По умолчанию

Очень интересно. Хочу напилить свою смету в одну кнопку
делать перебором сцены очень сложно а тут в XML всё уже есть
wizardpnz вне форума   Ответить с цитированием Вверх
Старый 19.04.2020, 21:50   #264
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от wizardpnz Посмотреть сообщение
Очень интересно. Хочу напилить свою смету в одну кнопку
делать перебором сцены очень сложно а тут в XML всё уже есть
академия "костылестроения" представляет))
Ссылка на сервисе
IStiv вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
Letos (20.04.2020), maxgmv (21.04.2020), wizardpnz (20.04.2020)
Старый 23.04.2020, 11:38   #265
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,884
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 246
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Добрый день!
Прошу помочь со скриптом. Как скриптом получить длину стороны панели вдоль которой построен паз?

Последний раз редактировалось andronf; 23.04.2020 в 12:16.
andronf вне форума   Ответить с цитированием Вверх
Старый 23.04.2020, 19:17   #266
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Добрый день!
Прошу помочь со скриптом. Как скриптом получить длину стороны панели вдоль которой построен паз?
Под спойлером пример, разбитый на вспомогательные функции. Всему постарался дать максимально понятные комментарии.
Вспомогательные функции нужны для нахождения элемента контура, ближайшего к траектории (проверяется только первый элемент траектории). Дальше всё просто - у любого элемента контура, как и у самого контура есть функция ObjLength(), которая высчитывает его длину.

P.S. Если нужна длина паза, то можно "без этого вот всего" у траектории паза вызвать вышеупомянутый метод.

Код


PHP код:
// Возвращает 2 крайних точки 2D элемента
function GetPointsFromElement(elem) {
    if (
elem.IsLine() || elem.IsArc()) {
        return [
elem.Pos1elem.Pos2];
    }
    if (
elem.IsCircle()) {
        var 
elem.Center;
        
p.+= elem.CirRadius;
        var 
p2 elem.Center;
        
p2.-= elem.CirRadius;
        return [
pp2];
    }
}

// Возвращает индекс элемента контура, ближайшего к траектории.
// Проверка ведётся по первому элементу траектории.
function GetContourElemIndexFromCutTrajectory(cutTrajcontour) {
    
// Получаем две крайних точки элемента траектории.
    // Одна точка неэффективна, ибо точка траектории может лежать на стыке двух 
    // элементов контура, соответственно результатом будет первый найденный элемент контура 
    // (а вторая точка траектории может лежать как на нём, так и на следующем элементе)
    
var ps GetPointsFromElement(cutTraj[0]);    
    
// Проверяем первый элемент контура и заранее считаем его результатом.
    // Проверяется половинная сумма расстояний от каждой крайней точки траектории
    // до элемента контура. Чем она меньше - тем ближе траектория к элементу контура.
    
var result 0;
    var 
minDist Math.abs(contour[0].DistanceToPoint(ps[0]) + contour[0].DistanceToPoint(ps[1])) / 2;
    
// Проверяем остальные элементы контура
    
for (var 1contour.Counti++) {
        var 
dist Math.abs(contour[i].DistanceToPoint(ps[0]) + contour[i].DistanceToPoint(ps[1])) / 2;
        if (
dist minDist) {
            
minDist dist;
            
result i;
        }
    }
    return 
result;
}

// Возвращает элемент контура, ближайшего к траектории.
function GetContourElemFromCutTrajectory(cutTrajcontour) {
    var 
idx GetContourElemIndexFromCutTrajectory(cutTrajcontour);
    return 
contour[idx];
}

var 
pan Model.Selected.AsPanel;
alert(GetContourElemFromCutTrajectory(pan.Cuts[0].Trajectorypan.Contour).ObjLength()); 
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
andronf (23.04.2020), wizardpnz (23.04.2020)
Старый 24.04.2020, 00:31   #267
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,884
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 246
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Спасибо большое за подробную роспись, но я к сожалению не на том уровне чтобы все понять. Пока читал, перечитывал и пробовал что то получить, незаметно пролетело 3 часа(
Я хочу переделать вот такой скрипт:

Model.forEachPanel(function (obj){
var A = obj.Cuts[0];
var Cnt = A.Contour;
var otst = Math.min(Cnt.Min.x, Cnt.Max.x);
if (A.Sign.indexOf(', ')>0){
A.Sign = A.Sign.substring(0,A.Sign.indexOf(', '));
}
A.Sign = A.Sign + ', от края ' + otst + ' мм';
})

но чтобы в спецификацию дописывался не отступ до паза, а сторона вдоль которой идет паз. Причем пусть даже это будет самый простой случай - проходной паз, для других случаев будет чертеж.
andronf вне форума   Ответить с цитированием Вверх
Старый 24.04.2020, 08:54   #268
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
но чтобы в спецификацию дописывался не отступ до паза, а сторона вдоль которой идет паз. Причем пусть даже это будет самый простой случай - проходной паз, для других случаев будет чертеж.
А как вы планируете писать стороны? Вот, например, самая простая панель - 800Х600, имеет четыре стороны, как каждая из них называется?

Если вы определяете по длине стороны, то тогда можно как в примере - вызвать функцию GetContourElemFromCutTrajectory, в которую передать траекторию паза и контур панели. Результат выполнения этой функции - элемент контура, к которому ближе всего находится траектория паза. А у этого элемента контура уже можно узнать его длину.

Если вы по-другому собирались определять сторону, опишите поподробнее, как вы себе представляете этот алгоритм.
Letos вне форума   Ответить с цитированием Вверх
Старый 24.04.2020, 09:49   #269
andronf
Местный
 
Регистрация: 30.03.2010
Адрес: Минск
Сообщений: 291
Сказал(а) спасибо: 1,884
Поблагодарили 226 раз(а) в 96 сообщениях
Вес репутации: 246
andronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личностьandronf - весьма и весьма положительная личность
По умолчанию

Я думал для самого простого случая паза хватит посчитать длину траектории и вписать это число типо это и есть сторона.
andronf вне форума   Ответить с цитированием Вверх
Старый 24.04.2020, 19:05   #270
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от andronf Посмотреть сообщение
Я думал для самого простого случая паза хватит посчитать длину траектории и вписать это число типо это и есть сторона.
Тогда, как было написано ранее:
Цитата:
Сообщение от Letos Посмотреть сообщение
P.S. Если нужна длина паза, то можно "без этого вот всего" у траектории паза вызвать вышеупомянутый метод.
Если применять к вашему коду выше, то длина траектории паза считается так:
PHP код:
A.Trajectory.ObjLength() 
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
andronf (24.04.2020)
Ответ

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

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БАЗИС 10 - Скрипты systland Базис-мебельщик. Скрипты 715 14.04.2024 07:03
V-Ray в Базис Мебельщик 11/2023 nayrogi Система БАЗИС 73 12.04.2024 17:08
Базис ЧПУ 2021/2024 AlexBolton Базис-мебельщик 2021-2024 137 11.04.2024 13:16
БАЗИС 9 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1442 04.04.2024 11:28
БАЗИС 8 - Скрипты Igor_482 Базис-мебельщик. Скрипты 1525 30.03.2024 15:03


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


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

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