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

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

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

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

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

Выкладываю 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:
Просмотров: 450809
 
Непрочитано 09.01.2015, 18:28
#721
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Она уже работает. Это не макрокоманда, а нормальное описание Lisp-функции.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.01.2015, 19:40
#722
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от mateus Посмотреть сообщение
(defun c:kr () (setq ss (ssget)) (command "_rotate" ss "" pause "_r" (getvar "lastpoint") pause));kr
можно ли чтоб созданная команда работала с клавиатуры?
Вот макрокоманда.. ^C^Cповернуть;\о;\\\ Далее адаптация ->Горячие клавиши....
art_rrc вне форума  
 
Непрочитано 09.01.2015, 19:57
#723
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Она уже работает. Это не макрокоманда, а нормальное описание Lisp-функции.
Работает только после первого нажатия на кнопку с этим макросом. По постам mateus'a видно, что он еще не читал этого. Но, видимо, придётся
skkkk вне форума  
 
Непрочитано 10.01.2015, 12:08
#724
mateus


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


Я профан, спасибо вам я справился с лиспом "повернуть" а вот с этим уж никак
^C^C_MIRROR;_m2p
mateus вне форума  
 
Непрочитано 02.02.2015, 13:24
#725
blind4ik


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


Приветствую.
Стоит конкретная задача преобразовать содержимое dxf в другой вид.
Прилагаю исходный и конечный файлы.
Моя последовательность действий приведена ниже.
Что из этого можно выполнить макросами, а что нет? Можно ли одним или несколькими макросами с перерывами на манипуляции вручную?
Еще не всю тему прочел, и вообще только учусь.
Прошу ткнуть носом, где читать про каждый конкретный случай (если есть такой).
Автокад 2010 рус, но файлы формата акад2004 если это важно.

формат - стиль текста STANDART был txt.shx - стал win_eskd.shx- применить - закрыть
формат - отображение точек - круг с точкой размер 0.25 в абсолютных единицах
формат - единицы чертежа - десятичные, 0.000, метры, Град/Мин/Сек, 0d00'00", общие
создать слой - PI_OT0
создать слой - PI_ST0
создать текстовый стиль SHRFT - win_eskd.shx, высота 0.95, коэф. сжатия 0.85, угол наклона 15d
быстрый выбор - все полилинии - удалить
быстрый выбор - весь текст с цветом 0,0,255 - переместить в слой PI_OT0 и поменять стиль на SHRFT, высота 1, цвет по слою, положение Z=0
быстрый выбор - все точки - положение Z=0 - переместить в слой PI_ST0
быстрый выбор - слой подписи точек - стиль STANDART
сдвинуть слой PI_OT0 влево на 0.5 вверх на 0.3
сдвинуть слой подписи точек влево на 1.2
очистить - удалить все - все

Еще дополнение
можно ли на одну кнопку повесить замораживание и размораживание одного слоя?
А то у меня две кнопки ^C^C_-layer;_freeze;NAD_M0;;
Заранее спасибо
blind4ik вне форума  
 
Непрочитано 02.02.2015, 13:39
1 | #726
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Цитата:
Сообщение от blind4ik Посмотреть сообщение
стиль текста STANDART был txt.shx - стал win_eskd.shx- применить - закрыть
Команда _.-style
Цитата:
Сообщение от blind4ik Посмотреть сообщение
отображение точек
Системные переменные pdmode, pdsize
Цитата:
Сообщение от blind4ik Посмотреть сообщение
единицы чертежа
Команда _.-units, системные переменные lunits, aunits, luprec, auprec, insunits, insunitsdefsource, insunitdeftarget
Цитата:
Сообщение от blind4ik Посмотреть сообщение
создать слой
Команда _.-layer
Цитата:
Сообщение от blind4ik Посмотреть сообщение
быстрый выбор - все полилинии - удалить
Команды, по-моему, нет (кроме _.qselect, у которой есть только диалоговый режим работы). Решается лиспом / vba / .NET / arx
Цитата:
Сообщение от blind4ik Посмотреть сообщение
сдвинуть слой PI_OT0 влево на 0.5 вверх на 0.3
Сдвинуть слой невозможно. Только объекты слоя. Попробуй заблокировать все слои, кроме нужного, потом _.select _all и команда _.move
Цитата:
Сообщение от blind4ik Посмотреть сообщение
очистить - удалить все - все
Тут что запрашивается? _.-purge, что ли?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.02.2015, 13:29
#727
blind4ik


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


