Render.ru

Trim ?

#1
Подскажите пожалуйста!
Делаю трим сложной кривой на поверхности - и получается что сам трим состоит из кусков кривой
Как эти кусочки обединить , а то этот ломаный трим дает такую-же ломанную
фаску
 
#3
Спасибо, но это не то....
У меня трим получается не сплошной замкнутой кривой, а из отдельных кусочков..
Например мне надо надо этот трим проэкструдить внутрь и сделать круговую фаску - но это не получается из-за того что он не мплошной а кусками
 
#4
тебе нужно продублировать изопарм трима в замкнутую кривую и проэкструдить в нужном направлении, хотя всё будет зависеть от сложности поверхности
 
#5
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
Вот скрипт. Кривые нужно выделять в оутлайнере.

//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
$TAS ты не мог-бы подробней описать как работать с этим скриптом....
 
#8
Ты хотел объеденить куски тримированной кривой - дублируй изопарамы, выделяй кривые и запускай скрипт.
Для attrimcurves() выделять только по порядку (в оутлайнере удобней всего), а для conectcurves() последовательность выделений не важна. Грубо говоря эти скрипты просто делают групповой аттач соединяющихся кривых.

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

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


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

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


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

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

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

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

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

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


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