|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
06.06.2004, 10:27 | #1 | |
Небыстрый "Быстрый выбор"
Сообщений: n/a
|
||
Просмотров: 23115
|
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Это тоже не самый шустрый способ.... Опять гулянка по меню - диалоговым окнам ))
Вот малююююсенький Лиспик Код:
Цитата:
|
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
... и тут Остапа понесло....
А что если оформить это не как обычную команду, а как функцию.... Нижеследующий код добавляет фильтр и возвращает выбранные объекты в команду, а также (может и зря) доводит пользовательский ввод текущей команды до завершения Код:
Вот пример выбора группы примитивов для окна свойств Цитата:
Еще вариант - прозрачная команда. Та которая выполняется во время выполнения основной команды. Код:
Код:
Цитата:
|
|||
|
||||
инженер-технолог (ГИП) Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116
|
А эти лиспы только для текста или можно изменить переменную TEXT на BLOCK потом название блока куда то написать и будут блоки выделяться?
Если не трудно поясните как расширить этот лисп до поиска блоков))
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты. |
|||
|
||||
инженер-технолог (ГИП) Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,116
|
ИЗВИНЯЮСЬ.
Похоже я совсем плох стал((( сам это уже спрашивал, но по запарке совсем забыл(( Команда ssx есть как мне подсказали. Довльно удобна для написания макроса.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты. |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Цитата:
>Mikhail ssx - это из Тулпака или Экспрессов? Для выбора имен блоков (точнее - для вставок блоков) фильтр будет примерно такой: .... (list '(0 . "INSERT") (cons 2 (getstring t "\nИмя блока: "))) .... |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
А про ручки никто и не спрашивал с самого начала...
Если надо, можно сделать выделение (подсветку) выбранных примитивов с одновременным панорамированием/зуммированием дисплея на эти примитивы.... Итак, вопрос прост: ЧТО должно быть результатом работы команды/функции/макроса? |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Так значит, чтоб с ручками....
Возможно, сторонники Лиспа меня и не поймут.... Рисуем кнопки... Фильтры в ssget, конечно, только для примера. Попробуем использовать команду _.PSELECT, на которую обратил внимание мой заокеанский тезка. К сожалению, это специфическая команда окна свойств. Если в текущем сеансе окно свойств _.properties не вызывалось - то команда не доступна. Впрочем, это не мешает ее (команду) использовать. Достаточно загрузить нужный файл acopm.arx, что лежит в корневом каталоге АКАДа (тестировались на английской версии AutoCAD2002 и 2004). Способов загрузки несколько :
Теперь собственно о том "что вешать на кнопки": Код:
Код:
Попытаемся все же сделать пользовательский ввод. Функция (getstring) в данном случае не подходит. Код:
Код:
Можно передать в фильтр и несколько параметров. Код:
При отсутствии примитивов, удовлетворяющих критериям поиска в командной строке будет напечатано nil, а сам набор Previous не изменится. Системных переменных, которые могут воспринимать строковую информацию, немного. Всего пять. При следующем вызове макроса (нажатии кнопки) будет подсказка с последним введенным значением. Конечно, если какая то другая программа или макрос его не изменит!!! Есть смысл ввести свое закрепление каждой переменной за определенными данными, например, USERS1 - тип примитива, USERS2 - слой, USERS3 - текст.... Впрочем, это дело хозяйское, тоесть пользовательское. Потому переменные так и называются. Если лень искать в хелпе - вот очень кратко о назначени DXF групп: общие 0 - тип примитива 6 - тип линии (при ByLayer может отсутствовать) 8 - имя слоя 62 - цвет (при ByLayer может отсутствовать или = 256, при ByBlock = 0) - ЧИСЛО для TEXT 40 - высота текста - ЧИСЛО 1 - собственно строка текста 7 - стиль текста (при Standard может отсутствовать) 72 и 73 - соответственно горизонтальное и вертикальное выравнивание - ЧИСЛО для INSERT 2 - имя вставленного блока Разумеется, ЧИСЛА нужно передавать через переменные USERI1...USERI5 |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Быстрый выбор нужного слоя | dim5678 | AutoCAD | 23 | 29.02.2024 23:03 |
Выбор размеров через быстрый выбор (больше/меньше/равно) | koskos | LISP | 3 | 20.10.2016 08:24 |
Быстрый выбор и аннотация | Вовочка | AutoCAD | 24 | 16.07.2014 14:34 |
Быстрый выбор и фильтры слоев | sergeev_2005 | AutoCAD | 1 | 04.11.2011 19:49 |