我测试了两种情况:
我使用 STEPCAFControl_Reader 然后 STEPControl_Reader 来读取我的步骤文件,但是当我调用 STEPCAFControl_Reader::Transfer 时,这两种方法都会崩溃,分别是 STEPControl_Reader::TransferRoots。
通过使用 STEPControl_Reader,我在控制台上显示了一个日志,然后出现如下消息:
1 F:(BOUNDED_SURFACE,B_SPLINE_SURFACE,B_SPLINE_SURFACE_WITH_KNOTS,GEOMETRIC_REPRESENTATION_ITEM,RATIONAL_B_SPLINE_SURFACE,REPRESENTATION_ITEM,SURFACE):representation_item 的参数计数不是 1
编辑:
TransferRoots() 方法中有一个空引用。
const Handle(Transfer_TransientProcess) &proc = thesession->TransferReader()->TransientProcess();
if (proc->GetProgress().IsNull())
{
//This condition does not exist from the source code
std::cout << "GetProgress is null" << std::endl;
return 0;
}
Message_ProgressSentry PS ( proc->GetProgress(), "Root", 0, nb, 1 );
我的应用程序和 FreeCAD 崩溃,但如果我使用 OCC 官方查看器的 CAD Assitant,它会加载。