OpenCascade: сбой чтения Brep
OpenCascade не загружает некоторые файлы BREP, но если я пытаюсь загрузить с FreeCad, они работают. Код является:
#include <QCoreApplication>
#include <BRepTools.hxx>
#include <BRep_Builder.hxx>
#include <unistd.h>
int main(int argc, char *argv[])
{
BRep_Builder brbp;
QCoreApplication a(argc, argv);
TopoDS_Shape entityOCC;
bool ret = BRepTools::Read(entityOCC,Standard_CString("draw.brep"), brbp);
if(ret == false)
{
printf("BREP read failed\n");fflush(0);
}else{
printf("CAD brep loaded\n");fflush(0);
}
if(entityOCC.IsNull())
{
printf("Null Shape\n");fflush(0);
}
return a.exec();
}
Я использую OpenCascade Community Edition 0.18.1-2.4, эквивалентный 6.9.1
Редактировать:
Когда я запускаю программу, я получаю сообщение OpenCascade: "Не таблица TShape", но тот же файл открывается без проблем с FreeCad.
2 ответа
Возможно, эти файлы содержат некоторые строки utf-8. Подобные ситуации возникают, когда я пытаюсь прочитать какой-нибудь файл шага с помощью OpenCascade.
Попробуйте использовать это.
Handle(DEBRepCascade_ConfigurationNode) aNode = new DEBRepCascade_ConfigurationNode();
// You can configure whatever you want
// aNode->InternalParameters.
Handle(DE_Provider) aProvider = aNode->BuildProvider();
// You can import or export
TCollection_AsciiString aPath = ...;
TopoDS_Shape aShape = ...;
Handle(TDocStd_Document) aDoc = ...;
// You be able to import or export in single style for all formats
// aProvider->Write(aPath, aDoc/aShape);
// aProvider->Read(aPath, aDoc/aShape);