| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мои макрокоманды

Мои макрокоманды

Ответ
Поиск в этой теме
Непрочитано 19.05.2008, 15:20 1 |
Мои макрокоманды
zenon
 
Остекляем!!! Алюминим!!!
 
Москва
Регистрация: 21.02.2005
Сообщений: 3,825

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

Выкладываю 4 своих макрокоманды.

Улучшенная команда _Break, разрыв в одной точке с повтором по правой клавише мышки.
Цитата:
^C^C^P(defun c:break2 () (vl-cmdf "_break" pause "f" pause "@")(princ));break2;
ps. Макрокоманда не моя. Рисунок со старой кнопки.


Объект Xline строится горизонтально
Цитата:
^C^C_xline;_h;
Объект Xline строится вертикально
Цитата:
^C^C_xline;_v;

Объект Xline строится по объекту (не работает по примитивам блока и arx объектов сторонних навесок на автокад).
Цитата:
*^C^C_xline;_offset;_Through;_nea;\_none;@;;
Макрокоманда зациклена, выход по Esc.
ps. Макрокоманда не моя.


Объект Xline строится по объекту, с поворотом в указанной точке на 90 градусов (не работает по примитивам блока и arx объектов сторонних навесок на автокад)
Цитата:
^C^C_xline;_offset;_Through;_nea;\_none;@;^C^C_rotate;_last;;\90;
ps. Макрокоманда доработана из предыдущей.

Соотвественно и кнопочки
Button.rar

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
Просмотров: 448728
 
Непрочитано 03.02.2009, 11:05
#161
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 596
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Djonikbishkek, проблема была не в точке. Обрати внимание на символы "^".
Вот блин. Точно. Куда только глаза смотрят. спасибо!!!
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 03.02.2009, 11:07
#162
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Makswell Посмотреть сообщение
AlphaGeo, что пишет в ком. строке?
Привет от ком.строки:
Код:
[Выделить все]
Команда:
Команда:
Команда: (defun C:DISTSECTION-COMMAND () (command "Рзмпарал" pause pause  
"@0,-5" ""))
C:DISTSECTION-COMMAND

Команда: DISTSECTION-COMMAND Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 3.4
Команда: DISTSECTION-COMMAND Неизвестная команда "DISTSECTION-COMMAND".  Для 
вызова справки нажмите F1.

Команда: nil

Последний раз редактировалось AlphaGeo, 03.02.2009 в 11:15.
 
 
Непрочитано 03.02.2009, 11:08
#163
ie.spb

Инженер
 
Регистрация: 21.08.2007
Сообщений: 596
<phrase 1=


Цитата:
Сообщение от Makswell Посмотреть сообщение
Или так.
Код:
[Выделить все]
^C^C(defun C:M-COMMAND () (command "_.-INSERT" "1122" pause "" "" ""));M-COMMAND
Вот спасибо, все работает отлично!!!
__________________
Склероз нельзя вылечить, но о нем можно забыть.
(Ф. Раневская)
ie.spb на форуме  
 
Непрочитано 03.02.2009, 11:28
#164
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


AlphaGeo, у тебя было лишнее "", надо так.
Код:
[Выделить все]
^C^C(defun C:DISTSECTION-COMMAND () (command "Рзмпарал" pause pause  "@0,-5" ));DISTSECTION-COMMAND;
А чтобы в конце в ком. строку не возвращалось лишнее nil, то надо ещё добавить (princ). Да и команду лучше записывать универсально для английского и локализованного Автокадов.
Код:
[Выделить все]
^C^C(defun C:DISTSECTION-COMMAND () (command "_.DIMALIGNED" pause pause  "@0,-5" ) (princ));DISTSECTION-COMMAND;

Последний раз редактировалось Makswell, 03.02.2009 в 11:34.
Makswell вне форума  
 
Непрочитано 03.02.2009, 11:36
#165
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Makswell Посмотреть сообщение
AlphaGeo, у тебя было лишнее ""
Спасибо большое! Как всегда на такой мелочи попадаюсь...
Цитата:
Сообщение от Makswell
Да и команду лучше записывать универсально.
Это в смысле по-англицки и с "извлечением из ядра AutoCAD"? Да я всегда стараюсь так делать, но у меня установлен локализованный ACAD и не всегда нахожу переводы для команд.
 
 
Непрочитано 03.02.2009, 11:49
#166
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Добавлю ещё.
Анализ макросов с использованием defun я рекомендую делать так.
Скопировать макрос в блокнот.
В блокноте преобразовать макрос ^C^C(defun C:Имя_Псевдокоманды () <код_лиспа>);Имя_Псевдокоманды в строку (progn <код_лиспа>) и запустить это выражение в ком. строке Автокада.
Для твоего случая:
Цитата:
Команда: (progn (command "Рзмпарал" pause pause "@0,-5" ""))
Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 33271
Команда: ОТРЕЗОК Первая точка: nil
Первая точка: *Прервано*
Видно, что команда "Рзмпарал" успешно завершилась и пошёл вызов последней выполненной команды. В моём случае это команда "ОТРЕЗОК". Следовательно одно "" здесь лишнее. Также выскакивает лишнее nil. Делаем так:
Цитата:
Команда: (progn (command "Рзмпарал" pause pause "@0,-5") (princ))
Рзмпарал
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Положение размерной линии или
[Мтекст/Текст/Угол]: @0,-5
Размерный текст = 21788
Команда:
Сейчас всё нормально. Можно сделать в блокноте обратное преобразование (progn <код_лиспа>) в выражение ^C^C(defun C:Имя_Псевдокоманды () <код_лиспа>);Имя_Псевдокоманды и повесить макрос на кнопку.

