Высота текста, как поменять

Автор Тема: Высота текста, как поменять  (Прочитано 14547 раз)

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

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Добрый день.
Наверно какая то мелочь, но никак не могу найти.

Ситуация: на чертеже куча всякого текста, весть красиво раскинуть по стилям.
Цель: менять отображение текста в зависимости от настроек стиля, как бы для етого он и нужен изначально.
Что получается: менять шрифт, угол.
Что не получается : высота никак не меняется, Т.е. в стиле изменения видно, но реально высота текста в блоках не меняется.
Если в ручную переклюцить стиль на любой другой и потом назад на тот что изменион, то всё обновлиается.
Что я забыл?

Все блоки и выноски(МЛеадер) создаются програмно с выставлением стилей, высот и т.д.

П.С. "реген" никак не помогает.

Autocad 2012 64-bit English.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Высота текста, как поменять
« Ответ #1 : 29-09-2014, 18:06:02 »
Ну, вообще-то высота текстов и атрибутов никак не зависит от высоты, установленной в стиле. Это свойство каждого подобного объекта, и обрабатывать их надо отдельно.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: Высота текста, как поменять
« Ответ #2 : 29-09-2014, 18:38:01 »
То есть как высота текста стиля не связана с высотой текста? А зачем она тады нужна? Угол(oblique) то выставляется как нужно,
И другой момент, почему изменив высоту текста через манагер стилей, высота всётаки меняется?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Высота текста, как поменять
« Ответ #3 : 29-09-2014, 18:46:02 »
Где она меняется? В уже созданных объектах?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: Высота текста, как поменять
« Ответ #4 : 29-09-2014, 18:51:11 »
Так точно, при переключении стилей размер текста меняется в зависимости от размера указаного в стиле.
1. создал текст со стилем Стандарт.
2. поменял значение высоты у стиля Стандарт.
3. переключился со стиля Стандарт на другой, размер поменялся.
4. переключился назад на стиль Стандарт и размер у текста стал такой как я указал.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Re: Высота текста, как поменять
« Ответ #5 : 29-09-2014, 19:17:59 »
А, так используются текстовые стили с фиксированной высотой, не равной 0?
P.S. Пока что нет самого главного - кода, который "не срабатывает так, как надо".
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: Высота текста, как поменять
« Ответ #6 : 29-09-2014, 19:23:34 »
Вот собственно код.
Шрифт обновляется, угол тоже, высота нет.
Ето упрощенный вариант, выполниается из модального диалога.

Код - C++ [Выбрать]
  1. AcDbTextStyleTableRecordPointer pLdrTS(getTextStyle(STYLE_LEADER),AcDb::kForWrite);
  2. CString f_name = _T("Arial");
  3. pLdrTS->setFont(f_name,false,false,0,0);
  4. CString t_size = _T("250");    
  5. pLdrTS->setTextSize(_ttoi(t_size));
  6. CString ang = _T("45");
  7. double ang_f;
  8. acdbAngToF(ang,3,&ang_f);
  9. pLdrTS->setObliquingAngle(ang_f);
  10. pLdrTS->close();
  11. acDocManager->sendStringToExecute(curDoc(),_T("_.regen\n"));
  12.  

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Высота текста, как поменять
« Ответ #7 : 29-09-2014, 19:27:40 »
Так точно, при переключении стилей размер текста меняется в зависимости от размера указаного в стиле.
Это если ты переключаешь через Панель свойств или через соответствующий тулбар, т.е. вручную. Но если ты программно (!!!) переключишь текстовый стиль, то высота текста, угол наклона и степень сжатия меняться не будут. Т.е. программно кроме изменения текстового стиля тебе придётся всё это изменить отдельно. Конечно если в этом есть необходимость. Достаточно часто один и тот же текстовый стиль используют для разных высот текста. Общим всегда является используемый шрифт.
Теперь понятно?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн begizАвтор темы

  • ADN Club
  • ***
  • Сообщений: 161
  • Карма: 8
  • Skype: begiz_i
Re: Высота текста, как поменять
« Ответ #8 : 29-09-2014, 19:30:05 »
Т.е. то что я хотел избежать, перебрать все объекты в базе и поменять у них высоту и т.д. мне не удастся?
Тады увы, понятно.
Спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Высота текста, как поменять
« Ответ #9 : 29-09-2014, 19:34:57 »
Т.е. то что я хотел избежать, перебрать все объекты в базе и поменять у них высоту и т.д. мне не удастся?
Именно так.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение