Как добраться до быстрых ссылок (ShortCuts)?

Автор Тема: Как добраться до быстрых ссылок (ShortCuts)?  (Прочитано 16103 раз)

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

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

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

  • ADN Club
  • **
  • Сообщений: 79
  • Карма: 26
Как в Civil реализована работа с быстрыми ссылками? Искал, но наверное плохо...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение


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

  • ADN Club
  • **
  • Сообщений: 79
  • Карма: 26
Пока удалось ограничиться чтением XML файлов по задаваемому пользователем пути и созданием отчета о том, что вставлено, а что нет.
Думаю, дальше будет веселее.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Самое интересное - для функционирования уже созданных и вставленных быстрых ссылок XML совсем необязателен. Это легко проверить, например, удалив папку _Shortcuts. Связь со ссылкой при этом не потеряется. Подозреваю, что информация о местоположении ссылок хранится где-то в чертеже, но в таком месте, куда не залезть из API. Я так предполагаю, что где-то в особом разделе "Root": http://civilizeddevelopment.typepad.com/civilized-development/2011/07/is-my-drawing-a-civil-3d-drawing.html

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Вполне возможно, но сидят они в каких-то экземплярах недокументированного класса, который скорее всего и не имеет обертки на .NET
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 79
  • Карма: 26
Вполне возможно, но сидят они в каких-то экземплярах недокументированного класса, который скорее всего и не имеет обертки на .NET
У напорной трубы, вставленной как БС, в Referenced By можно найти объект AeccDbRootSettingsNode.
У локальных труб такого нет. Оно?


Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Похоже. Но кроме того, что это объект такого типа, никаких других данных из него не получить.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
У напорной трубы, вставленной как БС, в Referenced By можно найти объект AeccDbRootSettingsNode.
У локальных труб такого нет. Оно?
Похоже оно. Но без аналога OMF но только для Civil 3D, который Autodesk никому не даёт, к свойствам и методам не добраться.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Впрочем попробуй добраться до AeccDbRootSettingsNode не через MGDDBG, а через ARXDBG и посмотри DXF-коды - возможно там есть что-то интересное.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Впрочем попробуй добраться до AeccDbRootSettingsNode не через MGDDBG, а через ARXDBG
Я не смог найти в ARXDBG аналог ReferencedBy. Кнопка "References..." показывает только информацию, аналогичную ReferencedTo в MGDDBG.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Впрочем попробуй добраться до AeccDbRootSettingsNode не через MGDDBG, а через ARXDBG
Я не смог найти в ARXDBG аналог ReferencedBy. Кнопка "References..." показывает только информацию, аналогичную ReferencedTo в MGDDBG.
А его там и нет к сожалению. Найди метку (Handle) этого объекта при помощи MGDDBG и используй лисп в командной строке:
Код - Auto/Visual Lisp [Выбрать]
  1. (entget (handent h) '("*"))
где h - метка этого объекта (в двойных кавычках, так как это строка). Если там что-то есть в DXF, то будет видно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Не хочет "энтгетиться":
(entget (handent "1D9") '("*"))
nil
Команда: (handent "1D9")
<Имя объекта: 7ffffb68310>
Команда: (entget (handent "1D9"))
nil
А это попытка прочитать COM-данные:
(vlax-dump-Object (vlax-ename->vla-object (handent "1D9")) T)_$

#<VLA-OBJECT IAcadObject 000000005ba13aa8>
_$

; IAcadObject: Стандартный интерфейс для базовых объектов AutoCAD.
; Значения свойств:
;   Application (RO) = #<VLA-OBJECT IAcadApplication 000000013fda3f10>
;   Document (RO) = #<VLA-OBJECT IAcadDocument 0000000009f5e728>
;   Handle (RO) = "1D9"
;   HasExtensionDictionary (RO) = 0
;   ObjectID (RO) = 42
;   ObjectName (RO) = "AeccDbRootSettingsNode"
;   OwnerID (RO) = 43
; Поддерживаемые методы:
;   Delete ()
;   GetExtensionDictionary ()
;   GetXData (3)
;   SetXData (2)

T
_$

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
У как всё запущено... Значит dxf-коды вообще не используются для этого объекта. :(
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 79
  • Карма: 26
Значит dxf-коды вообще не используются для этого объекта.
0
CLASS
  1
AECC_ROOT_SETTINGS_NODE
  2
AeccDbRootSettingsNode
  3
AeccvBase70|Product Desc: AutoCAD Civil 3D |Company: Autodesk,Inc. |WEB Address: www.autodesk.com
 90
      129
 91
        1
280
     0
281
     0