C++ ARX CAD二次开发实体操作

本文介绍如何在C++ ARX环境下进行CAD二次开发,特别是针对实体的操作,如获取选中实体并实现等分线段的功能。通过AcGeVector3d点阵集合,计算等分点的差集,进而获取新的点坐标,实现点与点阵的相减操作。
摘要由CSDN通过智能技术生成

得到选中的实体,修改实体如等分线段
AcGeVector3d是点阵的集合,通过等分点的差集得到。
新的点可以通过点与点阵相差得到。

static void ArxProject2partLine(void)
{
    ads_name entName;
    ads_point pt;
    acedEntSel( _T("\n选择:"),entName,pt);//得到选中的实体
    AcDbObjectId ObjId;//得到实体ID
    if( acdbGetObjectId(ObjId,entName) != Acad::eOk )//如果没有选中的实体则返回
    {
        acutPrintf( _T("\nno"));
        return;
    }
    AcDbEntity* pEnt;//得到实体
    if( acdbOpenObject(pEnt,ObjId,AcDb::kForRead) == Acad::eOk)
    {
        acutPrintf( _T("\nok"));
        AcDbLine* pLine = (AcDbLine* )pEnt;//强制转换
        AcGePoint3d ptStart = pLine->startPoint();//得到起点
        AcGePoint3d ptEnd = pLine->endPoint();
        pEnt->close();
        //根据点和线的方向生成点组,绘制线段
        int nPart = 5;//五等分
        AcGeVector3d Vect = (ptEnd - ptStart)/nPart;//矩阵,点与点的差集平分可得到
        for (int n=0; n<nPart; n++)
        {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值