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

Есть ли способ провести линию перпендикулярно наклонной поверхности?

Тема в разделе "3ds max", создана пользователем xim_max, 12 июн 2015.

  1. xim_max

    xim_max Активный участник

    С нами с:
    07.05.2015
    Сообщения:
    101
    Симпатии:
    1
    Баллы:
    13
    Если нажимать галку autogrid, то рисование сплайнами происходит на данной наклонной плоскости, но не перпендикулярно ей.
    Или простейшее: надо разрезать ту же самую стену, которая стоит под углом, точно по нормали, а не на глаз, как это сделать? (см. аттач)
     

    Вложения:

    • 00.jpg
      00.jpg
      Размер файла:
      14,8 КБ
      Просмотров:
      161
  2. moreeasy

    moreeasy Знаток

    С нами с:
    10.08.2014
    Сообщения:
    190
    Симпатии:
    47
    Баллы:
    22
    Извините, априори, на Вашем скриншоте неуместно говорить о "наклонной плоскости"!
    Но если я правильно трактую условия задачи, то необходимо строить сплайн Section (с включенной опцией autogrid) на перпендикулярной плоскости к будущему сечению, а затем: A (латиница)и rotate на 90 градусов???!!!
     
  3. xim_max

    xim_max Активный участник

    С нами с:
    07.05.2015
    Сообщения:
    101
    Симпатии:
    1
    Баллы:
    13
    предположим, это вид Top плоскости, которая расположена вертикально по оси Z, либо просто опорная линия, из которой в дальнейшем получиться плоскость. и к ней в координатах XY надо провести перпендикуляр.
    К сожалению, повторюсь, нет под рукой 3дмаха по причине 32й оси, но, я так понял, что можно нарисовать отдельный сплайн Section, который порежет выбранный объект неким способом. В смысле -- спасибо, поищу. Но про угол поворота: подозреваю, что шоткат A включает инструмент Rotate. Пробовал рисовать в плоскости autogrid и потом думал повернуть на 90 гр, но внизу в "координатах угла" объекта стоят какие-то непонятные углы наклона по всем трём координатам, и явно не относительно плоскости опорного объекта (т.к. иначе они должны быть равны нулю). И, какие углы поставить в координатах X и Y, чтоб сплайн повернулся не относительно их, а выбранного объекта (или самого себя) на 90 градусов, мозг не осиливает.
    В общем, в понедельник попробую, что даёт шоткат А (скорее всего от angle), и тогда диалог с вами будет более конструктивным.
    Поясню ещё одну тонкость: я так и не нашел, как точно и пропорционально изменить размеры объекта (про это пока тему не создаю), да, через гугл есть способы, но слишком сложные для простейшей операции, поэтому не ожидаю, что есть простейший оператор, просто поворачивающий объект на нужный угол по нужной оси. Да и как его просчитать этот угол, если плоскость стоит во всех плоскостях под "неправильными" углами?
     
    Последнее редактирование: 12 июн 2015
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.254
    Симпатии:
    172
    Баллы:
    65
    Можно сначала создать вспомогательный объект Box с галкой autogrid, а потом с галкой autogrid и с привязкой к вершинам (ребрам) рисуем сплайн.
    1.jpg
    Как вы это делаете вручную на глаз? Скрипты можно использовать?

    Пример. Конвертируем стену в объект Editable Poly.
    Выделяем одно ребро-Edge.
    Запускаем скрипт. В новом окне нажимаем кнопку Align.
    В свитке Edit Geometry нажимаем кнопку Slice Plane.
    Перемещаем Slice Plane по оси Z в новой системе координат.
    В свитке Edit Geometry нажимаем кнопку Slice.
    Если нужно, выделяем полигоны, которые нужно разрезать.
    Код:
    try destroydialog igorznag_slice_plane_align catch()
    rollout igorznag_slice_plane_align "Slice"
    (
    button btn_apply "Align" pos:[5,5] width:70 height:25
    on btn_apply pressed do
    (
    if(selection.count==1)then
    (
    obj=modPanel.getCurrentObject()
    if(classof obj==Editable_Poly)then
    (
    es_ba=polyop.getEdgeSelection obj; es_a=es_ba as array
    if(es_a.count==1 )then
    (
    ev=polyOp.getEdgeVerts obj es_a[1]
    ev1_coord=polyop.getVert obj ev[1] node:selection[1]
    ev2_coord=polyop.getVert obj ev[2] node:selection[1]
    ev1ev2=ev2_coord-ev1_coord
    if(length ev1ev2>0)then
    (
    undo on
    (
    with animate off
    (
    axis_x=normalize ev1ev2
    theMatrix=matrixfromnormal axis_x
    p=(ev1_coord+ev2_coord)/2
    theMatrix.pos=p
    try delete $grid_poly_igorznag catch ()
    g=grid name:"grid_poly_igorznag"; g.transform=theMatrix
    toolmode.coordsys g; freeze g; hide g
    polyOp.setSlicePlane selection[1] (ray p axis_x) ((length ev1ev2)/2.0)
    redrawViews();
    )--with animate off
    )--undo on
    )--if(length ev1ev2>0)then
    )--if(es_a.count==1
    )--if(classof obj==Editable_Poly)then
    )--if(selection.count==1)then
    )--on btn_apply pressed do
    ); createdialog igorznag_slice_plane_align 80 35
    Чтобы запустить скрипт нужно:
    1. Создаем текстовый файл (NotePad) и копируем код (текст) скрипта.
    2. Сохраняем текстовый файл с названием "test.ms"
    3. В главное меню MaxScript выбираем пункт Run Script. Выбираем файл "test.ms"

     
    moreeasy и xim_max нравится это.
  5. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.254
    Симпатии:
    172
    Баллы:
    65
    Объясните подробнее и с картинками или видео.
    Есть скрипт RealSizeTB. Он подходит для вашего случая?
    В окне скрипта включаем кнопку "Uniform/nonUniform scale".
    3.jpg
    Почему? Тогда можете в этой теме подробно объяснить ваши вопросы.
    Озвучьте нам эти способы, чтобы мы тоже знали их и чтобы мы их не предлагали вам.
    Объясните подробнее и с картинками или видео.
     
  6. xim_max

    xim_max Активный участник

    С нами с:
    07.05.2015
    Сообщения:
    101
    Симпатии:
    1
    Баллы:
    13
    И, всё-таки, как бывший "блюститель порядка" (модератор проффорума) — "один вопрос — одна тема"
    http://www.render.ru/xen/threads/ka...-gabarity-i-izmenit-ix-proporcionalno.159770/
     
    Последнее редактирование: 12 июн 2015

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