Обращение к текущему объекту

Автор Тема: Обращение к текущему объекту  (Прочитано 14938 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Здравствуйте ! Хочу написать макрос, который будет менять цвет всех символов кириллицы, в выбранном пользователем объекте пр-ва модели. Не подскажете, как мне обращаться к текущему ( который выделен пользователем в данный момент) объекту на языке VBA ?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #1 : 02-12-2019, 16:22:46 »
Не подскажете, как мне обращаться к текущему ( который выделен пользователем в данный момент) объекту на языке VBA ?
1. Одновременно может быть выбрано ни одного объекта, один объект, несколько объектов. Причем они могут быть разных типов.
2. Набор предварительного выбора: AcadDocument.PickfirstSelectionSet
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #2 : 03-12-2019, 07:48:11 »
Ну мне нужно обрабатывать только объекты типа : AcadMText, AcadText, AcadTable.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #3 : 03-12-2019, 10:17:13 »
Ну мне нужно обрабатывать только объекты типа : AcadMText, AcadText, AcadTable.
Ну значит только их будешь выбирать из .PickfirstSelectionSet
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #4 : 03-12-2019, 10:43:00 »
Ну да, хорошо, спасибо

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #5 : 03-12-2019, 10:58:48 »
Как я понял, посимвольно цвет поменять не получится у текстового объекта ? Хотелось бы визуально выделить искомые символы каким-то образом, ничего не посоветуете ?

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #6 : 03-12-2019, 12:05:45 »
Вообще можно ли работать с символами объектов ? Все св-ва и методы ( в случае AcadTable) возвращают строку, строку можно преобразовать в массив символов, но в этом случае мы уже не работаем с объектом AutoCAD

Отмечено как Решение sangvinik128 11-12-2019, 11:38:51

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #7 : 03-12-2019, 12:12:20 »
Вообще можно ли работать с символами объектов ?
С символами объектов ты работать можешь. Но вот менять им цвет...
1. Для AcadText можно менять цвет только всей строке.
2. Для AcadMText можно поменять цвет отдельному символу используя коды \CNNN;, где NNN - номер цвета от 1 до 255
Описание управляющих полей: https://adndevblog.typepad.com/autocad/2017/09/dissecting-mtext-format-codes.html
3. Для ячейки AcadTable аналогично как и для AcadMText
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #8 : 03-12-2019, 12:27:09 »
Ну, в MText я меняю цвет таким образом :
Код - F# [Выбрать]
  1. objMText.TrueColor.ColorIndex = acRed
А как мне обратиться по индексу символа к MText ?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #9 : 03-12-2019, 12:35:24 »
Ну, в MText я меняю цвет таким образом :
Код - Visual Basic [Выбрать]
  1. objMText.TrueColor.ColorIndex = acRed
А как мне обратиться по индексу символа к MText ?
Никак. И таким образом ты меняешь цвет всему MText;
Допустим у тебя есть MText с содержимым "123456789" и тебе нужно, чтобы цвет у цифры 5 был красный, а у остальных символов белый, то нужно изменить строку на:
"\C7;1234\C1;5\C7;6789"  (7 - это белый цвет, 1 - красный цвет)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #10 : 03-12-2019, 12:44:35 »
А могу ли я запомнить текущий код (цвет) объекта ? Чтобы парсить строку и то, что мне нужно оставлять как было, а по требуемому индексу в строке уже менять цвет

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #11 : 03-12-2019, 12:47:08 »
А могу ли я запомнить текущий код (цвет) объекта ? Чтобы парсить строку и то, что мне нужно оставлять как было, а по требуемому индексу в строке уже менять цвет
Ну да. Так же как ты менял цвет всему MText, ты можешь получить этот цвет: objMText.TrueColor.ColorIndex
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #12 : 03-12-2019, 12:51:08 »
Впрочем если у тебя уже будут коды цвета внутри содержимого MText, то ты легко можешь запутаться.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #13 : 03-12-2019, 12:53:10 »
Всё понял, кроме крайнего сообщения. Почему могу запутаться ?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #14 : 03-12-2019, 13:00:57 »
Всё понял, кроме крайнего сообщения. Почему могу запутаться ?
Ну допустим у тебя содержимое MText такое:
{\fISOCPEUR|b0|i0|c0|p34;\H0.95833x;\C256;\U+00D8\A1;\H1.04348x;\C7;80}Т.е. уже есть заданные цвета для каких-то кусков текста. Что ты с таким будешь делать?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #15 : 03-12-2019, 13:09:22 »
Вот только что сидел и об этом думал, теперь понял о чём Вы  :) В AutoCAD без нюансов не бывает... :'(

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #16 : 03-12-2019, 13:13:10 »
Вот только что сидел и об этом думал, теперь понял о чём Вы  :) В AutoCAD без нюансов не бывает... :'(
Мне вообще непонятна постановка задачи. Я правильно понимаю, что в текстах не должно быть кириллицы и нужно как-то её обозначить, чтобы можно было заменить (например, "е"-русскую на "e"-английскую)? Но просто изменение цвета одной букве вряд ли как-то поможет её найти. Может проще составить таблицу замены и менять русские буквы на соответствующие английские?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #17 : 03-12-2019, 13:21:09 »
Да, Вы всё правильно понимаете. Но проблема в том, что в тексте кириллица может быть уместна, а может - нет. Т.е.  автоматизировать такую замену довольно проблематично. И критерия отбора никакого нет, как Вы понимаете, хотя мне бы это значительно облегчило жизнь.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #18 : 03-12-2019, 13:50:03 »
Ну выделение цветом мне не кажется удобным. Может подчеркивание или надчеркивание?
https://knowledge.autodesk.com/ru/support/autocad-lt/learn-explore/caas/CloudHelp/cloudhelp/2019/RUS/AutoCAD-LT/files/GUID-7D8BB40F-5C4E-4AE5-BD75-9ED7112E5967-htm.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #19 : 03-12-2019, 14:01:31 »
Да, возможно так удобнее будет. Надо попробовать. Спасибо за советы !

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #20 : 03-12-2019, 14:43:48 »
Как-то у меня не получается сделать. Я вот так пытаюсь присвоить требуемое значение : 
Код - Visual Basic [Выбрать]
  1. objMText.TextString = подстрока1 & \Oподстрока2\o & подстрока3

