2010-09-06 2 views
2

Мне интересно, есть ли способ извлечь необходимые данные из файла autocad .dxf, чтобы я мог визуализировать структуру в opengl?файлы autocad dxf, отображаемые в opengl/opengl es

Я нашел несколько старых холодных фрагментов для окон, написанных на cpp, но со стандартных изменений я предполагаю, что 15-летний код немного устарел.

Кроме того, есть книга о стандарте файла .dxf, но это также из 90-х и в сторону, что редко доступно.

Другим способом может быть преобразование его в другой формат файла, а затем извлечение необходимых данных.

Пытаться заглянуть в файлы .dxf не дали слишком много понимания, поскольку простой кубоид содержит много данных уже!

Может ли кто-нибудь дать мне подсказку о том, как подойти к этому?

+0

О, господин, учитывая возраст этого вопроса ... случайно вы не решили свою проблему? У меня одна и та же задача передо мной. Но с VTK в качестве целевого формата, а не с OpenGL. Поскольку они являются аккуратно взаимозаменяемыми, меня интересует, как вы решили свою проблему? – Najzero

+0

эй, просто видел твой комментарий. straighforward: не решен. в то время просматривал множество форумов, никто, казалось, не имел никаких идей по этой задаче. насколько я помню, мне нужен способ интерпретировать данные в этих файлах, но не нашел подсказки о том, как начать. прости. если в любом случае вы наткнетесь на sth, меня будет интересовать какой-либо намек ... – Icky

+0

спасибо за ваш ответ: нет «из коробки» решение для меня либо ... это просто сводилось к написанию моего собственного синтаксический анализатор. Я использую бесплатную библиотеку C# для открытия файлов dxf (DFXLib: https://github.com/mkernel/DXFLib), а затем просто перебираю каждый найденный элемент DXF. Поскольку это решение VTK (слой между кодом и открытым GL), он не поможет вам многого ... и это был довольно болезненный способ, так как некоторые записи dxf занимают довольно много математической работы, чтобы получить их в vtk/gl (например, эквивалент ARC) – Najzero

ответ

1

Ссылок являются хорошим местом для начала, но если вы делаете тяжелую работу 3D это не может быть возможно сделать то, что вы пытаетесь ..

Мы недавно писали конвертер DXF в JAVA полностью основан на Рекомендации. Хотя многие из объектов относительно прямолинейны, многие другие объекты (3DSOLID, BODY, REGION, SURFACE, Swept Surface) на самом деле невозможно перевести, поскольку в ссылке указано, что эти группы являются в первую очередь запатентованными данными. Другие объекты (Экструдированная поверхность, Реверсированная поверхность, Сверху поверхность (снова)) имеют значительные куски двоичных данных, которые могут содержать важную информацию, которая вам нужна.

Эти объекты не были жизненно важны для наших усилий, но если вы хотите конвертировать в OpenGL, это могут быть те объекты, которые вас особенно интересовали.

1

У Autodesk есть references для форматов DXF, используемых в последних версиях AutoCAD. Я бы, вероятно, второй раз посмотрел на этот 15-летний код. Даже если вы не можете/не используете его как есть, он может обеспечить достойную отправную точку. Спецификация DXF достаточно велика и сложна, что имеет что-то для начала, и просто добавьте новые кусочки и кусочки, где это необходимо, может быть большой справка. В качестве формата обмена DXF в любом случае должен быть довольно консервативным, включая только элементы, которые практически все программы могут интерпретировать разумно напрямую.

Возможно, меня больше беспокоит сам код, чем изменения в формате DXF. Много кода, который используется старыми, использует иерархии иерархических классов, которые немного отличаются от того, что вы ожидаете в современном C++.

+0

спасибо всем за ответы[email protected]: Как я начал конвертировать файлы .dxf, если я могу спросить. Потому что я действительно задавался вопросом, могу ли я извлечь все данные, которые мне нужны. В конце концов, там есть больше, чем просто данные вершин. – Icky

+0

Существует много данных, и для получения необходимой вам информации в требуемой системе координат потребуется значительная математика. Вероятно, вам следует взглянуть на спецификацию, а затем опубликовать конкретные вопросы. Даже просто отправьте что-то по строкам: вот 3DSOLID в формате DXF, как мне преобразовать его в список вершин. – Knyphe

Смежные вопросы