Тема: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

В поиске аналогичной темы не нашел.
Если кнопке назначить такой макрос:

^C^C_stretch;_c;\\\;

то команда "_stretch" ("растянуть") будет выполняться без запроса об указании базовой точки, т.е. действие такого макроса оказывается аналогичным действию команды "_lengthen" ("увеличить") с опцией "_dy" ("ДИнамика").

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов
Да-а-а. Вопросик, однако. "stretch"- одна из любимых моих команд. Сколько ни крутил, ничего не получается. Если использовать Displacement, все равно запрашивается точка старта :(

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

Владимир Громов пишет:

Если использовать Displacement, все равно запрашивается точка старта :(

Нет. Не запрашивает. Это?

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов
Поясни, пожалуйста, чего необходимо добиться от макроса.
Покрутил, повертел твой вариант, но не понял цели...
Рассматривал работу с полилиниями и дугами (акад 2004).

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

PS. Аналогичность действия команде

 "_lengthen" ("увеличить") с опцией "_dy" ("ДИнамика")

не получил, может не так использовал или чего напутал.
Прошу в краце пояснить.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Евгений Елпанов
Эта "аналогичность" проявляется визуально только в режиме "ORTHO" для ортогональных отрезков или для прямоугольников. Смысл ее ("аналогичности") - именно в отсутствии запроса на указания базовой точки. В определенных случаях такая конструкция может пригодиться при создании более сложных макросов для упрощения операции растяжения, например:
нарисован квадрат 100х100 и надо вытянуть его в прямоугольник по оси X на 50 единиц. Тогда макрос может выглядеть так:

^C^C_stretch;_c\\\;@50,0;

Достаточно только указать секрамкой (опция "_c") нужную часть для растяжения и прямоугольник немедленно растянется без указания базовой точки.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Forma
Работу такой конструкции в AutoCAD 2006 пока не проверял.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Евгений Елпанов
А вот попробуйте создать другой макрос для растяжения с передачей относительных координат из макроса в командную строку без "\\\". Я долго бился и всегда запросы подряд о базовой точке и второй точке перемещения путали все карты.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов
Вы имеете в виду турнир кнопочники/клавишники?

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

Скажу ПО СЕКРЕТУ: эта штука помогла Profan'у установить вселенский рекорд при выполнении теста имени моего имени в этой теме:
https://www.caduser.ru/forum/topic23956.html

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Евгений Елпанов
Восхищен. Вы попали в самую точку.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов
Тогда попробуйте вообще не использовать мышку, а только клавиатуру...
Например:
(vl-cmdf .....
Хотя запускать можно и мышкой:)

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Евгений Елпанов
Этот макрос у меня родился именно при исследовании того теста. Вы ведь предлагаете использовать AutoLisp, а это тестом не предусмотрено. Тест выполнялся Profan'ом с использованием только мыши и кнопок, без использования клавиатуры вообще. Ведь он кнопочник до мозга костей. Но я, все-таки, рассматривал возможность написания программки на AutoLisp для выполнения того теста. Поскольку параметры теста достаточно четко определены, то весь тест свелся бы к единственному указанию первой точки прямоугольника и время выполнения оказалось бы близко к нулю. Однако именно для теста это не годится. А вот макросы - это другое дело.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов

^C^C_stretch;_c\\\;@50,0;

Здесь не хватает точки с запятой после "c". Такой макрос требует нажатия ПКМ, а это непозволительная роскошь на соревнованиях  вселенского масштаба. Такой макрос

^C^C_stretch;c;\\;;@50,0;

действует мгновенно, что позволило-бы улучшить рекорд. Молодец, ценю за шутку!

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

И за рекламу макросов!!!

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Vova
Совершенно верно. Это я пропустил точку с запятой, когда записывал макрос сюда. А ваш макрос вообще работает великолепно. Только я записал бы его так:

^C^C_stretch;_c;\\;;@50,0;

т.е. с подчерком для опции.
Раз уж вы здесь, приведу полный макрос, который Profan использовал при выполнении теста:

^C^C_DATE _rectang;\@100,150;_stretch;\\\;@0,-50;_line;\\;_line;\\;_circle;\_D;100;^C_DATE

Как видите, всего одна кнопка. Дальше я просто не стал усовешенствовать этот макрос. И так результат впечатляющий. Но корректный ли он? Ведь макросы не запрещены и, с другой стороны, если ориентироваться именно на конечный результат, то все средства хороши, кроме AutoLisp'а. Этот тест Profan выполнял лежа на диване и мышка двигалась по покрывалу, достаточно неудобно, результат мог бы еще лучше, особенно с учетом вашего усовершенствованного макроса. Надеюсь, никто не почувствовал себя сильно обманутым?

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

Владимир Громов пишет:

Надеюсь, никто не почувствовал себя сильно обманутым?

Я нет. Но вот другие...

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

> Владимир Громов
Добавлю еще, что пробел после _DATE в начале макроса и ^C перед _DATE в конце я вставил только для того, чтобы протокол выполнения соответствовал протоколу при последовательном вводе команд, когда каждая команда имеет свою кнопку.

Re: Команда "STRECH" ("РАСТЯНУТЬ") без указания базовой точки

Аналог макроса

^C^C_stretch;_c;\\;;@50,0;

на AutoLisp:

(vl-cmdf "_stretch" "_c" pause pause "" "" "@50,0")