没有与当前视口关联的输出数据库(ODB)

当你一步一步按照书本或课本上的步骤,最后报出“没有与当前视口关联的输出数据库(ODB)”

别着急,提交计算后,在保存目标文件夹里面(可以在开头设置目标文件夹)单独打开所保存的ODB文件就能显示结果了

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要检索当前视口下的所有图形,可以使用 Open Cascade 中的 AIS_InteractiveContext 类。该类管理场景中的所有交互式对象,并可以提供对它们的访问。 要获取当前视口下的图形,可以使用 AIS_InteractiveContext 的方法 CurrentViewer() 和 CurrentView() 获取当前的查看器和视图。然后,可以使用视图的方法 ConvertWithProj() 将视图中的屏幕坐标转换为世界坐标,并使用 AIS_InteractiveContext 的方法 VisibleObjects() 获取当前视口下可见的对象。 以下是一个示例代码片段: ``` // 获取当前视口下的所有图形 AIS_InteractiveContext* context = myAISContext; // 假设已经创建了 AIS_InteractiveContext 对象 const Handle(V3d_Viewer)& viewer = context->CurrentViewer(); const Handle(V3d_View)& view = context->CurrentView(); // 将视口中心转换为世界坐标 Standard_Real x, y; view->Size(x, y); gp_Pnt center = view->ConvertWithProj(x / 2, y / 2); // 获取当前视口下可见的对象 AIS_ListOfInteractive objects; context->VisibleObjects(objects); for (AIS_ListIteratorOfListOfInteractive it(objects); it.More(); it.Next()) { Handle(AIS_Shape) shape = Handle(AIS_Shape)::DownCast(it.Value()); if (!shape.IsNull()) { // 检查图形是否在当前视口中可见 Bnd_Box bbox; shape->BoundingBox(bbox); if (bbox.IsOut(center)) { continue; } // 在这里处理图形... } } ``` 请注意,这只是一个示例代码片段,并且可能需要根据您的具体应用程序进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小张别急呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值