Создать новый документ AutoCAD 2013-2015

Автор Тема: Создать новый документ AutoCAD 2013-2015  (Прочитано 4901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
В AutoCAD с 2006 по 2012 можно было добавить документ методом add(...) из DocumentManager
Метод Add пропал в API AutoCAD 2013, 2014, 2015.
И есть ли этому методу альтернатива?

На картинке ниже покажу вызов этого метода.

Отмечено как Решение Александр Ривилис 04-10-2014, 05:02:34

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: Создать новый документ AutoCAD 2013-2015
« Ответ #1 : 30-09-2014, 10:33:36 »
Начиная с AutoCAD 2013, часть ранее привычных тебе методов присутствуют в виде методов расширений, что автоматом сказывается на роли использования "алиасов" (см. код ниже). Кроме того, часть функционала, ранее присутствовавшего в acdbmgd.dll и acmgd.dll, вынесена в библиотеку accoremgd.dll (поэтому не забывай подключать и её).

Интересующий тебя метод, и не только он, отныне живёт в классе Autodesk.AutoCAD.ApplicationServices.DocumentCollectionExtension класса AcMgd.dll.

Код - C# [Выбрать]
  1. // © Андрей Бушман, 2014
  2. using System;
  3.  
  4. using cad = Autodesk.AutoCAD.ApplicationServices.Application;
  5. using Ap = Autodesk.AutoCAD.ApplicationServices;
  6. using Db = Autodesk.AutoCAD.DatabaseServices;
  7. using Ed = Autodesk.AutoCAD.EditorInput;
  8. using Rt = Autodesk.AutoCAD.Runtime;
  9. using Hs = Autodesk.AutoCAD.DatabaseServices.HostApplicationServices;
  10. using Us = Autodesk.AutoCAD.DatabaseServices.SymbolUtilityServices;
  11.  
  12. // Для того, чтобы работал вариант № 1 (см. код метода SomeCommand), начиная с
  13. // AutoCAD 2013 следующая строка необходима:
  14. using Autodesk.AutoCAD.ApplicationServices;
  15. // В противном случае следует использовать вариант №2.
  16.  
  17. [assembly: Rt.CommandClass(typeof(Bushman.CAD.Sandbox.Commands))]
  18.  
  19. namespace Bushman.CAD.Sandbox {
  20.  
  21.     public sealed class Commands {
  22.  
  23.         [Rt.CommandMethod("SomeCommand", Rt.CommandFlags.Modal)]
  24.         public void SomeCommand() {
  25.             String template_name = "acadiso.dwt";
  26.             // Вариант №1:
  27.             Ap.Document doc1 = Autodesk.AutoCAD.ApplicationServices.Application
  28.                 .DocumentManager.Add(template_name);
  29.             // Вариант №2:
  30.             Ap.Document doc2 = Ap.DocumentCollectionExtension.Add(cad
  31.                 .DocumentManager, template_name);
  32.            // ...
  33.         }
  34.     }
  35. }
« Последнее редактирование: 30-09-2014, 10:52:45 от Андрей Бушман »

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Создать новый документ AutoCAD 2013-2015
« Ответ #2 : 30-09-2014, 13:11:55 »
Спасибо большое! Все понятно!