找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 347|回复: 0

使用ObjectARX事务功能做小动画处理

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-2-6 19:46:50 | 显示全部楼层 |阅读模式
使用ObjectARX事务功能做小动画处理,可以用于几何算法调试等




void CmdFun::Test()
{
    if (true)
    {
        ads采用point pt;
        ads采用name en;
        if (RTNORM != acedEntSel(采用T("\n选中对象 : "), en, pt))
            return;
        AcDbObjectId id;
        if (Acad::eOk != acdbGetObjectId(id, en))
            return;
        AcTransaction* pTransaction = actrTransactionManager->startTransaction();
        do
        {
            AcDbEntity* pEnt = NULL;
            actrTransactionManager->getObject((AcDbObject*&)pEnt, id, AcDb::kForWrite);
            AcDbPolyline* poly = NULL;

            AcGePoint2d ptStart;
            if (pEnt->isKindOf(AcDbPolyline::desc()))
            {
                poly = AcDbPolyline::cast(pEnt);
                poly->getPointAt(0, ptStart);
                unsigned int vertexCount = poly->numVerts();
                for (unsigned int i = 0; i < vertexCount; i++)
                {
                    poly->removeVertexAt(i);
                }
            }
            else
            {
                break;
            }
            poly->addVertexAt(0, ptStart);
            poly->addVertexAt(1, ptStart);
            poly->setWidthsAt(0, 100.0, 100.0);
            for (size采用t i = 0; i < 1000; i++)
            {
                AcGePoint2d ptEnd = ptStart + AcGeVector2d::kXAxis * i * 10.0;
                poly->setPointAt(1, ptEnd);
                poly->setColorIndex(i % 256);
                Sleep(1);
                poly->draw();
                acedUpdateDisplay();
            }
        } while (0);
        actrTransactionManager->abortTransaction();
        return;
    }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 21:46 , Processed in 0.164206 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表