4.3.1. Создание и открытие чертежа

Источник здесь.[перевод не проверен];[перевёл Андрей Бушман]

    Для создания нового чертежа или открытия уже существующего используются методы объекта DocumentCollection. Метод Add создаёт новый файл чертежа на основе файла шаблона (dwt-файла) и добавляет созданный файл в коллекцию DocumentCollection. Метод Open открывает существующий файл чертежа.

Создание нового файла чертежа

    В данном примере используется метод Add для создания чертежа на основе шаблона acad.dwt.

Код VB.NET

   1:  Imports Autodesk.AutoCAD.ApplicationServices
   2:  Imports Autodesk.AutoCAD.DatabaseServices
   3:  Imports Autodesk.AutoCAD.Runtime 
   4:   
   5:  <CommandMethod("NewDrawing", CommandFlags.Session)> _
   6:  Public Sub NewDrawing()
   7:   
   8:    '' Указываем нужный нам файл шаблона. Если шаблон не будет найден, то за основу будет взят тот, 
   9:    '' который в настройках указан используемым по умолчанию
  10:    Dim strTemplatePath As String = "acad.dwt"
  11:    Dim acDocMgr As DocumentCollection = Application.DocumentManager
  12:    Dim acDoc As Document = acDocMgr.Add(strTemplatePath)
  13:    acDocMgr.MdiActiveDocument = acDoc
  14:  End Sub

Код C#

   1:  using Autodesk.AutoCAD.ApplicationServices;
   2:  using Autodesk.AutoCAD.DatabaseServices;
   3:  using Autodesk.AutoCAD.Runtime; 
   4:   
   5:  [CommandMethod("NewDrawing", CommandFlags.Session)]
   6:  public static void NewDrawing()
   7:  {
   8:    // Указываем нужный нам файл шаблона. Если шаблон не будет найден, то за основу будет взят тот, 
   9:    // который в настройках указан используемым по умолчанию
  10:    string strTemplatePath = "acad.dwt"; 
  11:   
  12:    DocumentCollection acDocMgr = Application.DocumentManager;
  13:    Document acDoc = acDocMgr.Add(strTemplatePath);
  14:    acDocMgr.MdiActiveDocument = acDoc;
  15:  }

Код VBA / ActiveX

   1:  Sub NewDrawing()
   2:      Dim strTemplatePath As String
   3:      strTemplatePath = "acad.dwt"
   4:      Dim docObj As AcadDocument
   5:      Set docObj = ThisDrawing.Application.Documents.Add(strTemplatePath)
   6:  End Sub

Открытие существующего файла чертежа

В следующем примере используется метод Open - для открытия существующего чертежа. Перед открытием файла, следует сначала убедиться в его наличии (что и делается в следующем коде).

Код VB.NET

   1:  Imports System.IO
   2:  Imports Autodesk.AutoCAD.ApplicationServices
   3:  Imports Autodesk.AutoCAD.DatabaseServices
   4:  Imports Autodesk.AutoCAD.Runtime 
   5:   
   6:  <CommandMethod("OpenDrawing", CommandFlags.Session)> _
   7:  Public Sub OpenDrawing()
   8:    Dim strFileName As String = "C:\campus.dwg"
   9:    Dim acDocMgr As DocumentCollection = Application.DocumentManager 
  10:   
  11:    If (File.Exists(strFileName)) Then
  12:        acDocMgr.Open(strFileName, False)
  13:    Else
  14:        acDocMgr.MdiActiveDocument.Editor.WriteMessage("Файла " & strFileName & _
  15:                                                       " не существует.")
  16:    End If
  17:  End Sub

Код C#

   1:  using System.IO;
   2:  using Autodesk.AutoCAD.ApplicationServices;
   3:  using Autodesk.AutoCAD.DatabaseServices;
   4:  using Autodesk.AutoCAD.Runtime; 
   5:   
   6:  [CommandMethod("OpenDrawing", CommandFlags.Session)]
   7:  public static void OpenDrawing()
   8:  {
   9:    string strFileName = "C:\\campus.dwg";
  10:    DocumentCollection acDocMgr = Application.DocumentManager; 
  11:   
  12:    if (File.Exists(strFileName))
  13:    {
  14:        acDocMgr.Open(strFileName, false);
  15:    }
  16:    else
  17:    {
  18:        acDocMgr.MdiActiveDocument.Editor.WriteMessage("Файла " + strFileName + 
  19:                                                       " не существует.");
  20:    }
  21:  }

Код VBA / ActiveX

   1:  Sub OpenDrawing()
   2:      Dim dwgName As String
   3:      dwgName = "c:\campus.dwg"
   4:      If Dir(dwgName) <> "" Then
   5:          ThisDrawing.Application.Documents.Open dwgName
   6:      Else
   7:          MsgBox "Файла " & dwgName & " не существует."
   8:      End If
   9:  End Sub

Comments