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 阅读(2215) 评论(0) 收藏 举报
                    
                
                
            
        
浙公网安备 33010602011771号