Почему-то файлы не приложились к предыдущему сообщению, ну, впрочем, они и не нужны.
Спасибо за помощь.
Получилось это:
первая часть
^C^C'_.zoom _e;_.-style STANDARD win_eskd.shx;0;0.85;;;;_.-style SHRFT win_eskd.shx;0;0.85;15;;;lunits 2;aunits 1;luprec 3;auprec 3;insunits 6;insunitsdefsource 6;pdmode 32;pdsize 0.25;_.-layer;Н;PI_OT0;;_.-layer;Н;PI_ST0;;flatten;_all;;n;

вторая часть вручную быстрым выбором раскидываю по слоям и меняю стили текстов,
_change
_chprop
этими командами можно как то? и

и третья часть
_-layer;_freeze;*;;_-layer;Р;Подписи точек;;_move;_all;П;-1.2,0;;_-layer;_freeze;*;;_-layer;Р;PI_OT0;;_move;_all;П;-0.8,0.2;_-layer;Р;*;;
про то, что сдвинуть слой это действительно я коряво написал
ну и _.-purge;итд

Где посмотреть перевод всех команд рус и англ акада? Чтобы не использовать русские буквы _.-layer;Н [Новый] или _-layer;Р [Разморозить], _move;_all;П, итд.
Чем отличается пробел от ввода и от ; в макросе? Минус как я понял, чтобы не выводить диалоговое окно если оно есть. До книги язык макрокоманд еще не дошел, но скоро дойду.
blind4ik вне форума  
 
Непрочитано 03.02.2015, 13:43
#728
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Советую поставить английскую локализацию и на ней ставить эксперименты
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.02.2015, 18:03
#729
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,653


Цитата:
Сообщение от blind4ik Посмотреть сообщение
Где посмотреть перевод всех команд рус и англ акада?
Насчет перевода в виде списка "англ-рус" в одном месте не знаю, но можно смотреть в английской справке, а если трудности с переводом возникнут, то подглядывать в русскую.
skkkk вне форума  
 
Непрочитано 04.02.2015, 21:41
1 | #730
Yuriy-I

сп. САПР, архитектор
 
Регистрация: 25.05.2008
Санкт-Петербург
Сообщений: 116


Цитата:
Сообщение от blind4ik Посмотреть сообщение
Где посмотреть перевод всех команд рус и англ акада?
http://yuriy-i.narod.ru/acd---1-cmd-all.htm
__________________
"лучше" или "хуже" - понятия относительные
Yuriy-I вне форума  
 
Непрочитано 25.02.2015, 09:42
#731
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Не могу понять в чём дело.
^C^Cusers1;$m=$(Getvar,Clayer);_Clayer;Выноски;_Line;\\;_Clayer;$m=$(Getvar,users1);
По идее в конце должен возвращаться слой, активный до начала выполнения макроса. На практике же, слой принимает ПРЕДЫДУЩЕЕ значение переменной Users1. В чем соль?

----- добавлено через ~4 мин. -----
Ах да, Автокад 2015 рус

Последний раз редактировалось RNB, 25.02.2015 в 09:47.
RNB вне форума  
 
Непрочитано 25.02.2015, 10:10
1 | #732
Krieger

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


