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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поддерживает ли AcDbMText свойство Width?

Поддерживает ли AcDbMText свойство Width?

Ответ
Поиск в этой теме
Непрочитано 20.04.2020, 17:19 #1
Поддерживает ли AcDbMText свойство Width?
qwertystudios1337
 
Регистрация: 16.01.2019
Сообщений: 19

Добрый день.
Пытаюсь запустить обработку текста в VBA, почему то выдает ошибку что объект не поддерживает метод. Делал пошаговую отладку, в переменной objt сидит AcDbMText. Поддерживает ли AcDbMText свойство Width?
Вот кусок кода:
Set objTextStyle = ThisDrawing.TextStyles.Add("NWEC_ISO")
objTextStyle.SetFont "ISOCPEUR", False, False, 0, 0
For Each objt In ThisDrawing.ModelSpace
If objt.ObjectName = "AcDbMText" Or objt.ObjectName = "AcDbText" Then
objt.StyleName = "NWEC_ISO"
objt.Height = 2
objt.Width = 0.8
objt.Update
End If
Next objt
Просмотров: 2787
 
Непрочитано 20.04.2020, 17:47
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
If objt.ObjectName = "AcDbMText" Or objt.ObjectName = "AcDbText"
это два разных типа AcadMText и AcadText, и второй Width не поддерживает, насколько помню
Сергей812 вне форума  
 
Непрочитано 20.04.2020, 17:47
#3
Александр Ривилис

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


Свойство Width для AcDbMText - это ширина всего мультитекста.
Кстати, а в какой версии AutoCAD делал проверку?
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 20.04.2020, 17:50
#4
qwertystudios1337


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
это два разных типа AcadMText и AcadText, и второй Width не поддерживает, насколько помню
А как преобразовать Текст в МТекст?

Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Кстати, а в какой версии AutoCAD делал проверку?
ACAD 2011
qwertystudios1337 вне форума  
 
Непрочитано 20.04.2020, 17:51
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Так у тебя тут не MText, а IAcadObject
trir вне форума  
 
Непрочитано 20.04.2020, 17:57
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
А как преобразовать Текст в МТекст?
создать мультитекст, перенести туда содержимое текста и настроить мультитекст по параметрам текста. Ну или хотя бы обрабатывайте раздельно, приводя каждый objt к нужному типу.
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.04.2020, 18:00
#7
qwertystudios1337


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


И еще не совсем понятно почему когда я создаю стиль со шрифтом ISOCPEUR, высотой 2 и сжатием 0.8 и применяю его к тексту, то встает только шрифт, а высота и коэф сжатия остаются как были?
И почему руками я могу изменить коэф сжатия для текста, а программно не могу?
qwertystudios1337 вне форума  
 
Непрочитано 20.04.2020, 18:10
#8
Александр Ривилис

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


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
И еще не совсем понятно почему когда я создаю стиль со шрифтом ISOCPEUR, высотой 2 и сжатием 0.8 и применяю его к тексту, то встает только шрифт, а высота и коэф сжатия остаются как были?
Так устроен AutoCAD.

Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
И почему руками я могу изменить коэф сжатия для текста, а программно не могу?
Можешь но пока не умеешь. ScaleFactor для Text.
Александр Ривилис вне форума  
 
Непрочитано 20.04.2020, 18:12
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
И еще не совсем понятно почему когда я создаю стиль со шрифтом ISOCPEUR, высотой 2 и сжатием 0.8 и применяю его к тексту, то встает только шрифт, а высота и коэф сжатия остаются как были?
И почему руками я могу изменить коэф сжатия для текста, а программно не могу?
может потому что руками когда делаете - смотрите, а в коде - нет?)

Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
objTextStyle.SetFont "ISOCPEUR", False, False, 0, 0
а потом с какого-то перепугу высоту и сжатие задаете не в стиле

Цитата:
Сообщение от qwertystudios1337 Посмотреть сообщение
objt.Height = 2
objt.Width = 0.8
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.04.2020, 18:31
#10
qwertystudios1337


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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Можешь но пока не умеешь. ScaleFactor для Text.
Это сработало. Спасибо
qwertystudios1337 вне форума  
 
Непрочитано 20.04.2020, 22:13
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Так устроен AutoCAD.
что изменение стиля действует на вновь создаваемые только текстовые объекты. Но в любом случае лучше высоту и сжатие получать из заданного стиля, имхо - а не напрямую константами. Тогда достаточно будет поменять стиль и программа сама подстроиться.

И по поводу мультитекста - если там задано сжатие, отличное от стиля, то оно прописывается в форматировании \W и имеет безусловный приоритет над устанавливаемый внешне. Но можно из AcadMText.TextString вырезать это форматирование обыкновенными строковыми функциями IntStr, Left, Mid.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поддерживает ли AcDbMText свойство Width?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приложение не поддерживает оперативную (JIT) отладку dmitry77 Программирование 9 13.03.2017 11:10
Подскажите свойство объектов, возвращающее их тип Зойберг Программирование 9 30.08.2014 01:07
Как отобразить пустую строку в поле дин.блока, которое ссылается на незаполненное свойство листа подшивки? ГОСТ&ОПОКА AutoCAD 5 28.10.2013 13:47
ЛИСП: как извлечь свойство блока "аннотативный масштаб"? cj_lex LISP 6 25.04.2012 10:36
ЛИСП: как извлечь свойство блока "одинаковый масштаб"? cj_lex LISP 4 16.04.2012 15:02