3д Макс для Чайника!(профи здесь лучше свои нервы не тратить)))
- Автор темы Sergey Mironyuk
- Дата создания
- Рейтинг
- 11
вообще не так работает - после нажатия ф12 он во-первых предлагает кликнуть в нужное поле, чтобы ввести нужное значение, во-вторых, и это вообще сводит на нет всю фичу, он обнуляет момент перемещения - если я укажу определенное значение, то он сдвинет объект на нужное значение с той точки, в которой объект оказался на момент нажатия Ф12. это ОЧЕНЬ существенный недостаток. потом, при построении сплайна Ф12 у меня поля для ввода неактивны. кто работал в архикаде тот меня поймет. скрип такой если существует, то по тэгам мне его найти не удалось.
- Рейтинг
- 82
Это не совсем так.После выделения объекта и нажатия F12 (рис) есть возможность двигать как в абсолютных значениях координат(Absolute:World) так и индивидуально (Offset: World).При том,что ничего курсором можно не указывать а лишь воспользоваться стрелками(клавиатуры) "вверх" или "вниз" ввести данные и потом нажать Enter.Что же касается сплайна то необходимо использовать Keyboard Entry .
Вложения
-
442,2 КБ Просмотров: 235
потом, при построении сплайна Ф12 у меня поля для ввода неактивны.
кто работал в архикаде тот меня поймет.
скрип такой если существует, то по тэгам мне его найти не удалось.
- Рейтинг
- 82
Igorznag.Я работаю в Архикаде. Здесь скорее сила привычки.Многие работающие в Автокаде стараются "перелопатить" макс под Автокад другие в Майе под Майю и т.д. и т.п. И здесь аналогичный случай.Возможно и есть скрипт для этого,я, (к примеру) особо не "страдаю" работаю как есть ,уже привык. У других видимо с этим проблемы.
кстати, "Троллишь" относилось не к тебе, Diwian, а к автору послания, когда начал отвечать, твой ответ ещё не высветился, у нас в группу ВКонтакте вопрос про стрелочки - хит всех сезонов, мне просто не верилось, что его на полном серьёзе может задать регулярный пользователь такого сайта, как Рендер.ру
есть ли плагинчик какой, позволяющий удобно на заданную величину перемещать объекты, на подобие архикада - задал направление движения, нажал TAB, ввел точное значение ENTER.
Но для частного случая, я сделал бы примерно таким способом. Пример:
В новой сцене создаем 2 чайника-Teapot. Запускаем скрипт.
Меню Customize->Customize User Interface->Keyboard. Group=Main UI. Category=_igorznag.
Назначаем нужную клавишу (например, клавишу "N") для igorznag_obj_pos_set_origin.
Назначаем нужную клавишу (например, клавишу "M") для igorznag_obj_move_by_distance.
Выделяем 2 чайника.
1) Нажимаем клавишу "N", чтобы запомнить начальное место.
Перемещаем 2 чайника в нужном направлении.
2) Нажимаем клавишу "M".
3) В новом окне вводим нужное значение.
4) ENTER.
Если нужно другое расстояние, тогда снова нажимаем клавишу "M".
Если нужно вернуть объект в начальное место, тогда вводим расстояние 0 (ноль).
Код:
macroScript igorznag_obj_pos_set_origin category:"_igorznag"
(
igorznag_obj_pos_CA= attributes igorznag_obj_pos_params
(parameters main (igorznag_initial_pos type:#point3 default:[0,0,0]))
for obj in selection do
(
if isproperty obj "igorznag_initial_pos" ==false then custAttributes.add obj igorznag_obj_pos_CA;
obj.igorznag_initial_pos=obj.pos
)--for obj in selection do
)--macroScript igorznag_obj_pos_origin category:"_igorznag"
macroScript igorznag_obj_move_by_distance category:"_igorznag"
(
rollout igorznag_move_objects_by_distance "Distance"
(
spinner sp_distance "Distance:" range:[-1, 1e9, -1] pos:[5,5] scale:0.001 fieldwidth:60 type:#worldunits
on sp_distance entered do
(
with undo on
(
for obj in selection where isproperty obj "igorznag_initial_pos" do
(
dir=obj.pos-obj.igorznag_initial_pos
if length dir>0 and sp_distance.value>=0 then
(dir=normalize dir;obj.pos=obj.igorznag_initial_pos+dir*sp_distance.value)
)--for obj in selection do
)--with undo on
destroyDialog igorznag_move_objects_by_distance; redrawViews()
)--on btn_ok pressed do
on igorznag_move_objects_by_distance open do
setfocus igorznag_move_objects_by_distance.sp_distance
)--rollout igorznag_move_objects_by_distance "Distance"
try destroyDialog igorznag_move_objects_by_distance catch()
createdialog igorznag_move_objects_by_distance 110 25
)--macroScript igorznag_obj_move_by_distance category:"_igorznag"
1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
2. Сохраняем текстовый файл с названием "test.ms"
3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
- Рейтинг
- 82
Да, точно (Surface Area) совсем из башки вылетело.Но всё равно есть определённые неудобства,ну например необходимо оперативно менять объёмы(в реальном времени) например разные типы обоев, плитки, паркета да мало ли. Каждый раз вырывать куски из объекта(или даже копировать) чего то ни "есть гуд".Да и ед.измерения тоже иногда желательно менять на метры к примеру.
"процедурность" - когда не ставишь ключи вручную, а управляешь анимацией, изменяя определённые параметры и создавая определённые условия... при этом меняя начальные условия можно получить абсолютно иной результат. в максе наиболее близкий пример - Thinking Particles и Krakatoa, для эффективной работы там и там необходимо хорошо знать векторные операции. Но вообще образцом считается Гудини
В твоём конкретном случае чтобы вычислить площадь полигона, необходимо вычислить длины отрезков, соединяющих вершины полигона, что нетрудно, зная координаты точек, а затем просто перемножить и поделить надвое, в случае нескольких выделенных поликов просто сложить результат, думаю, заскриптовать такое несложно
В твоём конкретном случае чтобы вычислить площадь полигона, необходимо вычислить длины отрезков, соединяющих вершины полигона, что нетрудно, зная координаты точек, а затем просто перемножить и поделить надвое, в случае нескольких выделенных поликов просто сложить результат, думаю, заскриптовать такое несложно