Тема: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

На тулбаре Modify кнопки Copy и Move имеют макрос:

$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),[b]grip[/b]),_move,^C^C_move) 

А для нормальной работы надо вот так:

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

То есть в верхнем регистре.
Кстати, кнопка Stretch содержит правильный макрос.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Ну и к чему этот "баг" приводит? В 2002 также. Насколько я знаю, DIESEL не зависит от регистра

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Дизель не зависит, он просто пропускает символы сквозь себя по принципу "что на входе, то и навыходе". А вот Акад очень даже зависит.
А приводит к вот чему.
0. Исправьте вручную кнопки MOVE и COPY.
1. нарисуйте линию.
2. пометьте её, чтобы загорелись квадратики.
3. теперь тащите за центральный квадратик и наблюдайте за командной строкой, там горит ** STRETCH **.
4. нажмите кнопку COPY и смотрите на командную строку, там теперь горит ** COPY **.
Усё ясно ?
А вот НЕ исправленные кнопки MOVE и COPY не переключают режим перетаскивания, потому что там этот БАААГ. А если исправить, то - работает как надо.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Таки БАГ, не так ли ?
И зря админ переименовал тему, потому что и на солнце бывают пятна, и в Акаде бывают баги :)))

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Функция "IF" - см в середине макроса- выдает команду Move или ^C^CMove (а между ними нет разницы) в зависимости от того, совпадут ли первые 4 буквы какой-то внутренней команды со словом grip. (функция "Eq"). Эта внутренняя команда, видимо, включается если об-ект загрипсован. И написана она - в недрах автокада - наверняка в верхнем регистре. Поэтому grip никогда не совпадает с GRIP. И поэтому всегда выполняется команда ^C^CMove. Сравниваются ведь строки, и регистр здесь влияет. Хотите проверить? В командной строке наберите Modemacro и Enter и далее: $(eq,grip,GRIP) Нажмите Enter и в самом левом уголочке статусной строки получите 0. А если написать $(eq,GRIP,GRIP) то получите 1. Если исправить макрос, то я обнаружил только небольшую разницу, если нажать на центральный грип отрезка, блока или окружности не помню какой кнопкой и произойдет множественное копирование без контекстного меню (при команде Copy). Видимо, при появлении этого меню данный макрос устарел, его создатели давно на пенсии и никто в автодеске не хочет исследовать вопрос, чтобы исправить grip на GRIP. Так что это баг, но не влияющий ни на что. Спасибо, Maxim T. заставил меня напрячь свои непрограмистские мозги.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

В дополнение см. http://dwg.ru/forum/viewtopic.php?t=126 … 7a9bc12164
Там мы пытались разобраться с этим-же дизельным макросом.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Думаю, что у этого "бага" (именно так, в кавычках) имеется двойник в AutoLISP'е. Там в некоторых случаях тоже требуется чтоб строка состояла именно из ЗАГЛАВНЫХ букв (такие уж имена у внутренних объектов АКАДа), а применение строчных приводит к ошибке (неправильному результату).
Однако, в руководстве по AutoLISP эти моменты уточняются в каждом разделе справки, где это имеет значение.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Првда ли? чТО в 2004 Автокаде файл нельзя перевести в Архикад? Или в 10ую версию того же Автокада.

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Расскажите пожалуйста ПОДРОБНО. КАК перенести из Фотошопа файл с расширением bmp в Автокад?

Re: Почему используется выражение "grip" вместо "GRIP" в стандартном меню AutoCAD 2004 ?

Леночка, создайте самостоятельную тему со своим вопросом в разделе AutoCAD. На форуме не принято смешивать темы, потому что потом невозможно найти нужное.