Под подстроками подразумеваются переменные, которые хранят нужные мне подстроки, полученные в результате использования ф-ций Left,Right
Я так понял, что это полная глупость, но ничего иного в голову не лезет. Не подскажете в чём ошибка ?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #21 : 03-12-2019, 14:46:23 »
Я так понял, что это полная глупость, но ничего иного в голову не лезет
Полная.
Не подскажете в чём ошибка ?
Наверное в незнании VBA:
Код - Visual Basic [Выбрать]
  1. objMText.TextString = подстрока1 & "\O" & подстрока2 & "\o" & подстрока3
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #22 : 03-12-2019, 14:51:05 »
Я так понял, что это полная глупость, но ничего иного в голову не лезет
Полная.
Не подскажете в чём ошибка ?
Наверное в незнании VBA:
Код - Visual Basic [Выбрать]
  1. objMText.TextString = подстрока1 & "\O" & подстрока2 & "\o" & подстрока3
Да, с VBA имею дело второй раз, но  это у меня уже "котелок" немного "подкипел" , такое непростительно ) Спасибо ! 

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #23 : 04-12-2019, 10:49:00 »
У меня вместо добавления подчёркиваний текст заменяется "абракадаброй". Видимо, нужно сохранять св-ва исходного MText'a и создавать новый MText с исходными св-вами и добавлением подчёркиваний ? С удалением исходного, само собой

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #24 : 04-12-2019, 10:56:22 »
Хотя вообще странно, я ведь засылаю в objMText строку, содержащую коды форматирования текста в объекте. Непонятно

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #25 : 04-12-2019, 11:39:11 »
У меня вместо добавления подчёркиваний текст заменяется "абракадаброй".
Какой абракадаброй? И вообще покажи код, которым ты добавляешь подчеркивание.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #26 : 04-12-2019, 11:40:01 »
Видимо, нужно сохранять св-ва исходного MText'a и создавать новый MText с исходными св-вами и добавлением подчёркиваний ? С удалением исходного, само собой
Нет. Так делать не следует.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #27 : 04-12-2019, 11:56:38 »
В общем, у меня есть массив индексов, который я получил путём посимвольного сравнения текста (предварительного преобразованного в массив символов) с массивом символов кириллицы. Индексы получаю я те, что нужно. Затем используя этот массив индексов (в которых стоят нужные мне символы кириллицы) перебираю в цикле  элементы массива строкой:
Код - Visual Basic [Выбрать]
  1. objMText.TextString = Left(objMText.TextString, msInt(i) - 1) & "\O" & Mid(objMText.TextString, msInt(i), 1) & "\o" & Right(objMText.TextString, UBound(msInt()) - msInt(i))
