|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.02.2004, 07:54 | #1 | |
Макрос и текст
Проектирование обустройства нефтяных месторождений
Самара
Регистрация: 28.08.2003
Сообщений: 352
|
||
Просмотров: 11166
|
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
нет, хочу именно марос, чтобы создать по аналогии кучу кнопоки в зависимости от ситуации использовать их. Лисп вешь хорошая, но для таких мелких вещей предпочитаю его не использовать.
Задача такая: есть текст с высотой 3.5, по ситуации надо задать ему высоту 5 или 4.5, тоже самое с шириной |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Программу можно написать на Лиспе, а высоту и ширину передавать из макроса в программу либо как параметр функции, либо как ответ на запрос функции (getreal). Таким образом, программа получается одна, а кнопки можно плодить... по желанию.
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Вечного спора пока нет - почти нет специалистов по макросам. Да и вряд ли будет, потому что LISP сильнее. Но у макросов есть неоспоримое преимущество: он быстро становится понятным, а сделанная своими руками программа ближе к сердцу, чем чужая, даже наворочанная.
Давай, Plaz, на твоем вопросе сделаем ликбез для всех. Сначала надо найти идею. В данном случая проблему решит команда _Change. Проиграйте на клавиатуре действия по изменению высоты однострочного текста, сделав его 5 единиц, записывая каждый шаг на бумагу. Вместо Enter пишите точку с запятой <;>. Вместо клика мышкой ставьте обратную косую черту <\>. Затем создайте новую панель инструментов и в ней кнопку. Всю последовательность впечатайте в поле Macro associated with this button диалогового окна Customize, без пробелов. Начало будет таким: ^C^C_Change; (^C означает нажатие на Esc, то есть отчистка командной строки). Продолжите действия на клавиаруре, заодно исследуя команду Change. Добавляйте знаки в окно Customize. A результат выносите сюда. |
|||
|
||||
AutoCAD/AutoLISP Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133
|
>>vova
Владимир! Комманда _CHANGE работает только с однострочным текстом как ты и отметил, причем ширину не изменить, а на MTEXT и вовсе "заикается", думаю что VK прав, это задачка для лиспа, как он тут присоветовал. И на любимые кнопочки привесить очень даже удобно, а еще лучше на PULDOWN MENU. |
|||
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
2 Vova
Идею то я нашел, не знаю как ее реализовать, не хватает знаний команд Акада. Change действительно может поменять только высоту текста, и то при условии, что стиль данного текста не фиксирует высоту RuHelp:
Единственным , не лисповским, способом решения вижу создание дополнительных текстовых стилей и соответствующая их подмена |
|||
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Я не хочу создать кнопку на все случаи жизни, она мне понадобится макс. на месяц. В той работе которую я выполняю используется только один текстовый стиль. Я надеялся что можно с помощью командной строки (т.е. макрос) изменить некоторое парамтры окна Properties, и я уверен что можно только надо знать соотвествующие команды.
Будем искать |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
1. Эта задача решается несложным макросом: любому однострочному тексту независимо от высоты, заданной в текстовом стиле и мтексту можно поменять высоту одним кликом мышки. Startrek и Plaz правы в том, что команда Change очень ограничена - ее можно использовать только для однострочного текста, причем если высота в его текстовом стиле равна 0. Но для упражнения с написанием первого учебного макроса годится. Жду макроса, потому что там можно использовать интересный прием, который впоследствии мы применим к универсальному макросу для любого текста. Попробуйте догадаться также, какую бы команду применить для этого будущего макроса.
2. По поводу Width я думаю, что Plaz переусердствовал. Нечастая операция не требует автоматизации. 3. Я уже провел одну тему - "Найти решение" в форме загадок и ответов, мне показалось так веселее,чем сразу выдать решение. Если такая форма не коробит, можно продолжить в таком стиле. Ваше мнение? |
|||
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
Цитата:
[sm1205] По поводу макроса для замены высоты текста если пользоваться командой change и вашими рекомендациями: ^C^C-ch;;;;5;;; |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
У меня это не работает. Потому что не заложено указание объекта деля изменения (\). Попробуй так
*^C^C_change;\;;;;5;;; А прием, про который я говорил, это звездочка в начале, позволяющая менять об-екты один за другим. Когда я начинал с макросами, тоже домой поздно приходил, да и сейчас надо разбираться, как бы ответить здесь получше. В частности, нашел команду для твоего случя в ...меню Express. Позвони жене, что сегодня в последний раз задержишься и построишь окончательный макрос сам. Параметр WITH это ширина текста при той-же высоте. Применяется, например, в заголовках, чтобы растянуть строку или в аналогичных случаях. Я ее растягивать не пробовал, поищи в Express подходящую команду, если позарез надо и Properties не спасают. А искать надо так: открой Help от Express и поищи на букву "Т" |
|||
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
Цитата:
Цитата:
Вот только понять не могу где здесь фишка? Где происходит подмена width? Код:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Plaz> Для изменения высоты текста я имел в виду другую команду: TSCALE. Сама, по названию (Scale это масштаб) просится в корзинку, а никто не догадался. Команда TEXTFIT используется только для изменения ширины-это твоя вторая хотелка.
*^C^C_select;single;\tscale;p;;e;h;5 Это для изменения высоты любого текста, включая атрибуты блока. Конечная высота 5 единиц (можно поменять) ВНИМАНИЕ!!! при прямом копировании отсюда в окно Customize могут возникнуть нежелательние значки вроде ^М. Сотрите, если будет так. ^C^C_select;single;\tscale;p;;e;h;5;copy;p;;@;@;e;p;;textfit;l;s Это комбинация для одновременного изменения высоты и ширины. Требует 3 клика: указать объект, начало и конец новой ширины. Ограничение-не меняет ширину Mtext. |
|||
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
Цитата:
В конечном итоге должен согласится с vk и Startrek, дело пахнет лиспом. Я предполагал, что возможно при помощи командной строки задавать строго определенное значение ширины текста, а не такое какое получится (Textfit). Не вышло . Хотя еще не вечер, будем рыть дальше [sm2006] |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
Цитата:
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||