|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.02.2018, 16:50 | #1 | |
Определение координат текста в многострочном тексте?
Регистрация: 30.03.2015
Сообщений: 152
|
||
Просмотров: 7980
|
|
||||
зачем искать координаты, если можно найти слово (ва) и подсветить их (поменять цвет на отличный от цвета основого текста).
|
||||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Цитата:
1) может в одном тексте это красный, другом тесте синий 2) да и потом надо будет скидывать этот цвет слово найти нету никакой сложности (получил текст, скинул форматирование и wcmatch)... надо координаты рамки над словом |
|||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Я понимаю "условно рамки" например функция acet-geom-textbox
Код:
у тебя возвращает координаты рамки если описать над всем текстом рамку, но у тебя же нет рамки над текстом... а в данном случае мне надо над словом |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Далась тебе эта рамка.
Ты найди слово и координаты хотя бы его начала, а потом про рамку будешь вещать. Что ты там про однострочный текст писал? Про ПРИМЕРНОЕ расположение слова? А в мультитексте ты хочешь найти ТОЧНОЕ расположение слова? Ладно, не жмись, покажи, как ты определил примерное расположение слова в однострочном тексте. |
|||
|
||||
|
||||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Цитата:
Код:
При расположении текста в блоке я так не могу поступить: 1) придется взрывать два раза и возвращать два раза 2) блок может быть заблокирован от взрыва и придется снимать этот флаг 3) это занимает больше времени чем получить текст,через активХ , но взорвать я уже не могу (точнее не получилось...как бы выразится взорвать по имени в блоке многострочный, не взрывая блок, а потом вернуть) функция для расположение в многострочном (не в блоке) Код:
Код:
Последний раз редактировалось prajdziswet, 14.02.2018 в 21:51. |
|||
|
||||
а в чём цель? слово нашлось, примерное положение нашлось, зум случился, а дальше что? чем взрывать блок, проще будет создать клон мтекста из блока и его уже взрывать.
|
||||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
насчет клона возможно да, хоть сам взрыв мне не особо нравится (просто хотелось более изячное решение...)
цель найти и зумировать, или тебе не приходилось искать текст по спецификации если длинная (например общая спецификация которая по 10 листов миниум), номер помещения и т.д + поиск по спдс-график (хоть я его не люблю, но строители постоянно пользуюся. Цель просто поиск - а там что тебя надо если подправить, то вручную подправишь; просто найти и посмотреть например сколько кол-во (например по спецификации) и т.д == иногда мно где надо просто найти, или проверить что везде подправил (поиск автокада не везде ищет, например в блоках, во-вторых можно установить маштаб -потому что например автокад =зумирует так что тебе надо иногда отменить поиск, чтобы увидеть более меньшем маштабе ...был инструмент с г-тулс, но он тоже не доконца ищет) Вот и хочется более изячное решение, чем взрывать-создавать и т.д //так как все это отнимает время, автокад начинает проририсовывать и регенерировать... |
|||
|
||||
ясно. насчёт взрыва, согласен, плохо. тогда считать строки, слова и т.д. или можно ещё замудрить например так: клонировать мтекст, искать построково нужное слово, найденную строку передать в дтекст, искать рамку, вычислять координаты рамки.
|
||||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Это только формально - ответ. На самом деле этот ответ показывает ущербность манипуляций. Особенно, когда искомое слово будет в тексте содержать ошибки.
Изячного решения здесь не будет. Так же как и изящного. Может получиться только грубое решение одноразового использования. Овчинка выделки не стоит. IMHO. Offtop: Подозреваю, что некоторые гуру сейчас начнут головы ломать и копья. Зря. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
не гуру, но что мешает разбить текст по словам и искать не строгое соответствие, а наиболее вероятное?
В простейшем варианте, это не так сложно: отсеиваем сначала слова по длине, а потом для оставшихся слов считаем коэффициент совпадения положения букв, выбираем слова с Мах коэффициентом. Однако я так и не понял, зачем все это и стоит ли эта стрельба из гаубиц по муравьям тех затрат времени и сил на написание кода. |
|||
|
||||
Регистрация: 30.03.2015
Сообщений: 152
|
Цитата:
1) не понятно размеры мтекста (я имею введу поля относительно которых оно переносит (наверное где то содержится, но я не знаю.. в dxf-списке я их не заметил) 2) для того, чтобы посчитать туже строку надо разбить по определенному форматированию (будет влиять только тип шрифта,высота шрифта, растяжение и межстрочный интервал) и придется считать все это через textbox ... Цитата:
Спасибо за подсказки (насчет клона того же), пока оставил взырыв только в поиске не в блоке а потом возврат (хоть автокад как то сам ищет в многострочном тексте и позиционирует) а в блоке просто рамку всего текста (что не нравится конечно, но хоть как то укажет что там есть искомый текст) Последний раз редактировалось prajdziswet, 15.02.2018 в 11:54. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
Offtop: Вспоминаем про динамическое количество столбцов в MTEXT, возможное назначение ширины, поля, принудительное форматирование и т.п. - и становится очень весело.
ИМХО - создавать анонимный блок, внутрь него - копию MTEXT, и ее уже анализировать. P.S. Это я еще не упоминаю про атрибуты, таблицы и значения тех же размеров...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Цитата:
Для Вас я попытаюсь расшифровать запись. Можно перестроить работу так, что бы не пришлось пользоваться поиском по мтексту в блоках и тогда можно будет нормально пользоваться штатными функциями автокада. Так ли нужно загонять МТекст в блок. |
|||
|
||||
если каждая строка не содержит <cr> в конце, то это беда, поскольку если есть длинная строка, она же азац, ограниченный штриной мтекста или упаси ещё и колонками, то посчитать строки в таком абзаце та ещё задачка. я думаю для обработки мтекста в автокаде существует выделенный текстовый процессор, который и делает размещение-форматирование текста внутри контейнера мтекта, в тесном сотрудничистве с системным описанием шрифта.
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,850
|
prajdziswet, я не понимаю конечной задачи, но объясню причину, по которой я за работу внутри анонимного блока.
1. Работать с его составом можно достаточно легко (правда, acet-* там не сработает). 2. Для обработки блока его необязательно вставлять. 3. Если блок не вставлен, после закрытия файла он уничтожается автоматически.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ручки в многострочном тексте | Яблоко | AutoCAD | 12 | 20.02.2015 11:55 |
Определение координат динамического блока в среде VBA | ArtemYa | Программирование | 8 | 03.12.2009 13:57 |
Изменение форматированного текста посредством lisp | Tramp | LISP | 4 | 03.03.2006 11:28 |
Бледный русский язык в многострочном тексте | dimoniy | AutoCAD | 8 | 09.11.2005 01:00 |
не работает переключение регистров в многострочном тексте | Nika | AutoCAD | 3 | 20.05.2004 22:26 |