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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 06.06.2017, 08:56  
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565

Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
Версия для печати Отправить по электронной почте
systland systland вне форума 06.06.2017, 08:56
Рейтинг: ()

Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
__________________


Последний раз редактировалось systland; 26.12.2017 в 11:52..
Просмотров: 434562
Ответить с цитированием Вверх
Старый 23.04.2019, 13:16   #391
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,956
Сказал(а) спасибо: 3,991
Поблагодарили 3,545 раз(а) в 1,167 сообщениях
Вес репутации: 1048
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Не подскажите, какую информацию можно вытащить скриптом из объекта импортированного в Базис из Автокада? Задача максимум: получить площадь поверхности.
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 24.04.2019, 17:17   #392
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
вытащить скриптом из объекта импортированного в Базис из Автокада?
пример приложите исходника. "из Автокада" может быть и 3D и 2D геометрия.
IStiv вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
bbb i ko (24.04.2019)
Старый 24.04.2019, 18:42   #393
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,956
Сказал(а) спасибо: 3,991
Поблагодарили 3,545 раз(а) в 1,167 сообщениях
Вес репутации: 1048
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
пример приложите исходника.

ловите - https://yadi.sk/d/T3gmiQpjvsKhiA
Миниатюры
Screenshot_1.jpg  
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 25.04.2019, 11:33   #394
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
Не подскажите, какую информацию можно вытащить скриптом из объекта импортированного в Базис из Автокада? Задача максимум: получить площадь поверхности.
Цитата:
Сообщение от bbb i ko Посмотреть сообщение
По этим объектам можно получить базовую для тела информацию - набор треугольников. С площадью поверхности для приложенного файла тяжело -можно было бы просуммировать площади всех треугольников, но тогда включатся и площади тех треугольников, которые находятся на соединении двух объектов. Если бы объект был монолитным, было бы проще....Я могу попробовать покурить этот вопрос (определение стыкующихся треугольников для вычета их площадей из площади поверхности), но не знаю, когда это удастся сделать.
Letos вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
bbb i ko (25.04.2019)
Старый 25.04.2019, 14:11   #395
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,956
Сказал(а) спасибо: 3,991
Поблагодарили 3,545 раз(а) в 1,167 сообщениях
Вес репутации: 1048
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

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

Цитата:
Сообщение от Letos Посмотреть сообщение
Я могу попробовать покурить этот вопрос (определение стыкующихся треугольников для вычета их площадей из площади поверхности), но не знаю, когда это удастся сделать.
как-то совестно напрягать вас, я бы покурил, но нужна общая информация по тому как получить сами треугольники и их параметры (координаты вершин)
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 25.04.2019, 17:26   #396
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
из объекта импортированного в Базис из Автокада? Задача максимум: получить площадь поверхности.
хм. а в чем идея использовать именно Базис для этой задачи?

если есть исходник из автокада, можно подобрать какую нибудь CAD в т.ч. возможно бесплатную, чтобы решать эту задачу. Если нет какой то особенности, что нужно именно Базис использовать.
Писать кучу кода, когда это в любом серъезном CAD с коробки есть, как не очень смотриться на первый взгляд.
IStiv вне форума   Ответить с цитированием Вверх
Старый 25.04.2019, 17:51   #397
bbb i ko
VIP
 
Регистрация: 04.07.2012
Сообщений: 1,956
Сказал(а) спасибо: 3,991
Поблагодарили 3,545 раз(а) в 1,167 сообщениях
Вес репутации: 1048
bbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспоримаbbb i ko репутация неоспорима
По умолчанию

Цитата:
Сообщение от IStiv Посмотреть сообщение
хм. а в чем идея использовать именно Базис для этой задачи?
работать в одной среде, как это не странно звучит. Весь проект делается в Базисе, после его готовности, информация о нем выгружается из одного единственного места - из модели.
__________________
Автоматизация автоматизаций на АСУ, ТП и тд и тп..
Комплексное решение
bbb i ko вне форума   Ответить с цитированием Вверх
Старый 26.04.2019, 16:40   #398
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,030 раз(а) в 366 сообщениях
Вес репутации: 344
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от bbb i ko Посмотреть сообщение
но нужна общая информация по тому как получить сами треугольники и их параметры (координаты вершин)
Попытался сделать пример подсчёта площади поверхности для выделенного объекта, но сразу оговорюсь - кроме того, что считаются все треугольники (будут проблемы со стыками объектов, если считать суммарную площадь нескольких объектов), ещё, из-за операций с вещественными числами (в основном, деление и корень), будет возникать погрешность (скорее всего неприемлемая). Например: есть шар с радиусом 100. Его площадь поверхности: 4*Pi*R^2 = 125663.706. Скрипт же у меня выдаёт 110134.391.

Код для получения площади


PHP код:

