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

本文介绍如何使用AutoCAD的ObjectARX技术进行绘图操作,包括创建和添加线条至模型空间的具体步骤。通过实例演示了如何利用ARX函数或对象替代CAD命令来实现绘图目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

ExpandedBlockStart.gif代码
// ----- 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运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值