CAD二次开发学习笔记一(画一条直接)

ARX内部是不需要调用cad命令的。调用 ARX 函数或对象就可以象CAD一样绘制、编辑实体。

在AutoCAD中画直接的命令是
line
0,0
1000,100

通过ObjectARX画,新建一个命令cmd1代码如下:

代码
// ----- ArxProject2.cmd1 command
static void ArxProject2cmd1(void)
{
    
// Add your code for command ArxProject2._MyCommand1 here
    acutPrintf(_T("Hello World"));
    
//在内存上创建一个新的AcDbLine对象
    AcGePoint3d ptStart(0,0,0);
    AcGePoint3d ptEnd(
10000,10000,0);
    AcDbLine 
*pLine = new AcDbLine(ptStart,ptEnd);

    
/*基于AutoCAD内部的实现机制,必须在堆上创建对象。
      acdbHostApplicationServices()->workingDatabase()
      获得指向当前活动的图形数据库的指针。
    
*/

    
//获得指向块表的指针
    AcDbBlockTable *pBlockTable;
    acdbHostApplicationServices()
->workingDatabase()->getBlockTable(pBlockTable,AcDb::kForRead);

    
//获得指向特定的块表记录(模型空间)的指针
    AcDbBlockTableRecord *pBlockTableRecord;
    pBlockTable
->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);

    
//将AcDbLine类的对象添加到块表记录中
    AcDbObjectId lineId;
    pBlockTableRecord
->appendAcDbEntity(lineId,pLine);

    
//关闭图形数据库的各种对象
    pBlockTable->close();
    pBlockTableRecord
->close();
    pLine
->close();
}

 

ap加载然后cmd1运行。

posted @ 2010-06-01 09:25  大气象  阅读(2902)  评论(5编辑  收藏  举报
http://www.tianqiweiqi.com