MSF - to be continue...
Фасетная модель "экструда с отверстием", аксонометрия.
Сначала написал процедуру добавления отверстия на грань объекта, потом уже сообразил что надо было сразу подходить "комплексно" - так или иначе основной класс при работе с 3д это экструда, а значит и дырявить предстоит именно ее, т.е. все упирается в процедуру построения дыры. Пока мыслю такую сигнатуру:
public void AddHole(string onFace, Vect3D Direction, double Depth, List<Pgn3d>)
{
// есть желающие?
}
// есть желающие?
}
onFace - грань, на которую добавляем отверстие, строка-ключ, завязанная на id детали в сборке;
Direction - направление(вектор) отверстия(нормаль как правило, но хочу сразу описать и "косой" вариант);
Depth - глубина отверстия, тоже не совсем актуальный парам, но почему бы и нет - пусть будет возможность задать "нишу", а не отверстие...
List<Pgn3d> - собссно полигон-определяющий дыру.
пока не решил:
- как описывать привязку полигона-отверстия
- в каком виде передавать полигон - в виде 3D или плоским, т.е. условно размещать грань в 2D пск, и здесь привязывать 2D полигон...
эх...где-то бы посмотреть...
В дальнейшем -
побороть проблему с точностью,
привязать к сортаменту...
А теперь опять скрины, добавил дыру на противоположную грань, примерно понял, где логику проверять. В этом особый кайф геометрии - любая гипотеза имеет вполне очертаемое представление, и путем анализа и наблюдений этого представления можно делать выводы. Т.е. геометрия это настолько "родные" мышлению абстракции, что ими удобно умозрительно оперировать...
Комментарии
Отправить комментарий