Тема: Как добавить в макрос на кнопке "Stretch" включение "Ortho"?
Как добавить в макрос на кнопке "Stretch"
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch)
включение "Ortho"?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Настройка меню и DIESEL → Как добавить в макрос на кнопке "Stretch" включение "Ortho"?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как добавить в макрос на кнопке "Stretch"
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_stretch)
включение "Ortho"?
Макрос на новую кнопку:
^C^C^P(if (= (getvar "ORTHOMODE") 0) (setvar "ORTHOMODE" 1)) _stretch
> Владимир Громов
Это как раз то, что нужно. Спасибо большое. Надо наверное, пояснить.
Опция "stretch" без ORTHO немыслима. По крайней мере для меня. Спасибо.
> Forma
В общем случае для фигуры произвольной формы это не очевидно. Для меня, например, удобнее нажать F8, если надо растягивать объект именно вдоль осей. Для меня, например, гораздо важнее включение опции "секрамка" при выборе объекта для команды "_Stretch" ("Растянуть"), поскольку при вводе этой команды иногда трудно выбрать объекты с помощью опции "_BOX" ("БОКС") выбора объектов через прицел (квадратик).
> Владимир Громов
Правильно пишите. Много зависит от характера работа. У меня как раз видимо наоборот. Я в основном корректирую чертежи и боюсь зацепить лишнее. Поэтому пользуюсь в основном "_BOX". Да это Вы сами, наверное, давно заметили.
> Forma
Вот именно BOX-то и плохо. Когда линни расположены близко друг к другу, легко можно попасть прицелом на ненужный объект. Если же включена секрамка, то выбрать нужные объекты легче, ведь толщина линии рамки выбора гораздо меньше размера прицела. А саму рамку, поскольку она явно секущая, веди хоть влево, хоть вправо.
> Владимир Громов
Подождите. Так секущая рамка всегда включена. Правой клавишей мыши. Я и так работаю. Или мы о разных вещах говорим?
> Forma
Я вот что имею в виду. По умолчанию выбор объектов предлагается производить поодиночке с помощью прицела выбора объектов ("pickbox" - квадратик). Если же мы нажмем левую кнопку мыши и поведем курсор вправо, то получим рамку выбора. Если же мы поведем курсор влево, то получим секрамку. Только надо, чтобы прицел находился в пустом месте рисунка. В насыщенном рисунке объекты могут находиться на расстоянии друг от друга, меньшем, чем "pickbox" и тогда велика вероятность того, что не удастся воспользоваться возможностью выбора "BOX", обязательно попадем прицелом на ненужный объект, и секрамки автоматически не получится. А если перед выбором объектов задать явно режим "секрамка", то выбор нужных объектов производится гораздо лучше, ведь линия рамки значительно меньше "pickbox" и перекрестье можно легко запихнуть между близко расположенными линиями. У меня для этого есть специальная кнопка, которая находится на панельке с самыми ходовыми привязками + "рамка" + "секрамка" + "несколько". Ведь для растяжения надо иногда очень точно выбрать объекты, причем сам выбор требует применения именно секущей рамки.
> Владимир Громов
Теперь понял. Да действительно. Это интересно. У меня насыщенные чертежи. И есть такая проблема втиснуться. Можете разместить в разделе "Готовые программы"? А то мы вроде здесь уже не в тему. Т.е. в тему, но как то в сторону.
> Владимир Громов
Я вот сейчас подумал о том как я пользуюсь командой "Stretch". А пользуюсь очень часто. 99%- это секущей рамкой. Так что этим надо заняться плотно.
На самом деле здесь не надо заниматься плотно, просто после предложения выбора объектов надо ввести опцию "_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
Естественно, этот фрагмент годится для AutoCAD'ов вплоть до 2005. CUI 2006 привести не могу.
Вот еще вариант для разнообразия:
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_ortho on stretch)
> LeonidSN
Тогда уж так:
$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),GRIP),_stretch,^C^C_ortho _on _stretch)
> Владимир Громов
Не вдаваясь в теорию должен заметить, что выложенный макрос (LeonidSN (2005-09-06 20:58:18)) работает у меня именно в таком виде. И не один год...
> LeonidSN
Так между этими вариантами нет никакой разницы, поэтому оба и работают. Владимир Громов только адаптировал твой к русской версии, добавив знак подчеркивание перед анг.командой. И такой будет работать: ^C^C_ortho _on _stretch Только нужен-ли он в принципе?_
> LeonidSN
Вы поосторожнее с такими макросами.
А, то получите то же как и я :
https://www.caduser.ru/forum/topic20624.html
> Vova
https://www.caduser.ru/forum/topic20624.html
Вот это аргумент, так аргумент.:)))
> Vova
различия есть, у меня ortho on stretch записано раздельно. Вариант Forma я пробовал, у меня он не работает, AutoCAD не признает команды:
ortho _on _stretch.
Возможно, дело действительно в русификации (мой компьютер не локализован), а может, в чем другом.
Во всяком случае, факты - упрямая вещь!
> Forma
Сочувствую. В конце концов, каждый из нас может попасть под паровоз.
> LeonidSN
В обоих макросах запись через пробел. Пробел это значит Enter. Его можно и даже лучше заменить на точку с запятой. Со знаком подчеркивания все команды на английском будут работать в любой версии, даже в английской. Проверь на клавиатуре, поставь подчеркивание перед любой командой, будет работать.
> Vova
Дошло, наконец, и до меня!!!
Я эти пробелы не рассмотрел сразу. Теперь все стало на свои места! Конечно, программист не должен верить в мистику. А иногда очень хочется...
Vova, я очень признателен за долготерпеливое объяснение.
Спасибо!
> LeonidSN
Ну тогда тебе надо сюда http://dwg.ru/art/2 (не обращай внимания, что там про LT) и сюда https://www.caduser.ru/forum/topic19089.html
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Настройка меню и DIESEL → Как добавить в макрос на кнопке "Stretch" включение "Ortho"?
Форум работает на PunBB, при поддержке Informer Technologies, Inc