| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
01.05.2004, 17:47 | #1 | |
Lisp для текста
Engineer
New-York
Регистрация: 05.09.2003
Сообщений: 10,288
|
||
Просмотров: 5103
|
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Я тут подумал что инструмент для правки файлов в которых есть блоки с атрибутами достаточно полезный и "нарисовал" програмку (см. картинку). Могу выложить в Download, но хочу доработать некоторые моменты:
1) Что делаем если атрибут в "залоченом" слое? Игнорируем его, без вопросов меняем или делаем отдельную опцию "Also attributes on locked layers" 2) Что делаем с текстом в процессе выравниваия. По моему надо задать еще опцию которая задавала бы что брать за новую точку выравнивания текста. Старую точку, середину надписи или "конечные точки" надписи. Потому как если выравнивание допустим было Left a стало Center надпись серьезно сместиться влево. 3) Нужно ли вводить опцию для "многоэтажных" атрибутов при которой текст не только увеличиваеться или уменьшаеться, а делает это как при Scale с пропорциональным увеличением расстояний между стороками отдельных атрибутов. Для многострочного и однострочного текста и размеров пока не делал, а есть ли надобность, ведь и через Properties все можно сделать? Если надо работающий уже вариант с нерешенными вышеописанными вопросами могу выслать. Или подождите пока доработаю, найдете его в Download. [ATTACH]1083703497.gif[/ATTACH] |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Да, этот инструмент будет очень удобен. Я даже удивился, что никто не откликнулся, не предложил готового. Значит, Eantomas будет первым.
1. Думаю, если залочен слой, работать с атрибутом не надо. Ведь слой недаром залакнули. 2. Можно ли менять justification, оставляя текст на месте? Как это делает Express? 3. Про многоэтажный атрибут не понял. Или имеется в виду несколько отдельных атрибутов, расположенных друг под другом? Думаю, каждый из них должен изменяться по размеру сам по себе, а не в коллективе. 4. Насчет текста и прочего, кроме атрибутов. Возможно, ты прав. Описанная мной прога создавалась давно, когда не было таких пропертей, как сейчас 5. Диалоговое окно приятное. Может, добавить сюда изменение текстового стиля? 6. Опции backward & upside down могут оказаться весьма полезными. Например, если блок отзеркаленный. 7. Спасибо за полезную работу |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Наконец то закинул в Download англоязычную версию. Много работы...
|
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
С учетом высказанных пожеланий, понял что нужно тиап этого (см. картинку). Атрибуты можно будет выбирать по одному. При следующем вызове окна все чеки разрешений будут сбрасываться, восстановить старые значения можно нажатием кнопки Restore previous и ли выставить чек Always previous settings. Добавится выбор всех атрибутов с одинаковым названием и считывание всех параметров с образцового атрибута (кнопка Get from sample).
[ATTACH]1084260720.gif[/ATTACH] |
|||
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,189
|
>Fantomas,
я не совсем понял, как работает Ваша программка, потому как не смотрел ее еще, но посмотрю обязательно, а пока интересно несколько другое - можно ли указав на атрибут блока получить его значение? |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Можно. Сейчас получился довольно сложный вариант, разбираьсь можно ли проще. К сожалению сейчас нет времени "вычленить" в удобоваримом виде из проги, но в кратце алгоритм такой:
1) Используя обычный (entsel) щелкаем на атрибуте входящем в блок и получает точку и сам блок. 2)Проверяем что это блок и преобразуем в ActiveX 3)Проверяем есть ли у него атрибуты с помощью (vla-HasAttributes ... 4)Если есть то получаем их список: Код:
6) При нахождении этого атрибута с ним можно делать уже что угодно. Например менять стилевые установки (цвет, стиль, высоту шрифта и т. д., как делается в моей проге. Или получить значение атрибута с помощью (vla-get-string . Интересно можно ли выбрать нужный атрибут входящий в состав блока более простым способом? Потом преобразовав его в ActiveX c ним что хошь делай, а вот с выбором хотелось бы попроше. SSGETом что то не получаеться выбрать именно атрибут. |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Apelsinov
Все оказалось намного проще. Есть ведь функция NENTSEL которая при указании на атрибут возвращает список из метки атрибута и точки указания. А там уже хоть через DXF, хоть через ActiveX... Код:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Штатные средства могут легко поменять свойства чего угодно, но не атрибутов. Команда Match property на них не действует. Есть команды Eattedit и -Attedit для индивидуальных изменений и Battman для глобальных, но скольких щелчков это стоит!
Программа Fantomas'a позволит менять свойства атрибута с легкостью той метлы, которая нарисована на кнопке Matchprop. Примеры применения: 1. Имеется ярлык с атрибутом, расчитанным по недомыслию на 3 буквы, а понадобились 4, и они не вмещаются. Щелчок по атрибуту-и ширина текста уменьшилась, все буквы на месте. 2. Готовый чертеж на столе у шефа, все ему нравится, кроме размера атрибутов кое-где. Вы ноете, что это очень многодельная работа, надо делать поштучно. Получаете овертайм, во время которого щелчком по проге Фантомаса исправляете чертеж и идете пить пиво. Fantomas, надо бы проверить работу на отзеркаленном блоке, где Mirrtext позволяет читать правильно. Не перевернет ли программа атрибут? Призываю опробовать программу в коллективном режиме для выявления слабостей. |
|||