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

Помогите разобраться с пересечением объектов?

Тема в разделе "MAXScript", создана пользователем кук, 25 июл 2012.

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

    кук Пользователь сайта

    С нами с:
    24.07.2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    Помогите пожалуйста! Есть два объекта- цилиндры разных размеров.
    Надо что-то вроде этого-

    if box1 пересечение box2 then a=1

    Спасибо за участие!
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    1. В новой сцене создаем 2 цилиндра: box1 и box2.
    Если нужно, добавляем цилиндрам модификатор Tessellate (Tension=0).
    2. Пишем что-то вроде этого:
    Код:
    fn peresechenie obj1 obj2=
    (
    res=false; if(IsValidNode obj1 and IsValidNode obj2)then 
    (
    if(superclassof obj1==GeometryClass and superclassof obj2==GeometryClass )then 
    (
    max modify mode;select obj1;
    vs=volumeselect();vs.level=2;vs.type=1;vs.method=0;vs.volume=3; 
    vs.name="intersect_temp"; vs.Node=obj2;addmodifier obj1 vs;
    theMesh = snapshotasmesh obj1; fs_ba=getFaceSelection theMesh; delete theMesh; 
    if fs_ba.numberSet!=0 then res=true
    for i=1 to obj1.modifiers.count do 
    if(obj1.modifiers[i].name=="intersect_temp")then (deleteModifier obj1 i;exit)
    )--if(superclassof obj1==GeometryClass and superclassof obj2==GeometryClass )then 
    )--if(IsValidNode obj1 and IsValidNode obj2)then 
    res
    )--fn peresecenie obj1 obj2=
    
    -----------------------------
    if peresechenie $box1 $box2 then a=1
     
Модераторы: Savin Denis

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