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

ADN Club => AutoCAD .NET API => Тема начата: Привалов Дмитрий от 22-09-2015, 15:08:45

Название: Как определить версию Proxy объектов в NET
Отправлено: Привалов Дмитрий от 22-09-2015, 15:08:45
Смысл такой
есть ProjectStudio под автокад 2008, есть ObjectEnabler под 2014.
ObjectEnabler  предупреждает что необходимо переделать объекты.
Т.е. ObjectEnabler  как-то определяет версию и заменяет объекты более новыми.

Можно ли получить версию у прокси объектов с помощью .NET API?

Пытался получить версию так, но похоже это DWG_VERSION .
Код - C# [Выбрать]
  1. Editor editor = document.Editor;
  2.  PromptEntityResult promptEntityResult = editor.GetEntity("\nУкажите графический объект");
  3.  if (promptEntityResult.Status == PromptStatus.OK)
  4. {
  5.    ObjectId objId = promptEntityResult.ObjectId;
  6.    RXClass objectClass = objId.ObjectClass;
  7.    System.Version objectVersion = objectClass.ClassVersion;
  8. }
Название: Re: Как определить версию Proxy объектов в NET
Отправлено: Александр Ривилис от 22-09-2015, 15:12:58
Привалов Дмитрий.
Напоминаю про правила форматирования кода на форуме.
Название: Re: Как определить версию Proxy объектов в NET
Отправлено: Александр Ривилис от 22-09-2015, 15:33:32
Можно ли получить версию у прокси объектов с помощью .NET API?
Нет. Потому что когда объекты находятся в состоянии Proxy у них нет информации о версии приложения. Только при наличии Object Enabler'а или самого приложения есть информация о версии приложения. И то её можно получить только если приложение само разработано так, что возвращает эту версию каким либо способом. В противном случае это лишь внутренняя информация приложения.
Можешь в документации ObjectARX SDK глянуть два примера:
Sample Code for dwgInFields() (http://docs.autodesk.com/ACDMAC/2015/ENU/Mac_Lightsaber_Dev_Help/Developer%20Guide/index.html?url=files/GUID-043AAA85-3C03-41DF-BE4D-13290686E871.htm,topicNumber=d30e31924)
Sample Code for dwgOutFields() (http://docs.autodesk.com/ACDMAC/2015/ENU/Mac_Lightsaber_Dev_Help/Developer%20Guide/index.html?url=files/GUID-043AAA85-3C03-41DF-BE4D-13290686E871.htm,topicNumber=d30e31924)
И это описание: Class Data or Xdata Version Numbers (http://docs.autodesk.com/ACDMAC/2014/ENU/Mac_Sandstone_Dev_Help/Developer%20Guide/index.html?url=files/GUID-8BC0B508-9C15-41A4-AD9B-D3BFB6E57C24.htm,topicNumber=d30e34372)
Название: Re: Как определить версию Proxy объектов в NET
Отправлено: Привалов Дмитрий от 22-09-2015, 16:14:18
...когда объекты находятся в состоянии Proxy у них нет информации о версии приложения. Только при наличии Object Enabler'а или самого приложения есть информация о версии приложения
Есть приложение под 2008
и Object Enabler под 2014.

Sample Code for dwgInFields()
Sample Code for dwgOutFields()
Спасибо буду смотреть.
Видимо что-то подобное искал Андрей)
http://adn-cis.org/forum/index.php?topic=530.0