ObjectArx查看实体DXF信息

  • 在cad中使用(entget(car(entsel)))命令查看实体DXF信息
  • 在arx中使用acdbEntGet函数查看实体DXF信息()
void ZffChap5EntInfo()
{
      // 提示用户选择实体
      ads_name entName;
      ads_point pt;
      if (acedEntSel(TEXT("\n选择实体:"), entName, pt) != RTNORM)
            return;
      
      struct resbuf *rbEnt;  // 保存实体数据的结果缓冲区
      struct resbuf *rb;           // 用于遍历rbEnt的结果缓冲区
      
      // 从entName获得保存实体数据的结果缓冲区
      rbEnt = acdbEntGet(entName);
      rb = rbEnt;
      
      while (rb != NULL)
      {
            switch (rb->restype)
            {
            case -1:    // 图元名
                  acutPrintf(TEXT("\n图元名: %x"), rb->resval.rstring);
                  break;
            case 0:           // 图元类型
                  acutPrintf(TEXT("\n图元类型: %s"), rb->resval.rstring);
                  break;
            case 8:           // 图层
                  acutPrintf(TEXT("\n图层:%s"), rb->resval.rstring);
                  break;
            case 10:    // 圆心
                  acutPrintf(TEXT("\n圆心:(%.2f, %.2f, %.2f)"),
                       rb->resval.rpoint[X],
                       rb->resval.rpoint[Y],
                       rb->resval.rpoint[Z]);
                  break;
            case 40:    // 半径
                  acutPrintf(TEXT("\n半径:%.4f"), rb->resval.rreal);
                  break;
            case 210:   // 圆所在平面的法向矢量
                  acutPrintf(TEXT("\n平面的法向矢量:(%.2f, %.2f, %.2f)"),
                       rb->resval.rpoint[X],
                       rb->resval.rpoint[Y],
                       rb->resval.rpoint[Z]);
                  break;
            default:
                  break;
            }     // switch
            
            rb = rb->rbnext;       // 切换到下一个节点
      }     // while
      
      if (rbEnt != NULL)
      {
            acutRelRb(rbEnt);
      }
}

你可能感兴趣的:(ObjectARX,cad)