ObjectARX學習筆記之直線(1)

目標:繪製一條紅色直線

CAD版本:autoCAD2010 64位

1.創建好工程後,點擊按鈕ObjectARX Commands按鈕,如圖,點擊OK

2.雙擊第一行會賺轉函數,添加如下代碼:

static void X_PANCreateLine(void)
    {
        // Add your code for command X_PAN.CreateLine here
        AcGePoint3d ptStart(0, 0, 0);
        AcGePoint3d ptEnd(100, 100, 0);
        AcDbLine *pLine=new AcDbLine(ptStart,ptEnd);
        pLine->setColorIndex(1);
        AcDbBlockTable *pBlockTable;
        acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);
        //acdbHostApplicationServices()->workingDatabase() 能夠獲得一個指向當前活動的圖形數據庫的指針
        //getBlockTable 是AcDbDatabase類的一個成員函數,用於獲得指向圖形數據庫的塊表的指針
        AcDbBlockTableRecord *pBlockTableRecord;
        pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
        //getAt函數是AcDbBlockTable 類的一個成員函數,用於獲得塊表中特定的記錄
        AcDbObjectId lineId;
        pBlockTableRecord->appendAcDbEntity(lineId,pLine);
        pBlockTable->close();
        pBlockTableRecord->close();
        pLine->close();
    }

3.選擇x64平臺,調試運行。

4.打開CAD,命令ap,加載生成的arx程序,加載成功後,輸入creatline命令,效果如圖:

總結,創建一個圖形對象,需要遵循下面幾個步驟:

   (1 )確定要創建對象的圖形數據庫;
   (2 )獲得圖形數據庫的塊表;
   (3 )獲得一個存儲實體的塊表記錄,所有模型空間的實體都存儲在模型空間的特定記錄中。

   (4 )創建實體類的一個對象,將該對象附加到特定的塊表記錄中。

圖形庫數據結構如下:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章