目標:繪製一條紅色直線
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 )創建實體類的一個對象,將該對象附加到特定的塊表記錄中。
圖形庫數據結構如下: