5.2.3.2. Создание дуги (Arc)

Источник здесь.[перевод не проверен]; [переводчик: bandero]

    В этом примере создаётся дуга в пространстве Модели с центром в точке (6.25, 9.125, 0), радиусом 6, начальным углом 1.117 (64 градуса), и конечным углом 3.5605 (204 градуса).

Код VB.NET

   1:  Imports Autodesk.AutoCAD.Runtime
   2:  Imports Autodesk.AutoCAD.ApplicationServices
   3:  Imports Autodesk.AutoCAD.DatabaseServices
   4:  Imports Autodesk.AutoCAD.Geometry 
   5:  <CommandMethod("AddArc")> _
   6:  Public Sub AddArc()
   7:    '' Получение текущего документа и базы данных
   8:    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
   9:    Dim acCurDb As Database = acDoc.Database 
  10:    '' Старт транзакции
  11:    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() 
  12:        '' Открытие таблицы Блоков для чтения
  13:        Dim acBlkTbl As BlockTable
  14:        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) 
  15:        '' Открытие записи таблицы Блоков для записи
  16:        Dim acBlkTblRec As BlockTableRecord
  17:        acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
  18:                                        OpenMode.ForWrite) 
  19:        '' Создание дуги в точке 6.25,9.125 с радиусом 6, и
  20:        '' начальным углом 64 градуса и конечным 204 градуса
  21:        Dim acArc As Arc = New Arc(New Point3d(6.25, 9.125, 0), _
  22:                                   6, 1.117, 3.5605) 
  23:        acArc.SetDatabaseDefaults() 
  24:        '' Добавление нового объекта в запись таблицы блоков и в транзакцию
  25:        acBlkTblRec.AppendEntity(acArc)
  26:        acTrans.AddNewlyCreatedDBObject(acArc, True) 
  27:        '' Сохранение нового объекта в базе данных
  28:        acTrans.Commit()
  29:    End Using
  30:  End Sub

Код C#

   1:  using Autodesk.AutoCAD.Runtime;
   2:  using Autodesk.AutoCAD.ApplicationServices;
   3:  using Autodesk.AutoCAD.DatabaseServices;
   4:  using Autodesk.AutoCAD.Geometry; 
   5:  [CommandMethod("AddArc")]
   6:  public static void AddArc()
   7:  {
   8:    // Получение текущего документа и базы данных
   9:    Document acDoc = Application.DocumentManager.MdiActiveDocument;
  10:    Database acCurDb = acDoc.Database; 
  11:    // Старт транзакции
  12:    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
  13:    {
  14:        // Открытие записи таблицы Блоков для чтения
  15:        BlockTable acBlkTbl;
  16:        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
  17:                                     OpenMode.ForRead) as BlockTable; 
  18:        // Открытие записи таблицы Блоков пространства Модели для записи
  19:        BlockTableRecord acBlkTblRec;
  20:        acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
  21:                                        OpenMode.ForWrite) as BlockTableRecord; 
  22:        // Создание дуги в точке 6.25,9.125 с радиусом 6, и
  23:        // начальным углом 64 градуса и конечным 204  градуса
  24:        Arc acArc = new Arc(new Point3d(6.25, 9.125, 0),  6, 1.117, 3.5605); 
  25:        acArc.SetDatabaseDefaults(); 
  26:        // Добавление нового объекта в запись таблицы блоков и в транзакцию
  27:        acBlkTblRec.AppendEntity(acArc);
  28:        acTrans.AddNewlyCreatedDBObject(acArc, true); 
  29:        // Сохранение нового объекта в базе данных
  30:        acTrans.Commit();
  31:    }
  32:  }

Код VBA / ActiveX

   1:  Sub AddArc()
   2:      ' пределение точки центра
   3:      Dim ptCen(0 To 2) As Double
   4:      ptCen(0) = 6.25: ptCen(1) = 9.125: ptCen(2) = 0# 
   5:      ' Создание объекта Дуги в пространстве Модели
   6:      Dim arcObj As AcadArc
   7:      Set arcObj = ThisDrawing.ModelSpace.AddArc(ptCen, 6#, 1.117, 3.5605)
   8:      ThisDrawing.Application.ZoomAll
   9:  End Sub



Comments