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 failedn");fflush(0);
}else{
printf("CAD brep loadedn");fflush(0);
}
if(entityOCC.IsNull())
{
printf("Null Shapen");fflush(0);
}
return a.exec();
}
我正在使用OpenCascade社区版0.18.1-2.4相当于6.9.1
编辑:
执行程序时,我会收到OpenCascade消息:"不是TSHAPE桌子"但是与freecad的问题打开相同的文件。
可能是这些BREP文件包含一些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);