// длина вектора
function VectorLength(v) {
    return 
Math.sqrt(v.v.v.v.v.v.z)
}
/**
 * Вычитание векторов
 * @param {Vector} v1 
 * @param {Vector} v2 
 * @returns {Vector}
 */
function VectorSub(v1v2) {
    return {
        
xv1.v2.x,
        
yv1.v2.y,
        
zv1.v2.z
    
}
}

/**
 * Сложение векторов
 * @param {Vector} v1 
 * @param {Vector} v2 
 * @returns {Vector}
 */
function VectorAdd(v1v2) {
    return {
        
xv1.v2.x,
        
yv1.v2.y,
        
zv1.v2.z
    
}
}

// скалярное произведение векторов
function VectorDot(v1v2) {
    return 
v1.v2.v1.v2.v1.v2.z;
}
/**
 * Проекция точки на линию
 * @param {Vector} p Исходная точка
 * @param {Vector} ls точка на линии
 * @param {Vector} ld направление линии
 * @returns {Vector}
 */
function PointLineProj(plsld) {
    var 
VectorSub(pls)
    var 
c1 VectorDot(vld);
    var 
c2 VectorDot(ldld);
    var 
c1 c2;
    return {
        
xls.ld.c,
        
yls.ld.c,
        
zls.ld.c
    
}
}

/**
 * Расстояние от точки до линии
 * @param {Vector} p Исходная точка
 * @param {Vector} ls точка на линии
 * @param {Vector} ld направление линии
 */
function PointLineDistance(plsld) {
    var 
proj PointLineProj(plsld);
    var 
dv VectorSub(projp);
    return 
VectorLength(dv)
}

// Площадь треугольника - Основание * Высота / 2 (a*h/2)
// Точки p1, p2, p3 - вершины треугольника
// Если p1p2 - основание, тогда высота - расстояние от точки p3 до линии, на 
// которой лежит основание.
//
//        p3
//        /|\
//       / | \
//      /  |  \
//     /   |h  \
//    /____|____\
//  p1   a       p2
//
function Square(tri) {
    var 
p1 tri.Vertex1p2 tri.Vertex2p3 tri.Vertex3;
    var 
ld VectorSub(p1p2)
    var 
VectorLength(ld);
    var 
PointLineDistance(p3p1ld);
     return 
2;
}


var 
obj Model.Selected;
var 
0;
if (
obj.TriListsCount 0) {
    for (var 
0obj.TriListsCountt++) {
        var list = 
obj.TriLists[t];
        for (var 
0< list.Counti++) {
            var 
tri = list[i];
            if (
tri) {
                
+= Square(tri);
            }
        }
    }
}
alert('s = ' 'mm'); 
[свернуть]
Letos вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
bbb i ko (26.04.2019), Ovsyanicov (27.04.2019), volunka (08.04.2020)
Старый 28.04.2019, 20:09   #399
IStiv
Пользователь
 
Регистрация: 02.12.2016
Сообщений: 84
Сказал(а) спасибо: 21
Поблагодарили 55 раз(а) в 27 сообщениях
Вес репутации: 109
IStiv скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Letos Посмотреть сообщение
из-за операций с вещественными числами (в основном, деление и корень), будет возникать погрешность
интресно , попробовал подумать об этой задаче не "в лоб" , прикольно бы было делать какой нибудь HTTP запрос из Базиса, а он бы возвращал площадь или библиотеку из NODE репозитория.
по первому варианту , нашел API правда оно платное, но площади пишут что считать умеют, правда из STL.
https://github.com/pushkarparanjpe/m...3D-API-clients

а вот еще, Базис ведь использует C3D ядро, наверное у него есть уже готовые методы для расчета площадей, просто он в JS API не "торчат".

@Letos как думаете варианты выше юзабельны?
IStiv вне форума   Ответить с цитированием Вверх
Старый 29.04.2019, 11:07   #400
Vogel
Новичок
 
Аватар для Vogel
 
Регистрация: 29.04.2019
Сообщений: 26
Сказал(а) спасибо: 11
Поблагодарили 16 раз(а) в 2 сообщениях
Вес репутации: 0
Vogel на пути к лучшему
По умолчанию Обработчик события нажатия клавиши.

Всем привет. В описании встретил обработчики на перемещение мыши и на клик. Есть ли обработчик на нажатие клавиш на клавиатуре?

Хочу скриптом задать "контейнер" и менять его положение в пространстве путем перемещения курсора (как это сделать - уже нашел), но хочу добавить переключение "точки привязки" путем нажатия клавиш Tab и Space. Хочу имитировать установку такой рамки, как и простой панели в Базисе ручками. Спасибо.
Vogel вне форума   Ответить с цитированием Вверх
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-Мебельщик 10 systland Базис-мебельщик 10 1264 13.03.2024 22:48
БАЗИС-Мебельщик 7.0 Shadow Базис-мебельщик 7 2230 29.11.2019 10:37
Базис-мебельщик JavaScript ran Ищу работу 0 09.05.2014 10:08


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


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

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