OCC杂记(1)
[1]得到一个Solid中每个面每条边的顶点的坐标
(1) TopExp_Explorer类
功能:用于浏览TopoDS_Shape类,可用于得到Shape的Face,Edge等。
使用方法:
1.在构造TopExp_Explorer传递要浏览的Shape对象,并传入一个枚举值
(TopAbs_ShapeEnum中的一个值)
2.也可以在定义一个对象后,调用它的Init函数.实际上,构件函数内部也调用了Init
如下:
TopExp_Explorer exp;
exp.Init(.......);
(2)TopoDS class
function:Provides methods to cast objects of class.即用于TopoDS_Shape类向其子类转化.
(3)class BRep_Tool
function:Provides class methods to access to the geometry of BRep shapes
通过这个类中的方法,获取TopoDS_Shape类中的几何信息
[2]求面的法向量
(1)通过BRep_Tool类将TopoDS_Face转化成Handle_Geom_Surface
(2)每一个几何类都对应有一个Handle类。可以把Handle看成它的指针.
Handle类重载了->方法。
以Handle_Geom_Surface和 Geom_Surface为例.
Handle_Geom_Surface重载了->操作符
Geom_Surface* operator->() const
{
return (Geom_Surface *)ControlAccess();
}
ControlAccess()定义在是它的基类Handle_Standard_Transient中
Standard_Transient* ControlAccess() const
{
return entity;
}
entity在Handle_Standard_Transient中定义成
Standard_Transient *entity;
通过ControlAccess()方法得到了Geom_Surface类的指针,自然就可以使用
Geom_Surface类了。例如,hSurface->IsUClosed();
所以,当然可以把Handle类当成指针了。
(3)GeomAPI_ProjectPointOnSurf 点在面上的映射。可以将一个笛卡尔点投影到
曲面上。此类中的LowerDistanceParameters方法,输出点距离曲面的最近点,
这个最近点用曲面参数表达(U,V)
(4)GeomLProp_SLProps 得到曲面的一些属性的类.通过这个类得到曲面某点的法向量
浙公网安备 33010602011771号