|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Вопрос по макросу
Регистрация: 06.07.2006
Сообщений: 85
|
||
Просмотров: 7035
|
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
Так называемые макросы или макрокоманды присваиваются иконкам (кнопкам) панелей инструментов или пунктам выпадающего меню. Эти иконки и пункты, как правило создаются (добавляются) пользователем под свои макрокоманды.
Если есть желание разбираться - могу подсказать, что очень хвалят книгу "AutoCAD: язык макрокоманд и создание кнопок" автор В. Свет (кстати постоянный участник данной конференции). |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Здесь имеется в виду сопряжение двух объектов (отрезков). Отрезки должны быть нарисованы заранее.
_f - это сокращенная запись (алиас, псевдоним) команды "_fillet" ("сопряжение"). _R;0.0 - опция команды, задающая радиус сопряжения равный 0. Для сопряжения надо выбрать объекты. Здесь для выбора объектов используется опция _F - _Fence т.е, линия, пересекающая объекты. Символ ; (точка с запятой) соответствует нажатию клавиши Enter. |
|||
![]() |
|
||||
Регистрация: 06.07.2006
Сообщений: 85
|
Если честно, подробно изучать макросы нет ни времени, ни желания и проиобретать книги тоже.
Тут достаточно информации, если хорошо поискать. Не могли бы вы объяснить, куда мне вставлять макрос ^C^C *******? В командную строку? В макрос (Alt+F8)? И еще куда ?? :shock: |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для AY.
Да, наверное, это так. Я проверял пошагово, но в русской версии алиас _f не срабатывает. Сам макрос может быть таким: Код:
Или таким: Код:
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
>ignor
Вот последовательность действий для 2006 Acada по созданию своей панели инструментов со своей кнопкой. 1. Командой CUI вызываем окно настройки итерфейса (а именно закладку Costomize). 2. Для создания новой команды (неудачный термин поскольку командами принято называть то что набирается в командной строке) нажимаем кнопку New в разделе Command list. После чего в списке команд появляется "пустышка" новой команды с именем Command1. 3. После создания команды (при выделении ее в списке) справа появляется окно свойств данной команды в котором присутствует строка "Macro". В этой строке записывается приготовленная макрокоманда. Чуть выше если необходимо можно создать иконку для команды. 4. В левом верхнем разделе Costamatizations in ALL CUI Files по правому клику на пункте Toolbars создаем новый Toolbar. По умолчанию ему присваивается имя Toolbar1. 5. Из зоны Command list мышью претаскиваем созданную ранее команду на новую панель инструментов Toolbar1. 6. Нажимаем ОК. На экране должна появиться новая панель инструментов с одной иконкой в виде вопросительного знака если вы не создали для своей команды своей картинки. Если панель не появилась можно попрововать отобразить ее выбрав в списке появляющемся по правому клику на любой из панелей инструментов. Далее, кликнув на кнопке панели, проверяем работоспособность написанной макрокоманды и при необходимости исправляем. На прикрпленной картинке показаны пронумерованные действия. [ATTACH]1152186847.gif[/ATTACH] |
|||
![]() |
|
||||
Конструктор (начинающий) Регистрация: 25.01.2007
Беларусь, Гродно
Сообщений: 44
|
Хочется задать вопрос немного не в тему, но близок по духу беседы:
Исторически сложилось так, что я черчу в модели и мучаюсь с маштабами размеров. У меня их в каждом файле около 5, да и люблю пользоватся цветными слоями. Так вот вопрос: Как сохранить созданные стили размеров и слои и передать их все в новый чистенький документ ? Зарание спосибо . |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
шаблоны ?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
или дизайнцентр(ctrl+2). Открываешь чистенький файл, ctrl+2, указываешь путь к файлу с настройками и перетаскиваешь те что нужны в новом
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Ага, тогда до кучи и dws давайте вспомним
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
|
|||
![]() |
|
||||
Вопрос к знатокам макросов. Можно ли наваять такой макрос чтобы закрывал все чертежи(и AutoCAD) с сохранением всех изменений. А то задолбался закрывать по 5 окон каждый день и нажимать "да"
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Да разве можно не глядя закрывать чертежи с сохранениям? Абы какой вид и абы какой зум? Обычно также смотрят, когда был сохранен чертеж, или кем (если в вашей сети это видно). Это может быть важно в смысле найти виновного в несанкционированных изменениях. Лучше 2 раза сохранить, чем потерять работу.
|
|||
![]() |
|
||||
Цитата:
![]() Вам, Владимир, возможно и не нужен такой макрос, а мне нужен. Я ж не заставляю вас им пользоваться (если он появиться).
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для wetr.
Если ты найдешь на этом форуме программу "DocBar" и установишь ее, то в контекстном меню окошка программы увидишь пункты "Save and Close All" и "Exit, Save All". Единственное требование - чтобы файлы были уже раньше сохранены (для нового файла появится запрос об имени и месте сохранения). ASLYS слегка опередил. ![]() |
|||
![]() |
|
||||
ASLYS, Profan, спасибо. Получил больше чем хотел. Прога супер!!! Скачал с сайта новую с поддержкой 2008. Все подошло, работает!
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Пытался разобраться с макросами. В статье от Vova (http://dwg.ru/art/2) замечательно написано. Мне кажется любой поймет - было бы время прочитать. Вот и я прочел, наконец. Попробовал - получилось. Но вот возникла проблемка:
макрос из статьи ^C^C_Mtext;\\_Change;_Last;;_P;_La;Text;; На кнопке все замечательно работает. Но я то привык пользоваться повтором последней команды... А тут последняя команда _change получается... Как из этой ситуации выйти? В Статье В. Свет описывает 2 пути решения этого вопроса. Каким образом будет выглядеть макрос варианта 1? Цитирую: "Первый путь: 1. Временно вызвать и сделать текущим слой "Текст" 2. Напечатать нужный текст 3. Вернуть прежний слой в качестве текущего"
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Кстати, если проставлять размеры и т.п. с Tool paletts, то слой по повтору команды тоже не сохраняется.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Чтобы пользоваться повтором последней команды, я все макросы (для которых это актуально) оформляю в такую оболочку:
^C^C(defun C:M-Command () (command <нужный макрос в синтаксисе лиспа>));M-Command Для твоего случая получится так: Код:
|
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Да уж. Написал не проверив. Действительно так работать не будет. Дело в том, что лисповая функция command вызывает команду _.MTEXT как _.-MTEXT, т.е. с диалогом в ком. строке. А там уже другие правила. Так что в данном конкретном случае мой совет неприемлем. Это, скажем так, исключение из правил.
Сорри, что ввёл в заблуждение. |
|||
![]() |
|
||||
Что же получается нет решения? Тогда какой смысл в таком макросе, если он не срабатывает по повтору последней комманды...
![]()
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
|
|||
![]() |
|
||||
Krieger, у меня не срабатывает по правой кнопке мыши (у меня стоит повтор посл. комманды) по ентер и по пробелу. Рисует текст в текущем слое. ACAD 2009
Vova, понятно. Но у меня меню отключено. Я пользуюсь повтором посл. ком. Срабатывает _change. Как быть в такой ситуации?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
1. Перейти на AutoCAD2008 с нормальными палитрами.
2. Ждать сирвиспака на AutoCAD2009 и надеяться что там будет исправлен сей баг. 3. Пользоваться контекстным меню. Короткий клик правой кнопкой мыши повторяет/завершает команду, продолжительный вызывает контекстное меню. Посмотри в настройках - есть такая фишка. 4. Написать лисп, который делает текст в соответсвующем слое. Сначала создаем текст с нужными настройками, а потом последним действием включаем его редактирование. 5. Создать реактор на ввод команды MTEXT.
__________________
Делай хорошо, плохо само получится. |
|||
![]() |
|
||||
Сам себе отвечу
![]() Гораздо удобнее пользоваться реакторами в этой ситуации. Ну повозиться немножко прийдется, но зато потом...кайф.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |