badboy518 发表于 2011-11-23 21:14:43

[已解决]求助,如何取得未加入数据库DBText的外框?

本帖最后由 badboy518 于 2011-11-24 12:00 编辑

在学习JIG时发现,当文字没有加入到数据库中时,Bounds的maxpoint 与minpoint
以及GeometricExtents.MaxPoint
      GeometricExtents.MinPoint
都是与插入点相同的。
我想做到:在文字下方加一条下划线,与文本同宽。
请问一下,如何才能得到文字的宽度?

sailorcwx 发表于 2011-11-23 22:13:10

为什么不考虑加入数据库呢,这样的效果又如何
      public void Test7()
      {
            DBText testText = new DBText();
            testText.TextString = "WeltionTools";
            testText.Position = new Point3d(0, 0, 0);
            
            Transaction tr = Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction();
            using (tr)
            {
                BlockTableRecord space = tr.GetObject(HostApplicationServices.WorkingDatabase.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;

                space.AppendEntity(testText);
                tr.AddNewlyCreatedDBObject(testText, false);
                Extents3d textExtents = testText.GeometricExtents;
                Line line = new Line();
                line.StartPoint = textExtents.MinPoint;
                line.EndPoint = textExtents.MaxPoint;
                space.AppendEntity(line);
                tr.AddNewlyCreatedDBObject(line, true);
               
                tr.Commit();
            }
      }

badboy518 发表于 2011-11-23 23:05:25

有劳,我看了一下,是加入到图形数据库中后再调用 。这样确实可以做到。
但是Jig中运行效率太差了些。不知能否有更好的办法

sailorcwx 发表于 2011-11-24 00:00:38

你的jig到底是想达到什么效果,或者把你的代码发上来大家帮你优化一下

badboy518 发表于 2011-11-24 12:00:00

已解决。将基本属性参数写齐全就可以了。
页: [1]
查看完整版本: [已解决]求助,如何取得未加入数据库DBText的外框?