当前位置: 首页 > news >正文

OCCT知识笔记之分解BOX

OCCT中一个矩形 可以分解出 点 线 面 线框 实体,直接看代码示例。

1.创建一个矩形盒子

Standard_Real aSizeX = 5.0;
Standard_Real aSizeY = 10.0;
Standard_Real aSizeZ = 15.0;
TopoDS_Shape aBox = BRepPrimAPI_MakeBox(aSizeX, aSizeY, aSizeZ);

2.遍历盒子根据具体类型提取元素

   a. 点类型 

Standard_Integer nbVertices = 0;
for(TopExp_Explorer anExp(aBox, TopAbs_VERTEX); anExp.More(); anExp.Next(), ++nbVertices)
{const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);
}

 

 b. 边类型 

Standard_Integer nbEdges = 0;
for(TopExp_Explorer anExp(aBox, TopAbs_EDGE); anExp.More(); anExp.Next(), ++nbEdges)
{const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);
}

c.面类型                                                                                                                                        

Standard_Integer nbFaces = 0;
for(TopExp_Explorer anExp(aBox, TopAbs_FACE); anExp.More(); anExp.Next(), ++nbFaces )
{const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);
}

d.线框类型                                                                                                                                        

Standard_Integer nbWires = 0;
for(TopExp_Explorer anExp(aBox, TopAbs_WIRE); anExp.More(); anExp.Next(), ++nbWires )
{const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);
}

e.壳类型                                                                                                                                      

Standard_Integer nbShells = 0;for (TopExp_Explorer anExp(aBox, TopAbs_SHELL); anExp.More(); anExp.Next(), ++nbShells){const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);}

f.实体                                                                                                                                              

Standard_Integer nbSolids = 0;for (TopExp_Explorer anExp(aBox, TopAbs_SOLID); anExp.More(); anExp.Next(), ++nbSolids){const TopoDS_Shape& aShape = anExp.Current();Handle(AIS_ColoredShape) anAisShape = new AIS_ColoredShape(aShape);myContext->Display(anAisShape, Standard_True);}

整个矩形盒子通过不同的点线边面壳可以获取到不同的基本类型。                                           

                                                                                                    

http://www.xdnf.cn/news/406801.html

相关文章:

  • 计算频谱的方法
  • 《基于 Kubernetes 的 WordPress 高可用部署实践:从 MariaDB 到 Nginx 反向代理》
  • 《AI大模型应知应会100篇》第59篇:Flowise:无代码搭建大模型应用
  • 免费批处理软件一键修改文件名称
  • 了解docker-compose.yml
  • mac一键安装gpt-sovit教程中,homebrew卡住不动的问题
  • latex控制表格宽度,不要超出页面
  • windows系统使用phpstudy安装ssl证书
  • 机器学习驱动的智能化电池管理技术与应用
  • 腾讯怎样基于DeepSeek搭建企业应用?怎样私有化部署满血版DS?直播:腾讯云X DeepSeek!
  • 解决 CJSON 浮点数精度问题:从 `cJSON_AddNumberToObject` 到 `cJSON_AddRawToObject`
  • IoTDB 分段查询语句深度剖析:GROUP BY 与时序语义的完美结合
  • 2024年北理工Python123第六章编程题整理
  • 【愚公系列】《Manus极简入门》034-跨文化交流顾问:“文化桥梁使者”
  • TCPIP详解 卷1协议 七 防火墙和网络地址转换
  • vLLM部署多模态大模型Qwen2.5-VL-3B-Instruct
  • 基于React的高德地图api教程002:自定义地图样式
  • AI边缘网关_5G/4G边缘计算网关厂家_计讯物联
  • 面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
  • LInux系统文件与目录管理(二)
  • 如何选择合适的服务器操作系统
  • 学习日志04 java
  • MyBatis-Plus使用 wrapper.apply() 添加自定义 SQL 片段
  • 马铃薯土豆幼苗与杂草检测数据集VOC+YOLO格式3051张2类别
  • winreg查询Windows注册表的一些基本用法
  • python标准库--heapq - 堆队列算法(优先队列)在算法比赛的应用
  • 算法题(145):货仓选址
  • 服务器多JAR程序运行与管理指南
  • ZeRO与3D并行之间的关系
  • 可灵 AI:开启 AI 视频创作新时代