Добавлено:
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Это в смысле по-англицки и с "извлечением из ядра AutoCAD"? Да я всегда стараюсь так делать, но у меня установлен локализованный ACAD и не всегда нахожу переводы для команд.
Иногда аутентичное имя команды можно узнать с помощью функции getcname
Цитата:
Команда: (getcname "Рзмпарал")
"_DIMALIGNED"
Makswell вне форума  
 
Непрочитано 03.02.2009, 11:51
#167
AlphaGeo


 
Сообщений: n/a


ОК, Makswell. Возьму этот метод на заметку.
 
 
Непрочитано 18.03.2009, 09:56
#168
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Не получается!
Хочу написать макрос для динамического ввода проката используя программу В. Кондрата "Прокат".

С ком-строки работает -
_prokat;_explode;?;последний;;выдавить;?;последний;

Начинаю прописывать и пробовать и на этапе -
^C^C^_prokat;\\_explode;?;Последний; - глохнет.

пишет:
Команда: prokat

Точка вставки :
Угол поворота :

Команда: _explode

Выберите объект: ?


*Неверный выбор*
Требуется точка или Последний/Все/Группа

Подскажите пожалуйста!
Jonas вне форума  
 
Непрочитано 18.03.2009, 10:08
#169
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Может так?
Код:
[Выделить все]
^C^C^_prokat;\\_explode;_last;
Makswell вне форума  
 
Непрочитано 18.03.2009, 10:45
#170
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


А последняя птичка (^) после "C" зачем?
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 18.03.2009, 11:07
#171
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Да, она лишняя.
Makswell вне форума  
 
Непрочитано 18.03.2009, 11:07
#172
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Krieger Посмотреть сообщение
А последняя птичка (^) после "C" зачем?
Незачем.
Работает ^C^C_prokat;\\_explode;_last;_extrude;_last;;

Большое спасибо.
Jonas вне форума  
 
Непрочитано 05.04.2009, 21:08
#173
victor.m4


 
Регистрация: 22.12.2008
Сообщений: 17


Вопрос по AutoCAD 2006 офиц. русская версия: хотел сделать отдельную кнопку "Перспективная прекция", но что-то не получается написать макрос. Подскажите плиз...
victor.m4 вне форума  
 
Непрочитано 05.04.2009, 21:24
#174
AlphaGeo


 
Сообщений: n/a


victor.m4, Вам нужно готовое решение или помощь в поиске ошибки?
 
 
Непрочитано 05.04.2009, 23:06
#175
faeto1982


 
Регистрация: 30.03.2009
Сообщений: 53
Отправить сообщение для faeto1982 с помощью Skype™


господа подскажите пожалуйста макрокоманду вставки блока
и чтобы блок вставлялся через середину между точками в натуральном масштабе и без поворота.
faeto1982 вне форума  
 
Непрочитано 06.04.2009, 06:44
#176
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Такие вещи надо делать самому. Как? Начни с http://dwg.ru/art/2 , есть книжка на эту тему в DL
Вставка блока обсуждалась в 150-х постах. И где-то здесь был хороший совет: вот ежели не получается, тогда сюда с вопросами
Vova вне форума  
 
Непрочитано 06.04.2009, 08:42
#177
LSN


 
Регистрация: 19.04.2007
Сообщений: 191


Господа проектировщики подскажите пожалуйста в чем может быть дело.
Макрос для поворота атрибута в блоке не работает (прерывается автовыполнение после выбора атрибута и дальше уже необходимо забивать руками) на 2009 Acad'e хотя на 2006-2008 все работало.
Вот сам макрос: -Attedit;;;;;\_a;0;_n;
LSN вне форума  
 
Непрочитано 06.04.2009, 13:15
#178
AlphaGeo


 
Сообщений: n/a


LSN, проверил, у меня на ACAD 2008 все работает. Может так попробовать?
Код:
[Выделить все]
^C^C_-attedit;;;;;\_a;0;;

Последний раз редактировалось AlphaGeo, 06.04.2009 в 13:23.
 
 
Непрочитано 06.04.2009, 13:31
#179
LSN


 
Регистрация: 19.04.2007
Сообщений: 191


Та же ерунда.
Вот что пишет в командной строке при выполнении.
Код:
[Выделить все]
Command: _-attedit

Edit attributes one at a time? [Yes/No] <Y>:

Enter block name specification <*>:

Enter attribute tag specification <*>:

Enter attribute value specification <*>:
Select Attributes:
1 found
//Вот здесь кажется что то не так пошло, а как исправить не понимаю пока
Select Attributes: _a  
Select Attributes: 0


*Invalid selection*
Expects a point or 
Window/Last/Crossing/BOX/Fence/WPolygon/CPolygon/Previous/AUto/Previous/AUto
Select Attributes:

1 attributes selected.
На 2008 у меня тоже работает.
LSN вне форума  
 
Непрочитано 06.04.2009, 13:38
#180
AlphaGeo


 
Сообщений: n/a


LSN, глупый вопрос, но очень хочется его задать, а ввод после выбора атрибутов (перед выбором опции Угол ) нажимаешь?
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мои макрокоманды

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки Shoorup Динамические блоки 2713 21.04.2011 23:34
Повторение выполнения макрокоманды по циклу. КАК? Kostinok AutoCAD 12 05.12.2007 15:40
Мои проекты Vova Разное 10 08.10.2007 23:18
Мои палитры инструментов на соседний компьютер Pave1 AutoCAD 4 27.06.2006 09:45