|
|
|
|
|
13.01.2014, 13:22
|
|
Скрипты. Готовые решения для БМ8-2024
Igor_482
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 795 раз(а) в 113 сообщениях
![Igor_482 вне форума](/forum/images/statusicon/user_offline.gif)
13.01.2014, 13:22
Рейтинг:
()
Этот раздел предназначен для размещения готовых скриптов.
Здесь находятся ТОЛЬКО готовые скрипты. Для обсуждения есть отдельная тема: Обсуждение готовых скриптов.
Авторам: - Давать уникальные названия скриптам (не совпадающие с названием уже выложенных скриптов, за исключением обновлений скрипта)
- Указывать работоспособность в разных версиях БМ.
- Общее описание работы скрипта.
- Если презентованный скрипт платный указывать стоимость, условия и контакты для приобретения.
Версии, указанные модератором, как прошедшие проверку:
8 - Демо-версия 8.0.7.9649
8н - "народная" 8.0.12.12765
9 - Демо-версия 9.0.8.18908
10 - Демо-версия 10.0.0.21602
Последний раз редактировалось AlexBolton; 03.03.2023 в 21:03..
|
Просмотров: 566326
|
13 пользователя(ей) сказали cпасибо:
|
|
12.10.2021, 18:57
|
#111
|
Местный
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 481 раз(а) в 147 сообщениях
Вес репутации: 197
|
Рисование текста в модели 3D
8н
Рисование текста в модели 3D
- поддерживает многострочный текст
- имеет в составе три шрифта для использования в скрипте на выбор
- имеет сохраняемые опции размера и цвета шрифта, междустрочного расстояния
- текст создается в виде параметрического блока с возможностью его редактирования после построения
Как пользоваться:
после запуска указать две точки для позиционирования будущего текста, перед этим его нужно ввести в поле ввода или выбрать буфер обмена.
Скрипт разработан на основании скрипта от Igor_482
Текст.zip
|
|
|
12 пользователя(ей) сказали cпасибо:
|
|
13.10.2021, 23:12
|
#112
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 702 раз(а) в 265 сообщениях
Вес репутации: 294
|
панель всегда смотрит на вас))
Доброго вечера форумчане!
Пытаясь найти некие ответы, набросал небольшой скрипт, который держит панель, или любой другой объект лицом к зрителю, независимо от поворота камеры.
выделяем объект, запускаем скрипт. вращаем сцену как угодно, объект смотрит на нас.
для корректного завершения необходимо финишировать через кнопку "Закончить" на панели параметров.
работу проверял только в 21-м..
Скрытый текст
Action.Continue();
OkBtn = NewButtonInput('Закончить');
obj = Model.Selected;
obj.Selected=false;
obj_pos = obj.Position;
obj_owner = obj.Owner;
var block = AddBlock();
block.Build();
Action.Commit();
block = Model.Objects[Model.Count-1];
obj.Owner=block;
obj.SetDefaultTransform();
block.Translate(obj_pos);
angle_y = Action.DS.Camera.AngleY;
angle_x = Action.DS.Camera.AngleX;
block.RotateY(-angle_y);
obj.RotateX(-angle_x);
Action.OnMove = function() {
block.RotateY(angle_y-Action.DS.Camera.AngleY);
obj.RotateX(angle_x-Action.DS.Camera.AngleX);
angle_y=Action.DS.Camera.AngleY;
angle_x=Action.DS.Camera.AngleX;
};
OkBtn.OnChange = function() {
obj.ReTransform(obj.Owner, obj_owner);
obj.Owner = obj_owner;
Action.Commit();
DeleteObject(block);
Action.Finish();
}; [свернуть]
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
16.10.2021, 09:05
|
#113
|
Местный
Регистрация: 07.09.2014
Сообщений: 187
Сказал(а) спасибо: 182
Поблагодарили 211 раз(а) в 69 сообщениях
Вес репутации: 179
|
Подсчёт объёма модели через пользовательские свойства
Цитата:
Сообщение от AnRusik
... хотелось бы в смете получить объем изделия в сборе.
...
В итоге в смете с привязкой к этому материалу появится объем изделия, равный габаритной рамке модели.
Скрипт нужен для Базис 10.
|
Реализация через пользовательские свойства
1. Создать Пользовательский вычисляемый параметр, с текстом:
Скрытый текст
if (Panel.UserProperty['Объём модели'] > 0) {
i = 0;
while (i < Panel.UserProperty['Объём модели']) {
i += 0.001;
}
};
V = +i.toFixed(2);
Result = V; [свернуть]
2. Создать Операцию. Назначить ей параметр с модели - созданный в пункте 1.
3. Создать материал "Объём модели", назначить по сопутствию операцию - созданную в пункте 2.
Если, в вашей базе, иное наименование материала, то замените материал во фрагменте "Объём модели.fr3d" - лежит в папке со скриптом.
Скрипт подгружает материал из фрагмента и присваивает значение пользовательского свойства, равное объёму габаритной рамки модели.
Результат смотрим в смете операций. Если результат нужен именно в материалах, то создаём нужный материал и назначаем по сопутствию к операции.
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
16.10.2021, 23:43
|
#114
|
Местный
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 481 раз(а) в 147 сообщениях
Вес репутации: 197
|
Расстановка размеров
8н
Файлы.
Видео.
v2.00
Добавлена установка 'От точки до точки', ставится при любых углах, штатный метод так не ставит.
Добавлены линии визуализирующие перед установкой вектор текущего и общего размера.
|
|
|
13 пользователя(ей) сказали cпасибо:
|
|
19.10.2021, 14:53
|
#115
|
VIP
Регистрация: 03.09.2008
Сообщений: 174
Сказал(а) спасибо: 34
Поблагодарили 795 раз(а) в 113 сообщениях
Вес репутации: 369
|
Построение "плинтуса" с произвольным контуром и подрезом угловых соединений
8н
9
11д
2021
Построение "плинтуса" с произвольным контуром и подрезом угловых соединений
Автоматическое построение цепочки профилей на основании выбранного фрагмента с телом выталкивания с произвольным углом поворота вокруг оси 0Z и произвольной формой контура по указанным в модели точкам и подрезом сегментов цепочки в местах их угловых соединений.
- скрипт унифицирован для БМ версий 8 – 2021
- цепочка профилей строится и сохраняется в составе параметрического блока, что даёт возможность редактирования полученного объекта после завершения работы скрипта
- позволяет удалять точки для построения цепочки в ходе работы цикла построения
- позволяет менять направление построения цепочки тем самым менять лицевую и обратную сторону её сегментов в ходе работы цикла построения
- проверяет является ли цепочка из указанных точек замкнутым контуром и выполняет соответствующий подрез сегментов в точке совпадения её начала с окончанием
- в состав скрипта входит набор классов (подпапка "Units") для работы с числами, точками, векторами и кватернионами с набором базовых функций связанных с вычислениями в векторной графике
- также в архиве файл примера ("example.b3d") построений с использованием данного скрипта и файл использованного для этого фрагмента ("КоронаМДФ 00W-002 [76,5x21] As-profil.f3d")
скрипт
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 30 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
|
[свернуть]
видео работы скрипта
|
|
|
19 пользователя(ей) сказали cпасибо:
|
|
19.10.2021, 15:59
|
#116
|
Пользователь
Регистрация: 09.11.2014
Сообщений: 43
Сказал(а) спасибо: 12
Поблагодарили 11 раз(а) в 7 сообщениях
Вес репутации: 123
|
8
Поиск деталей с пазом
Выделяет все детали в заказе у которых есть паз.
Скрытый текст
Model.forEachPanel(function(obj) {
if (obj.Cuts.Count > 0)
obj.Selected = true;
else
obj.Selected = false;
});
[свернуть]
|
|
|
4 пользователя(ей) сказали cпасибо:
|
|
29.10.2021, 20:45
|
#117
|
Пользователь
Регистрация: 19.02.2019
Адрес: На юге
Сообщений: 35
Сказал(а) спасибо: 21
Поблагодарили 154 раз(а) в 24 сообщениях
Вес репутации: 99
|
Спасибо за идею)
Цитата:
Сообщение от Ovsyanicov
Для возможности "повесить" команду удаления истории на горячую клавишу.
PHP код:
let ConfirmDelete = confirm("Удалить историю модели?");
if(ConfirmDelete){
Undo.Clear();
}
|
Немного доработал.
Успешно работает на автоматическом срабатывании(Сохранение/Выпуск чертежей)
В историю отправляет запись о чистке.
Время и дату добавляет, если скрипт привязать к кнопке.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
|
Последний раз редактировалось Станислав Станилевич; 29.10.2021 в 21:43.
|
|
|
6 пользователя(ей) сказали cпасибо:
|
|
13.11.2021, 17:20
|
#118
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 702 раз(а) в 265 сообщениях
Вес репутации: 294
|
скрипт последовательной анимации
Товарищи, играйтесь кому нужно))
Написал по просьбе Uncle, но думаю может еще кому пригодится.
последовательно отрабатывает анимацию выделенного блока и его подблоков, у которых назначена анимация.
последовательность - сначала головной блок, потом блоки на один уровень ниже, по порядку, потом подблоки каждого из этих подблоков, по порядку, ну и т.д.
при повторном запуске скрипта, все срабатывает в обратном порядке.
скрипт последовательной анимации
Скрытый текст
function ListObjAnim(obj){
if (obj.List){
for (var i=0; i<obj.Count; ++i){
if ((obj.Objects[i].List)&&(obj.Objects[i].Animation)&&(obj.Objects[i].AnimType!=0)){
list_obj_anim.push(obj.Objects[i]);
}
}
}
if (obj.List){
for (var i=0; i<obj.Count; ++i){
ListObjAnim(obj.Objects[i]);
}
}
}
//********************************
if (Model.SelectionCount==0){
alert ('нет выделенных элементов');
Action.Finish();
}
var obj=Model.Selected;
var list_obj_anim=[];
var timers = require('timers');
var obj_num=0;
Action.Continue();
//если выделеный блок имеет анимацию включаем его в список
if ((obj.List)&&(obj.Animation)&&(obj.Animation.AnimType!=0)){
list_obj_anim.push(obj);
}
//передаем выделенный блок в функцию
//добавляем в список подблоки если они имеют анимацию
//порядок добавления согласно уровням вложенности
ListObjAnim(obj);
//завершаем скрипт если список анимированных элементов пуст
if (list_obj_anim.length == 0){
alert ('выделенные элементы не имеют анимации');
Action.Finish();
}
//если первый элемент списка находится в состоянии анимации (открыт/сдвинут == 1), то сортируем список в обратном порядке
if (list_obj_anim[0].Animation.AnimPos == 1){
list_obj_anim.reverse();
}
//запускаем анимацию первого элемента списка
list_obj_anim[obj_num].Animation.ToggleAnimatePos();
//параллельно запускаем таймер, следим когда закончится анимация активного элемента
//каждые 50 милисек проверяем состояние анимации активного элемента (состояние анимации примет значение 0 или 1)
timers.setInterval(() => {
if ((list_obj_anim[obj_num].Animation.AnimPos == 0) || (list_obj_anim[obj_num].Animation.AnimPos == 1)) {
//если анимация завершена а элементы еще есть, то запускаем анимацию следующего элемента
//либо завершаем работу скрипта
if (obj_num < list_obj_anim.length-1){
++obj_num;
list_obj_anim[obj_num].Animation.ToggleAnimatePos();
} else {
alert('анимация завершена');
Action.Finish();
}
}
}, 50); [свернуть]
скрипт сброса анимации в исходное состояние для всех блоков модели, на всякий случай))
Скрытый текст
Model.forEach(function (obj){
if ((obj.List)&&(obj.Animation)&&(obj.Animation.AnimType!=0)){
obj.Animation.ResetAnimation();
}
}); [свернуть]
p.s. в 8-ке не работает. в 9, 10, 11 не пробовал..
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
8 пользователя(ей) сказали cпасибо:
|
|
14.11.2021, 02:59
|
#119
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 702 раз(а) в 265 сообщениях
Вес репутации: 294
|
добавление заглушек по отверстиям фурнитуры и материалу
Доброй ночи)))
Наконец закончил скрипт, предоставляющий выбор какие заглушки добавить в модель.
Оценивает фурнитуру, отверстия которые отвечают за заглушки и материал в которых эти отверстия расположены.
далее пользователь выбирает нужные заглушки, при необходимости корректирует количество и ОК, заглушки внесены в модель в виде объектов фурнитуры.
есть два режима работы, переключается в первых строчках кода скрипта:
у пользователя заглушки существуют в виде файлов произвольной фурнитуры, тогда в модель вставляем именно их.
у пользователя нет произвольной фурнитуры заглушек. тогда скриптом ставится заранее сохраненная со скриптом фурнитура "заглушка", а ее материал пользователь выбирает в базе материалов.
для фильтрации необходимых отверстий от фурнитуры, в зависимости от которых нужно добавлять заглушки, необходимо заполнить файл "список.csv".
первый столбец - фраза из названия фурнитуры, которую нужно просматривать.
второй столбец - размер отверстия, которое нужно проанализировать в данной фурнитуре. отверстия записываются тремя способами, одна цифра-диаметр сквозного, цифра*цифра-диаметр и глубина глухого, цифра**-диаметр глухого и любая глубина глухого.
скрипт, список и заглушка во вложении.
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
8 пользователя(ей) сказали cпасибо:
|
|
14.11.2021, 11:37
|
#120
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 702 раз(а) в 265 сообщениях
Вес репутации: 294
|
добавление заглушек по отверстиям фурнитуры и материалу
Цитата:
Сообщение от kos100pudov
Доброй ночи)))
Наконец закончил скрипт, предоставляющий выбор какие заглушки добавить в модель.
Скрытый текст
Оценивает фурнитуру, отверстия которые отвечают за заглушки и материал в которых эти отверстия расположены.
далее пользователь выбирает нужные заглушки, при необходимости корректирует количество и ОК, заглушки внесены в модель в виде объектов фурнитуры.
есть два режима работы, переключается в первых строчках кода скрипта:
у пользователя заглушки существуют в виде файлов произвольной фурнитуры, тогда в модель вставляем именно их.
у пользователя нет произвольной фурнитуры заглушек. тогда скриптом ставится заранее сохраненная со скриптом фурнитура "заглушка", а ее материал пользователь выбирает в базе материалов.
для фильтрации необходимых отверстий от фурнитуры, в зависимости от которых нужно добавлять заглушки, необходимо заполнить файл "список.csv".
первый столбец - фраза из названия фурнитуры, которую нужно просматривать.
второй столбец - размер отверстия, которое нужно проанализировать в данной фурнитуре. отверстия записываются тремя способами, одна цифра-диаметр сквозного, цифра*цифра-диаметр и глубина глухого, цифра**-диаметр глухого и любая глубина глухого.
скрипт, список и заглушка во вложении. [свернуть]
|
p.s. немного доработал скрипт. заглушки помещает в блок "заглушки". блокируется кнопка ОК, если не выбраны заглушки.
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
5 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 22:42. Часовой пояс GMT +3.
|