|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Попасть в слой.
Engineer
New-York
Регистрация: 05.09.2003
Сообщений: 10,288
|
||
Просмотров: 38455
|
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
В смысле, без столь тобою любимых кнопочных макросов, которые помещают размер куда надо :?:
Идея проста - сделать реактор, реагирующий на появление новых примитивов в чертеже и нехай он закидывает куда надо.... Разумеется, если образмеривание делается на нескольких слоях, то нужно учесть также слой под активным ВЭ. > forMA Шутка удалась ![]() ![]() ![]() ![]() ![]() |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Действительно ВСЕ хотят? Тем, кто имеет отношение к архитектуре, можно посоветовать перейти на ArchiCAD. Там размеры ставятся на свой слой автоматически. Или перейти на Revit. Там проблемы со слоями вообще нет, поскольку самих слоев нет. Остальные перебьются. Сделать нужный слой текущим - велика проблема. Скажут, мол, много слоев, в глазах рябит. Так обзовите слои так, чтобы сразу можно было найти, например, как у forMA:
06-DIMENSION. Насчет кнопок с соответствующими макросами говорить не буду, Vova сам лучше знает... |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Странно мне, что Autodesk не предусмотрела механизма или инструмента, необязательного к исполнению, - механизма увязки объекта с определенным слоем, назначаемым пользователем. Сверхуниверсальность AutoCAD'а создает много проблем, главная из которых - неоднозначность приемов работы. Поэтому и приходится продвинутым пользователям придумывать разные СТП, чтобы подавить эту неоднозначность. Однако, ВСЕ знают, что размер - специфический объект AutoCAD'а, и к нему вполне можно было бы применить этот инструмент. Поставить, например, в соответствие команде образмеривания слой 06-DIMENSION и больше не думать об этом, слой становился бы текущим автоматически. А то вот пользователи должны сочинять реакторы. То же самое можно сказать и про текст. Правда, мне кажется, что тот факт, что слой является свойством объекта, как-то мешает реализации этого инструмента.
|
|||
![]() |
|
||||
Регистрация: 25.08.2005
Сообщений: 2,556
|
для Profan
----------- Поставьте тот же ЕСКД как теоретическую базу для черчения в AutoCAD хотя бы в своей области и не будет никаких вопросов или проблем. Насколько я знаю в CS многое решено. Дорого, конечно, стоит. Но можно вполне обойтись и LISP c VBA. Я пребываю в огромном удивлении. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Что-то мало предложений. Макрос, реактор, переход на др программы, и все? А как-же для простых смертных, которым это не под-силу? А хочется... И текст также хочется в слой засунуть, и еще кое-что. А переключатся ох как неохота. Как и кисточкой мазать. А СТП велят, чтобы было единообразно.
Да, чуть не забыл, я говорю об АС-2005. |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Vova, это очередная загадка?
Мое решение на VBA (пока без обработки ошибок по нажатию ESC - если пользователь отказался от продолжения команды то будет оставлен слой размеров) Для простоты также предполагаем что слой для размеров "6-DIM" уже присутствует в чертеже (хотя, создать его программно - не проблема) Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Есть мааахлонький вопрос: работаем чисто в каде? Никаких ADT / MDT / ABS? Если да, то (ИМХО!!!) проще либо сделать макрос на кнопку, либо лисп, меняющий свойства последнего примитива, либо (что еще лучше) - реактор. Правда, с реакторами тоже морока. У моих сделан именно реактор, но, чую, учтено было не все.
> vk : Умоляю, если сегодня еще появишься, напиши мне в почту либо в аську, чертовски хочу некоторые моменты обсудить!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для forMA
При чем тут ЕСКД, Господи? Я говорю об полуавтоматическом управлении объектными слоями средствами самого AutoCAD'а. Не автоматическим, как в ADT и т.п., в которых слои уже назначены программно, а по желанию пользователя. А то, что спрашивает Vova можно же решить с помощью AutoLisp'а, только заменить стандартные макросы на кнопках и в пунктах меню новыми командами, в которых нужные слои будут переключаться автоматически. Ну, и обработчик ошибок нужен, который лучше записать в acad.lsp. Конечно, остается проблема с командной строкой, так это пусть "клавишники" подумают. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
> X-DeViL : А перевод?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Бизнес-шмизнес Регистрация: 26.05.2004
Питер
Сообщений: 1,911
|
Ну чтобы не создавать кнопочку, можно сделать макрос который при нажатии определенной комбинации клавиш на клаве ВРЕМЕННО (temporary) переключает слой в, например, "КЖ_Стены_Размеры" и затем в момент отпускания клавиш, слой возвращается в текущий...
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
По мне - так самый простой и действенный вариант делать все полу-автоматом т.е. сделать лисп, прицепить его куда душе угодно и вызывать, как пожелаешь, время от времени, а он пусть раскладывает все по слоям - и ни каких проблем и все под контролем (ну разве, что маркер центра, который рисуется двумя линиями может не попадать на слой размеров т.к. примитв - не размер и попробуй его отфильтруй).
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Рисовать размер на слое РАЗМЕРЫ (DIM и т.д) - примитивное решение для частных случаев.
Слоев с размерами разного назначения должно быть много! Размеры между координационными осями, которые нужны всем, кладочные и т.п. Самое худшее, когда файл с размерами в одном слое попадает смежникам - ненужное не отключишь, приходится вытирать или сортировать по другим слоям. Размеры - только частный случай, когда с объектом хочется связать слой. Мы сделали так - в классификаторе слоев имеется свойство - метод слоя. Метод - это любое LISP-выражение. Имеется одна "команда" - нарисовать методом слоя. В этом случае не надо много кнопок. При установке слоя можно одним щелчком запускать требуемую программу (команду). В частном случае, для слоев размеров это может быть команда простановки размеров. |
|||
![]() |
|
||||
Инженер строитель Регистрация: 24.02.2005
Москва
Сообщений: 396
|
Вот решени для размеров и штриховки. Сам очень активно пользуюсь
http://dwg.ru/forum/viewtopic.php?p=...ghlight=#25374 |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Krieger!!!!
Между прочим, в свой тайм-аут я зашел на autocad ru и создал тему-Удобно-ли работать с клавиатуры-продолжение 2. И задал там вопрос: кто-бы победил, если-бы надо было в конкурсе начертить 10 линий, и из них через одну в своем слое. ТЕМА УДАЛЕНА МОДЕРАТОРОМ А какая связка=бы получилась! Клавишники отдыхают. Я перехожу в другой лагерь Krieger, расскажи подробно, как это сделать |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Krieger
Точно, в свойствах инструмента все есть. А я тут распинался... Только и выполнять команды надо через палитру инструментов. На кнопки и командную строку настройка инструмента в палитре не действует. А кто-то говорит, что на кой переходить с 2002 на 2006. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
> Profan : А поконкретнее? Какие сложности? Может, я их прошел, не заметив, а может, еще не столкнулся?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
архитектор Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345
|
Лучшим решением вопроса, все таки являются тулпалитры. Я в них блоки различных дверей и окон засунул - они на нужные слои ложатся и разными цветами, настройками
>Vova Цитата:
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
> Asys : Дело в том, что инструментов будут пользоваться только в том случае, если предоставлен инструмент удобный. Копать можно и стальной пластиной, но удобнее - лопатой. Заодно вступает в игру и особенность психики - запоминается лучше графическая, а не текстовая инфа (не относится к программистам
![]() > Profan : На каком каде? И что там конкретно начинается?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Цитата:
Так ли это. Ведь благо в 2006 появилась возможность настроить свою комбинацию на самопальный макрос. У меня, например, при нажатии на ctrl+shift+1 начинает отрисовывается полилиния на своём слое, при ctrl+shift+2 другая pl и т.д. МАКРОС ( ^C^C_-Layer;_Make;All.50;;_-Lweight;Послою;(command ^M;"_pline")(while (= (getvar "cmdactive") 1) (command ^M;pause))(setvar "clayer" "0")(princ) ; ) Так что можно спорить с ctrl+3. Но самое главное это не зацикливатся на одном, нужно все грамотно чередовать. выкладываю как я это делаю, может не так [ATTACH]1140621535.jpg[/ATTACH] |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
> Neznayka
Про 2006 ничего не скажу, не работал. Однако, если к примеру набрать команду отрисовки размера к клавиатуры или же испрользовать стандартную кнопку, то отрисовка пойдет все же на текущем слое? > ALL Немного подправленая версия, хотя, тоже далекая от идеала Код:
![]() Предполагается что слой "Размеры" уже существует и не заморожен. |
|||
![]() |
|
||||
Инженер строитель Регистрация: 24.02.2005
Москва
Сообщений: 396
|
У меня используются на чертежах порядка 15 слоев. И чтоб нарисовать линию в одном из них надо 15 кнопок или 15 сокращений в acad.pgp :idea: (про меню не говорю-оооочень долго)
Я делаю так: размеры и штриховка сразу отрисовывается в своих слоях, остальное кисточкой и панелью слоев, блоки из тулпалетсов сразу на свой слой. |
|||
![]() |
|
||||
Регистрация: 25.08.2005
Сообщений: 2,556
|
Цитата:
Или может ссылка есть на подробности? |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Цитата:
forMa, как бы мы с X-DeViL и все остальные были тебе благодарны, если-бы ты, пошуршав Хелпом, разобрался с этим вопросом и разжевал всем остальным, как это сделать. Наводка, куда смотреть: Help по слову Tеmporary. Затем Temporary Override keys. Макрос для вызова слоя, пусть с названием Sloi-2: ^C^C-La;set;Sloi-2;; (пишу по памяти, нет под рукой АС, но у тебя есть много примеров перевода в слой) Предварительно такой слой надо создать. При нажатии на заданные клавиши текущим должен стать слой Sloi-2, а при отпускании клавиш возвращается прежний текущий. С ходу у меня не получилось, а на работе перегруз. Я думаю, Мастеру под силу такая работа. Это будет хорошим пропуском в Профессионалы |
|||
![]() |
|
||||
Регистрация: 25.08.2005
Сообщений: 2,556
|
Первое:
Цитата:
Второе: Цитата:
p.s. Спровоцировать, что бы потом обвинить в провоцировании. Уже проходил. Так, что лучше я промолчу. |
|||
![]() |
|
||||
Бизнес-шмизнес Регистрация: 26.05.2004
Питер
Сообщений: 1,911
|
Да... собственно я разобрался с тем как менять значения переменных (там на дизеле вроде все пишется) из temporary overrides, а вот как поменять значение переменной на <текущее значение>+<какой-то суффикс> (например - сейчас слой "Стены", а прибавить надо "_Размеры")! Вот с этим я не разобрался... по хэлпу сложно...
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
forMa не простой смертный. Уже использует много макросов, которые получил на AutoCAD.ru. Даже сам выставлял. А в данном случае вот он, нужный макрос, в посте №54.
Мою цитату следовало бы закончить: Цитата:
Х-deVIL> по твоей идее объявляется МОЗГОВАЯ АТАКА Как создать горячие клавиши, делающие нужный слой текущим при их нажатии и возвращающие предыдущего при их отпускании? Дай, пожалуйста, все свои шаги, чтобы стартовать не с нуля. |
|||
![]() |
|
||||
Бизнес-шмизнес Регистрация: 26.05.2004
Питер
Сообщений: 1,911
|
Наработка еще настолько сыра что ее даже выкладывать стыдно...
Код:
- temporary overrides работает только при активной команде, а в такой формулировке она прерывает уже начатую команду - и вообще она как-то работет не так как я хочу... точнее совсем не работает... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Я с temporary overrides не работал, но у меня вопрос - а слой-то вообще существует? или идет попытка назначить clayer невозможное значение? Может, слой сначала все же создавать надо, а?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Попробовал на 2005 провернуть просто назначение слоя в прозрачном режиме. Ни фига, имя сначала надо вычислить для слоя. Народ, может, стоит сначала попробовать простой макрос наваять, а потом уже на temp override замахиваться? Потому как у меня простого универсального макроса не получилось (лисп не упоминаю сознательно).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Маленький момент - лисп должен поддерживать работу в прозрачном режиме (ЯТД). Лично мне такое не реализовать (надеюсь, что это когда-нибудь исправится).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Невысокая активность говорит о том, что обладатели 2006 не очень понимают, о чем речь. Я бы хотел, чтобы мы коллективно разобрались с одной фитчей, которая обещает интересную перспективу-работая в текущем слое можно прижать клавишу, при этом текущим станет другой слой-нарисовать в него что-то и, отпустив клавишу, вернуть прежний слой. Создайте в учебном чертеже 2 слоя-один с именем Sloi-1, и другой- Sloi-2. Текущим сделайте первый. Хелп откройте на статье Temporary Override Keys. Я даю здесь вольный перевод, где больше отсебятины.
1. Откроем окно CUI, в левом верхнем углу выбираем Main CUI File (acad.cui) и в этом списке открываем Keyboard Shortcuts. 2. Здесь 2 строки Shortcut Keys и Temporary Override Keys (Горячие клавиши и временные горячие клавиши) Кликнем на Temporary... Раскрывается список существующих временных (а кто про них знает?). Здесь, по идее, можно назначить и свое собственное. Но сначала опробуем существующее. Пусть это будет включалка привязок. -Toggles Object Snap Mode - и дважды по ней щелкнем. В окне справа вверху выделилась строка с F3. Мы знаем эту клавишу. При нажатии она переключала привязки. Но чтобы при удержании? Здесь есть и вторая строка SHIFT+' Клик по любой из этих строк выдает в нижнем правом окне совершенно одинаковый макрос переклучения привязок, по-идее должно работать одинаково. Но ведь Shift + одинарная кавычка должен выдать двойную кавычку, это верхний регистр? Странно. Возьмем команду Line, прижмем Shift+' и видим... Точнее, кто видит, а кто нет. В зависимости от состояния переменной Tempoverrides. Поставьте ее в 1. Теперь можно в процессе команды прижать либо F3, либо SHIFT+' и около курсора появится чашка с блюдцем (для любителей кофе) Привязки временно отключатся. Отпуская клавиши, привязки возобновляются. Точно также можно назначить перемену слоя. Продолжаем читать HELP. 3. ... Продолжение от меня поступит только через сутки. Если не найдутся нетерпеливые, и не продолжат. Макрос, который я дал в №54, работает. Но у меня не все получилось, поэтому готового решения не будет. Пробуйте... |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот что я сделал (AutoCAD 2006 РУС).
Создал новую клавишу временной замены с названием "Замена слоя". Сочетание клавиш SHIFT+1 (для пробы). Макрос 1 (нажатие клавиши): ^C^C(setq lay (getvar "clayer"));_-layer;_m;Размеры;; Макрос 2 (отпускание клавиши): ^C^C(setvar "clayer" lay);(setq lay nil); Как работает. Допустим, вызвал команду "_line" ("отрезок"). Не указывая точки, нажимаю SHIFT+1. Команда отменяется, слой переключается на "Размеры". Теперь при нажатых SHIFT+1 могу рисовать на слое "Размеры". Нарисовал, отпустил клавиши, вернулся предыдущий слой. Что надо проверить. Роль ^C^C. Думаю, что для клавишников такая фигня с клавишами временной замены малоприемлима. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
1. ^c^c должно быть, без них не работает, поэтому сначала надо взять (почти?) любую команду рисования, затем нажать врем. горячие клавиши, в результате знаки ^c^c отменят эту команду, но позволят войти в режим временной команды, где чашка с блюдцем. Затем надо взять уже нужную команду - рисования или вставки блока и работать, не отпуская клавиш.
2. Согласно Help при отпускании клавиш, если во второй строке (отпускание) ничего нет, должен восстановиться постоянный режим. В нашем случая, должен вернуться прежний слой. Но этого не происходит. Profan и АУ дали вторую строку. (Profan> можешь дать здесь выписку из русского хелпа?) В моем варианте макроса (№54) я дал во второй строке ^C^C_Layerp. И все работает. НО При последующей попытке возобновить команду правой кнопкой мыши выдается Layerp и автокад ругается. То есть здесь недоработка AutoDesk 3. Чисто работать только на клавишах не удается. Если первый раз команду можно взять с клавиш, то, уже удерживая клавиши (Shift+1-в варианте Profan), приходится работать только с кнопок. Даже с Tool Palette команды не берутся. 4. Есть еще одно необычное для автокада ограничение для назначения горячих клавиш. Но я оставляю это как загадку. Кто возится с этим делом, должен обязательно наткнуться и задaться вопросом-почему комбинации не создаются? 5. Попробуйте нарисовать Spline в режиме перевода в новый слой. У меня при удержании Shift+1 и нажатии ПК комп начинает трещать и на экран выходит законное меню с привязками. Это что, две фитчи вступили в противоречие? |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Попробуйте так:
Нажатие: Код:
Код:
Порядок действий: Вводим команду, например vov-ин сплайн; жмем shift+1; указываем на экране две точки; теперь можно отпустить shift+1 и слой поменяется назад, а сплайн дальше будет чертиться в слое "Размерные"; указываем остальные точки; жмем правую кнопку сколько угодно раз; если хотим привязки жмем с ctrl. У меня все зашибись, команды можно вводить хоть с комстроки, хоть с кнопок, хоть с тулпалета - все работает. Единственный минус - слои должны быть заранее определены в чертеже. Но так как я не гуру, пользуюсь шаблонами и все моё всегда со мной. ![]() |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Vova
Вот выдержка из русского "Руководства по адаптации": Для создания клавиши временной замены 1 Щелкните меню "Сервис" -> "Адаптация" -> "Интерфейс". 2 На вкладке "Адаптация" диалогового окна "Настройка интерфейса пользователя" нажмите знак (+) рядом со списком "Горячие клавиши", чтобы развернуть этот список. 3 На панели "Адаптации в <имя файла> щелкните правой кнопкой мыши "Клавиши временной замены". Щелкните "Создать" -> "Временно заменить". Новая временная замена (с именем "Временная замена1") будет размещено в нижней части дерева "Клавиши временной замены". 4 Выполнить одно из следующих действий: ¦ Введите новое имя вместо текста "Временное изменение1". ¦ Щелкните правой кнопкой мыши надпись "Временное изменение1". Выбрать "Переименовать". Введите новое имя временной замены. 5 Выберите в области структуры новую временную замену и обновите панель "Свойства": ¦ В поле "Пояснение" введите описание временной замены. ¦ В поле "Макрос 1 (нажатие клавиши)" введите макрос, который будет выполнен при нажатии клавиши временной замены. Если никакое значение не назначено, макрос по умолчанию будет c^c^. ¦ Чтобы открыть диалоговое окно "Сочетания клавиш", в поле "Клавиши" нажмите кнопку [...]. В диалоговом окне "Сочетания клавиш" в поле "Нажмите новую комбинацию быстрого вызова" нажмите клавишу. Разрешенные модифицирующие клавиши включают функциональную клавишу (клавиши Fn) без модификаторов, SHIFT+буква, SHIFT+цифра или SHIFT+функциональная клавиша. ¦ В полях "Нажмите новую комбинацию быстрого вызова" и "Назначена для:" отображаются текущие назначения для клавиши. Если выбранная клавиша еще не назначена, щелкните "Назначить", затем щелкните OK. ¦ В поле "Макрос 2 (отпускание клавиши)" введите макрос, который будет выполнен, если отпустить клавишу временной замены. Если значение не определено, то при отпускании клавиш приложение возвращается в предыдущее состояние (до выполнения временной замены). Для изменения клавиши временной замены 1 Щелкните меню "Сервис" -> "Адаптация" -> "Интерфейс 2 На вкладке "Адаптация" диалогового окна "Настройка инте пользователя" нажмите знак (+) рядом со списком "Горячие развернуть этот список. 3 В панели "Адаптации в <имя файла>" щелкните клавишу вр которую нужно изменить. 4 Внесите необходимые обновления в панель "Свойства": ¦ В поле "Пояснение" введите описание временной замены ¦ В поле "Макрос 1 (нажатие клавиши)" введите макрос, к выполнен при нажатии клавиши временной замены. Если не назначено, макрос по умолчанию будет c^c^. Должен сказать, что меня данный прием работы (хоть я и преимущественно кнопочник) не прельщает. Неудобно. Лучше было бы, на мой взгляд, реализовать данную возможность с помощью одной из кнопок многокнопочной мыши. И вообще, я не уверен, что скорость работы сколько-нибудь существенно увеличится. Углубляться дальше в эту проблему нет желания. |
|||
![]() |
|
||||
инженер-строитель Регистрация: 04.12.2005
Нижневартовск
Сообщений: 48
|
[Есть еще одно необычное для автокада ограничение для назначения горячих клавиш. Но я оставляю это как загадку. Кто возится с этим делом, должен обязательно наткнуться и задaться вопросом-почему комбинации не создаются?]
Почему не вводится комбинация клавиш Ctrl+F10, например с F9 F11 F12 все в норме, а F10 не пишет? |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Krieger
Вот тут я логику не вижу. Если слой переключается прозрачно, то возможна следующая ситуация: Допустим, я начал рисовать отрезок. Указал первую точку, переключил слой и указал вторую точку. И что получится? Вот проверить сейчас не могу, дома нет установленного AutoCAD 2006, а на работе мы сегодня переезжаем. |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Цитата:
|
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Можно еще так сделать:
назначить сочетанию макрос: Код:
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Вариант Krieger (№73) работает превосходно. Хотел было подитожить, но остались несколько вопросов.
1. В выписке из HELP, приведенной Profan-ом читаем последние строки пункта 5: Цитата:
2. Если в Options, System включить Beep on Error... то при входе и выходе из режима временного действия прижатых клавишей автокад бипает, если макрос на лиспе, и молчит, если лиспа в нем нет. 3 Осталась нерешенной моя загадка (№72 п4). А к ней добавка - Вариант AY на DIESEL (№71). Там есть нечто, очень важное. (сам макрос я проверить на работе не успел, но углядел нечто неожиданное) Что это? |
|||
![]() |
|
||||
Продажа навыков и умений Регистрация: 20.11.2004
Сибирь
Сообщений: 2,501
|
Не в продолжение а в начало темы, так как я клавишник
defun c:d1 () (dimchange "ARKO_TICK") (command "dimlinear" pause pause pause) (command "chprop" (entlast) "" "layer" "000" "" ) (princ)) (defun c:d5 () (dimchange "ARKO_TICK-50") (command "dimlinear" pause pause pause) (command "chprop" (entlast) "" "layer" "000" "" ) (princ)) (defun c:d2 () (dimchange "ARKO_TICK-20") (command "dimlinear" pause pause pause) (command "chprop" (entlast) "" "layer" "000" "" ) (princ)) (defun c:dd () (dimchange "ARKO_TICK-10") (command "dimlinear" pause pause pause) (command "chprop" (entlast) "" "layer" "000" "" ) (princ)) (defun c:d55 () (dimchange "ARKO_TICK-5") (command "dimlinear" pause pause pause) (command "chprop" (entlast) "" "layer" "000" "" ) (princ)) В автозагрузке у меня находится файл, в котором уже есть все блоки и стили. Разные размерные стили у меня разным цветом (при помощи этого удается избежать частой ошибки неправильного размера в узлах разного масштаба). Может кому подойдет... |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Цитата:
Ай-Яй-Яй. Никаких предположений |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Цитата:
Нажатие: Код:
Код:
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Я не пойму, зачем вам прозрачный режим? Этот режим был бы хорош без клавиш временной замены, а в данном-то случае - ведь не будете же вы действительно первую выносную линию делать на одном слое, а вторую на другом слое? Или это чисто теоретический интерес? Vova сетует, что предложений мало, а я вот увидел, что этот способ для меня мало пригоден и мало интересен, и перестал дальше разбираться. По-моему, не для этого эта возможность создавалась, а только для тех случаев, когда не нарушается логика выполнения команды.
|
|||
![]() |
|
|||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Цитата:
Цитата:
Да это все как посмотреть, если размеров предстоит ставить много то лучше конечно переключить слой на необходимый. А если один-два, то почему бы и нет? Еще более интересна идея X-DeViL (пост 87), чертим стены в текущем слоем "стены", надо поставить размеры - зажимаем клавиши и ставим размеры в слое "стены_размеры" и т.д. с любым объектом. Цитата:
Цитата:
|
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Сам лисп. Код:
Нажатие Код:
Код:
(dwgru-layer-set '(("suff" . "_Размеры")("color" . 5))) - добавить суффикс _Размеры к текущему слою (если его нет), установить цвет 5 и сделать слой текущим (dwgru-layer-set '(("name" . "Test")("color" . 1)("lw" . 80))) Создать если нет слой Test цветом 1 и весом 0.8 Анализируется имя текущего слоя и если у него такой же суффикс, то слой не создается, а остается текущий. Таким образом не будут получаться слои Стена_Размеры, Стена_Размеры_Размеры и т.д. PS. Почему-то изменяется имя ф-ции (vla-put-0000) то код брать отсюда [ATTACH]1141736834.rar[/ATTACH] Последний раз редактировалось VVA, 19.09.2015 в 20:34. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Можно в принципе и еще немного добавить - сделать так, чтобы этот лисп прописался в автозагрузку. Если такое надо, то примерный код я показал (с объяснениями) вот здесь. Мне, если честно, просто лень повторять...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для Krieger
Я вот вижу кое-какой смысл в клавишах замены при выполнении одной команды. Но ведь у вас получается так: выполняется одна команда, потом другая (рисую стены, потом ставлю размеры). Вот было интереснее: рисую стены, зажимаю клавиши, слой заменился, команда заменилась, ставлю размеры, отпускаю клавиши, слой вернулся, команда вернулась, продолжаю рисовать стены. Это, конечно чепуха, но на AutoLisp'e можно провернуть. Да все написанные тут вещи можно реализовать на AutoLisp'е. Ну, будет дополнительная кнопка, зато зажимать ничего не надо. А если во время зажима ошибся и надо Esc нажать? А уж с помощью палитры инструментов и кнопок не надо, да и Esc классно срабатывает, команда отменяется, но слой-таки возвращается на исходный, и никакого обработчика ошибок и переназначения переменных не надо, как в лиспе. А ведь надо еще придумать и удобное сочетание клавиш. А у многих сочетания клавиш забиты по самое некуда и даже Shift+1, которое я предложил для пробы, тоже бывает занято. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот политику Vova я понимаю. Он последовательно и целеустремленно пропагандирует изучение новых возможностей AutoCAD'а, находит тонкости, заставляет других шевелить мозгами. Это очень хорошее устремление. Он задает вопросы и ждет, как другие пользователи ответят на них. Я так думаю, что с временным переключением слоя все более или менее понятно, только лучше, все-таки, создать нужный слой заранее. Но вот проблема: мне надо бы не только проставить размеры стен, т.е. иметь слой "Стены_размеры", но и проставить цепочку размеров между перегородками, т.е. по логике вещей иметь или создать слой "Перегородки_размеры". Создавать другое сочетание клавиш для временной замены? И т.п. Вряд-ли, ерунда получается. Лучше я буду аккуратно работать со слоями, потому что мне еще нужен слой "Осевые_размеры", но он у меня автоматически создается при установке рабочих параметров рисунка.
Так вот, для того, чтобы в полной мене оценить возможность использования клавиш временной замены мне и хочется тоже задать вопрос: а в каких еще случаях, кроме замены слоя, можно применить клавиши временной замены? Опять же, по логике вещей можно временно заменить тип линии. Но если он задан по слою, то и не надо. Так же с другими изменяемыми свойствами. Так что же, вся эта матата годится только для одной операции - изменения текущего слоя? Мелковато, IMHO, чтобы извращаться. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
А хрень эта проявляется в том, что сочетание клавиш "Shift+правая кнопка мыши" вызывает контекстное меню временного переопределения объектных привязок. А мне надо начать полилинию с дуги или задать ширину полилинии после указания начальной точки. И что, бросать мышь и правой рукой вводить с клавиатуры опцию, а потом еще, допустим, надо ввести ширину, равную 0.5. Тут забудешь, что надо давить на клавиши еще и левой рукой. Придираюсь, наверное.
|
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Отвечая на №95-Profan
Именно для изучения неизвестных возможностей АС я и поднял эту тему. Несколько выдвинувшись в изучении некоторых разделов и в силу дурацкого склада характера хочу подтянуть до этого уровня других. Для этого-же создаются темы-загадки. Иногда бьют, и больно. Старожилы помнят, как в теме про наложение V-ports один известный в мире автокада спец походя ударил, не пожелав извиниться. Призываю всех к исследованию автокада. Это безумно интересно. Именно на исследовани повышается уровень владения Кадом. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Система временных клавиш работает не всегда четко. По протоколу F2 не очень понятно, что происходит (в отличие от работы с кнопочными макросами). Иногда сбоит при отпускании клавиш. В ком строке вдруг появляется буква той клавиши, которая в паре с Shift. Много непоняток. Видимо, это начало эксперимента Autodesk-a. Вроде как Tool Palettes. Младенец в 2004 и муж в 2006. Profan поначалу сомневался в нужности такой примочки. Вспоминаю старый спор-когда лучше образмеривать, когда все нарисовано, или по ходу рисования. Большинство (не подавляющее) ставит размеры по ходу. То есть работают (условно) по-очереди в 2-х слоях-то в рисуночном, то в размерном. И не только это касается размеров. Электрики могут рисовать параллельно две системы-нормальное питание и резервное. Технологи могут рисовать существующее оборудование и новое, и так далее. То есть, если текущим установлен слой, в котором объектов больше, то, прижав пару клавиш и получив временно текущим другой слой, удобно в нем нарисовать что-то мелкое. Я уже неск. дней рисую 3 параллельные системы при помощи временных клавиш
Таком образом, Autodesk в 2005 сделал подарок кнопочникам, позволив из Tool Palettes забирать команды рисования с нужными параметрами (например, слой). А в 2006 похожий, хотя и не совершенный подарок получили клавишники. Это Temporary Override keys. Паритет сохранился. . Уверен, это направление будет развиваться. Наш мозговой штурм удался. X-DeViL подал идею. Profan дал первый работающий код. Krieger убрал ^C^C, которое мешало. AY предложил кавычку, заменяющую ^C^C а Vova нашел, что клавиши назначаются только при низшем регистре. Все это маленькие открытия, не указанные в HELP. Будут ли еще предложения по мозговой атаке:?: ЗЫ. AY, как ты раскопал про кавычку? |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вариант AY я как-то прозевал. Вот сейчас попробовал. Работает, но как-то иногда неоднозачно. Почему-то текущим оставался слой "Размеры". И вот еще какая штука. Нажимать клавиши надо в такой последовательности: сначала Shift, потом 1. Это легко. А вот отпускать? Иногда одновременно отпустить две клавиши не получается. Shift отпускается (у меня) чуть-чуть раньше. В результате при отрисовке того же сплайна в командной строке зависает единица и не дает продолжить отрисовку сплайна. Значит, надо стараться отпускать клавиши в такой последовательности: сначала 1, потом Shift. Подобные тонкости, конечно, затрудняют применение клавиш временной замены, IMHO.
|
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Хочется сказать несколько слов о CUI. Еще год назад, когда AutoCAD 2006 только появился, отношение к CUI у меня, как и у многих, было отрицательное. И это неудивительно. Литературы еще никакой не было, а вникнуть в тему с помощью английской Справки было затруднительно. Но потом я получил доступ к русской версии и отношение к CUI стало меняться в лучшую сторону. Я тоже искал всякие XML редакторы, но теперь пришел к выводу, что средства редактирования CUI, предоставляемые самим AutoCAD'ом - самые удобные. Оказалось, что CUI - это тоже целый мир. Вот и возможность назначения клавиш временной замены подтверждает это. Но есть там еще одна возможность - возможность редактирования контекстного меню. И очень мне захотелось переключать слой не с помощью клавиш временной замены, а с помощью контекстного меню. Пока получилось вставить пункт "Замена слоя" в контекстное меню команд. И макрос там простейший:
'_.clayer;Размеры; Ясно, что слой "Размеры" должен быть создан заранее. Но вот для команды "_dimlinear" (рзмлинейный) контекстное меню не предусмотрено. Пришлось в настройках задать вывод контекстного меню в любом случае. После ввода команды _dimlinear в контекстном меню можно выбрать пункт "Замена слоя" и размеры уже будут отрисовываться на своем слое. Проблема в том, как вернуть предыдущий слой по завершении команды образмеривания. Еще проблема - как создать свое контекстное меню именно для команды _dimlinear. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Для создания контекстного меню
1. Щелкните меню "Сервис" "Адаптация" "Интерфейс". 2. В диалоговом окне "Настройка интерфейса пользователя" перейдите на вкладку "Адаптация". В панели "Адаптации в <имя файла>" правой кнопкой мыши щелкните на "Контекстные меню". Щелкните "Создать" -> "Контекстное меню". Новое контекстное меню (под именем "КонтекстноеМеню1") будет помещено в нижней части дерева меню. 3. Выполнить одно из следующих действий: -> Введите новое имя вместо текста "КонтекстноеМеню1". -> Щелкните правой кнопкой мыши надпись "КонтекстноеМеню1". Выбрать "Переименовать". Введите новое имя контекстного меню. 4. В палитре "Свойства" выполните следующие действия. -> В поле "Пояснение" введите текстовое пояснение для контекстного меню. -> В поле "Псевдонимы" введите для этого меню дополнительный псевдоним. Автоматически присваивается псевдоним, по умолчанию соответствующий следующему доступному номеру POP согласно числу загруженных контекстных меню. Здесь есть нюансы: В поле "Псевдонемы" надо нажать на ..., откроется окно, где надо ввести построчно POP519 (тот номер, который будет) COMMAND_РЗМЛИНЕЙНЫЙ - для русского автокада COMMAND_DIMLINEAR - для английского, т.е. имя ЛОКАЛИЗОВАННОЙ команды 5. В панели "Список команд" перетащите команду, которую необходимо добавить, в положение строго под контекстным меню в панели "Адаптации в <имя файла>". 6. Таким же образом добавьте команды в список нового контекстного меню, пока он не заполнится. 7. Нажать "ОК". [ATTACH]1141890829.jpg[/ATTACH] |
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
>Vova
Ну, собственно, догадаться о необходимости прозрачного ввода было не мудрено - если применять ^C^C команда прерывается, а временное переопределение должно выполняться, насколько я понимаю, именно при работающей комманде, иначе удерживание Shift+... производило бы ввод в альтернативном регистре. Кроме того, перед тем как писать свой вариант я посмотрел на то что уже прописано в меню и старался далать по аналогии, однако там ни где нет двух макрсов, что по началу несколько сбило с пути. >Profan Что касается нестабильности работы макроса - у меня тоже было такое ощущение, когда я его только прописал. Тогда я грешил на динамический ввод. Сегодня снова попробовал установленное сочетание и, вроде, нестабильности не заметил. Я думаю что перезапуск автокада поправил ситуацию учтывая отзывы о глюках в cui особенно в отсутствии sp. А что касается очередности отпускания клавиш, то у меня одновременное отпускание проблем не вызывает и все срабатывает. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Прижатая клавиша Shift (так-же как и F-восемь) выдает перемену Othо. При отпускании возврат в исходное. (Shift только в 2006, а F8 и в 2005) А теперь (в 2006) возьмите любую команду и, внимательно глядя на кнопочку Ortho внизу экрана, прижмите Shift. Чувствуете, что происходит? Для временного переопрделения надо жать Shift и еще что-то, пусть Shift+1. Смекаем, что задержка на Shift-е перевернет Ortho. (А нам это надо?) Наблюдаем за кнопкой дальше, прижимая 1. Кнопочка Ortho внизу экрана опять дернулась. А как отпускать? Не потому-ли автокад бипает, если бип включен, что у него мозги набекрень от этого?
Зы Админ, как написать цифрой F- восемь? то смайлик получается, то нормально |
|||
![]() |