5.7.1.7. Установка флага генерации текста

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

    Флаг генерации текста определяет отображается ли текст в обратном порядке(backwards) или перевернутым(upside-down). Используйте свойство FlagBits для установки, если текстовый стиль управляет отображением положением текста в обратном порядке(backwards)  или перевернутым(upside-down), или используйте свойства IsMirroredInX и IsMirroredInY  текстового объекта для управления конкретным текстовым объектом.

    Установите FlagBits равным 2 если вы хотите чтобы текст отображался в обратном порядке(backwards)  и 4 если он должен отображаться перевернутым(upside-down).  Если вы изменяете текстовый объект, установите  IsMirroredInX в значение TRUE если вы хотите отобразить текст в обратном порядке(backwards)   и установите IsMirroredInY в значение TRUE если вы хотите отобразить перевернутым(upside-down).

Отображение текста в обратном порядке (backwards).

    Следующий пример создает однострочный текстовый объект, затем устанавливает его отображение в обратном порядке(backwards), используя свойство IsMirroredInX

Код 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("BackwardsText")> _
   7:  Public Sub BackwardsText()
   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:        '' для записи
  22:        Dim acBlkTblRec As BlockTableRecord
  23:        acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
  24:                                        OpenMode.ForWrite)
  25:   
  26:        '' Создаем однострочный текстовый объект     
  27:        Dim acText As DBText = New DBText()
  28:        acText.SetDatabaseDefaults()
  29:        acText.Position = New Point3d(3, 3, 0)
  30:        acText.Height = 0.5
  31:        acText.TextString = "Hello, World."
  32:   
  33:        '' Отображаем текст в обратном порядке (backwards)
  34:        acText.IsMirroredInX = True
  35:   
  36:        acBlkTblRec.AppendEntity(acText)
  37:        acTrans.AddNewlyCreatedDBObject(acText, True)
  38:   
  39:        '' Сохраняем изменения и закрываем транзакцию
  40:        acTrans.Commit()
  41:    End Using
  42:  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("BackwardsText")]
   7:  public static void BackwardsText()
   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:        // для записи
  23:        BlockTableRecord acBlkTblRec;
  24:        acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
  25:                                        OpenMode.ForWrite) as BlockTableRecord;
  26:   
  27:        // Создаем однострочный текстовый объект     
  28:        DBText acText = new DBText();
  29:        acText.SetDatabaseDefaults();
  30:        acText.Position = new Point3d(3, 3, 0);
  31:        acText.Height = 0.5;
  32:        acText.TextString = "Hello, World.";
  33:   
  34:        // Отображаем текст в обратном порядке (backwards)
  35:        acText.IsMirroredInX = true;
  36:   
  37:        acBlkTblRec.AppendEntity(acText);
  38:        acTrans.AddNewlyCreatedDBObject(acText, true);
  39:   
  40:        // Сохраняем изменения и закрываем транзакцию
  41:        acTrans.Commit();
  42:    }
  43:  }

Код VBA/ActiveX

   1:  Sub BackwardsText()
   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) = 3
  10:      insertionPoint(1) = 3
  11:      insertionPoint(2) = 0
  12:      height = 0.5
  13:      Set textObj = ThisDrawing.ModelSpace. _
  14:                        AddText(textString, insertionPoint, height)
  15:   
  16:      ' Меняем значение TextGenerationFlag
  17:      textObj.TextGenerationFlag = acTextFlagBackward
  18:      textObj.Update
  19:  End Sub

 
Comments