乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 97|回复: 5

如何精确获取AcDbText文本串的长度?

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2005-11-15 09:59:00 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

13

主题

121

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2005-11-15 22:52:00 | 显示全部楼层
可能是我表达的不清楚,我要的不是字符个数,而是图形的长度,类似WIN32 API 函数 GetTextExtentPoint32 获取输出文本图形的长度。
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2005-11-16 11:33:00 | 显示全部楼层
如图中所示,文本串“123456789”的长度就是起点和端点的坐标X的差(x2 - x1)

xqoocgsoapg.JPG

xqoocgsoapg.JPG

回复

使用道具 举报

13

主题

121

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2005-11-16 12:14:00 | 显示全部楼层
/************************************************************************
    *函数名:       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;
}
回复

使用道具 举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2005-11-16 15:02:00 | 显示全部楼层
谢谢楼上的!
这方法我已经试过,对大部分的文本是正确的。但有一些文本就不正确。不知道是什么原因。
回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2005-11-16 17:12:00 | 显示全部楼层
角度不为0,就不能使用该方法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 14:52 , Processed in 0.201133 second(s), 67 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表