21.12.2017, 12:21
Заявки на создание скрипта.
systland
VIP
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 565
Сказал(а) спасибо: 303
Поблагодарили 452 раз(а) в 189 сообщениях
21.12.2017, 12:21
Рейтинг:
()
Тема создана для размещения заявок на написание скриптов.
Для того, чтобы заявка была рассмотрена, необходимо составить максимально понятное техзадание :
1. Описать, какую задачу должен выполнять скрипт.
2. Какие данные должны использоваться скриптом.
3. Алгоритм (последовательность действий) работы скрипта.
Заявки типа "Мне нужен скрипт для расстановки полок" или подобные рискуют остаться без внимания.
Любые заявки не обязательны для рассмотрения. Если Вам не ответили, значит по какой-либо причине нет возможности её выполнить.
Альтернативный вариант - обратиться лично к тем, кто может оказать такую
услугу
Другие сообщения, не соответствующие назначению темы, будут удалены без предупреждения!
Просьба после того, как заявка будет выполнена и утратившая актуальность по другим причинам, оставлять соответствующее сообщение в этой же теме или обратится к модератору для закрытия заявки.
Последний раз редактировалось Uncle; 03.02.2020 в 20:07 ..
Причина: Поправил шапку
Просмотров: 343614
10.01.2024, 10:46
#661
Местный
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 169
Сказал(а) спасибо: 57
Поблагодарили 246 раз(а) в 46 сообщениях
Вес репутации:
140
Цитата:
Сообщение от
АлексМЕ
У меня если честно сразу возникла мысль, что выбор цвета никак не упростить...
Про скрипты понятно. Можно сделать меню по наименованию объектов в проекте и выбор цвета для каждого объекта (просто из трех или как в БМ из большого списка). Либо по типу объекта блок, фурнитура, сборка, профиль и т.д , но учтите, что если розетка тип панель она попадет в список панели.
Пользователь сказал cпасибо:
20.01.2024, 12:58
#662
Новичок
Регистрация: 17.10.2020
Адрес: Чернигов
Сообщений: 3
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации:
0
Добрый день. Нужен скрипт для построения корпусов, как в Е-сервисе Блюм. Нравиться их конструктор корпусов. Можно без фурнитуры и кромки.
20.01.2024, 18:13
#663
Местный
Регистрация: 22.12.2008
Сообщений: 267
Сказал(а) спасибо: 55
Поблагодарили 239 раз(а) в 172 сообщениях
Вес репутации:
262
Цитата:
Сообщение от
Patuk1983
Добрый день. Нужен скрипт для построения корпусов, как в Е-сервисе Блюм. Нравиться их конструктор корпусов. Можно без фурнитуры и кромки.
Такой?
https://youtu.be/r36MtWp-TRU?si=_QIXx_OHZq8PNQU4
24.01.2024, 16:39
#664
Местный
Регистрация: 16.07.2015
Адрес: Москва
Сообщений: 434
Сказал(а) спасибо: 203
Поблагодарили 319 раз(а) в 138 сообщениях
Вес репутации:
215
Всем доброго дня. Есть ли скрипт который выделяет панели у которых присадка и пазу с двух сторон.
24.01.2024, 17:31
#665
Местный
Регистрация: 22.12.2008
Сообщений: 267
Сказал(а) спасибо: 55
Поблагодарили 239 раз(а) в 172 сообщениях
Вес репутации:
262
Цитата:
Сообщение от
zloichik
Всем доброго дня. Есть ли скрипт который выделяет панели у которых присадка и пазу с двух сторон.
Есть только с присадкой
PHP код:
/*
Скрипт выделяет панели с двухсторонней присадкой
*/
UnSelectAll ();
Model . forEachPanel (function( panel ) {
var fasts = panel . FindConnectedFasteners ();
var hole_front = 0 ;
var hole_back = 0 ;
for (var i = 0 ; i < fasts . length ; ++ i ) {
for (var r = 0 ; r < fasts [ i ]. Holes . Count ; ++ r ) {
var start_pos = panel . ToObject ( fasts [ i ]. ToGlobal ( fasts [ i ]. Holes [ r ]. Position ));
start_pos = {
x : + start_pos . x . toFixed ( 3 ),
y : + start_pos . y . toFixed ( 3 ),
z : + start_pos . z . toFixed ( 3 )
};
var end_pos = panel . ToObject ( fasts [ i ]. ToGlobal ( fasts [ i ]. Holes [ r ]. EndPosition ()));
end_pos = {
x : + end_pos . x . toFixed ( 3 ),
y : + end_pos . y . toFixed ( 3 ),
z : + end_pos . z . toFixed ( 3 )
};
var dir = panel . NToObject ( fasts [ i ]. NToGlobal ( fasts [ i ]. Holes [ r ]. Direction ));
if (( fasts [ i ]. Holes [ r ]. DrillMode == 2 ) && ( dir . z > 0 ) && ( start_pos . z <= 0 ) && ( end_pos . z > 0 ) && ( end_pos . z < panel . Thickness ) && ( panel . Contour . IsPointInside ( end_pos . x , end_pos . y ))) {
++ hole_front ;
}
if (( fasts [ i ]. Holes [ r ]. DrillMode == 2 ) && ( dir . z < 0 ) && ( start_pos . z >= panel . Thickness ) && ( end_pos . z > 0 ) && ( end_pos . z < panel . Thickness ) && ( panel . Contour . IsPointInside ( end_pos . x , end_pos . y ))) {
++ hole_back ;
}
}
}
if (( hole_front > 0 ) && ( hole_back > 0 )) {
panel . Selected = true ;
}
});
3 пользователя(ей) сказали cпасибо:
24.01.2024, 23:24
#666
Местный
Регистрация: 16.07.2015
Адрес: Москва
Сообщений: 434
Сказал(а) спасибо: 203
Поблагодарили 319 раз(а) в 138 сообщениях
Вес репутации:
215
Цитата:
Сообщение от
skromvit
Есть только с присадкой
PHP код:
/*
Скрипт выделяет панели с двухсторонней присадкой
*/
UnSelectAll ();
Model . forEachPanel (function( panel ) {
var fasts = panel . FindConnectedFasteners ();
var hole_front = 0 ;
var hole_back = 0 ;
for (var i = 0 ; i < fasts . length ; ++ i ) {
for (var r = 0 ; r < fasts [ i ]. Holes . Count ; ++ r ) {
var start_pos = panel . ToObject ( fasts [ i ]. ToGlobal ( fasts [ i ]. Holes [ r ]. Position ));
start_pos = {
x : + start_pos . x . toFixed ( 3 ),
y : + start_pos . y . toFixed ( 3 ),
z : + start_pos . z . toFixed ( 3 )
};
var end_pos = panel . ToObject ( fasts [ i ]. ToGlobal ( fasts [ i ]. Holes [ r ]. EndPosition ()));
end_pos = {
x : + end_pos . x . toFixed ( 3 ),
y : + end_pos . y . toFixed ( 3 ),
z : + end_pos . z . toFixed ( 3 )
};
var dir = panel . NToObject ( fasts [ i ]. NToGlobal ( fasts [ i ]. Holes [ r ]. Direction ));
if (( fasts [ i ]. Holes [ r ]. DrillMode == 2 ) && ( dir . z > 0 ) && ( start_pos . z <= 0 ) && ( end_pos . z > 0 ) && ( end_pos . z < panel . Thickness ) && ( panel . Contour . IsPointInside ( end_pos . x , end_pos . y ))) {
++ hole_front ;
}
if (( fasts [ i ]. Holes [ r ]. DrillMode == 2 ) && ( dir . z < 0 ) && ( start_pos . z >= panel . Thickness ) && ( end_pos . z > 0 ) && ( end_pos . z < panel . Thickness ) && ( panel . Contour . IsPointInside ( end_pos . x , end_pos . y ))) {
++ hole_back ;
}
}
}
if (( hole_front > 0 ) && ( hole_back > 0 )) {
panel . Selected = true ;
}
});
То что нужно. А есть возможность что бы присадка тоже выделялась?
25.01.2024, 07:07
#667
Местный
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 169
Сказал(а) спасибо: 57
Поблагодарили 246 раз(а) в 46 сообщениях
Вес репутации:
140
Цитата:
Сообщение от
zloichik
Всем доброго дня. Есть ли скрипт который выделяет панели у которых присадка и пазу с двух сторон.
Есть такой скрипт
Ссылка на сервисе
VIDEO
Выделение панелей:
1. Панели, в которых есть отверстие с выбором подсветки.
2. Панели с пазами.
3 Панели с сквозными отверстиями.
4. Панели с торцевыми отверстиями.
5. Панели с отверстиями в пласть.
6. Панели с отверстиями в пласть с двух сторон, при выборе пазы учитывается как паз с одной стороны, а отверстие с другой.
Пользователь сказал cпасибо:
26.01.2024, 09:28
#668
Новичок
Регистрация: 11.11.2017
Сообщений: 3
Сказал(а) спасибо: 4
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации:
0
Цитата:
Сообщение от
Максим Геннадьевич
Пока не специалист в этом деле, кое что слепил из того, что понимаю. Пробуйте:
Скрытый текст
Код:
var CurPos = NewVector(0, 0, 0);
var icebox ;
FileOptions = 'Холодильник.xml';
MakeProperties();
Action.Properties.Load(FileOptions);
Action.OnFinish = function() {
Action.Properties.Save(FileOptions);
}
NewBtn = NewButtonInput('Закончить');
NewBtn.OnChange = function() {
Action.Commit();
Action.Finish();
}
NewTumba();
Action.Continue();
function MakeProperties() {
prop = Action.Properties;
width = prop.NewNumber('Ширина', 540);
heidht = prop.NewNumber('Высота', 1935);
depth = prop.NewNumber('Глубина', 550);
h1 = prop.NewNumber('Высота 1', 34);
h2 = prop.NewNumber('Высота 2', 75);
h3 = prop.NewNumber('Высота 3', 57);
hd = prop.NewNumber('Высота низа', 550);
prop.OnChange = function() {
Make();
}
}
function NewTumba() {
Make();
Action.ShowPoints = true;
Action.OnMove = function() {
CurBlock.Position = Action.Pos3;
CurPos = Action.Pos3; };
Action.OnClick = function() {
Action.OnMove = undefined;
Action.ShowPoints = false;
};
}
function Make(){
DeleteNewObjects();
CurBlock = BeginBlock("Холодильник");
icebox = AddExtrusion();
icebox.MaterialName ='Холодильник';
cd = icebox.Contour;
cd.AddRectangle(0,0,depth.Value,heidht.Value);
cont = NewContour();
cont.AddRectangle(depth.Value - 30,0,depth.Value,h1.Value);
cont.AddRectangle(depth.Value - 30,hd.Value,depth.Value,hd.Value + h2.Value);
cont.AddRectangle(depth.Value - 30,heidht.Value,depth.Value,heidht.Value - h3.Value);
cd.Subtraction(cont);
icebox.Rotate(AxisY, -90);
icebox.Thickness = width.Value;
icebox.Position = NewVector(width.Value/2,0 ,-depth.Value);
icebox.Name = 'Холодильник';
icebox.Build();
EndBlock();
CurBlock.Position = CurPos;
}
[свернуть]
Всем привет. Отличный скрипт! Но мне нужно чтобы холодильник сохранялся не "блоком", а "сборкой". Сделайте пожалуйста такой вариант. Если это возможно конечно.
Спасибо.
26.01.2024, 09:38
#669
Местный
Регистрация: 11.04.2018
Адрес: г.Маркс
Сообщений: 169
Сказал(а) спасибо: 57
Поблагодарили 246 раз(а) в 46 сообщениях
Вес репутации:
140
Цитата:
Сообщение от
АнтиВеталь
Всем привет. Отличный скрипт! Но мне нужно чтобы холодильник сохранялся не "блоком", а "сборкой". Сделайте пожалуйста такой вариант. Если это возможно конечно.
Спасибо.
PHP код:
var CurPos = NewVector ( 0 , 0 , 0 );
var icebox ;
FileOptions = 'Холодильник.xml' ;
MakeProperties ();
Action . Properties . Load ( FileOptions );
Action . OnFinish = function() {
Action . Properties . Save ( FileOptions );
}
NewBtn = NewButtonInput ( 'Закончить' );
NewBtn . OnChange = function() {
Action . Commit ();
Action . Finish ();
}
NewTumba ();
Action .Continue();
function MakeProperties () {
prop = Action . Properties ;
width = prop . NewNumber ( 'Ширина' , 540 );
heidht = prop . NewNumber ( 'Высота' , 1935 );
depth = prop . NewNumber ( 'Глубина' , 550 );
h1 = prop . NewNumber ( 'Высота 1' , 34 );
h2 = prop . NewNumber ( 'Высота 2' , 75 );
h3 = prop . NewNumber ( 'Высота 3' , 57 );
hd = prop . NewNumber ( 'Высота низа' , 550 );
prop . OnChange = function() {
Make ();
}
}
function NewTumba () {
Make ();
Action . ShowPoints = true ;
Action . OnMove = function() {
CurBlock . Position = Action . Pos3 ;
CurPos = Action . Pos3 ; };
Action . OnClick = function() {
Action . OnMove = undefined ;
Action . ShowPoints = false ;
};
}
function Make (){
DeleteNewObjects ();
CurBlock = BeginBlock ( "Холодильник" );
icebox = AddExtrusion ();
icebox . MaterialName = 'Холодильник' ;
cd = icebox . Contour ;
cd . AddRectangle ( 0 , 0 , depth . Value , heidht . Value );
cont = NewContour ();
cont . AddRectangle ( depth . Value - 30 , 0 , depth . Value , h1 . Value );
cont . AddRectangle ( depth . Value - 30 , hd . Value , depth . Value , hd . Value + h2 . Value );
cont . AddRectangle ( depth . Value - 30 , heidht . Value , depth . Value , heidht . Value - h3 . Value );
cd . Subtraction ( cont );
icebox . Rotate ( AxisY , - 90 );
icebox . Thickness = width . Value ;
icebox . Position = NewVector ( width . Value / 2 , 0 ,- depth . Value );
icebox . Name = 'Холодильник' ;
icebox . Build ();
EndBlock ();
CurBlock . Position = CurPos ;
var ice = AddAssembly ( "Холодильник" );
CurBlock . Owner = ice ;
}
4 пользователя(ей) сказали cпасибо:
26.01.2024, 13:27
#670
Местный
Регистрация: 20.02.2013
Адрес: Казань
Сообщений: 363
Сказал(а) спасибо: 845
Поблагодарили 790 раз(а) в 211 сообщениях
Вес репутации:
332
Цитата:
Сообщение от
Максим Геннадьевич
PHP код:
var CurPos = NewVector ( 0 , 0 , 0 );
var icebox ;
FileOptions = 'Холодильник.xml' ;
MakeProperties ();
Action . Properties . Load ( FileOptions );
Action . OnFinish = function() {
Action . Properties . Save ( FileOptions );
}
NewBtn = NewButtonInput ( 'Закончить' );
NewBtn . OnChange = function() {
Action . Commit ();
Action . Finish ();
}
NewTumba ();
Action .Continue();
function MakeProperties () {
prop = Action . Properties ;
width = prop . NewNumber ( 'Ширина' , 540 );
heidht = prop . NewNumber ( 'Высота' , 1935 );
depth = prop . NewNumber ( 'Глубина' , 550 );
h1 = prop . NewNumber ( 'Высота 1' , 34 );
h2 = prop . NewNumber ( 'Высота 2' , 75 );
h3 = prop . NewNumber ( 'Высота 3' , 57 );
hd = prop . NewNumber ( 'Высота низа' , 550 );
prop . OnChange = function() {
Make ();
}
}
function NewTumba () {
Make ();
Action . ShowPoints = true ;
Action . OnMove = function() {
CurBlock . Position = Action . Pos3 ;
CurPos = Action . Pos3 ; };
Action . OnClick = function() {
Action . OnMove = undefined ;
Action . ShowPoints = false ;
};
}
function Make (){
DeleteNewObjects ();
CurBlock = BeginBlock ( "Холодильник" );
icebox = AddExtrusion ();
icebox . MaterialName = 'Холодильник' ;
cd = icebox . Contour ;
cd . AddRectangle ( 0 , 0 , depth . Value , heidht . Value );
cont = NewContour ();
cont . AddRectangle ( depth . Value - 30 , 0 , depth . Value , h1 . Value );
cont . AddRectangle ( depth . Value - 30 , hd . Value , depth . Value , hd . Value + h2 . Value );
cont . AddRectangle ( depth . Value - 30 , heidht . Value , depth . Value , heidht . Value - h3 . Value );
cd . Subtraction ( cont );
icebox . Rotate ( AxisY , - 90 );
icebox . Thickness = width . Value ;
icebox . Position = NewVector ( width . Value / 2 , 0 ,- depth . Value );
icebox . Name = 'Холодильник' ;
icebox . Build ();
EndBlock ();
CurBlock . Position = CurPos ;
var ice = AddAssembly ( "Холодильник" );
CurBlock . Owner = ice ;
}
только почему он удаляется? не остается в модели? извините разобрался
Нижняя навигация
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Текущее время: 00:17 . Часовой пояс GMT +3.