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

Trim ?

Тема в разделе "Maya", создана пользователем -, 16 июн 2003.

Модераторы: Dark™, Skif
  1. Guest

    Подскажите пожалуйста!
    Делаю трим сложной кривой на поверхности - и получается что сам трим состоит из кусков кривой
    Как эти кусочки обединить , а то этот ломаный трим дает такую-же ломанную
    фаску
     
  2. Anton 2732

    Anton 2732 Знаток

    С нами с:
    29.11.2002
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    20
    Вот ссылка http://maya92.narod.ru/les13.html или я ошибаюсь
     
  3. Guest

    Спасибо, но это не то....
    У меня трим получается не сплошной замкнутой кривой, а из отдельных кусочков..
    Например мне надо надо этот трим проэкструдить внутрь и сделать круговую фаску - но это не получается из-за того что он не мплошной а кусками
     
  4. Guest

    тебе нужно продублировать изопарм трима в замкнутую кривую и проэкструдить в нужном направлении, хотя всё будет зависеть от сложности поверхности
     
  5. Guest

    ti nezabivai chto pri Trim'e nurbs maya neydolyaet otrezanii kysok a prosto delaet ego hiden
    tak vot poetamy i "kusochki"
    ili tak kak skazal leshiy ili prosto ty krivuyu kotoraya otpoektirovalas' (ta chto bila pered trim'om) na povorxnosti, ee extrudit'
     
  6. Guest

    Вот скрипт. Кривые нужно выделять в оутлайнере.

    //Attach Trimed Curves
    //select curves on Outliner
    //© $TAS
    //
    global proc attrimcurves()
    {
    string $curves[]=`filterExpand -sm 9`;
    delete -ch $curves;
    int $n=size ($curves);
    for ($i=0; $i<$n-1; $i++)
    {
    attachCurve -rpo 1 -kmk 1 -m 0 $curves[$i+1] $curves[$i];
    delete $curves[$i];
    }
    select -r $curves[$i];
    }


    Вопрос по триму давным-давно поднимал Квазимодо. Злыдень тогда предположил что в отлайнере тримированные кривые уже отсортированы по началу и концу. На этом и скрипт и основан. Возможно что иногда порядок всё-таки нарушается - т.к. иногда(редко) скрипт даёт осечку (может это у меня ошибка в секрипте). Да вобщем-то это не важно - для соединения кривых я использую другой скрипт с проверкой на совподение концов кривых. Этот скриптик работает без проблем.


    //Conect Curves
    //© $TAS
    //
    global proc conectcurves()
    {
    float $tlr=0.00001; //tolerance

    string $curves[]=`filterExpand -sm 9`;
    delete -ch $curves;

    int $n=size ($curves);
    for ($k=0; $k<$n-1; $k++) //! +test $n>1
    {
    string $curve0=$curves[$k];
    float $pm[2]=`getAttr($curve0+".mmv")`;
    float $p0[]=`pointOnCurve -pr $pm[0] -p $curve0`;
    float $p1[]=`pointOnCurve -pr $pm[1] -p $curve0`;

    for ($i=$k+1; $i<$n; $i++)
    {
    $pm=`getAttr($curves[$i]+".mmv")`;
    float $pp[]=`pointOnCurve -pr $pm[0] -p $curves[$i]`;
    if (abs($p1[0]-$pp[0])+abs($p1[1]-$pp[1])+abs($p1[2]-$pp[2])<$tlr) break;
    if (abs($p0[0]-$pp[0])+abs($p0[1]-$pp[1])+abs($p0[2]-$pp[2])<$tlr)
    { reverseCurve -rpo 1 $curve0; break; }
    float $pp[]=`pointOnCurve -pr $pm[1] -p $curves[$i]`;
    if (abs($p0[0]-$pp[0])+abs($p0[1]-$pp[1])+abs($p0[2]-$pp[2])<$tlr) break;
    if (abs($p1[0]-$pp[0])+abs($p1[1]-$pp[1])+abs($p1[2]-$pp[2])<$tlr)
    { reverseCurve -rpo 1 $curve0; break; }
    }
    if ($i==$n) {warning("Attach not correct !"); break;}

    attachCurve -rpo 1 -kmk 1 -m 0 $curves[$i] $curve0;
    delete $curve0;

    }
    select -r $curves[$n-1];
    }
     
  7. Guest

    $TAS ты не мог-бы подробней описать как работать с этим скриптом....
     
  8. Guest

    Ты хотел объеденить куски тримированной кривой - дублируй изопарамы, выделяй кривые и запускай скрипт.
    Для attrimcurves() выделять только по порядку (в оутлайнере удобней всего), а для conectcurves() последовательность выделений не важна. Грубо говоря эти скрипты просто делают групповой аттач соединяющихся кривых.

    Если ты спрашиваешь как вообще со скриптами работать - то это в хэлп.
     
  9. Guest


    $TAS ,я опишу последовательность своих действий - скажи где я ошибаюсь !


    1.Переношу текст второго скрипта в SCRIPT EDITOR - SAVE SELECTED TO
    SHELF - получаю иконку

    2.Вырезаю из сферы цифру 7 - трим получается ломанный


    3.Дублирую куски трима в куски кривой ,выделяю куски кривой и нажимаю
    скрипт - пишет Syntax error

    P.S Я так понял можно выделять из оутлайнера куски трима (без дублирования в кривые) но как ,я вроде все перевключал - не получилось...

    Спасибо.....
     
  10. Guest

    На полку кидается команда, а не скрипт.
     
  11. Guest

    У тебя простой случий, мог бы и без скрипта обойтись - вручную с аттачить.

    Про случай с Тяжёлым Тримом можно здесь почитать http://www.render.ru/forum/read.php?f=4&i=6850&t=6572&v=f
    один из интереснейших флеймов форума ;) очень вдохновляет ;)

    Вот вариант решения с позиции сегодняшнего дня ;)
    - селект по компонентам с маской Trim Edges
    - дублирование эджей в куски кривых
    до этого момента все операции были групповыми - а группового аттача нет,
    - тут и начинается работа с conectcurves - кривые выбираются блоками в оутлайнере и аттачатся... Ну и проблема решается за терпимое время.

    conectcurves был написан не для трима - а для булевых операций на кривых.
    В паре с Сut Curve (групповая операция) можно нарезать чудненькие конструкционные профиля (например под архитектуру).
    Вобщем универсальный инструмент.
    Кинул своё дитячечко в болото - надеюсь кто-нибудь да поймает ;)


    ps: По поводу сбоев у attrimcurves - сбои поисходят при проходе трима через шов нурбса - тогда порядок в оутлайнере нарушается (для conectcurves этой проблемы естественно нет)
     
  12. Guest

    Ok.Спасибо...
    Буду пробовать..!
     
Модераторы: Dark™, Skif

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