zoukankan      html  css  js  c++  java
  • 使用画圆的方法来标注指定Id的实体

    //entId为指定实体的Id

    void SignEnt(AcDbObjectId entId)
    {
    AcDbEntity *pEnt = NULL;
    AcDbBlockReference *pRef;
    //打开对应实体
    Acad::ErrorStatus es = acdbOpenObject(pEnt, entId, ZcDb::kForRead, false);
    if ( Acad::eOk != es )
    {
    acutPrintf(_T(" 打开对应Id的实体失败!"));
    return ;
    }
    if(pEnt->isKindOf(AcDbBlockReference::desc()))
    {
    //将实体转化为块参照
    pRef = AcDbBlockReference::cast(pEnt);

    //获得块参照的外框
    AcDbExtents exts;
    pRef->getGeomExtents(exts);

    AcGePoint3d ptMin = exts.minPoint();//外框最小点
    AcGePoint3d ptMax = exts.maxPoint();//外框最大点

    //获取块参照的外框中心点, MidPoint函数为自己编写,即求两点之间的中心点
    AcGePoint3d ptCenter = MidPoint(ptMin, ptMax);
    pRef->close();

    //获得两点连线的一半长度,HalfLength函数为自己编写,即求两点连线的长度的一半
    double radius = HalfLength(ptMin, ptMax);

    //以插入点为圆心画圆,标记重复的编号
    AcGeVector3d vec(0, 0, 1);

    //创建实体圆
    AcDbCircle *pCircle = new AcDbCircle(ptCenter, vec, radius);


    //将圆添加到模型空间,PostToModelSpace函数为自己编写的,作用是向模型空间中添加实体
    PostToModelSpace(pCircle);
    }

  • 相关阅读:
    JS基础算法题(一)
    JS数组的迭代器方法
    使用IcoMoon制作字体图标
    CSS浮动属性
    使用hibnate向数据库写入图片对象
    hibernate_基本配置和初始化步骤
    ORM框架
    Jsp中的session
    mysql的自我复制
    分页技术
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/4786341.html
Copyright © 2011-2022 走看看