You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OPEN CASCADE新手求助:如何从AIS_InteractiveObject获取TopoDS_Shape?

从AIS_InteractiveObject获取TopoDS_Shape的方法

AIS_InteractiveObject是抽象基类,本身没有直接获取TopoDS_Shape的方法——毕竟不是所有交互对象都对应几何形状。实际用于显示形状的交互对象几乎都是它的子类AIS_Shape,可以通过以下步骤获取目标形状:

  • 先判断目标AIS_InteractiveObject是否属于AIS_Shape类型
  • 通过向下转型将其转换为AIS_Shape对象
  • 调用AIS_Shape的Shape()方法获取对应的TopoDS_Shape

示例代码:

// 假设已有AIS_InteractiveObject对象
Handle(AIS_InteractiveObject) anInteractiveObj = ...;

if (anInteractiveObj->IsKind(STANDARD_TYPE(AIS_Shape)))
{
    Handle(AIS_Shape) shapeInteractiveObj = Handle(AIS_Shape)::DownCast(anInteractiveObj);
    TopoDS_Shape targetShape = shapeInteractiveObj->Shape();
    // 后续可使用targetShape进行操作
}

如果是你自定义的AIS_InteractiveObject子类,需要自行在子类中添加获取TopoDS_Shape的接口,OC基类不会为非通用场景提供默认方法。

内容的提问来源于stack exchange,提问作者Dilruk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:42:05