Как вытащить тексты из блока

Автор Тема: Как вытащить тексты из блока  (Прочитано 13065 раз)

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

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Re: Как вытащить тексты из блока
« Ответ #15 : 14-12-2020, 17:58:15 »
А как получить MText для Leader?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #16 : 14-12-2020, 18:02:38 »
А как получить MText для Leader?
Leader.Annotation
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Re: Как вытащить тексты из блока
« Ответ #17 : 14-12-2020, 18:23:24 »
Не понял. Получил Leader's Annotation ID, и что дальше?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #18 : 14-12-2020, 18:27:13 »
Не понял. Получил Leader's Annotation ID, и что дальше?
Дальше открыть его (Transaction.GetObject(...)), проверить тип, и если это MText - то вы его получили.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #19 : 14-12-2020, 18:28:31 »
Борис_С,
Очень рекомендую скачать ObjectARX SDK соответствующей версии и изучать документацию, которая в его составе.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Re: Как вытащить тексты из блока
« Ответ #20 : 14-12-2020, 18:31:41 »
Не понял. Получил Leader's Annotation ID, и что дальше?
Дальше открыть его (Transaction.GetObject(...)), проверить тип, и если это MText - то вы его получили.
Спасибо. Сразу не сообразил. Теперь понятно.

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Re: Как вытащить тексты из блока
« Ответ #21 : 15-12-2020, 16:43:57 »
Получается, что когда я прохожу по всем элементам чертежа, если у выноски есть многострочный текст, я сначала нахожу этот многострочный текст:
Код - C# [Выбрать]
  1.                     if (en.GetType() == typeof(Leader))
  2.                     {
  3.                         ObjectId objectId = ((Leader)en).Annotation;
  4.                         Entity acEnt = acTrans.GetObject(objectId,
  5.                                  OpenMode.ForRead) as Entity;
  6.                         if (acEnt.GetType() == typeof(MText))
  7.                         {
  8.                             string str = ((MText)acEnt).Contents;
  9.                             ListNotes.Add(new CNote(str, objectId, DataType.Leader, DataType.MText));
  10.                         }
  11.                     }
  12.  
ObjectId objectId = ((Leader)en).Annotation;
а потом опять выхожу на этот многострочный текст:
Код - C# [Выбрать]
  1.                     if (en.GetType() == typeof(MText))
  2.                     {
  3.                         string str = ((MText)en).Contents;
  4.                         ListNotes.Add(new CNote(str, acObjId, DataType.MText, DataType.MText));
  5.                     }
  6.  
Т.е, чтобы дважды не учитывать этот многострочный текст мне нужно запомнить objectId и потом проверить, что этот objectId уже был обработан.
Причем непонятно, кто придет в цикле первым MText или Leader.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #22 : 15-12-2020, 16:58:28 »
Пожалуй Leader ты можешь не обрабатывать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #23 : 15-12-2020, 17:04:37 »
Теоретически, интересующий тебя текст может быть и в размерах (Dimension) в качестве аннотации. Это уже внутри самого объекта Dimension, т.е. другим способом ты его не находишь или находишь в одном из анонимных блоков. Хотя маловероятно...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Борис_САвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 238
  • Карма: 3
Re: Как вытащить тексты из блока
« Ответ #24 : 15-12-2020, 18:13:29 »
Меня интересуют ссылки на ГОСТы. Вряд ли они будут в размерах.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как вытащить тексты из блока
« Ответ #25 : 15-12-2020, 18:18:15 »
Меня интересуют ссылки на ГОСТы. Вряд ли они будут в размерах.
Поэтому я и написал, что:
Хотя маловероятно...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение