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

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

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

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

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

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

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

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь 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
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь 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).}