ARXObject的入門學習

來源:互聯網
上載者:User

標籤:write   ice   2.4   記錄   語句   block   bho   圖形   base   

  剛剛學習一樣新東西的時候,首先要解決的幾個問題

    1. 任何搭建一個項目環境;

    2. 建立一個項目的流程;

    3. 調試;

    4. 熟悉其API;

    5. 錯誤積累與解決辦法;

    6. 其中隱含的文法知識和UML知識;

  這是針對代碼而言,如果對專業背景不熟悉,還能掌握相關背景知識。

  

    這篇主要講的是基本流程如下:

    

         2.1  基於AutoCAD內部的實現機制,必須在堆上建立對象,而不能用下面的語句建立直線的對象:

          比如: AcDbLine line(ptStart, ptEnd);

        只能用: AcDbLine *pLine = new AcDbLine(ptStart, ptEnd);

        這隻是在記憶體上建立,並沒有添加到圖形資料庫中,因此不可能會顯示在圖形視窗中。

    2.2  獲得指向塊表的指標

        AcDbBlockTable *pBlockTable;//獲得指向塊表的指標;

        acdbHostApplicationServices()->workingDatabase() 能夠獲得一個指向當前活動的圖形資料庫的指標。

        getBlockTable是AcDbDatabase類的一個成員函數,用於獲得指向圖形資料庫的塊表的指標。

    2.3  獲得指向特定的塊表記錄(模型空間)的指標

        AcDbBlockTableRecord  *pBlockTableRecord; //獲得指向特定的塊表記錄(模型空間)的指標

        pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);

        AcDbBlockTable::getAt(…) 是獲得塊表中特定的記錄。

    2.4  在塊表記錄中添加實體

        AcDbObjectId lineId; //將AcDbline類的對象添加到塊表記錄中

        pBlockTableRecord->appendAcDbEntity(lineId, pLine);

        AcDbBlockTableRecord::appendAcDbEntity(…); //用於將pEntity指向的實體添加到塊表記錄和圖形資料庫中。

    2.5 關閉圖形資料庫的各種對象

        

      pBlockTable->close();

      pBlockTableRecord->close();

      pLine->close();

要注意: 1). 開啟或建立資料庫物件之後,必須儘可能早的關閉它。

2). 不要使用delete pLine。在C++中,new,delete運算子配對使用。但在ObjectARX的編程中,當用appendAcDbEntity函數將對象添加到圖形資料庫之後,就需要由圖形資料庫來操作該對象。這裡是由內部自己釋放了嗎?

 

ARXObject的入門學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.