Тема: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

Как добавить в макрос на кнопке "Stretch"

 $M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch) 

включение "Ortho"?

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

Макрос на новую кнопку:

^C^C^P(if (= (getvar "ORTHOMODE") 0) (setvar "ORTHOMODE" 1)) _stretch

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Это как раз то, что нужно. Спасибо большое. Надо наверное, пояснить.
Опция "stretch" без ORTHO немыслима. По крайней мере для меня. Спасибо.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Forma
В общем случае для фигуры произвольной формы это не очевидно. Для меня, например, удобнее нажать F8, если надо растягивать объект именно вдоль осей. Для меня, например, гораздо важнее включение опции "секрамка" при выборе объекта для команды "_Stretch" ("Растянуть"), поскольку при вводе этой команды иногда трудно выбрать объекты с помощью опции "_BOX" ("БОКС") выбора объектов через прицел (квадратик).

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Правильно пишите. Много зависит от характера работа. У меня как раз видимо наоборот. Я в основном корректирую чертежи и боюсь зацепить лишнее. Поэтому пользуюсь в основном "_BOX". Да это Вы сами, наверное, давно заметили.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Forma
Вот именно BOX-то и плохо. Когда линни расположены близко друг к другу, легко можно попасть прицелом на ненужный объект. Если же включена секрамка, то выбрать нужные объекты легче, ведь толщина линии рамки выбора гораздо меньше размера прицела. А саму рамку, поскольку она явно секущая, веди хоть влево, хоть вправо.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Подождите. Так секущая рамка всегда включена. Правой клавишей мыши. Я и так работаю. Или мы о разных вещах говорим?

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Forma
Я вот что имею в виду. По умолчанию выбор объектов предлагается производить поодиночке с помощью прицела выбора объектов ("pickbox" - квадратик). Если же мы нажмем левую кнопку мыши и поведем курсор вправо, то получим рамку выбора. Если же мы поведем курсор влево, то получим секрамку. Только надо, чтобы прицел находился в пустом месте рисунка. В насыщенном рисунке объекты могут находиться на расстоянии друг от друга, меньшем, чем "pickbox" и тогда велика вероятность того, что не удастся воспользоваться возможностью выбора "BOX", обязательно попадем прицелом на ненужный объект, и секрамки автоматически не получится. А если перед выбором объектов задать явно режим "секрамка", то выбор нужных объектов производится гораздо лучше, ведь линия рамки значительно меньше "pickbox" и перекрестье можно легко запихнуть между близко расположенными линиями. У меня для этого есть специальная кнопка, которая находится на панельке с самыми ходовыми привязками + "рамка" + "секрамка" + "несколько". Ведь для растяжения надо иногда очень точно выбрать объекты, причем сам выбор требует применения именно секущей рамки.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Теперь понял. Да действительно. Это интересно. У меня насыщенные чертежи. И есть такая проблема втиснуться. Можете разместить в разделе "Готовые программы"? А то мы вроде здесь уже не в тему. Т.е. в тему, но как то в сторону.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Я вот сейчас подумал о том как я пользуюсь командой "Stretch". А пользуюсь очень часто. 99%- это секущей рамкой. Так что этим надо заняться плотно.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

На самом деле здесь не надо заниматься плотно, просто после предложения выбора объектов надо ввести опцию "_c" и появится секущая рамка независимо от направления движения курсора. Именно эта опция и назначена у меня специальной кнопке. На самом деле макрос там посложнее, взятый из стандартной кнопки. Вот фрагмент меню, в котором я собрал избранные опции:

