StromanStroman 2022-12-31 10:16 采纳率: 45%
浏览 34
已结题

无法使用OCC搭配VTK实现显示STP?

尊敬的各位你们好。
问题描述:无法使用OCC搭配VTK实现显示STP的功能。
OCC版本:7.6.0
VTK版本:9.2.0-rc2
编译器:VS2019社区版
语言:C++14
代码:

    STEPControl_Reader reader;
    reader.ReadFile(inputPath.c_str());
    Standard_Integer NbRoots = reader.NbRootsForTransfer();
    Standard_Integer NbTrans = reader.TransferRoots();
    TopoDS_Shape result = reader.OneShape();
    IVtkOCC_Shape::Handle aShapeImpl = new IVtkOCC_Shape(result);

    vtkSmartPointer<IVtkTools_ShapeDataSource> DS = vtkSmartPointer<IVtkTools_ShapeDataSource>::New();
    DS->SetShape(aShapeImpl);
    DS->Update();
    vtkSmartPointer<IVtkTools_DisplayModeFilter> filter = vtkSmartPointer<IVtkTools_DisplayModeFilter>::New();
    filter->AddInputConnection(DS->GetOutputPort());
    filter->SetDisplayMode(DM_Shading);
    vtkSmartPointer<vtkPolyDataMapper> Mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    Mapper->SetInputConnection(filter->GetOutputPort());
    vtkSmartPointer<vtkActor> Actor = vtkSmartPointer<vtkActor>::New();
    Actor->SetMapper(Mapper);
    return Actor;

细节:在执行到filter->AddInputConnection(DS->GetOutputPort());的时候发生了冲突,让我感到摸不到头脑,请问是咋回事?

img

  • 写回答

1条回答 默认 最新

  • xxxhugo5 2022-12-31 17:28
    关注

    您好,

    在使用OCC搭配VTK时,如果出现错误,可能是代码有问题或是OCC与VTK版本不兼容所造成的。

    关于您的代码,您在使用IVtkTools_DisplayModeFilter时需要确保您已经在头文件中包含了IVtkTools_DisplayModeFilter.h。另外,在使用vtkSmartPointer时,需要确保您已经在头文件中包含了vtkActor.h。

    如果您已经确保了上述条件,建议您检查一下您的环境设置,确保您的编译器能够正确地找到OCC与VTK的库文件。

    希望这些建议能够帮助您解决

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月8日
  • 修改了问题 12月31日
  • 创建了问题 12月31日

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