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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 21.03.2018, 14:48  
Обсуждение скриптов в Системе Базис
Letos
Консультант
Регистрация: 28.06.2017
Сообщений: 555

Сказал(а) спасибо: 127
Поблагодарили 1,034 раз(а) в 367 сообщениях
Версия для печати Отправить по электронной почте
Letos Letos вне форума 21.03.2018, 14:48
Рейтинг: ()

Если вы не знаете, или не уверены, куда задавать вопрос по скриптам в Системе Базис, то эта тема для вас.
Просмотров: 253823
Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (28.07.2021), Максим Геннадьевич (08.06.2018)
Старый 13.05.2024, 08:57   #511
f2dvasek
Новичок
 
Регистрация: 11.10.2023
Сообщений: 9
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
f2dvasek пока не определено
По умолчанию

А возможно ли скриптом решить такую задачу:
На чертежах панелей тыкать мышью на нужную грань панели и автоматом ставить какой-то спец знак (допустим треугольник). Для условного обозначения края (кромка, шлифовка или еще что-то), без текста и чтобы окно это не выпадало (где надо вводить текст)
f2dvasek вне форума   Ответить с цитированием Вверх
Старый 13.05.2024, 12:24   #512
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 267
Сказал(а) спасибо: 55
Поблагодарили 239 раз(а) в 172 сообщениях
Вес репутации: 262
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от f2dvasek Посмотреть сообщение
А возможно ли скриптом решить такую задачу:
На чертежах панелей тыкать мышью на нужную грань панели и автоматом ставить какой-то спец знак (допустим треугольник). Для условного обозначения края (кромка, шлифовка или еще что-то), без текста и чтобы окно это не выпадало (где надо вводить текст)
В чертежах скрипты не работают
skromvit вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
f2dvasek (14.05.2024)
Старый 13.05.2024, 16:52   #513
Megabyte
Местный
 
Регистрация: 11.07.2010
Сообщений: 137
Сказал(а) спасибо: 322
Поблагодарили 118 раз(а) в 46 сообщениях
Вес репутации: 205
Megabyte скоро придёт к известностиMegabyte скоро придёт к известности
По умолчанию

Цитата:
Сообщение от f2dvasek Посмотреть сообщение
А возможно ли скриптом решить такую задачу:
На чертежах панелей тыкать мышью на нужную грань панели и автоматом ставить какой-то спец знак (допустим треугольник). Для условного обозначения края (кромка, шлифовка или еще что-то), без текста и чтобы окно это не выпадало (где надо вводить текст)
Как вариант, попробуйте сохранить спецзнак, как 2д фрагмент, а на чертеже ставьте, как 2д фрагмент.
Megabyte вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
f2dvasek (14.05.2024)
Старый 15.05.2024, 17:43   #514
Garry-K
Новичок
 
Регистрация: 02.12.2014
Сообщений: 19
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Garry-K пока не определено
По умолчанию

/**
* Имя файла настроек
*/
// @note Имя файла, переменные
const filename = 'settings.xml';
// const filename = process.env.USERPROFILE + "\\Documents\\Bazis\\Scripts\\SettingsRuchki.x ml";
var px;
var py;
var pz;

var x1 = 0;
var y1 = 0;

var MinX;
var MaxX;
var MinY;
var MaxY;
var MinZ;
var MaxZ;

// @note свойства
var props = Action.Properties;
// var settings = props.NewGroup('Настройки');
var Ruchka = props.NewFurniture('Ручка').Value;

var Ruchkalength = props.NewNumber('Длина ручки', 96);
var OtstupX = props.NewNumber('Отступ по горизонтали');
var OtstupY = props.NewNumber('Отступ по вертикали');

var Ugol = props.NewNumber('Угол поворота');
Ugol.Visible = false;
var Ugol_ = props.NewBool('Ручка гориз/верт', true);

Ugol_.OnChange = function () {
if (Ugol_.Value == true) {
Ugol.Value = 0;
x1 = Ruchkalength.Value / 2;
y1 = 0;
} else {
Ugol.Value = 90;
x1 = 0;
y1 = Ruchkalength.Value / 2;
}
}
Ruchkalength.OnChange = function () {
if (Ugol_.Value == true) {
Ugol.Value = 0;
x1 = Ruchkalength.Value / 2;
y1 = 0;
} else {
Ugol.Value = 90;
x1 = 0;
y1 = Ruchkalength.Value / 2;
}
}
var UstanovkaOtPola = props.NewBool('Устанавливать от пола');
var OtPola = props.NewNumber('Расстояние от пола');
var InBlock = props.NewBool('Объединять в блок');
props.Load(filename);
var finishBtn = props.NewButton('Закончить');



finishBtn.OnClick = function () {
Action.Finish();
}

