Есть ли парсер ruby ​​для файлов IFC ISO-10303-21 (STEP-файлы)?

Я ищу анализатор файла STEP для ruby, который будет выдавать OBJ или структуру модели, аналогичную OBJ.

Я также нашел гем для создания собственного синтаксического анализатора здесь, но не совсем уверен, как правильно настроить синтаксический анализатор. /lexer правила его использования.


person Babbz77    schedule 13.04.2018    source источник


Ответы (2)


Я не знаю, поможет ли это, но я наткнулся на ту же проблему год назад. Мне нужно было получить парсер IFC для C#. Хотя уже есть несколько решений, я решил создать свое. Поэтому мне пришлось сделать следующее:

  1. Напишите программу (генератор), которая считывает схему EXPRESS (этот файл EXPRESS содержит все объекты текущей версии IFC, определяющие их свойства и иерархию наследования) и создает все эти объекты как классы C#.
  2. Этот Генератор также должен соответствовать каждому созданному классу с возможностью записи своих объектов в строку STEP.
  3. Поместите все готовые объекты в библиотеку классов и используйте их в своем основном коде.
  4. Я также включил в эту библиотеку классов дополнительный класс, который может читать IFC-файлы, а затем создавать все соответствующие объекты (это было действительно сложно сделать, и мне не удалось на 100%, поэтому для меня это работает только для определенных классов. Однако , этого было достаточно для моей цели)

Показ рабочего процесса моей программы

Поэтому я считаю, что вы могли бы пойти по тому же пути, просто делая все на Ruby. Надеюсь, это немного помогло. Не стесняйтесь спрашивать, если у вас есть еще вопросы.

person FlixFix    schedule 15.04.2018
comment
Спасибо за быстрый ответ! Я надеялся не строить его самостоятельно, но если это окажется единственным способом, то, думаю, у меня нет выбора. - person Babbz77; 16.04.2018

Я использую SDAI с поздним связыванием, так как считаю, что раннее связывание (генерация классов C++/C#, соответствующих объектам STEP) не является верным. Имею дело с AP242, AP209, AP238 (были некоторые проблемы, но надеюсь решить эту проблему), IFC. Таким образом, позднее связывание лучше.

person Peter    schedule 18.11.2019