返回文字的宽度问题(已解决)
本帖最后由 xgr 于 2011-8-12 16:31 编辑在CAD内定义一个单行文字,返回文字的宽度出问题,实际与返回测定的数据不相符。
//前面略。。。。。。。。。。
point3d ptStart = pPtRes.Value;//读取开始点ptStart
string ptStartX= "X=" + ptStart.X.ToString("f3");//取X
string ptStartY ="Y=" + ptStart.Y.ToString("f3");//取Y
DBText MMM=new DBText();
double textS;
//测试点ptStart XY值的最大长度
DBText MMM=new DBText();
double textS;
if (ptStartX.Length > ptStartY.Length)
{
MMM.TextString= ptStartX;
textS = MMM.GeometricExtents.MaxPoint.X - MMM.GeometricExtents.MinPoint.X;
}
else
{
MMM.TextString= ptStartY;
textS = MMM.GeometricExtents.MaxPoint.X - MMM.GeometricExtents.MinPoint.X;
}
结果textS的值比实际的值要小好多,不知道是什么问题。请教解答!
1,你怎么知道实际值应该是多少?
2,小很多具体是多少?(应该多少,目前多少)是不是接近0? 测量的结果与实际在cad内的文字宽度差一半
见图
问题已经解决。
定义文字后,要设置文字为系统默认样式。 如果文字有旋转呢? MText的属性可获取 ment.ActualWidth.ToString();
不用考虑了, 包围盒大小与文字大小,宽高比例无绝对关系,与字体样式也有关系
页:
[1]