Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

как получить Enumeration по ТеxtElement-у в JMDL

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
Bally



Зарегистрирован: 20.11.2006
Сообщения: 19
Откуда: Kiev

СообщениеДобавлено: Вт Ноя 21, 2006 10:35 am    Заголовок сообщения: как получить Enumeration по ТеxtElement-у в JMDL Ответить с цитатой

Мне нужно получить все элементы из которых состоит ТеxtElement, пользуя метод drop, который должен вернуть полный Enumeration этих элементов, я получаю только первый, такая фигня происходит в версии v8, в более поздних не пробовал, хотя судя по тому, что они забили на JMDL, должно быть тоже самое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Вт Ноя 21, 2006 4:18 pm    Заголовок сообщения: Ответить с цитатой

Что значит - в более поздних версиях чем v8? Surprised В восьмерке JMDL может просто глючить, он нормально работает под семеркой.
На какие элементы надо разбить TextElement?
Желательно привести код.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Bally



Зарегистрирован: 20.11.2006
Сообщения: 19
Откуда: Kiev

СообщениеДобавлено: Ср Ноя 22, 2006 1:03 pm    Заголовок сообщения: Ответить с цитатой

На составляющие его - если воспользоваться стандартной кнопкой - "Drop" в MicroStation - и выбрать - разбивать текст - он разбивается на шейпы и линии, вот их мне и нужно получить
код простой

Enumeration enu = txt.drop();
whlie ( enu.hasMoreElements() )
{
Element el = (Element) enu.nextElement();
System.out.println(" element from txt = " + el );
}// end of while ( enu.hasMoreElements() )

где txt - TextElement полученный из сканирования всего файла, либо из фенса.

Возвращает Enumeration только с 1=м элементом
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Ноя 22, 2006 2:10 pm    Заголовок сообщения: Ответить с цитатой

Что пишет println?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Bally



Зарегистрирован: 20.11.2006
Сообщения: 19
Откуда: Kiev

СообщениеДобавлено: Ср Ноя 22, 2006 3:30 pm    Заголовок сообщения: Ответить с цитатой

Честно выдает первый элемент - например Line Element
на этом вывод заканчивается
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Ноя 22, 2006 8:15 pm    Заголовок сообщения: Ответить с цитатой

Вот нормально работающий код (MS v7.1)
Разбивает текст, выводит информацию о восьми LineElement,
рисует эти элементы в виде слова

Код:

TextElement txt;
DPoint oOriginPoint = new DPoint();

try{   
   txt = new TextElement(null, "WHAT", oOriginPoint, null, null);
   for (java.util.Enumeration e = txt.drop();  e.hasMoreElements() ;) {
      Element el = (Element)e.nextElement();
      System.out.println(el);
      DgnKernel.session.redrawElement(el, View.NORMALDRAW, new ViewMask(0));
   }            
}
catch (com.bentley.dgn.Element.Exception exc){   
   exc.printStackTrace();
}      
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Bally



Зарегистрирован: 20.11.2006
Сообщения: 19
Откуда: Kiev

СообщениеДобавлено: Чт Ноя 23, 2006 11:17 am    Заголовок сообщения: Ответить с цитатой

Прекрасно работающий в 7-ке код - не работает в 8-ке, возвращает пустой энумератор, тоесть фор вообще не проходит. ((((
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Чт Ноя 23, 2006 11:55 am    Заголовок сообщения: Ответить с цитатой

Ну не судьба значит... что ж поделаешь, если они такую вешчь забросили...
мой совет - переходите на MDL или VBA
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Bally



Зарегистрирован: 20.11.2006
Сообщения: 19
Откуда: Kiev

СообщениеДобавлено: Пт Ноя 24, 2006 9:52 am    Заголовок сообщения: Ответить с цитатой

Не, ну выкрутиться всегда можно - МДЛ, ВБА (ucm-ки еще были когда то)))
ПРосто раньше, когда я им (Bentley) писал о глюках, в следующей версии МС (тоесть не 7 - 8, а 7.12 -7.13) они исправляли этот глюк, а теперь любое упоминание о JMDL заканчивается сообщением, что мы на него забили, и больше не занимаемся, и не фиг вообще нам про это писать. Don't know
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group