目标:绘制一条红色直线
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 )创建实体类的一个对象,将该对象附加到特定的块表记录中。
图形库数据结构如下:
转载于:https://blog.51cto.com/cpp51/1242963