Тема: Макрос на кнопке "Вставка символа в однострочный текст"
Можно ли и как написать макрос на кнопку для вставки символа или группы символов в однострочный текст? Спасибо.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Настройка меню и DIESEL → Макрос на кнопке "Вставка символа в однострочный текст"
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Можно ли и как написать макрос на кнопку для вставки символа или группы символов в однострочный текст? Спасибо.
Так ведь любой символ можно вставить через буфер обмена.
> Владимир Громов
Очень хорошо, что любой. Как это сделать через макрос на кнопке?
> Forma
Ну, Forma, дались тебе эти макросы. Любой символ можно вставить в текст через буфер обмена с помощью мыши из таблицы символов Windows. Как ты понял, наверное, я с макросами не играю. Меня устраивают стандартные команды AutoCAD'а. Горячки и потогонной системы в работе я не терплю, поэтому и клавиатурные сочетания меня тоже не привлекают. В свое время я вникал в DIESEL, но потом отказался, громоздко для моих задач, и постоянная перезагрузка меню при отладке раздражает. Тем более, что я работаю напрямую с файлами *.MNU. Мне гораздо ближе AutoLisp. Поэтому по таким макросам я не советчик.
> Владимир Громов
А, на LISP можно написать? Я с этого раздела начинаю, потому что не знаю ни возможностей программирования на кнопках, ни возможностей LISP.
Лисп слишком слабоват для этого, IMHO, Sorry.
> Владимир Громов
Я видел такие программы на JAVA
Однострочный текст вообще-то с трудом поддерживает нестандартные символы, насколько мне помнится. Тут надо, наверно, использовать многострочный текст. Конвертация - Express Tools -> Text -> Convert Text to MText (команда txt2mtxt).
---
ИМХО
Надо помнить, что Forma работает в 2006.
> Владимир Громов
А какая разница? Там Expressы ставятся вообще в момент установки када (правда, не по умолчанию).
Или высказывание было адресовано не мне? Тогда прошу прощения.
Мне в первую очередь надо вставлять уникоды и заодно, если это дело пойдет,
даты, типовые фразы. Устал уже набивать вручную.
> 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 некоторой последовательности символов...
Шо це таке?
---
ИМХО.
> kpblc
Не то.:(
Так а что такое "уникоды"-то? И что конкретно не то? Хоть расскажи, любопытство же съест!
> kpblc
вида /U+001
> Forma
ИМХО нереал. Я могу привести такой пример: два фонта, одинаковые имена, но содержание разное (благо один редактировался, второй - нет). В результате - на одном и том же коде висят разные символы. И все, приходится извращаться.
И потом, а какие символы-то приходится вставлять? Диаметр, плюс-минус, градус, что еще?
Диаметр : %%c
плюс-минус : %%p
градус : %%d
Вообще в справке прописаны все эти управляющие символы, они в стандартных фонтах нормально идут.
...они в стандартных фонтах нормально идут....
Нормально идут. Только набирать хлопотно. Да и забываются постоянно.
Как пример подчеркивания текста и обратно, т.е вставка перед текстом %%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))
> Денис Флюстиков
Ваш оригинал работает корректно. Но мне нужно несколько другое. А именно: В AutoCAD-2006 в режиме экранного редактирования однострочного текста вставить группу символов примерно такого вида "\U+00F7". Без кавычек, естес-но. Но, когда я пробовал Ваш макрос, то обратил внимание на то, что режим экранного редактирования блокирует кнопки. Наверное, это будет препятствием фатальным.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Настройка меню и DIESEL → Макрос на кнопке "Вставка символа в однострочный текст"
Форум работает на PunBB, при поддержке Informer Technologies, Inc