Здесь msInt - массив индексов символов кириллицы.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #28 : 04-12-2019, 12:36:06 »
sangvinik128,
А теперь напиши, что было в objMText.TextString и что стало после твоего кода.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #29 : 04-12-2019, 12:46:20 »
Теперь текст вообще удаляется после обработки, когда я там подредактировал некоторые опечатки. Вот строка :
\pxl2,t10;{\Feskd_u|c204;\W0.85;\C256;Примечания\W1;:\P\pi-1,tz;1\W0.85;Перечень изделий и материалов дан для одной позиции прибора.\P2 Перечень учесть: вариант 1 - 2 раза.\P3 Для изоляции с электрообогревом применить холстопрошивное полотно и лист аллюминиевый (заказано в СО2/2400-R-NG-676-IN-MTO-0002-00).}

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #30 : 04-12-2019, 12:56:57 »
Теперь текст вообще удаляется после обработки, когда я там подредактировал некоторые опечатки. Вот строка :
\pxl2,t10;{\Feskd_u|c204;\W0.85;\C256;Примечания\W1;:\P\pi-1,tz;1\W0.85;Перечень изделий и материалов дан для одной позиции прибора.\P2 Перечень учесть: вариант 1 - 2 раза.\P3 Для изоляции с электрообогревом применить холстопрошивное полотно и лист аллюминиевый (заказано в СО2/2400-R-NG-676-IN-MTO-0002-00).}
Это не абракадабра. Это текст с кодами форматирования. Выше я давал ссылку на документ, описывающий эти коды.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #31 : 04-12-2019, 13:01:56 »
Теперь текст вообще удаляется после обработки, когда я там подредактировал некоторые опечатки. Вот строка :
\pxl2,t10;{\Feskd_u|c204;\W0.85;\C256;Примечания\W1;:\P\pi-1,tz;1\W0.85;Перечень изделий и материалов дан для одной позиции прибора.\P2 Перечень учесть: вариант 1 - 2 раза.\P3 Для изоляции с электрообогревом применить холстопрошивное полотно и лист аллюминиевый (заказано в СО2/2400-R-NG-676-IN-MTO-0002-00).}
Это не абракадабра. Это текст с кодами форматирования. Выше я давал ссылку на документ, описывающий эти коды.
Та нет. Это не то, что я называл абракадброй. У меня уже абракадабра не выводится, теперь текст вообще удаляется. Это я Вам исходный текст скинул

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #32 : 04-12-2019, 13:02:48 »
Вообще логика построения обработки верна ?

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #33 : 04-12-2019, 13:37:45 »
А вот и абракадабра :
Приме\O\OOтопрошивное полотно и ли\\OOшиив\\\OO\OOт\OO\Ooи ли\Oст\\OO\O\\O\Oй (\OOзаказаноака\\\\\O\O\O\\OO\\OO\\OOT\OO\O\OO-\\O
Только вместо "\" знак ">= " выводится в AutoCAD

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #34 : 04-12-2019, 13:47:43 »
sangvinik128,
Логика работы правильная. А вот с индексами что-то не то. Разбирайся.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #35 : 04-12-2019, 13:51:28 »
sangvinik128,
Логика работы правильная. А вот с индексами что-то не то. Разбирайся.
Хорошо, спасибо.

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #36 : 05-12-2019, 11:37:44 »
Логика работы правильная. А вот с индексами что-то не то. Разбирайся.
Вот не работает хоть убейся, не пойму. Уже трассировку "ручками" раз 10 сделал. Почему-то съедаются буквы некоторые и из-за этого лажа всему приходит.Вот строка :
Исходная строка  = \pxsm0.75;{\flSOCPEUR|b0|i0|c204|p34;\\W0.85; КОВ.Резервуары производственно -\P противопожарного....
Результат 1 итерации в программе :  \pxsm0.75;{\flSOCPEUR|b0|i0|c204|p34;\\W0.85;\OК\oОВ.Резервуары производственно -\P противопожарного....
Результат 2 итерации в программе :  \pxsm0.75;{\flSOCPEUR|b0|i0|c204|p34;\\W0.85;\OК\o\ОВ\oервуары производственно -\P противопожарного....
Результат 3 итерации в программе :  \pxsm0.75;{\flSOCPEUR|b0|i0|c204|p34;\\W0.85;\OК\o\\ОO\oервуары производственно -\P противопожарного....

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #37 : 05-12-2019, 11:44:48 »
Судя по всему ты в левой части строки отбираешь на 1 символ меньше чем надо. Попробуй вместо:
Код - Visual Basic [Выбрать]
  1. Left(objMText.TextString, msInt(i) - 1)
вставить:
Код - Visual Basic [Выбрать]
  1. Left(objMText.TextString, msInt(i))
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #38 : 05-12-2019, 11:52:53 »
Судя по всему ты в левой части строки отбираешь на 1 символ меньше чем надо. Попробуй вместо:
Код - Visual Basic [Выбрать]
  1. Left(objMText.TextString, msInt(i) - 1)
вставить:
Код - Visual Basic [Выбрать]
  1. Left(objMText.TextString, msInt(i))
Нет, я уже пробовал это. Т.е. эта проблема может быть вызвана исключительно ошибкой в индексах ? Нет никаких "автокадовских чуд" , одно из которых могло бы на этой повлиять ?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #39 : 05-12-2019, 11:58:33 »
Т.е. эта проблема может быть вызвана исключительно ошибкой в индексах ? Нет никаких "автокадовских чуд" , одно из которых могло бы на этой повлиять ?
Именно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #40 : 05-12-2019, 13:58:38 »
Т.е. эта проблема может быть вызвана исключительно ошибкой в индексах ? Нет никаких "автокадовских чуд" , одно из которых могло бы на этой повлиять ?
Именно.
Все коды чётко проставились, но надчёркиваний не появилось над надписью в блоке, которую мой код поймал как объект типа MText

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #41 : 05-12-2019, 13:59:53 »
Все коды чётко проставились, но надчёркиваний не появилось над надписью в блоке, которую мой код поймал как объект типа MText
Так блок или MText??? Если это MText в блоке, то нужно регенерировать чертеж.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #42 : 05-12-2019, 14:02:01 »
Все коды чётко проставились, но надчёркиваний не появилось над надписью в блоке, которую мой код поймал как объект типа MText
Так блок или MText???
Вообще-то блок, вот только мой код строку в блоке поймал как объект типа MText. И тут возникает вопрос, что за дела ? :-[

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #43 : 05-12-2019, 14:04:40 »
Вообще-то блок, вот только мой код строку в блоке поймал как объект типа MText. И тут возникает вопрос, что за дела ?
Внутри блока (AcadBlock) может быть MText. Ты бы код приложил и чертеж, на котором экспериментируешь. А то это гадание на кофейной гуще.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #44 : 05-12-2019, 14:06:23 »
Добавь на всякий случай в самый конец программы:
Код - Visual Basic [Выбрать]
  1. ThisDrawing.Regen acAllViewports
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #45 : 05-12-2019, 14:48:41 »
Всё сработало, спасибо !

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #46 : 06-12-2019, 10:10:09 »
В объекте типа Text почему-то  не меняется текст строкой :
Код - Visual Basic [Выбрать]
  1. objText.TrueColor.ColorIndex = acRed

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #47 : 06-12-2019, 10:12:16 »
не меняется текст строкой
Текст или цвет?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #48 : 06-12-2019, 10:25:28 »
не меняется текст строкой
Текст или цвет?
Извиняюсь, цвет. "очепятка"

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #49 : 06-12-2019, 12:44:05 »
не меняется текст строкой
Текст или цвет?
Извиняюсь, цвет. "очепятка"
А так:
Код - Visual Basic [Выбрать]
  1. objText.Color = acRed
?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Обращение к текущему объекту
« Ответ #50 : 06-12-2019, 14:19:02 »
не меняется текст строкой
Текст или цвет?
Извиняюсь, цвет. "очепятка"
А так:
Код - Visual Basic [Выбрать]
  1. objText.Color = acRed
?
Так сработало, спасибо !

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обращение к текущему объекту
« Ответ #51 : 06-12-2019, 14:20:09 »
Дальше "один вопрос - одна тема".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение