Показать сообщение отдельно
Старый 12.02.2020, 14:44   #143
alexrain
Новичок
 
Регистрация: 03.04.2016
Адрес: Бронницы
Сообщений: 19
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
alexrain пока не определено
По умолчанию

Всем привет.
Вот пример скрипта:

Скрытый текст

MakeProperties();

FileOptionsPolka1Dver = 'Polka1Dver.xml';

var startAngle = 0;

if (!ParametricBlock) {

Action.Properties.Load(FileOptionsPolka1Dver);

Action.OnFinish = function() {
Action.Properties.Save(FileOptionsPolka1Dver);
}

} else {

Action.Properties.Load(FileOptionsPolka1Dver);

}

Action.Continue();

function MakeProperties() {

Prop = Action.Properties;
Seperator = Prop.NewSeparator();

GabRaz = Prop.NewGroup('Габаритные размеры изделия по корпусу');
KH = GabRaz.NewNumber('Высота', 720);
KB = GabRaz.NewNumber('Ширина', 600);
KT = GabRaz.NewNumber('Глубина', 300);
Seperator = GabRaz.NewSeparator();

Konstruktiv = Prop.NewGroup('Конструктивные изменения');
Paz = Konstruktiv.NewNumber('Паз', 18);
BigLevBok = Konstruktiv.NewNumber('Увеличить левую боковину на ...', 0);
BigPravBok = Konstruktiv.NewNumber('Увеличить правую боковину на ...', 0);
Seperator = Konstruktiv.NewSeparator();

}

OkBtn = Prop.NewButton('Построить');

OkBtn.OnClick = function() {

Action.Properties.Save(FileOptionsPolka1Dver);

Action.Finish();

}

Action.OnStart = function() {
//обработка событий в любых полях ввода свойства
Prop.OnChange = Primenit;
Primenit();
}

Action.Continue();

function Primenit() {

Make();

}

function Make() {

DeleteNewObjects();

BL = BeginParametricBlock('Полка 1 дверь');

// устанавливаем детали корпуса
UstanovkaLevBokPazZamer(); // устанавливаем левую боковину
UstanovkaPravBokPazZamer(); // устанавливаем правую боковину
UstanovkaDnoPazZamer(); // устанавливаем нижний горизонт
UstanovkaVerhPazZamer(); // устанавливаем верхний горизонт
UstanovkaZadnStenkaPolkaPazZamer(); // устанавливаем заднюю стенку ДВП

EndParametricBlock();

}

function UstanovkaLevBokPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем левую боковину
LevBok = AddVertPanel(-BigLevBok.Value, 0, KT.Value, KH.Value, 0);
LevBok.TextureOrientation = TextureOrientation.Vertical;

// Строим паз
CutLevBok = LevBok.AddCut('паз');
CutLevBok.Trajectory.AddLine(BigLevBok.Value + Paz.Value, 0, BigLevBok.Value + Paz.Value, KH.Value);
CutLevBok.Contour.AddRectangle(0, 0, -4, 8);

// Указываем дополнительные свойства
LevBok.Name = 'Боковина левая';
LevBok.ArtPos = '1';

LevBok.Build();

}

// устанавливаем правую боковину
function UstanovkaPravBokPazZamer() {
// Определяем материал боковины
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем правую боковину
PravBok = AddVertPanel(-BigPravBok.Value, 0, KT.Value, KH.Value, KB.Value - ActiveMaterial.Thickness);
PravBok.TextureOrientation = TextureOrientation.Vertical;

// Строим паз
CutPravBok = PravBok.AddCut('паз');
CutPravBok.Trajectory.AddLine(BigPravBok.Value + Paz.Value, 0, BigPravBok.Value + Paz.Value, KH.Value);
CutPravBok.Contour.AddRectangle(0, PravBok.Thickness, -4, PravBok.Thickness - 8);

// Указываем дополнительные свойства
PravBok.Name = 'Боковина правая';
PravBok.ArtPos = '2';

PravBok.Build();

}

// устанавливаем дно
function UstanovkaDnoPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// Устанавливаем нижний горизонт
Dno = AddHorizPanel(LevBok.Thickness, 0, KB.Value - PravBok.Thickness, KT.Value, 0);
Dno.TextureOrientation = TextureOrientation.Horizontal;

// Строим паз
CutDno = Dno.AddCut('Паз');
CutDno.Trajectory.AddLine(0, -Paz.Value, KB.Value - (PravBok.Thickness + LevBok.Thickness), -Paz.Value);
CutDno.Contour.AddRectangle(0, Dno.Thickness, -4, Dno.Thickness - 8);

// Указываем дополнительные свойства
Dno.Name = 'Нижний горизонт';
Dno.ArtPos = '3';

Dno.Build();

}

// устанавливаем верх
function UstanovkaVerhPazZamer() {
// Определяем материал детали
ActiveMaterial.Make('ДСП основного корпуса\rДСП', 16.5);

// устанавливаем верхний горизонт
Verh = AddHorizPanel(LevBok.Thickness, 0, KB.Value - PravBok.Thickness, KT.Value, KH.Value - Dno.Thickness);
Verh.TextureOrientation = TextureOrientation.Horizontal;

// Строим паз
CutVerh = Verh.AddCut('Паз');
CutVerh.Trajectory.AddLine(0, -Paz.Value, KB.Value - (PravBok.Thickness + LevBok.Thickness), -Paz.Value);
CutVerh.Contour.AddRectangle(0, 0, -4, 8);

// Указываем дополнительные свойства
Verh.Name = 'Верхний горизонт';
Verh.ArtPos = '4';

Verh.Build();

}

// устанавливаем заднюю стенку ДВП
function UstanovkaZadnStenkaPolkaPazZamer() {

// Определяем материал детали
ActiveMaterial.Make('ДВП ламинированная\rДВП', 4);

// Устанавливаем заднюю стенку из ДВП
ZadnStenkaDVP = AddFrontPanel(LevBok.Thickness - 7, Dno.Thickness - 7, (KB.Value - PravBok.Thickness) + 7, KH.Value - 9.5, Paz.Value);
ZadnStenkaDVP.TextureOrientation = TextureOrientation.Vertical;

// Указываем дополнительные свойства
ZadnStenkaDVP.Name = 'Задняя стенка ДВП';
ZadnStenkaDVP.ArtPos = '8';

ZadnStenkaDVP.Build();

}
[свернуть]
--------------------------

Суть следующая:
Создаем с помощью скрипта редактируемую параметрическую 3Д-модель.
Есть ли возможность сделать следующее:
1. Использовать ее (модель) в модуле Базис-Салон.
2. Установив в интерьере (Базис-Салон-Интерьер) --> вызываем модель на редактирование через модуль Базис-Мебельщик --> выделяем 3Д-модель, нажимаем "Редактировать" и изменяем габариты (свойства) изделия, подтверждаем изменения --> загружаем обратно в Базис-Салон-Интерьер (передать в модуль Расстановка).

Если да, то подскажите, пожалуйста, что необходимо сделать? Изменить код, подготовить определенные действия и др.
Спасибо!

Последний раз редактировалось Letos; 12.02.2020 в 15:04. Причина: Спрятал код в спойлер
alexrain вне форума   Ответить с цитированием Вверх