5.7.1.6. Назначение угла наклона

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

    Угол наклона определяет наклон текста вперед или назад. Угол представляет собой отклонение от вертикальной оси (90 градусов). Для установки угла, используйте свойство ObliquingAngle чтобы изменить текстовый стиль или свойство текстового объекта Oblique. Угол наклона должен быть представлен в радианах.  Положительный угол наклона означает наклон вправо, отрицательному значению будет добавлено значение 2*PI для перевода его в положительное значение.

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

    Этот пример создает однострочный текстовый объект, наклоненный на 45градусов.

Код 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("ObliqueText")> _
   7:  Public Sub ObliqueText()
   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:        '' Меняем угол наклона текстового объекта на 45 градусов (0,707 в 
  34:        ''радианах)
  35:        acText.Oblique = 0.707
  36:   
  37:        acBlkTblRec.AppendEntity(acText)
  38:        acTrans.AddNewlyCreatedDBObject(acText, True)
  39:   
  40:        ''Сохраняем изменения и закрываем транзакцию
  41:        acTrans.Commit()
  42:    End Using
  43:  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("ObliqueText")]
   7:  public static void ObliqueText()
   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:        // Меняем угол наклона текстового объекта на 45 градусов (0,707 в 
  35:        // радианах)
  36:        acText.Oblique = 0.707;
  37:   
  38:        acBlkTblRec.AppendEntity(acText);
  39:        acTrans.AddNewlyCreatedDBObject(acText, true);
  40:   
  41:        // Сохраняем изменения и закрываем транзакцию
  42:        acTrans.Commit();
  43:    }
  44:  }

Код VBA/ActiveX

   1:  Sub ObliqueText()
   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:   
  14:      ' Создаем текстовый объект в пространстве модели
  15:      Set textObj = ThisDrawing.ModelSpace. _
  16:                        AddText(textString, insertionPoint, height)
  17:   
  18:      ' Меняем угол наклона текстового объекта на 45 градусов (0,707 в 
  19:      'радианах)  
  20:      textObj.ObliqueAngle = 0.707
  21:      textObj.Update
  22:  End Sub


Comments