Прошу помощи с кодом

Автор Тема: Прошу помощи с кодом  (Прочитано 29394 раз)

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

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Прошу помощи с кодом
« Ответ #15 : 25-11-2018, 10:33:42 »
на VBA кажись тоже можно добраться до OD - я находил файл справки в самом Map 3D
Код - C# [Выбрать]
  1.         public List<KeyValuePair<string, string>> GetParams(ObjectId id)
  2.         {
  3.             MapApplication mapApp = HostMapApplicationServices.Application;
  4.             ProjectModel activeProject = mapApp.ActiveProject;
  5.             OD.Tables tableList = activeProject.ODTables;
  6.             OD.Table cTable;
  7.             List<KeyValuePair<string, string>> rList = new List<KeyValuePair<string, string>>();
  8.             try
  9.             {
  10.                 if (!id.IsErased)
  11.                 {
  12.                     using (OD.Records records = tableList.GetObjectRecords(0, id, OpenMode.OpenForRead, false))
  13.                     {
  14.                         if (records.Count > 0)
  15.                         {
  16.                             OD.Record trec = records[0];
  17.                             cTable = tableList[trec.TableName];
  18.                             for (int i = 0; i < trec.Count; i++)
  19.                             {
  20.                                 if (ATTRS_Dict.Keys.Contains(cTable.FieldDefinitions[i].Name))
  21.                                 {
  22.                                     rList.Add(new KeyValuePair<string, string>(cTable.FieldDefinitions[i].Name, trec[i].StrValue));
  23.                                 }
  24.                             }
  25.                         }
  26.                     }
  27.                 }
  28.  
  29.             }
  30.             catch (Exception ex)
  31.             {
  32.  
  33.             }
  34.             return rList;
  35.         }

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Прошу помощи с кодом
« Ответ #16 : 25-11-2018, 10:46:22 »

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #17 : 25-11-2018, 11:33:01 »
trir,
И где ты здесь увидел VBA? Там только .NET.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Прошу помощи с кодом
« Ответ #18 : 25-11-2018, 11:58:52 »
VBA
куда дели файлы справки из Map 3D?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #19 : 25-11-2018, 12:01:47 »
VBA
куда дели файлы справки из Map 3D?
Перечитай тему. Я этот вопрос задал в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #20 : 25-11-2018, 16:13:16 »
Нашел статью: Where to get the AutoCAD Map AutoLISP Reference
Проверил, что в AutoCAD Map 3D 2012 API References есть не только Lisp API, но и COM/AcriveX API (т.е. VBA).Это файл acmapatm.chm
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #21 : 25-11-2018, 16:44:30 »
на VBA кажись тоже можно добраться до OD - я находил файл справки в самом Map 3D
Код - C# [Выбрать]
  1.         public List<KeyValuePair<string, string>> GetParams(ObjectId id)
  2.         {
  3.             MapApplication mapApp = HostMapApplicationServices.Application;
  4.             ProjectModel activeProject = mapApp.ActiveProject;
  5.             OD.Tables tableList = activeProject.ODTables;
  6.             OD.Table cTable;
  7.             List<KeyValuePair<string, string>> rList = new List<KeyValuePair<string, string>>();
  8.             try
  9.             {
  10.                 if (!id.IsErased)
  11.                 {
  12.                     using (OD.Records records = tableList.GetObjectRecords(0, id, OpenMode.OpenForRead, false))
  13.                     {
  14.                         if (records.Count > 0)
  15.                         {
  16.                             OD.Record trec = records[0];
  17.                             cTable = tableList[trec.TableName];
  18.                             for (int i = 0; i < trec.Count; i++)
  19.                             {
  20.                                 if (ATTRS_Dict.Keys.Contains(cTable.FieldDefinitions[i].Name))
  21.                                 {
  22.                                     rList.Add(new KeyValuePair<string, string>(cTable.FieldDefinitions[i].Name, trec[i].StrValue));
  23.                                 }
  24.                             }
  25.                         }
  26.                     }
  27.                 }
  28.  
  29.             }
  30.             catch (Exception ex)
  31.             {
  32.  
  33.             }
  34.             return rList;
  35.         }

Это код на мою программу на С#?

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #22 : 25-11-2018, 16:45:43 »
Проверил, что в AutoCAD Map 3D 2012 API References есть не только Lisp API, но и COM/AcriveX API (т.е. VBA).Это файл acmapatm.chm
Большое спасибо, сейчас буду смотреть

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #23 : 25-11-2018, 16:57:44 »
Нашел статью: Where to get the AutoCAD Map AutoLISP Reference
Проверил, что в AutoCAD Map 3D 2012 API References есть не только Lisp API, но и COM/AcriveX API (т.е. VBA).Это файл acmapatm.chm
Скачал zip-папку, нашел нужный файл и раздел Object Data, но он пустой, как и все остальные разделы. Почему так?
Ни один файл не отображает информацию, только имена разделов есть.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #24 : 25-11-2018, 17:25:14 »
Нашел статью: Where to get the AutoCAD Map AutoLISP Reference
Проверил, что в AutoCAD Map 3D 2012 API References есть не только Lisp API, но и COM/AcriveX API (т.е. VBA).Это файл acmapatm.chm
Скачал zip-папку, нашел нужный файл и раздел Object Data, но он пустой, как и все остальные разделы. Почему так?
Ни один файл не отображает информацию, только имена разделов есть.
Разблокируй сначала файл:

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

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Прошу помощи с кодом
« Ответ #25 : 25-11-2018, 17:25:56 »
Цитировать
Это код на мою программу на С#?
это пример чтения OD
справка не очень полезная, но в своё время именно она помогла мне разобраться в теме - редкий случай когда COM и NET совпадают почти один в один

Цитировать
но он пустой, как и все остальные разделы. Почему так?
https://community.spiceworks.com/topic/1961503-solved-windows-10-chm-help-files-showing-up-blank

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #26 : 25-11-2018, 17:39:10 »


АвтоКАД не хочет определять эти переменные. Что не так?
Вроде говорили, что Цивил должен определять типы данных из Мап 3Д

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #27 : 25-11-2018, 17:47:27 »
АвтоКАД не хочет определять эти переменные. Что не так?
Ты похоже не подключил:



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

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #28 : 25-11-2018, 17:50:43 »
АвтоКАД не хочет определять эти переменные. Что не так?
Ты похоже не подключил:


А где открывается данное окно?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #29 : 25-11-2018, 17:51:49 »


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