OCC杂记(1)

[1]得到一个Solid中每个面每条边的顶点的坐标

Code

(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]求面的法向量

 

Code

(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 得到曲面的一些属性的类.通过这个类得到曲面某点的法向量

 

 

 

 

  

 


posted @ 2009-07-09 10:05  thinkpore  阅读(1762)  评论(0)    收藏  举报