1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

reference rotate

Тема в разделе "Общие вопросы", создана пользователем Мелкий, 2 ноя 2013.

Модераторы: Артер
  1. Мелкий

    Мелкий Активный участник

    С нами с:
    31.01.2008
    Сообщения:
    138
    Симпатии:
    3
    Баллы:
    12
    В 3D max работаю давно, но вот одна неудобность, в таких пакетах как AutoCAD и Rhino я могу "соединить" 2 объекта по 2 точкам, как это сделать также удобно но в 3Dmax, а то я уже запарился всё в рино перекидывать и обратно, зарание спасибо
     

    Вложения:

    • 3229780.jpg
      3229780.jpg
      Размер файла:
      93,6 КБ
      Просмотров:
      101
    • 3229781.jpg
      3229781.jpg
      Размер файла:
      80,8 КБ
      Просмотров:
      100
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Предоставьте видео (AutoCAD и Rhino) или объясните подробнее процесс "соединения".
     
  3. Мелкий

    Мелкий Активный участник

    С нами с:
    31.01.2008
    Сообщения:
    138
    Симпатии:
    3
    Баллы:
    12
    Суть такая, указывается 1 точка центра вращения, 2 точка которая будет двигаться по окружности, т.е. вращаться, 3 точка место стыка. Таким образом точка 2 присоединится к точке 3. Только зачем я это рассказываю? разве из 2х предоставленных картинок неясно что необходимо получить
     
  4. Мелкий

    Мелкий Активный участник

    С нами с:
    31.01.2008
    Сообщения:
    138
    Симпатии:
    3
    Баллы:
    12
  5. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Попробуйте такой вариант. Пример:
    В новой сцене создаем 2 объекта Box (Box1 и Box2).
    С помощью привязки к вершинам, перемещаем Box1 к Box2.
    Выделяем объект Box1.
    Включаем привязку к вершинам.
    Запускаем скрипт. В новом окне нажимаем кнопку Align.
    Выбираем 3 точки в пространстве.
    Точка1=общая точка (центр вращения).
    Точка2=точка объекта Box1.
    Точка3=точка объекта Box2.
    Код:
    try destroydialog igorznag_test catch()
    rollout igorznag_test "Test" 
    ( 
    button btn_align "Align"; on btn_align pressed do
    (
    if selection.count==1 then 
    ( 
    obj=selection[1]; a01 = pickpoint snap:#3d
    if classof a01 == point3 then
    (
    a02 = pickpoint snap:#3d rubberband:a01
    if classof a02 == point3 then
    (
    b02 = pickpoint snap:#3d rubberband:a02
    if classof b02 == point3 then
    (
    v1 = normalize (a02 - a01)
    worldUpVector = [0,0,1] 
    rightVector = normalize (cross worldUpVector v1)
    upVector = normalize ( cross rightVector v1 )
    mo=matrix3 rightVector upVector v1 a01
    b01=a01; v1 = normalize (b02-b01)
    rightVector = normalize (cross worldUpVector v1)
    upVector = normalize ( cross rightVector v1 )
    mt=matrix3 rightVector upVector v1 b01
    undo on obj.transform*=(inverse mo)*mt
    )--if classof pt3 == point3 then
    )--if classof pt2 == point3 then
    )--if classof pt1 == point3 then
    )--if selection.count==1 then
    )--on btn_align pressed do
    ); createdialog igorznag_test 100 30
    Чтобы запустить скрипт нужно:
    1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
    2. Сохраняем текстовый файл с названием "test.ms"
    3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"
     
  6. Мелкий

    Мелкий Активный участник

    С нами с:
    31.01.2008
    Сообщения:
    138
    Симпатии:
    3
    Баллы:
    12
    Спасибо большое, скрипт работает))
     
Модераторы: Артер

Поделиться этой страницей