Я создавал синтаксический анализатор данных в формате STEP (в частности, стандарт ISO 10303-21), но столкнулся с препятствием, вращающимся вокруг одного символа - «$».
Быстрый поиск в Google показывает, что в STEP этот символ обозначает «неустановленное» значение, я интерпретировал это как неинициализированное значение, однако я точно не знаю, что мне с ним делать.
Например, возьмите следующие определения:
#111=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#109,#110,$) ;
#109=CARTESIAN_POINT('Axis2P3D Location',(104.14,0.,0.)) ;
#110=DIRECTION('Axis2P3D Direction',(1.,-0.,0.)) ;
На мой взгляд, я не могу понять, как это вообще будет работать, поскольку опорное направление не инициализировано, и поэтому ось x не может быть получена, что означает, что все, что использует этот Axis2Placement, также будет иметь неопределенные данные.
Обычно, когда я достигаю этой точки, я просто определяю какие-то данные по умолчанию для данного типа данных (Vertices (0,0,0), Directions (1,0,0) и т. Д.), Однако это не так. похоже, работает, потому что есть вероятность, что мое направление по умолчанию вызовет конфликты с предоставленными данными.
Я погуглил, что делать в этом сценарии, но ничего не нашел.
У меня также есть PDF-файл для очень похожего формата STEP (ISO-10303-42), но он также не упоминает какие-либо данные по умолчанию и не дает больше информации о том, как это работает.
Итак, чтобы четко сформулировать свой вопрос: что мне делать с неинициализированными данными в данных STEP (ISO 10303-21)?