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 полигон...
эх...где-то бы посмотреть...

В дальнейшем - 
побороть проблему с точностью,
привязать к сортаменту...

А теперь опять скрины, добавил дыру на противоположную грань, примерно понял, где логику проверять. В этом особый кайф геометрии - любая гипотеза имеет вполне очертаемое представление, и путем анализа и наблюдений этого представления можно делать выводы. Т.е. геометрия это настолько "родные" мышлению абстракции, что ими удобно умозрительно оперировать...





Комментарии

Популярные сообщения из этого блога

Объект "Plan Marker"

График функции в полярных координатах?! Легко!

GDL. Объект для моделей из "оцилиндрованного бревна"