Как проверить, что пользователь указал на внешнюю ссылку

Автор Тема: Как проверить, что пользователь указал на внешнюю ссылку  (Прочитано 6511 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Подскажите.

Через EditorInput делаю выбор примитива

Код - C# [Выбрать]
  1. PromptEntityResult res = .. GetEntity(...);

Как мне проверить, что пользователь
указал элемент внешней ссылки?


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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Код - C# [Выбрать]
  1. PromptEntityResult per = ed.GetEntity(peo);
  2. if (per.Status != PromptStatus.OK)
  3. return;
  4.  
  5. // Open the block reference
  6.  
  7. BlockReference br =
  8. (BlockReference)tr.GetObject(
  9. per.ObjectId,
  10. OpenMode.ForRead
  11. );
  12.  
  13. // And the underlying block table record
  14.  
  15. btr =
  16. (BlockTableRecord)tr.GetObject(
  17. br.BlockTableRecord,
  18. OpenMode.ForRead
  19. );
  20.  
  21. // If it's an xref, store its ObjectId
  22.  
  23. if (btr.IsFromExternalReference)
  24. {
  25.         ed.WriteMessage("\nXref ID: " + br.BlockTableRecord.ToString());
  26.         xrefId = br.BlockTableRecord;
  27. }
  28. else
  29. {
  30.         // Otherwise print a message and loop
  31.        
  32.         ed.WriteMessage(
  33.         "\nMust be an external reference."
  34.         );
  35. }

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

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Editor.GetNestedEntity
А вот эта функция (Editor.GetNestedEntity)
начиная с какого AutoCAD появилась?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А вот эта функция (Editor.GetNestedEntity)
начиная с какого AutoCAD появилась?
С AutoCAD 2006. Впрочем в 2005-ом я не проверял. :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Это не гарантирует выбор элемента внешней ссылки, но позволяет выбрать примитивы внутри внешней ссылки.
Так что же я получу коллекцию элементов ссылки, а там потом сам буду выбирать то что мне нужно
по признаку геометрического положения?

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

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

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

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