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 )创建实体类的一个对象,将该对象附加到特定的块表记录中。

图形库数据结构如下:



你可能感兴趣的:(CAD二次开发,ObjectARX)