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

fillet ?

Тема в разделе "MAXScript", создана пользователем mifestofel, 13 май 2003.

Модераторы: Savin Denis
  1. mifestofel

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

    С нами с:
    22.01.2003
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    15
    Как дать скругление вершины в скрипте?Какую команду надо использовать?
    В хэлпах что-то непонятное написано.
    Спасибо.
     
  2. Guest

    Вершину чего ?
    Что для зтого ипользуеш когда делаеш руками ?
     
  3. mifestofel

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

    С нами с:
    22.01.2003
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    15
    вершину сплайна.Естественно использую fillet но как в скрипте это - понять не иогу в хэлпах - ноль.
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    никак, прийдется свою функцию писать

    можно только включить ручной режим:

    splineOps.startFillet <editable_spline_or_line_node_or_modifier>
    Enters "Fillet" command mode - valid in Vertex Sub-Object level.
     
  5. mifestofel

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

    С нами с:
    22.01.2003
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    15
    спасибо тебе, в таком случае не подскажешь, как манипулировать векторами безье, или где это можно прочесть?Эх...Спасибо.
     
  6. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Прочесть можеш в разделе: SplineShape : Shape

    У каждой точки в безье кривой есть два параметра - invec , outvec

    Если ты только строиш прямую то можеш укарать сразу все параметры

    addKnot <shape> <spline_index_integer> \
    ( #smooth | #corner | #bezier | #bezierCorner ) \
    ( #curve | #line ) <position_point3> \
    [invec_point3 outvec_point3] \
    [where_integer]

    Если нужно управлять у готовой :

    getKnotType <shape> <spline_index_integer> <knot_index_integer>
    Returns the knot type of the indexed knot in the indexed spline. The value is one of the names #smooth, #corner, #bezier, or #bezierCorner.

    setKnotType <shape> \
    <spline_index_integer> \
    <knot_index_integer> \
    (#smooth | #corner | #bezier | #bezierCorner )

    getInVec <shape> <spline_index_integer> <knot_index_integer>
    Retrieves the coordinates of the in-vector handle for the indexed knot as a point3 in the current working coordinate system.

    setInVec <shape> <spline_index_integer> <knot_index_integer> <point3>
    Sets the coordinates of the in-vector handle of the indexed knot. Coordinates are given in the current working coordinate system.

    getOutVec <shape> <spline_index_integer> <knot_index_integer>
    Retrieves the coordinates of the out-vector handle for the indexed knot as a point3 in the current working coordinate system.

    setOutVec <shape> <spline_index_integer> <knot_index_integer> <point3>
    Sets the coordinates of the out-vector handle of the indexed knot. Coordinates are given in the current working coordinate system.


    незабудь в коце проапдейтить - updateShape()
     
  7. mifestofel

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

    С нами с:
    22.01.2003
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    15
    +1 пиво Ж:)
     
  8. Settip

    Settip Пользователь сайта

    С нами с:
    01.12.2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    2
    А можно ли как нибудь через скрипт какой - Выделив несколько точек на bezier или bezierCorner выделить и перемещать(манипулировать) сразу несколько knot-ов этих точек на bezier с помощью мыши? Про ротейты нескольких точек с knot-ами знаю но это не то что нужно.
     
  9. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Да это вполне возможно: управлять узлами есть возможность, методы для получения данных с мышки тоже есть, выделенные точки можно получить, а вот скнотами сложнее но и это можно обойти при должной смекалки. Так что все в твоих руках.
    Один из примеров как работать с мышю глянь главу: How To ... Draw a Freehand Spline

    PS
    Тут идельно было-бы написать Манипулятор(тип скрипта плугина для визульного управления параметрами), но это намного сложнее.
     
  10. Settip

    Settip Пользователь сайта

    С нами с:
    01.12.2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    2
    Спасибо за ответ Savin Denis.
    Я все еще в поиске как это сделать.
     
  11. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Сильно помочь тебе сейчас не смогу, напряженно со свободным временем, возможно кто-то из ребят согласиться помочь.
    Но алгоритм может быть примерно такой:

    Выделяееш на линии нужныйе узлы, дальше работа скрипта:
    1.сохраняем в tmp масиве начальные значения in и out векторов для выделенных узлов
    2.с помощью mouse tool (см пример Draw a Freehand Spline ) вычисляется дельта позиции курсора между перым нажатием и текущим положением = d
    3. в цикле по выденнвм узлам:
    4. .Если нажата левая клавиша мыши: то новый InVec для i узла будет равен начальному значению из ранее сохраненного масива плюс дельта. InVec = tmpInVec + d
    5. .Если нажата правая левая клавиша мыши: тожесамое для OutVec
    6 Если Esc востановить значения InVec, OutVec векторов из tmp масива.
     
Модераторы: Savin Denis

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