xgr 发表于 2011-8-12 11:57:28

返回文字的宽度问题(已解决)

本帖最后由 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的值比实际的值要小好多,不知道是什么问题。请教解答!


sieben 发表于 2011-8-12 13:47:59

1,你怎么知道实际值应该是多少?
2,小很多具体是多少?(应该多少,目前多少)是不是接近0?

xgr 发表于 2011-8-12 15:00:01

测量的结果与实际在cad内的文字宽度差一半
见图

xgr 发表于 2011-8-12 16:30:23

问题已经解决。
定义文字后,要设置文字为系统默认样式。

guohq 发表于 2011-8-15 00:24:07

如果文字有旋转呢?

xiao7 发表于 2011-8-31 10:33:54

MText的属性可获取 ment.ActualWidth.ToString();

huaxiamengqing 发表于 2012-5-5 12:46:43

不用考虑了, 包围盒大小与文字大小,宽高比例无绝对关系,与字体样式也有关系
页: [1]
查看完整版本: 返回文字的宽度问题(已解决)