下面是我基于opencascade英文文档中关于occt_modeling_data中Properties of Shapes部分进行的翻译,英文好的还是建议直接看文档,部分我不肯定的地方我会附上英文原句。如发现有错误欢迎评论区留言。
BRepLProp 包提供了 Local Properties of Shapes 组件,这个组件包含了计算一个 BRep 模型中边和面的多种局部属性的算法。
可以被查询的局部属性有:
解析曲线和曲面被描述为 BRepAdaptor 曲线和曲面,给形状提供了描述它们几何支持(geometric support)的接口。对于局部的属性的基点是由曲线上参数 u 定义,或由曲面上 (u,v) 参数定义。
”Local Properties of Curves and Surfaces" 组件提供了计算在一个 Geom 曲线或曲面上(in 2D or 3D space)计算不同局部属性的算法。主要包括:
曲线要么是 Geom_Curve 曲线(3D空间内)或 Geom2d_Curve 曲线(平面内)。曲面是 Geom_Surface 曲面。需要计算局部属性的点由它在曲线上的参数 u 定义或由它在曲面上的参数 (u,v) 定义。
那是可能地去查询上述提及的对于具有相同局部属性的点的,以及额外对于2D曲线中具有上述局部属性的点的查询
Example: How to check the surface concavity
为了检查一个曲面的凹凸性(concavity),过程如下:
GeomLProp
中的 SLprops
类,这是从 LProp
中的通用类 SLProps
实例化来的,然后使用方法 GaussianCurvature
。在 GeomAbs_Shape
枚举类型描述了曲线和曲面支持的连续性的类型。
对于曲线,如下连续性的类型是可支持的(如下图):
注意:几何连续性(G1,G2)意味着曲线可以被重参数化为有(C1,C2)连续性。
下述曲面连续性的类型是支持的:
与单一曲面不同,两个曲面的连接(看上图)只在每个交点处定义连续性。连接的光滑程度是交线连续性的一个最小值。
一条边的正则度是两个共享这条边的面连接的光滑度。换句话说,正则度是两个面连接边的每个点的中的最小的连续性。
边的正则度可以有 BRep_Builder::Continuity
方法设置。使用 BRep_Tool::Continuity
方法得到正则度。
一些算法,比如 Fillet 设置有它们自己算法创造边的正则度。也就是说,其他算法(比如Boolean Operations,Shape Healing等)不会设置正则度。如果正则度需要在一个形状上正确设置,可以使用 BRepLib::EncodeRegularity
。它对形状的每个边都计算和设置了正确的值。
正则度标记可以通过如下高等算法扩展使用:Chamfer, Draft Angle, Hidden Line, Removal, Gluer。
The Global Properties of Shapes 组件提供了计算3D空间中一个复合几何系统的全局属性,以及查询计算结构的框架。
对于一个系统全局属性有:
几何系统是以形状通用定义的。根据它们被解析的方式,这些形状将给出如下几何系统的属性:
几个系统的全局属性可能会被组合,来给出有这些系统组合而成的系统的全局属性。
Global Properties of Shapes 组件由如下组成:
GeomLProp 和 Geom2dLProp 包提供了计算曲线和曲面局部属性的算法。
一个曲线(有一个参数)有如下局部属性:
一个曲面(有两个参数U和V)有如下局部属性:
如下方法是可用的:
CLProps
—— 计算一条曲线的局部属性(tangency, curvature, normal)CurAndInf2d
—— 计算2d曲线的最大和最小曲率以及极值点(inflection points)SLProps
—— 计算一个曲面的局部属性(tangency, the normal and curvature)Continuity
—— 计算两条曲线交点处的正则度。注意 B-spline 曲线和曲面被接受,但不会被切为期望连续性的片段。正如所见,这是全局连续性。
一些 Open CASCADE Technology 通用算法理论上是对所有类型的曲线和曲面都奏效。
为了这个目的,它们简单地通过一个得到需要解析曲线或曲面的服务,就是一个单一的API,不管曲线和曲面的类型。这些接口被称为适应器(adaptors)
例如,Adaptor3d_Curve
是提供通过使用任意3D曲线的算法这样服务的抽象类。
GeomAdaptor
包提供了接口:
Geom2dAdaptor
包提供了接口:
BRepAdaptor
包提供了接口:
当你写了一个操作几何物体的算法,使用 Adaptor3d
(或 Adaptor2d)物体。
因此,你可以对于任意类别的物体使用算法,只要你提供给这个物体一个源于 Adaptor3d
或 Adaptor2d
的接口。这些接口是易于使用的:只需简单地从一个 Geom2d
曲线创建一个适应曲线或曲面,然后使用使用这个适应曲线作为算法的参数。
上一篇:奇迹MU服务器架设完整教程