рассчитать общий угол между выбранными гранями - PullRequest
2 голосов
/ 25 января 2011

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

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

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

Так что я думаю, что это может сделатьхитрость:

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

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

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

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

1 Ответ

2 голосов
/ 26 июня 2011

это базовая функция, которую я использую в своих сценариях, нормали лица - это нормализованные векторы (длина = 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

)

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

...