рассчитать общий угол между выбранными гранями

У меня есть структура для выбора отверстий в объектах. Прямо сейчас он работает, щелкая вручную внутри отверстия (с включенной опцией «по углу»), а затем выбирает внутреннюю часть отверстия. Затем я удаляю грани, выбираю «открытый край» и закрываю его. Это то, что делает мой скрипт сейчас.

Все это прекрасно работает, но я не хочу щелкать каждое отверстие отдельно.

Для сравнения: у меня есть 10 моделей (инженерные модели, хард-поверхность), каждая модель состоит как минимум из 5000 отдельных частей, которые мне теперь нужно пройти и удалить отверстия, используя вышеописанный способ.

Итак, вот что, я думаю, может помочь:

1) Выберите каждую грань 1 на 1 с помощью softselection. 2) каждый раз проверяйте, какие углы есть в подборке. 3) если это дыра, то это угол ~ 360, тогда я знаю, что это то, что я хочу удалить.

Часть, с которой мне нужна помощь, - это получение общего угла выбранных граней.

остальное уже сделано.

случай будет простой коробкой с цилиндром через нее, который вы используете логическое значение, чтобы создать отверстие в коробке.


person IAmNoone    schedule 25.01.2011    source источник


Ответы (1)


это базовая функция, которую я использую в своих скриптах, нормали лица — это нормализованные векторы (длина = 1.0 и начало в [0,0,0]), они указывают от лица.

fn getAnglebetweentwoFaces face1 face2 =

(-- returns the angle between 2 facenormals

    theAngle = acos(dot face1 face2)

    --format"\tthe Angle: %\n" theAngle --uncomment this listener output if you want.

    return theAngle

)

Надеюсь, это поможет вам в дальнейшем

person clarenburg    schedule 26.06.2011