1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Получение объектов типа текст с текущей страницы

Сценарии / Модули API

Модератор: специалисты Eplan

Ответить

Автор темы
Brian Eastman
здесь недавно
здесь недавно
Сообщения: 29
Зарегистрирован: 23 ноя 2017, 00:14
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 4 раза

Получение объектов типа текст с текущей страницы

Сообщение Brian Eastman »

Всем привет!
Есть задача требующая работы с текстом. Необходимо получать весь текст именно с выделенной страницы. Да данный момент текст получилось собрать только со всего проекта через DMObjectFinder и кастом фильтр. Что при большом проекте очень ресурсозатратно.
Однако с выделенной страницы получилось получить функции через CurrentPage, но через CurrentPage нельзя получить текст)
Подскажите пожалуйста, куда копать, через какой класс можно это сделать?
Спасибо!
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Получение объектов типа текст с текущей страницы

Сообщение aranea »

давайте посмотрим ваш код!
про DMObjectFinder понятно, про выделенные страницы прошу подробнее
Изображение

Автор темы
Brian Eastman
здесь недавно
здесь недавно
Сообщения: 29
Зарегистрирован: 23 ноя 2017, 00:14
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 4 раза

Получение объектов типа текст с текущей страницы

Сообщение Brian Eastman »

Вот выдержка из кода, выделеные страницы получил через SelectionSet, и метод GetSelectedPages прошу прощения за то что ввел в заблуждения, CurrentPage это моя переменная:)

Код: Выделить всё

SelectionSet Set = new SelectionSet();
Page[] CurrentPage = Set.GetSelectedPages();
List<Function[]> Functions = new List<Function[]>();
//цикл записи в всех устройств на странице
foreach (Page item in CurrentPage)
{
       Functions.Add(item.Functions);
}
Данным способом получил все функции с выделенных страниц.
Но текст таким образом получить нельзя, поэтому и прошлось использовать DMObjectFinder, но на большом проекте тупит сильно.
Поэтому и вопрос, можно ли как-то получить текст с выделенных страниц?:)
Последний раз редактировалось aranea 09 июл 2019, 22:48, всего редактировалось 1 раз.
Причина: оформил код в тег <code></code>
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Получение объектов типа текст с текущей страницы

Сообщение aranea »

текст это не Function, это Eplan::EplApi::DataModel::Graphics::Text
а у Page есть что-то там с графическими объектами =)

ps. вот удобная штука, чтобы понять что за объект выбран и как с ним работать viewtopic.php?f=206&t=2919&p=47303#p47274
Изображение

Автор темы
Brian Eastman
здесь недавно
здесь недавно
Сообщения: 29
Зарегистрирован: 23 ноя 2017, 00:14
Имя: Антон
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 18 раз
Поблагодарили: 4 раза

Получение объектов типа текст с текущей страницы

Сообщение Brian Eastman »

aranea писал(а): 09 июл 2019, 22:50 а у Page есть что-то там с графическими объектами =)
Да, верно, спасибо! Почему раньше не сообразил использовать свойство AllGraphicalPlacements, не могу понять. Думаю, что не сложно будет достать теперь текст.
По результатам отпишусь
Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

Получение объектов типа текст с текущей страницы

Сообщение aranea »

вот еще удобная конструкция

Код: Выделить всё

List<Text> oTextes = oPage.AllGraphicalPlacements.OfType<Text>().ToList();
у меня почему-то еще текст заполнитель с отчетов туда попадает, хотя у него другой тип, но в целом работает
Изображение
Ответить

Вернуться в «Eplan API»