FreeCAD — параметрический 3d CAD-редактор с открытым исходным кодом (т. е. бесплатная программа).
FreeCAD активно развивается и, похоже, скоро сможет стать заменой профессиональным платным CAD-программам типа AutoCAD для подавляющего большинства случаев.

Topological naming problem (Проблема топологических наименований)

Александр » 25 фев 2020, 13:14

Модели в САПР ломаются


Во многих САПР и во FreeCAD в частности, иногда модели ломаются. То есть что-то куда-то съезжает, исчезает и т. п.
Одна из причин этому явлению — это «Topological naming problem (Проблема топологических наименований)».
Вот небольшая статься на английском https://www.freecadweb.org/wiki/Topolog ... ng_problem. Позже, я, наверное, сделаю свой иллюстированный материал по этой теме.

Пока кратко опишу суть проблемы организации топологических данных во FreeCAD


Внутри FreeCAD, использующего в своей основе технологию Open CASCADE (OCCT), информация о графических объектах строится на базе примитивов (вершины, рёбра, грани), соответственно, эта информация должна как-то храниться в каком-то структуированном виде. Для этого каждый примитив получает свой уникальный идентификатор (id-шник), к тому же этот id-шник существует не сам по себе, а стазу встраивается в граф, описывающий структуру 3d-модели.
Естественно, этот граф строится по строгим принципам, ветви его представляют собой иерархию объектов с массой дополнительной информации.
Например, если есть точка, значит она принадлежит какому-то ребру, которое принадлежит какой-то грани, которая принадлежит какому-то объекту, который является частью какого-то Body, которое является составляющей некоторой Part. Плюс там ещё привязки к системам координат есть, и номера id-шников могут назначаться примитивам объекта не просто последовательно, а с учетом их ориентации (например номера рёбер могут назначаться на одной грани не по смежности, а по нахождению на одной оси). Это примерное упрощенное описание сути топологических наименований. Добавьте сюда, что у многих суб-объектов мугут быть свои системы координат и применённые к ним трансформации. К субъектам могут быть привязаны другие объекты, добавьте сюда, что некоторые объекты могут быть клонами других со всеми вытекающими страшилками из этого..
На самом деле суть проблемы топологических наименований состоит в том, что как ни печально это признать, изначально был выбран упрощённый подход к описанию топологической модели (здесь мне сложно обвинять разработчиков FreeCAD т. к. подобные проблемы есть во многих САПР, насчёт AutoCAD я не в курсе, хотя слышал что и он глючет порой).
Сейчас получается, что при изменении отдельных элементов модели могут происходить образования или удаления суб-элементов например граней, соответственно, должны быть корректно внесены изменения в граф, описывающий модель, и это зачастую сопряжено с необходимостью серьёзной перестройки всего графа, для того чтобы он оставался корректен, понадобится поменять id-шники большой цепочке элементов, опять-таки с учетом систем координат, трансформаций, клонов и прочего.
На данный момент разработчики FreeCAD ведут активную работу по решению этой проблемы, сколько это потребует усилий не знаю, но как минимум, очевидно, что будет большая проблема еще обратной совместимости.
Александр
 
Сообщения: 397
Зарегистрирован: 20 мар 2014, 17:05

Вернуться в FreeCAD