Сообщество программистов Autodesk в СНГ
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Образовательный курс по платформе Autodesk Forge.
Начало
Сайт
Правила
Помощь
Поиск
Непрочитанные
Календарь
Вход
Регистрация
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
AutoCAD .NET API
»
Как получить доступ к MText внутри блока?
« предыдущая тема
следующая тема »
Печать
Страницы:
1
[
2
]
Все
Вниз
Автор
Тема: Как получить доступ к MText внутри блока? (Прочитано 11665 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Александр Ривилис
Administrator
Сообщений: 13882
Карма: 1787
Рыцарь ObjectARX
Skype:
Re: Как получить доступ к MText внутри блока?
«
Ответ #15 :
29-01-2020, 13:08:47 »
Luca
,
Код посмотрел? Всё понятно?
Записан
Не забывайте про правильное
Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился
правильный ответ
, то не забудьте про кнопку
Решение
Александр Ривилис
Administrator
Сообщений: 13882
Карма: 1787
Рыцарь ObjectARX
Skype:
Re: Как получить доступ к MText внутри блока?
«
Ответ #16 :
29-01-2020, 13:23:36 »
Вот еще один вариант с непосредственным указанием MTEXT (не важно в блоке ли он или отдельный):
Код - C#
[Выбрать]
[
CommandMethod
(
"ChgMText"
)
]
public
void
ChgMText
(
)
{
Document doc
=
Application
.
DocumentManager
.
MdiActiveDocument
;
if
(
doc
==
null
)
return
;
Editor ed
=
doc
.
Editor
;
Database db
=
doc
.
Database
;
PromptNestedEntityOptions prOpt
=
new
PromptNestedEntityOptions
(
"Выберите MText: "
)
;
PromptNestedEntityResult prRes
=
ed
.
GetNestedEntity
(
prOpt
)
;
if
(
prRes
.
Status
!=
PromptStatus
.
OK
)
return
;
if
(
prRes
.
ObjectId
.
ObjectClass
!=
RXClass
.
GetClass
(
typeof
(
MText
)
)
)
{
ed
.
WriteMessage
(
"
\n
Это не MTEXT!!!"
)
;
return
;
}
using
(
Transaction tr
=
doc
.
TransactionManager
.
StartTransaction
(
)
)
{
MText mt
=
tr
.
GetObject
(
prRes
.
ObjectId
, OpenMode
.
ForWrite
)
as
MText
;
// Меняем цвет MText
if
(
mt
!=
null
)
{
mt
.
ColorIndex
=
(
mt
.
ColorIndex
+
1
)
%
255
;
}
tr
.
Commit
(
)
;
}
// Чтобы отобразились изменения в блоке (если MTEXT в блоке).
if
(
prRes
.
GetContainers
(
)
.
Length
>
0
)
ed
.
Regen
(
)
;
}
Записан
Не забывайте про правильное
Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился
правильный ответ
, то не забудьте про кнопку
Решение
Печать
Страницы:
1
[
2
]
Все
Вверх
« предыдущая тема
следующая тема »
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
AutoCAD .NET API
»
Как получить доступ к MText внутри блока?