Сохранение текущего профиля

Автор Тема: Сохранение текущего профиля  (Прочитано 6661 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Добрый день,
Подскажите, пожалуйста.
Нужно сделать кнопки, для сохранения текущего профиля и для применения сохраненного профиля (т.е. вывести на кнопки Экспорт/Импорт профиля).
Не могу найти, можно ли как то доковыряться до этих функций для профиля через API?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Сохранение текущего профиля
« Ответ #1 : 13-04-2017, 16:33:04 »
Какого профиля? Какие кнопки? Куда добавить? О чем речь вообще?

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Re: Сохранение текущего профиля
« Ответ #2 : 13-04-2017, 16:44:14 »
Текущего профиля, речь о профилях пользователя. Можно ли как-то запользовать через API функции во вложении?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сохранение текущего профиля
« Ответ #3 : 13-04-2017, 17:17:21 »
Это можно сделать через COM/ActiveX: Application.Preferences.Profiles





Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Re: Сохранение текущего профиля
« Ответ #4 : 18-04-2017, 14:10:54 »
Что-то не получается.
Редко в Автокаде что-то делаю, возможно сам туплю. )
Есть ли пример какой нибудь?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сохранение текущего профиля
« Ответ #5 : 18-04-2017, 14:12:31 »
Есть ли пример какой нибудь?
Примера нет. Где код в котором "не получается"?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сохранение текущего профиля
« Ответ #6 : 18-04-2017, 14:56:03 »
Вот готовый пример:
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.Runtime;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3. using Autodesk.AutoCAD.Interop;
  4.  
  5. [assembly: CommandClass(typeof(AutoCAD_CSharp_plug_in8.MyCommands))]
  6.  
  7. namespace AutoCAD_CSharp_plug_in8
  8. {
  9.   public class MyCommands
  10.   {
  11.     [CommandMethod("ExpProf")]
  12.     public void MyCommand()
  13.     {
  14.       AcadApplication app = Application.AcadApplication as AcadApplication;
  15.       AcadPreferences pref = app.Preferences;
  16.       AcadPreferencesProfiles profiles = pref.Profiles;
  17.       profiles.ExportProfile(profiles.ActiveProfile, @"C:\Myprofile.arg");
  18.     }
  19.   }
  20. }

Чтобы код скомпилировался необходимо добавить к References две dll-ки:
Autodesk.AutoCAD.Interop.dll и Autodesk.AutoCAD.Interop.Common.dll
Взять их можно или из соответствующего каталога AutoCAD, или из соответствующего ObjectARX SDK. Следует учитывать, что эти dll-ки зависят от разрядности (32/64 бита) AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Elfilagas 18-04-2017, 16:22:24

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Сохранение текущего профиля
« Ответ #7 : 18-04-2017, 15:12:35 »
Предыдущий вариант работает в любой версии AutoCAD и с любым .NET Framework. Этот работает только при наличии .NET Framework 4 или более новый. Зато не требует подключения dll'ек и привязки к конкретной разрядности AutoCAD.

Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.Runtime;
  2. using Autodesk.AutoCAD.ApplicationServices;
  3.  
  4. [assembly: CommandClass(typeof(AutoCAD_CSharp_plug_in8.MyCommands))]
  5.  
  6. namespace AutoCAD_CSharp_plug_in8
  7. {
  8.   public class MyCommands
  9.   {
  10.     [CommandMethod("ExpProf")]
  11.     public void MyCommand()
  12.     {
  13.       dynamic app = Application.AcadApplication;
  14.       dynamic pref = app.Preferences;
  15.       dynamic profiles = pref.Profiles;
  16.       profiles.ExportProfile(profiles.ActiveProfile, @"C:\Myprofile.arg");
  17.     }
  18.   }
  19. }

Можешь выбирать на свой вкус.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ElfilagasАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 117
  • Карма: 4
Re: Сохранение текущего профиля
« Ответ #8 : 18-04-2017, 16:42:08 »
Спасибо. Пытался все в одну строку нагородить, в итоге с параметрами при экспорте накосячил. )
С импортом разобрался.