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 ()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM