Тема: Как написать макрос для перемещения объектов?

^C^C_.move;\.xy;@;

Данный макрос работает, если объекты выбраны предварительно. Происходит перемещение объектов с учетом коордмнатного фильтра. Если нет предварительно выбранных объектов, то команда move выдаст в начале дополнительный запроc на указание объектов и это разрушит всю дальнейшую цепочку ввода.
Как видоизменить этот макрос, чтобы он корректно отрабатывал обе ситуации?

Re: Как написать макрос для перемещения объектов?

???

Re: Как написать макрос для перемещения объектов?

Может что то на основе стандартного из acad.mnu?

ID_Move        [&Move]$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_move,^C^C_move) 

Re: Как написать макрос для перемещения объектов?

На сколько мне известно, этот макрос не дает ветвления в зависимости от наличия или отсутствия предварительного выбора, а придуман, честно говоря, даже не знаю для чего. Легко проверить подменив в "ДА"-ветви move на copy:

[&Move]$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy,^C^C_move)

Команда COPY не выполняется никогда.

Re: Как написать макрос для перемещения объектов?

На сколько мне известно

или
Абсолютно точно известно
???????
И все же, наверно лучше попробовать

$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_.move;\.xy;@;,^C^C_.move;\.xy;@;) 

Возможно, кодд можно упростить.

Re: Как написать макрос для перемещения объектов?

Я же уже пробовал:

Легко проверить подменив в "ДА"-ветви move на copy:
[&Move]$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_copy,^C^C_move)
Команда COPY не выполняется никогда.

Ветвление $(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP) не имеет никакого отношения к наличию или отсутствию набора предварительно выбранных объектов!

Re: Как написать макрос для перемещения объектов?

Мдя... вроде раньше работала конструкция, а в 2005 не хочет....
А если в сторону Лиспа взор обратить? Что то вроде этого повесить на кнопку:

(progn (setq ss (ssget)) (command) (command "_.move" ss "" pause ".xy" "@"));

Смысл такой что (ssget) сработает в любом случае, независимо от того выбраны ли примитивы. А далее следует сброс (command) и непосредственно команда "с нуля".