Фиг знает. Лови:
Код:
[Выделить все]
^C^C_-layer;_make;выноски;;_line;\\;_layerp
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 25.02.2015, 10:27
#733
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от Krieger Посмотреть сообщение
^C^C_-layer;_make;выноски;;_line;\\;_layerp
Спасибо! Можно даже чуть короче
Код:
[Выделить все]
^C^C_clayer;выноски;_line;\\;_layerp
Теперь вопрос, можно ли как-то сделать то же самое, но с зацикленной командой (_pline, _xline), чтобы можно было вводить не определенное количество пользовательских данных ("\"), а бесконечное, до нажатия Enter или Esc?
RNB вне форума  
 
Непрочитано 25.02.2015, 10:36
#734
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Макросом - по-моему, никак.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.02.2015, 10:40
#735
Krieger

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


Цитата:
Сообщение от RNB Посмотреть сообщение
Спасибо! Можно даже чуть короче
Можно, но не нужно. В моем случае слой создается. Поэтому код будет работать даже в чертежах где нет этого слоя.
Цитата:
Сообщение от RNB Посмотреть сообщение
Теперь вопрос, можно ли как-то сделать то же самое, но с зацикленной командой (_pline, _xline), чтобы можно было вводить не определенное количество пользовательских данных ("\"), а бесконечное, до нажатия Enter или Esc?
Это лисп нужен. А вообще есть ведь tool palettes, там на кнопках можно слой задать.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 25.02.2015, 10:40
#736
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Макросом - по-моему, никак.
Жаль. Ну что ж, давно хотел взяться за лисп. "Валера, настало твоё время"

----- добавлено через ~11 мин. -----
Цитата:
Сообщение от Krieger Посмотреть сообщение
Можно, но не нужно. В моем случае слой создается. Поэтому код будет работать даже в чертежах где нет этого слоя.
На этот случай да, полностью согласен. Еще добавить туда все параметры, и будет то, что нужно. Еще раз спасибо!
Цитата:
Сообщение от Krieger Посмотреть сообщение
Это лисп нужен. А вообще есть ведь tool palettes, там на кнопках можно слой задать.
Да, буду погружаться в лисп. tool palettes не очень подходит, так как большинство часто используемых команд "забиндены" на мышку

----- добавлено через ~4 ч. -----
Цитата:
Сообщение от RNB Посмотреть сообщение
Теперь вопрос, можно ли как-то сделать то же самое, но с зацикленной командой (_pline, _xline), чтобы можно было вводить не определенное количество пользовательских данных ("\"), а бесконечное, до нажатия Enter или Esc?
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Макросом - по-моему, никак.
Цитата:
Сообщение от Krieger Посмотреть сообщение
Это лисп нужен
Понимаю, что не та тема, но так, по-моему будет проще, чем объяснять заново в теме с лиспом... Подскажите выражение, которое позволяет выполнить желаемое, пожалуйста
RNB вне форума  
 
Непрочитано 26.02.2015, 12:29
1 | #737
Krieger

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


Цитата:
Сообщение от RNB Посмотреть сообщение
Понимаю, что не та тема, но так, по-моему будет проще, чем объяснять заново в теме с лиспом... Подскажите выражение, которое позволяет выполнить желаемое, пожалуйста
Проверяй переменную CMDACTIVE во время выполнения команды.
Код:
[Выделить все]
(defun c:ll ()
(command "_-layer" "_m" "выноски" "" "_line")
(while (> (getvar "CMDACTIVE") 0)(command pause))
(command "_layerp")
    )
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 26.02.2015, 15:40
#738
RNB

Проектирование мостов
 
Регистрация: 29.01.2014
Новосибирск
Сообщений: 433


Цитата:
Сообщение от Krieger Посмотреть сообщение
(defun c:ll ()
(command "_-layer" "_m" "выноски" "" "_line")
(while (> (getvar "CMDACTIVE") 0)(command pause))
(command "_layerp")
)
Отлично! Спасибо! Я уже сделал, но по сравнению с этим - через .... Добавлю обработчик ошибок и буду радоваться

Последний раз редактировалось Кулик Алексей aka kpblc, 26.02.2015 в 15:45.
RNB вне форума  
 
Непрочитано 28.03.2015, 22:19
#739
Konstruktiv54


 
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
<phrase 1=


как сделать переключатель QPMODE на кнопку (если 0, то при нажатии ставить 1, и наоборот)?
Konstruktiv54 вне форума  
 
Непрочитано 28.03.2015, 22:21
1 | #740
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,831


Так ведь в статусной строке выводится соответствующий переключатель, нет?
Код:
[Выделить все]
^C^C$(setvar,qpmode,$(abs,$(-,1,$(getvar,qpmode))))
Кажется, так. Работу не проверял.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум 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