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

OCC笔记:面、边的方向(TopAbs_Orientation)

1.面方向

在Open CASCADE中,面的方向(TopAbs_Orientation)本质是一个拓扑逻辑属性,用于描述面在三维空间中的“内外关系”。它与几何曲面本身的参数化方向(如UV坐标系)不同,而是更高层的拓扑语义。

TopAbs_FORWARD:面法线方向指向实体外部(默认方向,表示该面是实体外壳的正向边界)。
TopAbs_REVERSED:面法线方向指向实体内部(例如孔洞内壁、布尔运算中的切削面)。
TopAbs_INTERNAL/EXTERNAL:特殊场景使用,非流行3D模型中用,如中间过渡面或虚拟参考面。

比如一个occ构造的一个BRepPrimAPI_MakeBox theMakeBox(100, 200, 300);
Box的左下角点为(0,0,0),右上角点(100,200,300)

通过curFace.Orientation()输出面的方向
通过curEdge.Orientation()输出边的方向

通过以下代码输出面的法向
BRepAdaptor_Surface adaptorSurface(curFace);
const auto& anNormal = adaptorSurface.Plane().Axis().Direction();

得到结果如下图,
左侧面的法向为(1, 0, 0),指向实体的内部,所以左侧面的方向为TopAbs_REVERSED。
右侧面的法向为(1, 0, 0),指向实体的外部,所以右侧面的方向为TopAbs_FORWARD。
在这里插入图片描述

2.边的方向

边的方向(TopAbs_Orientation)是相对于其所属的父面而言的,并非绝对几何方向。

已知边所在面的正向方向,右手法则,大拇指指向面的正向方向,4指指向的方向为边的正向,即逆时针方向。

通过curEdge.Orientation()输出边的方向,参看上图输出可知,遍历左侧面的边可知

TopExp_Explorer anExp;
for( anExp.Init( tpFace, TopAbs_ShapeEnum::TopAbs_EDGE); anExp.More(); anExp.Next())
{
//const TopoDS_Edge& curEdge = TopoDS::Edge(anEdgeMap(i));
const TopoDS_Edge& curEdge = TopoDS::Edge(anExp.Current());
if (curEdge.IsNull()) continue;
//…
}
如下图画出左侧面示意图:
边1:A->B,正向
边2:B->C,正向
边3:D->C,反向
边4:A->D,反向
在这里插入图片描述

相关文章:

  • Spring Security架构中过滤器的实现
  • 前端ul-image的src接收base64快捷写法
  • 关于 smali:2. 从 Java 到 Smali 的映射
  • 测试策略:AI模型接口的单元测试与稳定性测试
  • Practice 2025.5.29 —— 二叉树进阶面试题(1)
  • NW907NW918美光固态闪存NW920NW930
  • Docker安装
  • Python+VR:如何让虚拟世界更懂你?——用户行为分析的实践
  • cf2059B
  • C54-动态开辟内存空间
  • MyBatis动态SQL
  • go并发编程| channel入门
  • 2024 CKA模拟系统制作 | Step-By-Step | 15、查看Pod日志
  • ICECEPSS 2025:节能环保与社会治理的融合之道
  • 百度之星2024 初赛第一场 补给
  • 基于大模型的重度膝关节骨关节炎全流程预测与治疗方案研究
  • Elasticsearch集群管理的相关工具介绍
  • 晶振频率稳定性:5G 基站与航天设备的核心竞争力
  • 5G-A时代与p2p
  • linux创建虚拟网卡和配置多ip
  • 西数网站管理助手/五行seo博客
  • 找在农村适合的代加工/性能优化工具
  • 北京pc端网站开发/推广赚钱的项目
  • 做网站卖得出去吗/百度知道客服
  • 网站三要素关键词 描述怎么做/网站建设培训
  • wordpress get_tags/中山百度seo排名公司