Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: prajdziswet от 23-12-2018, 17:31:29

Название: Открытие подшивки
Отправлено: prajdziswet от 23-12-2018, 17:31:29
Как открыть подшивку на C#?
в интернете что-то написано через "AcSmSheetSetMgr" но нехватает компоненов, у меня загруженно accoremgd,acdbmgd,acmgd.
Может не через этот компонент => задача просто открыть подшівку по адресу (что-то не получается).
autocad 2014x64
Заранее спасибо
Название: Re: Открытие подшивки
Отправлено: Александр Ривилис от 23-12-2018, 17:38:26
Посмотри здесь: https://adndevblog.typepad.com/autocad/2013/09/using-sheetset-manager-api-in-vbnet.html
Название: Re: Открытие подшивки
Отправлено: prajdziswet от 23-12-2018, 18:14:28
"The first thing that you need to know is how to reference the AcSmComponents library.  The AcSmComponents library can be found in the Autodesk Shared folders....Once you have referenced the library"
Я уже пытался загрузить
(https://i.postimg.cc/3Wf5bY2Z/Clip2net-181223181248.png) (https://postimg.cc/3Wf5bY2Z)
но почемуто у меня эта библиотека не доступна, или я что-то непонимаю, поэтому и решил спросить. Наверное что-то не то делаю....
Название: Re: Открытие подшивки
Отправлено: Александр Ривилис от 23-12-2018, 18:19:39
но почемуто у меня эта библиотека не доступна, или я что-то непонимаю
Не dll, а tlb. Для AutoCAD 2014: acsmcomponents19.tlb причем если x64, то и acsmcomponents19.tlb для x64. Его можно взять из ObjectARX SDK 2014 из каталога inc-x64
Ну и можно отсюда: "C:\Program Files\Common Files\Autodesk Shared\AcSmComponents19.tlb"
Название: Re: Открытие подшивки
Отправлено: Александр Ривилис от 23-12-2018, 18:33:12
Код - INI [Выбрать]
  1. tlbimp acsmcomponents19.tlb /out:acsmcomponents19.Interop.dll /namespace:AcSm /machine:x64
Вот так можно превратить acsmcomponents19.tlb в dll (acsmcomponents19.Interop.dll) которую можно подключить к .NET-сборке, загружаемой в AutoCAD.
Название: Re: Открытие подшивки
Отправлено: prajdziswet от 23-12-2018, 20:01:14
Получилось перегнать и подключить, но опять надо помощь  :(
Код - C# [Выбрать]
  1.                 // Получаем менеджера подшивки
  2.                 AcSmSheetSetMgr mgr = new AcSmSheetSetMgr();
  3.                 // Создаём новый объект базы данных подшивки
  4.                 AcSmDatabase db = new AcSmDatabase();
  5.                 // Пытаемся загрузить dst-файл
  6.                 try
  7.                 { db = mgr.OpenDatabase("d:\\2\\Новая подшивка (1).dst", true);}
  8.                 catch (System.Exception ex)
  9.                 {
  10.                     throw new System.Exception(string.Format(
  11.                     "Не удалось открыть файл подшивки. Убедитесь, что он сейчас никем не используется. Сообщение: {0}", ex.Message));
  12.                 }
В первом случае ничего не делает, а во втором вылетает...такое чуство что видимость false....тоесть я не вижу чтобы подшивка отобразилась на экране?
Название: Re: Открытие подшивки
Отправлено: trir от 23-12-2018, 20:44:43
Цитировать
я не вижу чтобы подшивка отобразилась на экране?
и не будет, это не диспетчер подшивок
Название: Re: Открытие подшивки
Отправлено: Александр Ривилис от 23-12-2018, 20:55:00
В первом случае ничего не делает
Делает: http://adn-cis.org/forum/index.php?topic=334.0
И еще здесь: http://adn-cis.org/forum/index.php?topic=2759.0
Название: Re: Открытие подшивки
Отправлено: prajdziswet от 23-12-2018, 21:02:08
Огромное спасибо, нашел тут и открыл через командную строку
http://adn-cis.org/forum/index.php?topic=7997.0

 :) :) :)

п.с жаль конечно, как я понял её програмнно нельзя закрыть (сам диспечер)
Название: Re: Открытие подшивки
Отправлено: Вильдар от 24-12-2018, 08:50:19
п.с жаль конечно, как я понял её програмнно нельзя закрыть (сам диспечер)
Палитру диспетчера подшивок можно закрыть командой _SHEETSETHIDE.
Название: Re: Открытие подшивки
Отправлено: Александр Ривилис от 24-12-2018, 13:51:04
Палитру диспетчера подшивок можно закрыть командой _SHEETSETHIDE.
Палитру, но не подшивку.