Render.ru

Project Curve на полигоны

Eugene 8262

Активный участник
Рейтинг
11
#1
Есть такая задача: нужно спроектировать замкнутую кривую на поверхность и затем разрезать ету поверхность по полученной кривой. В случае с NURBS, например, можно сделать Project Curve и потом Trim Keep + Trim Discard. А вот как сделать подобную операцию с полигонами? Какими методами как кто выкручивается?
 

Eugene 8262

Активный участник
Рейтинг
11
#3
Это типа
polygon -> subdiv -> nurbs
Trim
nurbs -> polygon
Как-то сложновато получается
 

Eugene 8262

Активный участник
Рейтинг
11
#5
Очень печально, что только Split Poly Tool и руки. Так можно моделить используя только Create Polygon Tool, но получится ли нарисовать правильную окужность, а сферу ...
 
#6
Булен полигонов - аналог нурбсового трима.
кривая->лофт по направлению проецирования-> результат лофта полигоны->булен.
 

Eugene 8262

Активный участник
Рейтинг
11
#7
Да не совсем аналог. Трим делает дырку, а булеановское вычитание создает на месте дырки кусок объекта, который используется для вырезки. Следовательно потом надо лишние полигоны удалять. Плюс, самое неприятное в булеане то, что поверхность должна быть замкнута. В принципе я пока так и делаю. Хотелось бы получить более продвинуты способ. К примеру в LightWave есть такая штука как Drill, которая собственно делает такую надрезку. Может какой-то скриптик есть?
 
#8
>Трим делает дырку, а булеановское вычитание создает на месте дырки кусок объекта, который используется для вырезки

ты же хотел "разрезать ету поверхность по полученной кривой", а булеан бывает разный (зелёный и красный )) - дырки делает


>Плюс, самое неприятное в булеане то, что поверхность должна быть замкнута.

это дважды не верно (второе - самое неприятное в булеане другое ))
 

Eugene 8262

Активный участник
Рейтинг
11
#9
>это дважды не верно
Что неверно? Я не могу булеаном из плоскости вырезать цилиндром дыру. У меня майка ругается. Или возможно?
 
#10
>булеановское вычитание создает на месте дырки кусок объекта, который используется для вырезки. Следовательно потом надо лишние полигоны удалять.

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

Ксате вот тебе и полный алгоритм для скрипта, на мой взгляд не сложного.






 
#11
>>это дважды не верно
>Что неверно?
Неверно твоё представление о замкнутости поверхностей.


>Я не могу булеаном из плоскости вырезать цилиндром дыру. У меня майка ругается.

это вопрос или констатация? Если констатация - то это и есть то "самое неприятное в булеане", но это уже другой вопрос.
 

Eugene 8262

Активный участник
Рейтинг
11
#12
Что-то ты меня запутал.
Это констатация. Не режет. Ругается.
Берем сферу у которой удаляем нижнюю часть (с ней проще представить, чем с плоскостью). Я считаю, что это незамкнутый объект из которого булеаном вырезать нельзя. Если теперь этой полусфере сделать, к примеру, fill hole, то поверхность (в моем понимании) будет замкнутой и на ней булеан работает. В случае с плоскостью Polygon Plane, fill hole образует под ней многоточечный полигон, который замыкает плоскость.
Так в чем неверно моё представление о замкнутости поверхностей?
И какое "второе - самое неприятное в булеане"?
 
#13
>Так в чем неверно моё представление о замкнутости поверхностей?
третий раз: это не обязательное условие для работы буля.

выполни в скрипт-эдиторе, рекомендую пошагово.

///////////////////////////////////
NewScene;

polyCylinder -r 3 -h 3 -sx 20 -sy 1 -sz 1 -ax 0 1 0 -tx 1 -ch 1;

select -r pCylinder1.f[40:59] ;
doDelete;
select -r pCylinder1.f[20:39] ;
doDelete; //теперь он даже не замкнутый

polyPlane -w 10 -h 10 -sx 10 -sy 10 -ax 0 1 0 -tx 1 -ch 1;

polyBoolOp -op 2 -ch 1 pPlane1 pCylinder1;

select -r polySurface1.f[0:19] ;//лениво мне материал заранее присваивать
doDelete;

///////////////////////////////////


Пока-что для тебя "самое неприятное в булеане" это твоё настойчивое желание всё замкнуть, о других "неприятностях" поищи по поиску.
 
Сверху