Как-то так интересно получается, что объясняя использование конкретного термина из ООП применительно к геометрическому моделированию не получается не залезать на территорию смежных терминов. То ли я так плохо изъясняюсь, то ли они так сильно друг за друга завязаны. Вот к примеру - сегодня надо поговорить об “абстракции”, а о ней уже вроде как рассказано. (Можно конечно вообще обозвать все мои тексты абстракцией, но это уже слишком:) ). Ладно, так как принцип абстрагирования затрагивался косвенно и не во всех ипостасях я все же затрону данную тематику. На счастье читателей, я не буду пытаться рассмотреть данный вопрос во всех ипостасях, но попробую перейти ближе к телу.
Начну с “анекдота”.
Польша двадцатые годы прошлого века. Расследуется ограбление ювелира. Молодой сыщик ведет допрос потерпевшего по всей форме: рост нападавшего, возраст, есть ли усы, борода, во что одет, цвет глаз, тип носа, прическа... чем вооружен, как нападал, куда убегал. Ювелир как-то мало может рассказать по требуемым приметам и все порывается свернуть куда-то не туда, что бесит молодого полицейского. По итогам выходит, что арестовывать то либо некого либо половину Польши. Старый инспектор посмотрел на это, подошел и задал вопрос не по уставу: “А как бы Вы описали нападавшего?”. Потерпевший крестится и выдает: “Негр”.
Ни к каким расистским лозунгам я не призываю, просто есть такое утверждение: “за деревьями - лес не виден”. Молодой полицейский привык все делать четко по правилам, ему проще задать уставной вопрос и заставить потерпевшего самому искать на него ответ, чем выслушав описание подкорректировать его под правила. В связи с тем, что он считал все остальное не существенным ювелир никак не мог дать правильных ответов. Старый же пошел от обратного, он заставил работать не потерпевшего, а себя, и как результат оказалось, что и ему работать не обязательно - негров в Польше в те времена было не так уж и много.
Так и у нас. Мы так привыкли все детализировать, что во многом разучились думать абстрактно и упрощенно. А ведь именно умение абстрагироваться и обобщать позволяет нам решать множество различных задач. Всю школу, весь институт мы учимся приводить ситуации к набору типовых задач. Учимся и потом либо забываем об этом, либо идеализируем и считаем что шаг влево, шаг вправо - подобен расстрелу.
Пример из прошлой части о ДВС невозможен до тех пор, пока мы не абстрагируемся от частностей и не дойдем до примитивов лежащих в основе. А ведь мы все время работаем с упрощениями, не зря же наши геометрические модели называются моделями. Модель, ведь, это нечто упрощенное.
Ладно, от моделей вернемся к принципу абстракции. “Абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций”. Переводя с языка программирования на язык моделирования нам предлагают вместо детализированной геометрии использовать ее упрощенные аналоги. При этом нам советуют “взаимосвязи” и геометрию разнести по разным уровням. Об чем речь? В том же ProE предлагается для создания подобных функциональных связок использовать поверхностную геометрию, а детали реализовывать в классическом твердотельном подходе на базе имеющейся поверхностной.
Зачем и почему так? Дело в том, что поверхностная геометрия не имеет объема и массы, она не участвует в булевых операциях как с твердыми телами, так и с поверхностями до тех пор пока Вы не “прикажете”. Следовательно привязки не могут “слететь” из-за удаления исходных объектов ссылки, во всяком случае это не так то просто. Есть и другие причины, но в данный момент это не так важно. Важно даже не то как именно реализовывать абстракции (это Вам в конечном итоге подскажет опыт), а в том чтобы они были. Единственное что я могу посоветовать в данном случае это открыть ГОСТы/СНиПы по проектированию Ваших объектов, открыть классические учебники, желательно не раньше 80х и посмотреть как считались, представлялись, моделировались Ваши объекты в те времена когда компьютеры еще были Большими. Посмотреть классификации, присутствующие во множественных количествах, структурные схемы и прочая и прочая.
И на базе этой информации включить немножко воображения с тем чтобы переложить абстракции созданные для бумажных чертежей в мир компьютерного 3D.
Комментариев нет:
Отправить комментарий