**СРЕДСТВА
ID_Средства_0  [_Toolbar("Средства", _Floating, _Show, 400, 50, 1)]
ID_From        [_Button("Смещение от", "RCDATA_16_OSNFRO", "RCDATA_16_OSNFRO")]_from
ID_Конточка_0  [_Button("Конточка", "RCDATA_16_OSNEND", "RCDATA_16_OSNEND")]_endp
ID_Середина_0  [_Button("Середина", "RCDATA_16_OSNMID", "RCDATA_16_OSNMID")]_mid
ID_Пересеч_0   [_Button("Пересечение", "RCDATA_16_OSNINT", "RCDATA_16_OSNINT")]_int
ID_Нормаль_0   [_Button("Нормаль", "RCDATA_16_OSNPER", "RCDATA_16_OSNPER")]_per
ID_Узел_0      [_Button("Узел", "RCDATA_16_OSNNOD", "RCDATA_16_OSNNOD")]_nod
ID_Ближайшая_0 [_Button("Ближайшая", "RCDATA_16_OSNNEA", "RCDATA_16_OSNNEA")]_nea
ID_OsnapCent   [_Button("Центр", "RCDATA_16_OSNCEN", "RCDATA_16_OSNCEN")]_cen
ID_OsnapQuad   [_Button("Квадрант", "RCDATA_16_OSNQUA", "RCDATA_16_OSNQUA")]_qua
               [--]
ID_Выбрать_Рамка_0 [_Button("Выбор Рамка", "RCDATA_16_SELWIN", "RCDATA_16_SELWIN")]$M=$(if,$(getvar,cmdactive),,_select;)_w
ID_Выбрать_Секрамка_0 [_Button("Выбор Секрамка", "RCDATA_16_SELCRO", "RCDATA_16_SELCRO")]$M=$(if,$(getvar,cmdactive),,_select;)_c
ID_Выбери_Добавь_0 [_Button("Выбор Добавь", "RCDATA_16_SELADD", "RCDATA_16_SELADD")]$M=$(if,$(getvar,cmdactive),,_select;)_a
ID_Выбери_Удали_0 [_Button("Выбор Удали", "RCDATA_16_SELREM", "RCDATA_16_SELREM")]$M=$(if,$(getvar,cmdactive),,_select;)_r
ID_Несколько   [_Button("Выбор несколько или Многораз", "RCDATA_16_MULTI", "RCDATA_16_MULTI")]_multiple

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

Естественно, этот фрагмент годится для AutoCAD'ов вплоть до 2005. CUI 2006 привести не могу.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

Вот еще вариант для разнообразия:
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_ortho on stretch)

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> LeonidSN
Тогда уж так:

$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_ortho _on _stretch)

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Владимир Громов
Не вдаваясь в теорию должен заметить, что выложенный макрос (LeonidSN (2005-09-06 20:58:18)) работает у меня именно в таком виде. И не один год...

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> LeonidSN
Так между этими вариантами нет никакой разницы, поэтому оба и работают. Владимир Громов только адаптировал твой к русской версии, добавив знак подчеркивание перед анг.командой. И такой будет работать: ^C^C_ortho _on _stretch Только нужен-ли он в принципе?_

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> LeonidSN
Вы поосторожнее с такими макросами.
А, то получите то же как и я :
https://www.caduser.ru/forum/topic20624.html

> Vova
https://www.caduser.ru/forum/topic20624.html
Вот это аргумент, так аргумент.:)))

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Vova
различия есть, у меня ortho on stretch записано раздельно. Вариант Forma я пробовал, у меня он не работает, AutoCAD не признает команды:
ortho _on _stretch.
Возможно, дело действительно в русификации (мой компьютер не локализован), а может, в чем другом.
Во всяком случае, факты - упрямая вещь!

> Forma
Сочувствую. В конце концов, каждый из нас может попасть под паровоз.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> LeonidSN
В обоих макросах запись через пробел. Пробел это значит Enter. Его можно и даже лучше заменить на точку с запятой. Со знаком подчеркивания все команды на английском будут работать в любой версии, даже в английской. Проверь на клавиатуре, поставь подчеркивание перед любой командой, будет работать.

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> Vova
Дошло, наконец, и до меня!!!
Я эти пробелы не рассмотрел сразу. Теперь все стало на свои места! Конечно, программист не должен верить в мистику. А иногда очень хочется...
Vova, я очень признателен за долготерпеливое объяснение.
Спасибо!

Re: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?

> LeonidSN
Ну тогда тебе надо сюда http://dwg.ru/art/2 (не обращай внимания, что там про LT) и сюда https://www.caduser.ru/forum/topic19089.html