5.7.2.1. Создание однострочного текста

Источник здесь[перевод не проверен]; [Переводчик: Вадим Семёнов]

    При использовании однострочного текста(single-line), каждая строка текста является самостоятельным объектом. Для создания однострочного текстового объекта вы создаете экземпляр объекта DBText, а затем добавляете его в любую запись таблицы блока, которая представлена в пространства модели или листа. Когда вы создаете новый экземпляр объекта DBText, вы не передаете конструктору каких-либо параметров.

Создание однострочного текста

   В следующем примере создается однострочный текстовый объект в пространстве модели с координатами (2, 2, 0)с высотой 0,5 и текстовой строкой «Hello, World.»

Код VB.NET
   1:  Imports Autodesk.AutoCAD.Runtime
   2:  Imports Autodesk.AutoCAD.ApplicationServices
   3:  Imports Autodesk.AutoCAD.DatabaseServices
   4:  Imports Autodesk.AutoCAD.Geometry
   5:   
   6:  <CommandMethod("CreateText")> _
   7:  Public Sub CreateText()
   8:    '' Устанавливаем текущий документ и базу данных
   9:    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  10:    Dim acCurDb As Database = acDoc.Database
  11:   
  12:    '' Начинаем транзакцию
  13:    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  14:   
  15:        '' Открываем таблицу Блока для чтения
  16:        Dim acBlkTbl As BlockTable
  17:        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, _
  18:                                     OpenMode.ForRead)
  19:   
  20:        '' Открываем запись таблицы Блока пространство Модели (Model space) для записи
  21:        Dim acBlkTblRec As BlockTableRecord
  22:        acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
  23:                                        OpenMode.ForWrite)
  24:   
  25:        '' Создаем однострочный текстовый объект
  26:        Dim acText As DBText = New DBText()
  27:        acText.SetDatabaseDefaults()
  28:        acText.Position = New Point3d(2, 2, 0)
  29:        acText.Height = 0.5
  30:        acText.TextString = "Hello, World."
  31:   
  32:        acBlkTblRec.AppendEntity(acText)
  33:        acTrans.AddNewlyCreatedDBObject(acText, True)
  34:   
  35:        '' Сохраняем изменения и закрываем транзакцию
  36:        acTrans.Commit()
  37:    End Using
  38:  End Sub

Код C#
   1:  using Autodesk.AutoCAD.Runtime;
   2:  using Autodesk.AutoCAD.ApplicationServices;
   3:  using Autodesk.AutoCAD.DatabaseServices;
   4:  using Autodesk.AutoCAD.Geometry;
   5:   
   6:  [CommandMethod("CreateText")]
   7:  public static void CreateText()
   8:  {
   9:    // Устанавливаем текущий документ и базу данных
  10:    Document acDoc = Application.DocumentManager.MdiActiveDocument;
  11:    Database acCurDb = acDoc.Database;
  12:   
  13:    // Начинаем транзакцию
  14:    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
  15:    {
  16:        // Открываем таблицу Блока для чтения
  17:        BlockTable acBlkTbl;
  18:        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
  19:                                     OpenMode.ForRead) as BlockTable;
  20:   
  21:        // Открываем запись таблицы Блока пространство Модели (Model space) для записи
  22:        BlockTableRecord acBlkTblRec;
  23:        acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
  24:                                        OpenMode.ForWrite) as BlockTableRecord;
  25:   
  26:        // Создаем однострочный текстовый объект
  27:        DBText acText = new DBText();
  28:        acText.SetDatabaseDefaults();
  29:        acText.Position = new Point3d(2, 2, 0);
  30:        acText.Height = 0.5;
  31:        acText.TextString = "Hello, World.";
  32:   
  33:        acBlkTblRec.AppendEntity(acText);
  34:        acTrans.AddNewlyCreatedDBObject(acText, true);
  35:   
  36:        // Сохраняем изменения и закрываем транзакцию
  37:        acTrans.Commit();
  38:    }
  39:  }

Код VBA/ActiveX 
   1:  Sub CreateText()
   2:      Dim textObj As AcadText
   3:      Dim textString As String
   4:      Dim insertionPoint(0 To 2) As Double
   5:      Dim height As Double
   6:   
   7:      ' Создаем текстовый объект
   8:      textString = "Hello, World."
   9:      insertionPoint(0) = 2
  10:      insertionPoint(1) = 2
  11:      insertionPoint(2) = 0
  12:      height = 0.5
  13:   
  14:      Set textObj = ThisDrawing.ModelSpace. _
  15:                        AddText(textString, insertionPoint, height)
  16:      textObj.Update
  17:  End Sub
Comments