//@note OnCkick
Action.OnClick = function () {
Action.Commit();
//создаем ссылку на новый объект модели - это установленая ручка
var new_fast = Model.Objects[Model.Count - 1];
//если выбрано "создание нового блока"
if (InBlock.Value) {
//создаем новый блок
var new_block = AddBlock('фасад с ручкой');
new_block.Build();
Action.Commit();
new_block = Model.Objects[Model.Count - 1];
//устанавливаем и поворачиваем новый блок в пространстве так же как расположена панель
new_block.Translate(panel.ToGlobal(NewVector(0, 0, 0)));
new_block.Orient(panel.NToGlobal(AxisZ), panel.NToGlobal(AxisY));
//переносим новый блок в тот уровень иерархии где находится панель
//с сохранением расположения в глобальном пространстве
new_block.ReTransform(new_block.Owner, panel.Owner);
new_block.Owner = panel.Owner;
//переносим панель в новый блок
//с сохранением расположения в глобальном пространстве
panel.ReTransform(panel.Owner, new_block);
panel.Owner = new_block;
}
//переносим ручку в тот уровень иерархии где находится панель
//с сохранением расположения в глобальном пространстве
new_fast.ReTransform(new_fast.Owner, panel.Owner);
new_fast.Owner = panel.Owner;
}
//

if (Ugol_.Value == true) {
Ugol.Value = 0;
x1 = Ruchkalength.Value / 2;
y1 = 0;
} else {
Ugol.Value = 90;
x1 = 0;
y1 = Ruchkalength.Value / 2;
}

// @note Фронт панель
function GetKoordFrontPanel() {
CenterX = (MaxX - MinX) / 2 + MinX;
CenterY = (MaxY - MinY) / 2 + MinY;

if (Action.Pos3.x < CenterX - 30) {
px = MinX + OtstupX.Value + x1;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
} else if (Action.Pos3.x > CenterX + 30) {
px = MaxX - OtstupX.Value - x1;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
} else {
px = CenterX;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
}

if (UstanovkaOtPola.Value) {
py = OtPola.Value + y1;
}

pz = MinZ + Math.round(panel.Thickness);
}

//@note Верт панель
function GetKoordVertPanel() {
CenterX = (MaxZ - MinZ) / 2 + MinZ;
CenterY = (MaxY - MinY) / 2 + MinY;

if (Action.Pos3.z < CenterX - 30) {
pz = MinZ + OtstupX.Value + x1;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
} else if (Action.Pos3.z > CenterX + 30) {
pz = MaxZ - OtstupX.Value - x1;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
} else {
pz = CenterX;
if (Action.Pos3.y < CenterY - 30) {
py = MinY + OtstupY.Value + y1;
} else if (Action.Pos3.y > CenterY + 30) {
py = MaxY - OtstupY.Value - y1;

} else {
py = CenterY;

}
}

if (UstanovkaOtPola.Value) {
py = OtPola.Value + y1;
}

if (Action.ViewDir.x == 1) {
px = MinX - panel.Thickness;
}
if (Action.ViewDir.x == -1) {
px = MinX + panel.Thickness;
}
if (Action.ViewDir.x !== -1 && Action.ViewDir.x !== 1) {
px = Action.Pos3.x;
}
}

//@note OnMove
Action.OnMove = function () {
DeleteNewObjects();
Obj = Action.Get3DObject();
if (typeof Obj == "undefined") { }
else {
if (Obj.AsPanel) {
panel = Obj.AsPanel;
if (panel.ToGlobal(panel.GMin).x < panel.ToGlobal(panel.GMax).x) {
MinX = panel.ToGlobal(panel.GMin).x;
MaxX = panel.ToGlobal(panel.GMax).x;
} else {
MinX = panel.ToGlobal(panel.GMax).x;
MaxX = panel.ToGlobal(panel.GMin).x;
}

if (panel.ToGlobal(panel.GMin).y < panel.ToGlobal(panel.GMax).y) {
MinY = panel.ToGlobal(panel.GMin).y;
MaxY = panel.ToGlobal(panel.GMax).y;
} else {
MinY = panel.ToGlobal(panel.GMax).y;
MaxY = panel.ToGlobal(panel.GMin).y;
}

if (panel.ToGlobal(panel.GMin).z < panel.ToGlobal(panel.GMax).z) {
MinZ = panel.ToGlobal(panel.GMin).z;
MaxZ = panel.ToGlobal(panel.GMax).z;
} else {
MinZ = panel.ToGlobal(panel.GMax).z;
MaxZ = panel.ToGlobal(panel.GMin).z;
}

if ((MaxX - MinX) > (MaxZ - MinZ)) {
GetKoordFrontPanel();
} else {
GetKoordVertPanel();
};

Ruchka.Mount1(Obj, px, py, pz, Ugol.Value);

}
}
}

Action.OnFinish = function () {
props.Save(filename)
}

Action.Continue();



Но он периодически, то работает нормально, а то просто удаляет всю модель. Приходится закрывать Базис без сохранения и запускать заново.
Garry-K вне форума   Ответить с цитированием Вверх
Ответ

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


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждение готовых скриптов Letos Базис-мебельщик. Скрипты 492 04.03.2024 11:42
БАЗИС 8 - общее обсуждение DTioutiou Базис-мебельщик 8 2092 15.08.2023 01:44
БАЗИС 8 - Фурнитура, обсуждение nayrogi Базис-мебельщик 8 1390 16.04.2022 22:47
MasterBox 7. Работа с ящиками в системе БАЗИС Daddy Базис-мебельщик 7 605 13.11.2019 11:13
Общие вопросы по системе БАЗИС 7.0 COBA Базис-мебельщик 7 904 24.08.2016 19:16


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


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

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