鲁班人[ Ben's Blog]

-专注于建筑钢结构技术的发展与应用

« 冒泡儿批量打印CAD图纸的小工具汇总 »

CAD单行文本几何长度计算函数(C++版)

  用程序绘制引线标注时,此函数应该很有用处,找了很久的东东,原来是由AcDbExtents来控制的(C#中也有一个Extents2d结构,应该也是做这个用的,有时间试试地说),收藏如下:

/************************************************************************
    *函数名:       getTextLength
    *功能:         计算CAD中文字字符串长度的函数
    *调用函数表:
    *被调用函数表:
    *输入参数:     textId -- 字符串在CAD中的Id
    *输出参数:
    *返回值:        CAD状态
    *其他:                                                                    
************************************************************************/
Acad::ErrorStatus getTextLength(AcDbObjectId textId,double& textLengh)
{
 Acad::ErrorStatus es=Acad::eOk;
 AcDbEntity *pEnt=NULL;

 if((es=acdbOpenObject(pEnt,textId,AcDb::kForRead))!=Acad::eOk)
  return es;
 
 AcDbExtents Ext;
 pEnt->getGeomExtents(Ext);
 pEnt->close();

 AcGePoint3d minPt,maxPt;
 minPt = Ext.minPoint();
 maxPt = Ext.maxPoint();
 textLengh = acutDistance(asDblArray(minPt),asDblArray(maxPt));
  
  return es;
}

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright 2002-2008 Ben’s Weblog™. Some Rights Reserved.