Форум профессиональных мебельщиков PROMEBELclub

Форум профессиональных мебельщиков PROMEBELclub (https://промебельклуб.рф/forum/index.php)
-   Базис-мебельщик. Скрипты (https://промебельклуб.рф/forum/forumdisplay.php?f=273)
-   -   Заявки на создание скрипта. (https://промебельклуб.рф/forum/showthread.php?t=13303)

Uncle 29.04.2019 10:14

Цитата:

Сообщение от sannykSV (Сообщение 475600)
F6 подходит?

Так этим и пользуюсь. Но, во первых, Вы не внимательно прочитали мой пост. Для того что бы переместить , нужно обязательно указать исходную точку... Во-вторых, при использовании F6 что бы переместить по оси "X", например, нужно как минимум три раза нажать Enter. Скрипт же предполагаю повесить на горячую клавишу. В итоге имеем минимум движений :
1. Выделение всего, что нужно переместить.
2. Запуск скрипта горячей клавишей.
3. Ввод значения для необходимых координат.
4. "Enter" (один раз).

Максим Геннадьевич 29.04.2019 10:37

Цитата:

Сообщение от Uncle (Сообщение 475569)
Например, если выделить несколько блоков и указать новое положение в свойствах.

Выделить
Создать блок
Передвинуть
Разрушить блок

Uncle 29.04.2019 10:39

Цитата:

Сообщение от Максим Геннадьевич (Сообщение 475606)
Можно создать блок,передвинуть,разрушить блок.

Конечно можно)... Но это уже снова лишние движения). Это тоже самое что выделить и сдвинуть все через штатную команду с использованием F6.

Максим Геннадьевич 29.04.2019 10:42

Цитата:

Сообщение от Uncle (Сообщение 475607)
сдвинуть все через штатную команду с использованием F6.

Зачем через F6?
Так же в свойствах элемента вводите значения.

Uncle 29.04.2019 10:48

Цитата:

Сообщение от Максим Геннадьевич (Сообщение 475609)
Зачем через F6?
Так же в свойствах элемента вводите значения.

Максим Геннадьевич, читайте мою "хотелку":
Цитата:

Сообщение от Uncle (Сообщение 475604)
1. Выделение всего, что нужно переместить.
2. Запуск скрипта горячей клавишей.
3. Ввод значения для необходимых координат.
4. "Enter" (один раз).

Все. Если Все объединять в блок и потом разрушать - это ещё два лишних движения.
То же самое если не объединять в блок, а просто выделить и переместить штатной командой с использованием F6 - те же два - три лишних движения. По этому и написал, что предложенный Вами вариант с созданием и разрушением блока и перемещением с помощью ввода значений в свойствах то же самое , что не создавая блок, а просто выделить и переместить с помощью команды перемещения и F6.

Максим Геннадьевич 29.04.2019 11:02

Вас прекрасно понял и распишу, как действия будут при скрипте

Выделения всего, что нужно передвинуть.
Горячая клавиша скрипта.
Ввод значения по "Х" и нажатие "Enter"
Ввод значения по "Y" и нажатие "Enter"
Ввод значения по "Z" и нажатие "Enter"
Нажать кнопку "Переместить".
И возможность допущения ошибки в скрипте т.к все мы люди или смена версии, в которой могут измениться функции.

Действия обычные
Выделения всего, что нужно передвинуть.
Горячая клавиша Сборка блока.
(У меня свойство всегда активно, поэтому не чего не нажимаю)
Ввод значения по "Х" и нажатие "Enter"
Ввод значения по "Y" и нажатие "Enter"
Ввод значения по "Z" и нажатие "Enter"
Горячая клавиша Разрушить.

Не в коем случае не настаиваю, просто хочется помочь. Но если вы считаете, что скриптом будет лучше, ваше право, сможет кто и напишет скрипт.

Uncle 29.04.2019 11:06

Цитата:

Сообщение от Максим Геннадьевич (Сообщение 475614)
Вас прекрасно понял и распишу, как действия будут при скрипте

Выделения всего, что нужно передвинуть.
Горячая клавиша скрипта.
Ввод значения по "Х" и нажатие "Enter"
Ввод значения по "Y" и нажатие "Enter"
Ввод значения по "Z" и нажатие "Enter"
Нажать кнопку "Переместить".
И возможность допущения ошибки в скрипте т.к все мы люди или смена версии, в которой могут измениться функции.

Вы разбираетесь в написании скриптов на столько, что бы прогнозировать как будет работать скрипт? То есть, Вы авторитетно заявляете, что скрипт, с помощью которого можно будет переместить любой выделенный объект или группу объектов с помощью всего четырех указанных мною действий, написать не представляется возможным?

Максим Геннадьевич 29.04.2019 11:28

Цитата:

Сообщение от Uncle (Сообщение 475616)
Вы разбираетесь в написании скриптов на столько, что бы прогнозировать как будет работать скрипт? То есть, Вы авторитетно заявляете, что скрипт, с помощью которого можно будет переместить любой выделенный объект или группу объектов с помощью всего четырех указанных мною действий, написать не представляется возможным?

Если вам напишут такой скрипт и он будет доступен, с удовольствием воспользуюсь функцией при, которой не нужно будет нажать "Enter" каждый раз когда вносишь значение, для их сохранения, а просто кликнуть в другое поле для ввода еще данных. Можно конечно нажать на стрелки для перемещения на другое поле данных, чтоб исключить нажатие мыши, других вариантов пока не вижу.
Не знаю на сколько разбираюсь в написании скриптов, но те которые я себе написал, значительно оптимизировали мою работу.

Uncle 29.04.2019 11:42

Цитата:

Сообщение от Максим Геннадьевич (Сообщение 475624)
нужно будет нажать "Enter" каждый раз когда вносишь значение, для их сохранения

Согласен. Скорей всего нужно будет жать Enter или стрелку. Но все же это будет лучше чем объединять в блок те объекты, которые нужно сдвинуть, а потом разрушать. Хотя бы потому, что могут быть ситуации когда нужно сдвинуть объекты, находящиеся в разных блоках. Если их заключить в один блок, они автоматом исключаются из одного из блоков и будут входить в состав того блока, объект которого выделен первым.

Максим Геннадьевич 29.04.2019 20:49

Цитата:

Сообщение от Uncle (Сообщение 475554)
Алгоритм примерно такой :
1. Выделить объект
2. Запуск скрипта.
3. В окне свойств в соответствующих окошках ввести значения "X", "Y", "Z" и нажать Enter.
Объект сдвинулся, скрипт завершил работу.

Написал не большой скрипт. Можете протестировать.
PHP код:

MakeProperties();
NewBtn NewButtonInput('Переместить');
NewBtn.OnChange = function() {
    
Make();
    
Action.Commit();
    
Action.Finish();
}
function 
MakeProperties() {
    
prop Action.Properties;
    
prop.NewNumber ('Смещение X',0);
    
prop.NewNumber ('Смещение Y',0);
    
prop.NewNumber ('Смещение Z',0);
}

function 
Make(){
Model.forEach(function(obj) {
    if (
obj.Selected == true)
       
obj.Translate(NewVector(X.Value,Y.Value,Z.Value));
});
 }
Action.Continue(); 



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

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