AnyCAD(MFC版)一些API介绍

AnyCAD(MFC版)一些API介绍

AuView3dAPI类

  该类主要包含对文档AuView3d(MFC文档程序视类)以及AuWindow3d(对话框中显示框)的显示操作。

m_View3d成员对象

  类型: protected AnyCAD::API::View3d
  可借用View3d类完成许多显示操作,如利用GetSceneManager函数进行擦除(代码如下);

    m_View3d.GetSceneManager().ClearNodes();        //清空3D场景
	m_View3d.GetSceneManager().ClearNodes2d();      //清空所有的2D对象
	m_View3d.GetRenderer().ClearSelection();        //清空选择集
	m_View3d.RequestDraw(1);

AuWindow3d类

  对话框程序显示框,作为三维显示框。
  

EdgeClassifier类

  对TopoShape的边界进行分类提取。包括三类:free edges,shared edges,standalone edges。
  注:通过实验发现,有些边无法进行分类(即用三类进行提取都提取不到)。一次实验中对一个长方形边界进行边界提取,结果为free edges(3), shared edges(0), standalone edges(0),但是用GlobalInstance::topoExplor.ExplorEdges(shape)发现提取得到所有4条边界。

    EdgeClassifier edgeClassfier;
	edgeClassfier.Initialize(shape);                                        //用shape初始化
	TopoShapeGroup shareEdgeGroup = edgeClassfier.GetSharedEdges();         //shared edges,个数为0
	TopoShapeGroup standaloneEdgeGroup = edgeClassfier.GetStandaloneEdges();//standalone edges,个数为0
	TopoShapeGroup freeEdgeGroup = edgeClassfier.GetFreeEdges();            //free edges,个数为3
	TopoShapeGroup shareEdgeGroup1 = GlobalInstance::topoExplor.ExplorEdges(shape); //所有边界,个数为4

  多次实验的结果都是三类边界总条数比实际条数少1。
  

GlobalInstance类

  获取全局实例,类中包含很多静态成员对象,从而可以通过这些成员对象将对应类操作统一起来。

brepTools成员对象

  类型: static BrepTools
  可通过该对象进行边界造型等操作;

topoExplor成员对象

  类型: static TopoExplor
  可借用TopoExplor类对程序中的TopoShape的子类型(点、线、面)进行检测;
 

MeasureResult类

  该类可以对MeasureTools的结果进行操作。有四个成员函数:

    bool 	IsDone () const                 //检查测量结果是否有效,如果是false,则下面三个测量数据均无效
    Real 	GetDistance () const            //获取MeasureTools中测量的距离
    Vector3 	GetPointOnShape1 () const   //获取最小距离对应的shape1中的点
    Vector3 	GetPointOnShape2 () const   //获取最小距离对应的shape2中的点

 

MeasureTools类

  该类可以对TopoShape的一些属性进行测量。有三个成员函数:

    static MeasureResult 	ComputeMinDistance (const TopoShape &shape1, const TopoShape &shape2);
    static MeasureResult 	ComputeMinDistanceSingular (const TopoShape &shape1, const TopoShape &shape2);
    static TopoShape 	FindEdgeNearPoint (const TopoShape &shape, const Vector3 &point);    //找寻距离点point最近的边界. 如果最近的边界不止一条则返回null

 

SharedEdgeShape类

  对公共边界进行操作,如可以获取该边界的父平面。但没有找到涉及到类SharedEdgeShape的相关函数,仅在HoleExplor类中找到一个返回值为SharedEdgeShapeList的函数。
 

TopoDataExchangeIges类

  该类可以对IGES格式进行读取。读入的模型类型为Topo_COMPOUND。
 

TopoDataExchangeStep类

  该类可以对STEP格式进行读取。读入的模型类型为Topo_SOLID。
 

TopoDataExchangeStl类

  该类可以对STL格式进行读取。读入的模型类型为Topo_SHELL,所有的面会转化为三角面片(如一个矩形面会转化为两个三角面片,模型现实会发现多出一条边界将矩形面分割成两个三角面)。
 

TopoExplor类

  该类可以对TopoShape的子类型(点、线、面)进行检测。
  

TopoShape类

  可以获取模型类型,子模型等。

TopoShapeConvert类

  可以对模型进行一定操作,获取模型点线面特征。

TopoShapeGroup类

  拓扑对象组。如对拓扑对象进行子类型检测可以获得拓扑对象组(存储获取的子类型),进而可以对子类型进行操作。
  

TopoShapeProperty类

  获取TopoShape的几何属性。

    void 	SetShape (const TopoShape &shape)           //设置需要计算的TopoShape
    Real 	EdgeLength () const
    Real 	SurfaceArea () const
    Real 	SolidVolume () const
    Vector3 	CenterOfMass ()

posted on 2018-05-23 22:00  silentteen  阅读(2088)  评论(0编辑  收藏  举报