|
|
|
|
|
06.06.2017, 08:56
|
|
БАЗИС 10 - Скрипты
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 451 раз(а) в 189 сообщениях
06.06.2017, 08:56
Рейтинг:
()
Обмениваемся , задаем вопросы, отвечаем... Все, что касается скриптов в БМ 10 в этой теме.
Последний раз редактировалось systland; 26.12.2017 в 11:52..
|
Просмотров: 434854
|
26.03.2021, 10:52
|
#561
|
Новичок
Регистрация: 09.04.2018
Сообщений: 11
Сказал(а) спасибо: 2
Поблагодарили 2 раз(а) в 2 сообщениях
Вес репутации: 0
|
Letos, Доброго времени суток.
Вы как то писали о замене фурнитуры.
Action.ReplaceFurniture.
Не могли бы подробнее объяснить?
У меня старая фурнитура получается с модели, методом перебора объектов.
Новая фурнитура записывается в переменную через выбор в форме.
И как использовать метод Action.ReplaceFurniture я так и не разобрался...
|
|
|
31.03.2021, 20:48
|
#562
|
Новичок
Регистрация: 01.03.2021
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Отличный скрипт по формированию DXF панели. Можно ли к нему прикрутить расстановку размеров линейной цепочкой, и основных размеров панели с подписями каждого отверстия (по типу фурнитуры например). Нужно для оформления документации в цеха.
Пример чертежа во вложении.
И ещё задача для отрисовки схем сборки нужно получить все панели с ВЫРЕЗАНЫМИ (вычитанием) всех отверстий из панелей. Здесь есть частичное решение - создание схемы сборки, при этом в панелях остаются отверстия как фурнитура, а сама фурнитура отодвигается. А нужно именно вычесть отверстия из панели.
|
|
|
01.04.2021, 12:31
|
#563
|
Новичок
Регистрация: 01.03.2021
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Ещё вопрос. Здесь было уже про поворот камеры на нужный угол. А как при этом ещё и вид выбрать Аксонометрия или Перспектива?
|
|
|
06.04.2021, 18:06
|
#564
|
Новичок
Регистрация: 02.11.2018
Сообщений: 16
Сказал(а) спасибо: 5
Поблагодарили 22 раз(а) в 3 сообщениях
Вес репутации: 0
|
Цитата:
Сообщение от Letos
TImportedMesh
|
Как можно скриптом считать\присвоить материал для таких объектов?
|
|
|
12.04.2021, 10:52
|
#565
|
Новичок
Регистрация: 01.03.2021
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Развернуть панели вместе с отверстиями и фурнитурой.
Есть простой скрипт, который сбрасывает координаты трансформации у всех панелей:
Model.forEachPanel(function(obj) {
console.log(obj.Name)
obj.SetDefaultTransform()
}
)
Как заставить его разворачивать ещё и отверстия с фурнитурой, предварительно выделив их вместе с панелями и отменив трансформацию только панелей, таким образом повернув их, но уже вместе с отверстиями и фурнитурой?
Или это так не работает?
|
|
|
02.12.2021, 14:32
|
#566
|
Пользователь
Регистрация: 16.03.2016
Сообщений: 31
Сказал(а) спасибо: 52
Поблагодарили 26 раз(а) в 6 сообщениях
Вес репутации: 107
|
Цитата:
Сообщение от ma3x.forum
Как заставить его разворачивать ещё и отверстия с фурнитурой, предварительно выделив их вместе с панелями и отменив трансформацию только панелей, таким образом повернув их, но уже вместе с отверстиями и фурнитурой?
Или это так не работает?
|
Присоединяюсь к вопросу: можно ли выделить панели вместе с прилегающей к ней фурнитурой?
|
|
|
02.12.2021, 21:21
|
#567
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 701 раз(а) в 265 сообщениях
Вес репутации: 293
|
Цитата:
Сообщение от ma3x.forum
Есть простой скрипт, который сбрасывает координаты трансформации у всех панелей:
Model.forEachPanel(function(obj) {
console.log(obj.Name)
obj.SetDefaultTransform()
}
)
Как заставить его разворачивать ещё и отверстия с фурнитурой, предварительно выделив их вместе с панелями и отменив трансформацию только панелей, таким образом повернув их, но уже вместе с отверстиями и фурнитурой?
Или это так не работает?
|
пробуйте. работает в 8-ке и в 21-м.
принцип одинаков, разница в методе перебора объектов, выделенные, подсвеченные..
1.
Скрытый текст
var panel = Model.Selected;
var block = AddBlock();
block.Build();
Action.Commit();
block = Model.Objects[Model.Count-1];
block.Translate(panel.ToGlobal(NewVector(0, 0, 0)));
block.Orient(panel.NToGlobal(AxisZ), panel.NToGlobal(AxisY));
panel.ReTransform(panel.Owner, block);
panel.Owner = block;
for (var i=0; i<Model.HighlightCount; ++i){
Model.Highlights[i].ReTransform(Model.Highlights[i].Owner, block);
Model.Highlights[i].Owner = block;
}
block.SetDefaultTransform();
panel.ReTransform(panel.Owner, Model);
panel.Owner = Model;
for (var i=0; i<Model.HighlightCount; ++i){
Model.Highlights[i].ReTransform(Model.Highlights[i].Owner, Model);
Model.Highlights[i].Owner = Model;
}
DeleteObject(block); [свернуть]
2.
Скрытый текст
var panel = Model.Selected;
var block = AddBlock();
block.Build();
Action.Commit();
block = Model.Objects[Model.Count-1];
block.Translate(panel.ToGlobal(NewVector(0, 0, 0)));
block.Orient(panel.NToGlobal(AxisZ), panel.NToGlobal(AxisY));
Model.forEach(function(obj){
if (obj.Highlighted){
obj.Selected = true;
}
});
for (var i=0; i<Model.SelectionCount; ++i){
Model.Selections[i].ReTransform(Model.Selections[i].Owner, block);
Model.Selections[i].Owner = block;
}
block.SetDefaultTransform();
for (var i=0; i<Model.SelectionCount; ++i){
Model.Selections[i].ReTransform(Model.Selections[i].Owner, Model);
Model.Selections[i].Owner = Model;
}
DeleteObject(block); [свернуть]
3.
Скрытый текст
var panel = Model.Selected;
var block = AddBlock();
block.Build();
Action.Commit();
block = Model.Objects[Model.Count-1];
block.Translate(panel.ToGlobal(NewVector(0, 0, 0)));
block.Orient(panel.NToGlobal(AxisZ), panel.NToGlobal(AxisY));
for (var i=0; i<Model.HighlightCount; ++i){
Model.Highlights[i].Selected = true;
}
for (var i=0; i<Model.SelectionCount; ++i){
Model.Selections[i].ReTransform(Model.Selections[i].Owner, block);
Model.Selections[i].Owner = block;
}
block.SetDefaultTransform();
for (var i=0; i<Model.SelectionCount; ++i){
Model.Selections[i].ReTransform(Model.Selections[i].Owner, Model);
Model.Selections[i].Owner = Model;
}
DeleteObject(block); [свернуть]
Добавлено через 2 минуты
Цитата:
Сообщение от Saha SG-552
Присоединяюсь к вопросу: можно ли выделить панели вместе с прилегающей к ней фурнитурой?
|
подсвеченное можно выделить несколькими способами
1.
Скрытый текст
Model.forEach(function(obj){
if (obj.Highlighted){
obj.Selected = true;
}
}); [свернуть]
2.
Скрытый текст
for (var i=0; i<Model.HighlightCount; ++i){
Model.Highlights[i].Selected = true;
} [свернуть]
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
06.12.2021, 10:15
|
#568
|
Пользователь
Регистрация: 16.03.2016
Сообщений: 31
Сказал(а) спасибо: 52
Поблагодарили 26 раз(а) в 6 сообщениях
Вес репутации: 107
|
Извините, наверное нужно было более развёрнуто описать хотелки свои =) Я использую скрипт выделения панели по номерам позиций, работает исправно, панели выделяет, только вот хотелось бы ещё, чтобы вместе с панелями выделялась прилегающая к этим панелям фурнитура. Или не выделялась, а хотя бы подсвечивалась. Спасибо!
|
|
|
06.12.2021, 10:34
|
#569
|
Местный
Регистрация: 22.12.2008
Сообщений: 253
Сказал(а) спасибо: 54
Поблагодарили 227 раз(а) в 161 сообщениях
Вес репутации: 257
|
Цитата:
Сообщение от Saha SG-552
Извините, наверное нужно было более развёрнуто описать хотелки свои =) Я использую скрипт выделения панели по номерам позиций, работает исправно, панели выделяет, только вот хотелось бы ещё, чтобы вместе с панелями выделялась прилегающая к этим панелям фурнитура. Или не выделялась, а хотя бы подсвечивалась. Спасибо!
|
Не знаю каким скриптом поиска пользуетесь, но с подсветкой можно так:
Скрытый текст
PHP код:
UnSelectAll(); Action.OnFinish = function(){ if(positions == '') UnSelectAll(); } var positions = prompt("Введите номера позиций через пробел"); var nums = positions.split(' '); var finded = []; var not_finded = []; function contains(arr, elem) { for (var i = 0; i < arr.length; i++) { if (arr[i] === elem) { return true; } } return false; } Model.forEach(function(obj) { if (obj) { if (nums.indexOf(obj.ArtPos) >= 0) { obj.Selected = true; finded.push(obj.ArtPos); } } }) //str = ''; for (i=0;i<nums.length;i++){ if (!contains(finded, nums[i])){ //str=str+nums[i]+','; not_finded.push(nums[i]); } } if (not_finded.length > 0){ alert('Не найдены позиции: '+not_finded) }
//Подсветить крепеж for (var i = 0; i < Model.SelectionCount; i++) { if (Model.Selections[i] instanceof TFurnPanel){ var mass = Model.Selections[i].FindConnectedFasteners(); for (var r = 0; r < mass.length; r++) { mass[r].Highlighted = true; }}}
[свернуть]
Если что, то скопируйте в свой скрипт часть после //Подсветить крепеж
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
06.12.2021, 17:15
|
#570
|
Местный
Регистрация: 02.11.2015
Сообщений: 490
Сказал(а) спасибо: 105
Поблагодарили 701 раз(а) в 265 сообщениях
Вес репутации: 293
|
Цитата:
Сообщение от skromvit
Не знаю каким скриптом поиска пользуетесь, но с подсветкой можно так:
Скрытый текст
PHP код:
UnSelectAll();
Action.OnFinish = function(){
if(positions == '')
UnSelectAll();
}
var positions = prompt("Введите номера позиций через пробел");
var nums = positions.split(' ');
var finded = [];
var not_finded = [];
function contains(arr, elem) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === elem) {
return true;
}
}
return false;
}
Model.forEach(function(obj) {
if (obj) {
if (nums.indexOf(obj.ArtPos) >= 0) {
obj.Selected = true;
finded.push(obj.ArtPos);
}
}
})
//str = '';
for (i=0;i<nums.length;i++){
if (!contains(finded, nums[i])){
//str=str+nums[i]+',';
not_finded.push(nums[i]);
}
}
if (not_finded.length > 0){
alert('Не найдены позиции: '+not_finded)
}
//Подсветить крепеж
for (var i = 0; i < Model.SelectionCount; i++) {
if (Model.Selections[i] instanceof TFurnPanel){
var mass = Model.Selections[i].FindConnectedFasteners();
for (var r = 0; r < mass.length; r++) {
mass[r].Highlighted = true;
}}}
[свернуть]
Если что, то скопируйте в свой скрипт часть после //Подсветить крепеж
|
Цитата:
Сообщение от Saha SG-552
Извините, наверное нужно было более развёрнуто описать хотелки свои =) Я использую скрипт выделения панели по номерам позиций, работает исправно, панели выделяет, только вот хотелось бы ещё, чтобы вместе с панелями выделялась прилегающая к этим панелям фурнитура. Или не выделялась, а хотя бы подсвечивалась. Спасибо!
|
воспользуйтесь ответом от skromvit, но в конце замените mass[r].Highlighted = true; на mass[r].Selected = true;
__________________
Оно поди конечно если, а как коснись чего-нибудь, так вот те на пожалуйста..
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 06:43. Часовой пояс GMT +3.
|