Тема: Макрос на кнопке "Вставка символа в однострочный текст"

Можно ли и как написать макрос на кнопку для вставки символа или группы символов в однострочный текст? Спасибо.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Так ведь любой символ можно вставить через буфер обмена.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Владимир Громов
Очень хорошо, что любой. Как это сделать через макрос на кнопке?

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Forma
Ну, Forma, дались тебе эти макросы. Любой символ можно вставить в текст через буфер обмена с помощью мыши из таблицы символов Windows. Как ты понял, наверное, я с макросами не играю. Меня устраивают стандартные команды AutoCAD'а. Горячки и потогонной системы в работе я не терплю, поэтому и клавиатурные сочетания меня тоже не привлекают. В свое время я вникал в DIESEL, но потом отказался, громоздко для моих задач, и постоянная перезагрузка меню при отладке раздражает. Тем более, что я работаю напрямую с файлами *.MNU. Мне гораздо ближе AutoLisp. Поэтому по таким макросам я не советчик.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Владимир Громов
А, на LISP можно написать? Я с этого раздела начинаю, потому что не знаю ни возможностей программирования на кнопках, ни возможностей LISP.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Лисп слишком слабоват для этого, IMHO, Sorry.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Владимир Громов
Я видел такие программы на JAVA

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Однострочный текст вообще-то с трудом поддерживает нестандартные символы, насколько мне помнится. Тут надо, наверно, использовать многострочный текст. Конвертация - Express Tools -> Text -> Convert Text to MText (команда txt2mtxt).
---
ИМХО

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Надо помнить, что Forma работает в 2006.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Владимир Громов
А какая разница? Там Expressы ставятся вообще в момент установки када (правда, не по умолчанию).
Или высказывание было адресовано не мне? Тогда прошу прощения.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Мне в первую очередь надо вставлять уникоды и заодно, если это дело пойдет,
даты, типовые фразы. Устал уже набивать вручную.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Forma
"САПР на базе AutoCAD - как это делается" С.Зуев, Н.Полещук. По-моему, там подобные решения описаны (по крайней мере, типовые фразы точно).
Вставка даты - может, field сработает? Вряд ли дата вставляется посередь текста. А даже если и вставляется, то можно попробовать такой лисп:

;|=============================================================================
*    Функция обрабатывает текущую дату и возвращает ее внутри текста.
*    Дата возвращается в формате "DD.MM.YYYY". После даты вставляется пробел.
*    Параметры вызова:
*    startmsg    - текст до момента вставки даты. nil недопустим.
*    endmsg        - текст после вставки даты. nil недопустим.
* Примеры вызова:
(kpblc-text-plus-date "Это проверка. Текущая дата: " "")
 Вернет
 "Это проверка. Текущая дата: 18.08.2005 "
=============================================================================|;
(defun kpblc-text-plus-date(startmsg endmsg
                /
                _cdate_
                _year_
                _month_
                _day_
                )
  (setq _cdate_ (itoa (fix (getvar "cdate")))
    _year_  (substr _cdate_ 1 4)
    _month_ (substr _cdate_ 5 2)
    _day_   (substr _cdate_ 7 2)
    )
  (strcat startmsg _day_ "." _month_ "." _year_ " " endmsg)
  );_defun

А уникоды - это что? Просто слово слишком широко понимать можно... Можно как уникальные коды базы данных оборудования, можно - как коды символов определенного шрифта, можно - как преобразование в последовательность вида /U+001 некоторой последовательности символов...
Шо це таке?
---
ИМХО.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> kpblc
Не то.:(

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Так а что такое "уникоды"-то? И что конкретно не то? Хоть расскажи, любопытство же съест!

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> kpblc
вида /U+001

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Forma
ИМХО нереал. Я могу привести такой пример: два фонта, одинаковые имена, но содержание разное (благо один редактировался, второй - нет). В результате - на одном и том же коде висят разные символы. И все, приходится извращаться.
И потом, а какие символы-то приходится вставлять? Диаметр, плюс-минус, градус, что еще?
Диаметр    : %%c
плюс-минус : %%p
градус     : %%d
Вообще в справке прописаны все эти управляющие символы, они в стандартных фонтах нормально идут.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

kpblc пишет:

...они в стандартных фонтах нормально идут....

Нормально идут. Только набирать хлопотно. Да и забываются постоянно.

Re: Макрос на кнопке "Вставка символа в однострочный текст"

Как пример подчеркивания текста и обратно, т.е вставка перед текстом %%u:
^C^C^P(while (setq data (entsel))(setq data (entget (car data)))(setq str (cdr (assoc 1 data)))(if (wcmatch str "%%u*")(setq str (substr str 4))(setq str (strcat "%%u" str)))(entmod (subst (cons 1 str) (assoc 1 data) data))(setq str nil data nil))

Re: Макрос на кнопке "Вставка символа в однострочный текст"

> Денис Флюстиков
Ваш оригинал работает корректно. Но мне нужно несколько другое. А именно: В AutoCAD-2006 в режиме экранного редактирования однострочного текста вставить группу символов примерно такого вида "\U+00F7". Без кавычек, естес-но. Но, когда я пробовал Ваш макрос, то обратил внимание на то, что режим экранного редактирования блокирует кнопки. Наверное, это будет препятствием фатальным.