Реклама i
|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как сделать команду copy многоразовой???
Архитектурные Фасадные Технологии
г. Фрязино
Регистрация: 09.02.2004
Сообщений: 8
|
||
Просмотров: 14817
|
|
||||
Регистрация: 21.08.2003
Штаб
Сообщений: 943
![]() |
Идея такая:
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),grip),_copy,^C^C_copy) Если что-то в данный момент выделено, то запускается команда _COPY. Если ничего не выделено, то запускается команда ^C^C_COPY. Но проблема в том, что я не знаю, как в дизеле написать последовательность команд. Этот вопрос лучше задать Вове. |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
>Torino
А при чем тут дизель? Аргументы дизельных выражений разделены запятыми, а в последовательностях команд используется пробел или точка с запятой. Можно просто перечислить все команды, которые нужны в цепочке.... Или я чего то не понимаю... >All Еще один способ зациклить команду или последовательность - звездочка в начале Код:
|
|||
![]() |
|
||||
Регистрация: 21.08.2003
Штаб
Сообщений: 943
![]() |
>>vk
Я тоже так думал и сделал вот такую кнопку: $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),grip),_copy,^C^C_select;\_copy;p;;m;) Работать, как и ожидалось, она не хочет :( Думаю проблема в операторе if (полагаю он не переваривает несколько последовательных команд). Может быть есть какой-нибудь оператор, объединяющий несколько команд? (типа PROGN в Лиспе) |
|||
![]() |
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
1. сделал комбинацию (вариант если объект уже выделен): _copy m; Посадил на кнопочку - работает, вставляю в исходный - не работает.
2. комбинация Код:
Код:
Короче фигня получается. Ну где же это Vova [sm2600] |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Разобраться в хитросплетениях языка DIESEL может только программист, коим я не являюсь. Тот, кто обратит свой взор в сторону DIESEL, со временем получит преимущество перед чистым лисповиком. Это произойдет когда широкое распространение получит дешевый LT. Я же пользователь и мои знания программирования поверхностны. Поэтому и попытки исследования этого вопроса скорее дилетантские, чем профессиональные.
Слово "Grip" в макросе наводит на мысль о зависимости исполняемой команды от предварительного выделения об-екта грипсами (ручками). Но быстро выясняется, что это не влияет на работы команды Copy, а также команд Move, Rotate, Scale и Stretch, макросы которых похожи. Только переменная Pickfirst влияет на это. Значит, цель макроса другая?. Давайте препарируем выражение DIESEL из макроса, начиная с внутренних скобок. $(getvar,cmdnames) выдает имена текущих команд. А ими может быть в том числе и прозрачная команда. (Но когда запускается макрос может ли работать какая-нибудь команда? Хотя ^C^C не стоит в начале макроса) $(substr,$(getvar,cmdnames),1,4) Эта функция возвращает часть текстовой строки, в данном случае часть имени текущей команды, причем строка состоит из 4-х букв, начиная с первой. $(eq,$(substr,$(getvar,cmdnames),1,4),grip) Функция Eq, по-видимому происходит от Equal, равный. Она сравнивает 4-х буквенное слово, вытащенное из имени команды в предыдущем действии, со словом «Grip» (И где-же она пытается найти такое слово?). Если такое совпадение произошло, функция выдает 1, а если нет, то 0. И последняя функцие If (Если) За ней стоят два варианта команды _Copy и ^C^C_Copy. Если функция If получает 1, должна сработать первая команда, а если 0, то вторая. Чтобы убедиться в правильности этой логики я сделал следующее: Вместо Copy подставил Erase, сначала до ^C^C, а потом после. И убедился, что всегда исполняется вторая команда. И даже если вместо команды подставить какой-то сложный работающий макрос, он и исполниться. Как будто совсем нет здесь выражения DIESEL!Значит, если логика верна, функция If всегда выдает 0, то есть не находит действующей на данный момент команды, первые 4 буквы имени которой есть Grip. При каких обстоятельствах такая команда может появиться? А может, моя логика неверна... Напоминаю для исследователей, что проверить работу выражений DIESEL можно через Modemacro. А с чем ее кушать, почитайте здесь http://www.cad.dp.ua/stats/content.p...nt=diesel.html Это глава из моей книги, которую, как будто,на нашем форуме не очень читают, хотя я получаю хорошие отзывы. А книга, между прочим, учит логически мыслить |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Вован> Хорошо не получается: 1. Для одноразового копирования нет выбора рамкой. 2. После выбора объектов (поштучно) надо дважды щелкнуть ПК (чтобы пропустить запрос на "М"). 3. Для множественного копирования надо предварительно выделять. Не слишком ли много условностей? Надо выбрать для себя, чем вы пользуетесь чаще-многоразовой или одноразовой Copy, и такую кнопку себе оставить. Вот если бы кто-то разгадал, зачем в команде DIESEL, если и без него получается...
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Здесь цитата из второго постинга этой темы: "Ты имеешь ввиду многоразовой по-умолчанию? Как в 2005-м Акаде?
Если да, то посади на кнопку макрос ^C^C_select;\_copy;p;;m;" Чем последний вавариант (Alaspher) отличается от первого (Torino)? |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Кстати, команда (-Pan) очень удобна чтобы двигать модель во Viewports и вообще когда надо, потому-что она слушается Ortho и Osnap. Я ее часто использую. |
|||
![]() |
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
|
|||
![]() |
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
![]() |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
|
|||
![]() |
|
||||
Проектирование обустройства нефтяных месторождений Регистрация: 28.08.2003
Самара
Сообщений: 352
|
Цитата:
2Torino & 2All: А што это за команда RTPAN? С командной строки работает без нареканий, а вот в Хелпе про нее ни слова! |
|||
![]() |
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
P.S. "RT..." - означает 'Real Time' |
|||
![]() |
|
||||
Строительство Регистрация: 03.09.2003
Нижний Новгород
Сообщений: 81
![]() |
Цитата:
Совсем я запутался Дело в том у меня перед командой копировать - вставка блока. вот я и хочу копировать вставленный блок (зная точку вставки) :roll: |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Замечания (лоск)
В командной строке пусто, надо догадываться, что от тебя требуется указать: угол поворота или точку? Вот вариант, где все видно Код:
Вот вариант без нее Код:
|
|||
![]() |
|
||||
Изобретение металлических гаражей Регистрация: 10.09.2004
Сибирь
Сообщений: 559
|
Апну старенькую тему. По заголовку подходит к моей проблеме.
Стандартная команда Копировать копирует только один раз. После этого отключается, как будто гномик в клавиатуре на Esc нажал. Буквально вчера и никогда раньше такого не было. Как вернуть? (Автокад 2008рус) Всё, разобрались. Поначалу в реЖим не могли зайти...
__________________
В этом и состоит диалектика жизни Последний раз редактировалось Mek, 31.07.2008 в 12:43. Причина: Ответ найден самостоятельно |
|||
![]() |