Использование ОbjectARX для получения текста с чертежа
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Использование ОbjectARX для получения текста с чертежа

Использование ОbjectARX для получения текста с чертежа

Ответ
Поиск в этой теме
Непрочитано 03.05.2009, 20:47 #1
Использование ОbjectARX для получения текста с чертежа
BesWorland
 
Регистрация: 03.05.2009
Сообщений: 4

При написании простенького приложения с использованием указанной в теме библиотечки столкнулся вот с какой проблемой: как получить текст? Сейчас поясню что я имею ввиду.
Для начала выбираю объект:

acedEntSel (_T("Select text:"), en, pt)

получаю имя. Потом делаю следующее:

struct resbuf *textent;
textent = acdbEntGet(en);
acutPrintf ("\n %s", textent->resval.rstring ) ;

И вместо предполагаемого текста я получаю квадратики. Кто может подсказать в чем проблемма?
Просмотров: 2891
 
Непрочитано 03.05.2009, 23:32
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Ошибок сделано море. Но объясню только три:
1. Нужно проверять какой именно примитив выбрал пользователь. Для этой цели в связном списке, начинающемся с textent нужно найти группу 0 и сравнить ее значение с _T("TEXT") (это если не рассматривать MTEXT)
2. Если выбран текстовый примитив, то нужно в связанном списке
начинающемся с textent найти группу 1. Ее значение и будет текстом.
3. acutPrintf(_T("\n %s"),textent->resval.rstring)

Последний раз редактировалось Александр Ривилис, 03.05.2009 в 23:45.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 04.05.2009, 14:06
#3
BesWorland


 
Регистрация: 03.05.2009
Сообщений: 4


Для этой цели в связном списке, начинающемся с textent нужно найти группу 0 и сравнить ее значение с _T("TEXT") (это если не рассматривать MTEXT)

Прошу прощения за вопросы, честно бы почитал, но просто неоткуда. А тот перевод, что валяется в нете просто отвратителен. Посему спрошу:что значит группа 0? В чем особенности работы с MTEXT?
BesWorland вне форума  
 
Непрочитано 04.05.2009, 16:13
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Боюсь, что без изучения AutoCAD, формата DXF, возможностей ObjectARX у тебя врядли что-то получится. У меня нет возможности полностью изложить все это в пределах данной темы за разумное время.
Для начала обрати внимание на textent->restype и textent->rbnext. Первый описывает тип данных в структуре resbuf, второй указывает на слеующий элемент (структуру resbuf) в односвязном списке. Так вот textent->restype и будет кодом группы. По поводу особенностей работы с MTEXT: текстовая информация хранится в нем в группах 1 и 3. И групп 3 может быть несколько. Все эти строки придется сцепить вместе чтобы получить текст.

Поэкспериментируй с таким кодом:
Код:
[Выделить все]
static void GetTxtStr(void)
{
  ads_name en; ads_point p;
  if (acedEntSel(_T("\nВыберите текстовый примитив: "),en,p) == RTNORM) {
    resbuf *rb = acdbEntGet(en), *rbstart = rb;
    for (; rb; rb=rb->rbnext) {
      if (rb->restype == 1 || rb->restype == 3) {
        acutPrintf(_T("\nСтрока: <%s>"),rb->resval.rstring);
      }
    }
    acutRelRb(rbstart);
  }
}

Последний раз редактировалось Александр Ривилис, 04.05.2009 в 18:54.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 05.05.2009, 01:07
#5
BesWorland


 
Регистрация: 03.05.2009
Сообщений: 4


Спасибо большое, буду пробовать. А где может можно почитать про все это?
BesWorland вне форума  
 
Непрочитано 05.05.2009, 01:28
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Везде и нигде. :-) Ну а если серьезно, то в ObjectARX SDK Docs и Samples - это если дружишь с техническим английским (если не дружишь, то лучше за это и не браться). Из русскоязычной литературы могу посоветовать только одну книгу: Н.Н.Полещук. "AutoCAD: разработка приложений, настройка и адаптация"
Ну еще ответы на многие вопросы по ObjectARX можно найти здесь: http://www.caduser.ru/forum/index.ph...ME=list&FID=24
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 05.05.2009, 16:00
#7
BesWorland


 
Регистрация: 03.05.2009
Сообщений: 4


Ок, почитаю и то и другое Ещё раз спасибо
BesWorland вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Использование ОbjectARX для получения текста с чертежа

Реклама i
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Проект перепланировки для получения прав собственности Koker Прочее. Архитектура и строительство 7 07.06.2008 10:55
Вес линни для текста в форматке MechaniCS Maxx ПО от CSoft 5 24.12.2004 10:17