|
|
|
|
|
21.12.2017, 11:21
|
|
Заявки на создание скрипта.
systland
Модератор
Регистрация: 30.10.2007
Адрес: Москва
Сообщений: 564
Сказал(а) спасибо: 299
Поблагодарили 445 раз(а) в 187 сообщениях

21.12.2017, 11:21
Рейтинг:
(2 голосов - 4.50 средняя оценка)
Тема создана для размещения заявок на написание скриптов.
Для того, чтобы заявка была рассмотрена, необходимо составить максимально понятное техзадание :
1. Описать, какую задачу должен выполнять скрипт.
2. Какие данные должны использоваться скриптом.
3. Алгоритм (последовательность действий) работы скрипта.
Заявки типа "Мне нужен скрипт для расстановки полок" или подобные рискуют остаться без внимания.
Любые заявки не обязательны для рассмотрения. Если Вам не ответили, значит по какой-либо причине нет возможности её выполнить.
Альтернативный вариант - обратиться лично к тем, кто может оказать такую услугу
Другие сообщения, не соответствующие назначению темы, будут удалены без предупреждения!
Просьба после того, как заявка будет выполнена и утратившая актуальность по другим причинам, оставлять соответствующее сообщение в этой же теме или обратится к модератору для закрытия заявки.
Последний раз редактировалось Uncle; 03.02.2020 в 19:07..
Причина: Поправил шапку
|
Просмотров: 61894
|
23.03.2021, 11:28
|
#121
|
Местный
Регистрация: 31.08.2016
Сообщений: 648
Сказал(а) спасибо: 742
Поблагодарили 1,371 раз(а) в 515 сообщениях
Вес репутации: 395
|
Цитата:
Сообщение от Human2Q
Текстовое значение же есть, можно подбирать заглужку с таким же текстовым значением
|
Тогда вам надо создать такое же количество заглушек, сколько у вас ЛДСП?
И каждой "группе" назначить артикул заглушки. Их же гораздо меньше по цветам...
Возможно есть какой то хитрый способ. Но я не понимаю алгоритм, как это сделать)
__________________
Вокруг тебя происходит то, что ты позволил.
|
|
|
23.03.2021, 11:29
|
#122
|
Пользователь
Регистрация: 22.07.2014
Адрес: Sochi
Сообщений: 75
Сказал(а) спасибо: 128
Поблагодарили 115 раз(а) в 31 сообщениях
Вес репутации: 113
|
#Запрос. 3D DXF в Мебельщик.
Доброго времени суток.
#Запрос.
Импорт файла 3D DXF в Мебельщик.
Без скрипта: Алгоритм таков, загружаю в 3CAD, отрезкам предаю тело 1мм. После загружаю в мебельщик.
|
|
|
05.04.2021, 14:44
|
#123
|
Новичок
Регистрация: 28.01.2021
Сообщений: 4
Сказал(а) спасибо: 18
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
Здравствуйте. Есть стандартный скрипт в 8БМ "Облицовка кромкой". Может кто-нибудь его изменить чтобы он работал не на всех панелях, а только на выделенных и облицовывал "все кромки/видимые/открытые". Скрипт прилагается.
|
|
|
07.04.2021, 19:23
|
#124
|
Пользователь
Регистрация: 02.11.2015
Сообщений: 42
Сказал(а) спасибо: 5
Поблагодарили 16 раз(а) в 6 сообщениях
Вес репутации: 74
|
Цитата:
Сообщение от Human2Q
Текстовое значение же есть, можно подбирать заглужку с таким же текстовым значением
|
Решается через смету, операции и сопутствующие материалы.
Создаёте операцию допустим "заглушка эксцентрика белая", параметр для этой операции "кол-во глухих отверстий d15", кэтой операции назначает сопутствующие материал "заглушка эксц.белая"..
Делаете подобные операции для всех цветов заглушек.
По аналогии делаете такие же операции для всех видов заглушек.
Потом для удобства можно сделать операцию допустим "кол-во всех заглушек белые", параметр с модели не указываете, к данной операции по сопутствия подвязываете все ранее созданные операции, заглушки от которых используются для белого материала.
Далее эту обобщенную операцию подвязываете сопутствием ко всем белым материалам.
И вуаля.
Так называемая групповая операция не обязательна, можно все "вложенные" в неё сразу на материал назначить, просто мне было так удобнее, одну назначил а не десять)
У нас все работает и на лдсп и на профиль реагирует.
|
|
|
07.04.2021, 23:21
|
#125
|
Местный
Регистрация: 01.09.2019
Сообщений: 138
Сказал(а) спасибо: 25
Поблагодарили 82 раз(а) в 29 сообщениях
Вес репутации: 49
|
Цитата:
Сообщение от Mullerr
Здравствуйте. Есть стандартный скрипт в 8БМ "Облицовка кромкой". Может кто-нибудь его изменить чтобы он работал не на всех панелях, а только на выделенных и облицовывал "все кромки/видимые/открытые". Скрипт прилагается.
|
Скрытый текст
Код:
Materials = [];
PanelByMaterial = [];
var PanelChanged = 0;
var Selected = Model.SelectionCount;
Model.forEachPanel(
function(Obj) {
if (Selected && !Obj.Selected)
return
var MtName = Obj.MaterialName;
var Index = Materials.indexOf(MtName);
if (Index < 0) {
Index = Materials.push(MtName) - 1;
var Panels = [];
PanelByMaterial.push(Panels);
}
PanelByMaterial[Index].push(Obj);
});
len = Materials.length;
system.log(len);
for (var i = 0; i < len; ++i) {
var Gr = Action.Properties.NewCombo(Materials[i], 'На видимые\nНа все\nУдалить');
Gr.NewButt('Кромка');
BtnPanSel = Gr.NewSelector('Панелей', PanelByMaterial[i].length + ' шт');
BtnPanSel.Tag = i;
BtnPanSel.OnClick = function(Sel) {
UnSelectAll();
var Panels = PanelByMaterial[Sel.Tag];
var len = Panels.length;
for (var j = 0; j < len; ++j) {
Panels[j].Selected = true;
}
};
BtnMake = Gr.NewButton('Применить');
BtnMake.Tag = i;
BtnMake.OnClick = function(Sel) {
UnSelectAll();
var Panels = PanelByMaterial[Sel.Tag];
var Gr = Action.Properties.Items[Sel.Tag];
CurAction = Gr.ItemIndex;
var Butt = Gr.Items[0];
plen = Panels.length;
system.log('make butts: ' + plen);
for (var j = 0; j < plen; ++j) {
if (MakeButts(Panels[j], CurAction, Butt))
PanelChanged++;
}
Action.Hint = 'отредактировано панелей: ' + PanelChanged;
Action.Commit();
};
}
NewButtonInput("Закончить").OnChange = function() { Action.Finish() };
NewButtonInput("Снять выделение").OnChange = function() { UnSelectAll() };
function MakeButts(Panel, Action, Butt) {
var res = false;
system.log('Panel: ' + Panel.Name);
if (Action < 2 ) {
if (Panel.Butts.Count === 0) {
for (var i = 0; i < Panel.Contour.Count; i++) {
if ((Action == 1) || (Panel.IsButtVisible(i, 1))) { //проверяет соприкасеется ли кромящиеся сторана(i) с другой пнелью на растояние 1мм
system.log('Editing panel butt ' + i);
StartEditing(Panel);
Panel.AddButt(Butt, i);
res = true;
}
}
}
}
if (Action == 2) {
if (Panel.Butts.Count > 0) {
StartEditing(Panel);
Panel.Butts.Clear();
res = true;
}
}
return res;
}
Action.Continue();
[свернуть]
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
09.04.2021, 21:05
|
#126
|
Модератор
Регистрация: 31.10.2009
Адрес: Рівне. УкраЇна
Сообщений: 10,289
Сказал(а) спасибо: 14,431
Поблагодарили 19,461 раз(а) в 6,339 сообщениях
Вес репутации: 5078
|
Нужен скрипт по типу функции в Excel "Найти/Заменить" для замены символов (отдельные знаки, буквы, цифры, слова, словосочетания) в наименованиях профилей и панелей.
Алгоритм примерно следующий:
1. Запустить скрипт.
2. В панели свойств поле для ввода "Найти". Вводим в это поле символы, которые нужно найти и заменить.
3. Нажимаем кнопку "Найти". Скрипт находит все сочетания указанных символов.
4. В поле "Заменить на" вводим символы, на которые нужно заменить найденные. Если поле остается пустым, значит найденные символы удаляются. Если ввести в поле замены ""пробел"", то есть, между кавычками нажать клавишу пробел, найденные символы заменяются соответственно на пробел...
5. Нажимаем кнопочку "Заменить".
Готов отблагодарить материально.
Решено. Обсуждение здесь
__________________
Уж лучше беспокойство в сомнении, чем успокоенность в заблуждении. .
(Мандзони Алессандро)
------------------------------------
Троллей не кормлю...
Последний раз редактировалось Uncle; 11.04.2021 в 13:52.
|
|
|
12.04.2021, 17:24
|
#127
|
Новичок
Регистрация: 28.01.2021
Сообщений: 4
Сказал(а) спасибо: 18
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
|
sergio1982, Спасибо. Можно добавить нанесение кромки на "открытые" торцы и чтобы в процессе нанесения на "видимые" торцы удалялась старая кромка Только с "видимых" торцов и клеилась новая?
|
|
|
14.04.2021, 23:33
|
#128
|
Местный
Регистрация: 01.09.2019
Сообщений: 138
Сказал(а) спасибо: 25
Поблагодарили 82 раз(а) в 29 сообщениях
Вес репутации: 49
|
Mullerr
Попытался сделать "правильно", удалять кромки только с тех сторон которые будут облицованы, но не вышло.
Добавил DeleteMode, сначала удаляются все кромки, потом наносятся новые.
Скрытый текст
Код HTML:
var DeleteMode = 1 // Удалять все кромки перед нанесением
var ButtVisible = 1 // Насколько мм не закрыта кромка панели чтобы считать её видимой
Materials = [];
PanelByMaterial = [];
var PanelChanged = 0;
var Selected = Model.SelectionCount;
Model.forEachPanel(
function(Obj) {
if (Selected && !Obj.Selected)
return
var MtName = Obj.MaterialName;
var Index = Materials.indexOf(MtName);
if (Index < 0) {
Index = Materials.push(MtName) - 1;
var Panels = [];
PanelByMaterial.push(Panels);
}
PanelByMaterial[Index].push(Obj);
});
len = Materials.length;
system.log(len);
for (var i = 0; i < len; ++i) {
var Gr = Action.Properties.NewCombo(Materials[i], 'На видимые\nНа все\nУдалить');
Gr.NewButt('Кромка');
BtnPanSel = Gr.NewSelector('Панелей', PanelByMaterial[i].length + ' шт');
BtnPanSel.Tag = i;
BtnPanSel.OnClick = function(Sel) {
UnSelectAll();
var Panels = PanelByMaterial[Sel.Tag];
var len = Panels.length;
for (var j = 0; j < len; ++j) {
Panels[j].Selected = true;
}
};
BtnMake = Gr.NewButton('Применить');
BtnMake.Tag = i;
BtnMake.OnClick = function(Sel) {
UnSelectAll();
var Panels = PanelByMaterial[Sel.Tag];
var Gr = Action.Properties.Items[Sel.Tag];
CurAction = Gr.ItemIndex;
var Butt = Gr.Items[0];
plen = Panels.length;
system.log('make butts: ' + plen);
for (var j = 0; j < plen; ++j) {
if (MakeButts(Panels[j], CurAction, Butt))
PanelChanged++;
}
Action.Hint = 'отредактировано панелей: ' + PanelChanged;
Action.Commit();
};
}
NewButtonInput("Закончить").OnChange = function() { Action.Finish() };
NewButtonInput("Снять выделение").OnChange = function() { UnSelectAll() };
function MakeButts(Panel, Mode, Butt) {
var res = false;
system.log('Panel: ' + Panel.Name);
if (Mode == 2 || DeleteMode) {
if (Panel.Butts.Count > 0) {
StartEditing(Panel);
Panel.Butts.Clear();
res = true;
}
}
if (Mode < 2) {
StartEditing(Panel);
for (var i = 0; i < Panel.Contour.Count; i++) {
if ((Mode == 1) || (Panel.IsButtVisible(i, ButtVisible))) { //проверяет соприкасеется ли кромящиеся сторана(i) с другой пнелью на растояние 1мм
system.log('Editing panel butt ' + i);
Panel.AddButt(Butt, i)
res = true;
}
}
}
Panel.Build();
return res;
}
Action.Continue();
[свернуть]
|
|
|
Пользователь сказал cпасибо:
|
|
|
|
|
Нижняя навигация
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 05:53. Часовой пояс GMT +3.
|