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

Вернуться   Форум 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:
Просмотров: 448704
 
Непрочитано 29.11.2016, 13:39
#821
skkkk


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


А если в макросе после S оставить только один слэш (\)? Он ведь означает пользовательский ввод.
skkkk вне форума  
 
Непрочитано 29.11.2016, 19:04
#822
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от skkkk Посмотреть сообщение
А если в макросе после S оставить только один слэш (\)? Он ведь означает пользовательский ввод.
все верно, тогда корректно сработает на добавлении одного контура(один клик мыши по одной полилинии, а ежели более одного или выбрать рамкой - то доп.запрос выйдет.Макрос заранее не знает,какое количество контуров планируется добавить )
Linkshunter вне форума  
 
Непрочитано 29.11.2016, 21:59
#823
skkkk


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


Тогда, может, так:
Код:
[Выделить все]
^C^C_-HATCHEDIT;\_AD;_S;
skkkk вне форума  
 
Непрочитано 04.12.2016, 15:54
#824
Maksim7enov


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


Здравствуйте, прошу прощения если поставил вопрос не корректно. Решил написать простой макрос для перемещения объектов в точку 0,0,0. Так как опыта в написании у меня маловато то особо не получилось) Макрос работает только с 1 объектом, при выделении объектов рамой он просто переносит их на отрезок от начала координат до координаты самого объекта. Так же не работает если сначала выделить объект а потом вызывать команду. Подскажите пожалуйста в чем проблема и как ее решить.
Код:
[Выделить все]
^C^C_move;\;\0,0,0
----- добавлено через ~43 мин. -----
Все разобрался. Выбираем объекты. Вызываем команду. Задаем базовую точку и все.
Код:
[Выделить все]
^C^C_move;\0,0,0
Maksim7enov вне форума  
 
Непрочитано 09.01.2017, 11:26
#825
betonolom


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


Лисп был опубликован в этой теме:
Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Astartes, попробуй так
Код:
[Выделить все]
 
(defun c:qsel()
  (vl-load-com)
  ((lambda(range)
     (if (not (vl-catch-all-error-p range))
       (sssetfirst nil (ssget "_X" (list (cons 0 "MULTILEADER") (cons 304 range))))
       )
     )
    (vl-catch-all-apply 'getstring
      (list t "\nВведите диапазон в формате [начало-конец]: ")
      )
    )
  (princ)
  ); end c:qsel
P.S. В ответ на запрос "Введите диапазон в формате [начало-конец]:" можно будет ввести, наример:
[1-10]
или
[2-6],[12-45]
и т.д.
У меня работает не корректно:
при запросе [1-18] выделяются выноски с позицией 1 и 8;
при запросе [7-23] выделяются выноски с позицией 7 и 3;
при запросе [20-36] выделяются выноски с позицией 1,3,6 и т.д.

Autocad 2015 64
Может кто-то сможет подсказать как исправить...
Вложения
Тип файла: dwg
DWG 2010
для_форума.dwg (209.5 Кб, 34 просмотров)

Последний раз редактировалось betonolom, 09.01.2017 в 14:08. Причина: добавлено вложение
betonolom вне форума  
 
Непрочитано 09.01.2017, 12:08
#826
skkkk


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


betonolom, где файл (желательно в формате 2010)? Подозреваю, что там может быть форматирование в мультивыносках.
skkkk вне форума  
 
Непрочитано 10.03.2017, 14:27
#827
Browning Zed


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


Подскажите, как правильно задать макрос, чтобы он подгружал файл LSP, если функция не выполняется? Если команду нужно выполнить, но эта команда отсутствует, я вешаю на кнопку следующий макрос:
Код:
[Выделить все]
^C^C^P(if (not c:(***))(load"***.LSP"));^P(***);
Но почему-то с функциями этот макрос не прокатывает. Например, из этой программы: LISP. Выравнивание текста по двум точкам, мне нужно использование функцию (Kr_AligmentTextLine -2 "ang" 2 nil). Соответственно прописываю в макросе:
Код:
[Выделить все]
^C^C^P(if (not c:(Kr_AligmentTextLine -2 "ang" 2 nil))(load"Kr_AligmentTextLine.LSP"));^P(Kr_AligmentTextLine -2 "ang" 2 nil);
Но лисп не подгружается, и соответственно команда не выполняется. Что нужно сделать, чтобы это работало?
Browning Zed вне форума  
 
Непрочитано 10.03.2017, 18:02
#828
Krieger

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


Попробуй так:
Код:
[Выделить все]
^C^C(if (not Kr_AligmentTextLine)(load "Kr_AligmentTextLine.LSP"));(Kr_AligmentTextLine -2 "ang" 2 nil)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 07.05.2017, 21:44
#829
Walkmax


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


Скажите пожалуйста, есть ли возможность оперировать командой checkstandards через макрос?
Walkmax вне форума  
 
Непрочитано 07.05.2017, 22:01
#830
Кулик Алексей aka kpblc
Moderator

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


Насколько я помню, у команды _.checkstandards нет режима ком.строки. Так что макросом не получится.
P.S. Решения по обработке стандартов, кажется, на форуме были
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.07.2017, 15:24
#831
Maksim7enov


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


Здравствуйте! Нужен совет и попутно Ваша помощь. Для быстрого составления спецификаций применяю извлечение данных их созданных мной динамических блоков, интересует как можно сделать расстановку блоков быстрее.
Для начала опишу свой алгоритм работы:
1. Построение аксонометрической схемы (не в масштабе);
2. Гидравлический расчет трубопроводов;
3. Нанесение диаметров на аксонометрическую схему;
А вот сейчас пошла работа с блоками
4. Расстановка блоков с указанием их диаметра. Применяю такие блоки как отвод, переход, шаровой кран и т.д.
5. Извлечение данных.
6. После извлечения составление спецификации.

В приложенном файле 1 блок отвода для примера. Думаю будет удобнее создать макрос для вставки блоков, который будет повторяться пока я не отменю команду. Макрос я сделал.
Интересует можно ли за счет макросов сделать и извлечение данных уйти от лишних движений, или работа с диалоговыми окнами в макросах не возможна?
Так же интересует Ваше мнение по данному способы составления спецификаций, может есть лучше и быстрее.
Файл: выполняю в автокаде 2014, сохранил в 2004
Созданный мной макрос для вставки блока
Код:
[Выделить все]
*^C^C_insert;"Отвод 45 ГОСТ 17375-2001";\;1;0;\\\\\\
Планирую сделать такие же макросы для других блоков. Выбрал макросы из-за того, что команда может повторяться и вставляется быстрее чем с палитры. Не нравится только то, что в конце макроса пришлось делать много пользовательских вводов для возможности изменения угла отвода для нормального отображения на схеме и указания диаметра. Сразу прошу меня не ругать за туманные объяснения:
Вложения
Тип файла: dwg
DWG 2004
Отвод.dwg (70.0 Кб, 23 просмотров)
Maksim7enov вне форума  
 
Непрочитано 25.07.2017, 16:54
#832
Клаус


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


Ребята кто может помочь с макросом?
в макросе нужно переносить внешние ссылки из одного слоя в другой+ заблокировать и заморозить слой
__________________
Читайте интернет -- там всё написано!
Клаус вне форума  
 
Автор темы   Непрочитано 25.07.2017, 18:34
#833
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,825
<phrase 1=


Цитата:
Сообщение от Клаус Посмотреть сообщение
Ребята кто может помочь с макросом?
в макросе нужно переносить внешние ссылки из одного слоя в другой+ заблокировать и заморозить слой
а сам? попробовать не хочешь?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 01.08.2017, 11:00
#834
Клаус


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


Цитата:
Сообщение от zenon Посмотреть сообщение
попробовать не хочешь
помощь утопающим--дело рук самих утопающих.
Спасибо за совет, прям вдохновился и сразу всё понял. гуд. Zenon, если есть желание помочь, то сбрось пожалуйста годные ссылки на темы по вводу в Lisp и на темы где рассмотрены похожие вопросы. Буду благодарен. Спасибо.
__________________
Читайте интернет -- там всё написано!
Клаус вне форума  
 
Непрочитано 11.08.2017, 10:32
#835
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


Цитата:
Сообщение от Клаус Посмотреть сообщение
Ребята кто может помочь с макросом?
в макросе нужно переносить внешние ссылки из одного слоя в другой+ заблокировать и заморозить слой
тут дело пахнет программированием (_.QSELECT без окошка не робит вроде как и на стадии выбора ссылок - это уже нужен Lisp (может дизель? я не изучал его) )
а это уже другая ветка... макросами не решить.
а по поводу блокировки слоя изучай _-Layer в командной строке, правила написания макросов не такие уж и сложные.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 16.08.2017, 10:46
#836
AlexZh


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


Цитата:
Сообщение от Клаус Посмотреть сообщение
Ребята кто может помочь с макросом?
в макросе нужно переносить внешние ссылки из одного слоя в другой+ заблокировать и заморозить слой
Начну пожалуй.

_-LAYER;Р;Слой;А;Слой;;_CHPROP;\;_LA;Слой;;_-LAYER;Б;Слой;_F;Слой;;


Вместо "Слой" вписываешь нужный.

Работа в русской версии AutoCad, т.к. некоторый команды английские не знаю.

Из минусов - выбор вручную и по одному.

Думаю, знающие поправят.
__________________
Проекты СС
AlexZh вне форума  
 
Непрочитано 17.08.2017, 11:12
#837
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723


Здравствуйте, форумчане!
Следующий алгоритм рутинной работы хочется заменить нажатием одной кнопки:
- быстрый выбор всех размеров;
- порядок прорисовки на передний план;
- быстрый выбор всех блоков;
- порядок прорисовки на передний план;
- быстрый выбор всех мультивыносок;
- порядок прорисовки на передний план.
Нужен именно такой порядок.
Почитав форумы понял что QSELECT через макрос не сделать (возможно не правильно понял). Языком лиспа не владею.
Может кто подскажет примером или советом?
AMDen на форуме  
 
Непрочитано 17.08.2017, 11:40
#838
Кулик Алексей aka kpblc
Moderator

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


Попробуй использовать _selectsimilar
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.08.2017, 12:53
#839
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723


_selectsimilar - выбрать подобные, т.е. изначально нужно выбирать образец. Или можно как прописать в коде тип объекта?
AMDen на форуме  
 
Непрочитано 22.08.2017, 10:49
#840
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от AMDen Посмотреть сообщение
_selectsimilar - выбрать подобные, т.е. изначально нужно выбирать образец. Или можно как прописать в коде тип объекта?
...рекомендую поковырять стандартные командs - во первых половина того что Вам надо уже есть в акад, во вторых с макросом разберетесь

ТЕКСТПЕРПЛАН -
аннотации - ^C^C^P_texttofront _a ^P
только выноски - ^C^C^P_texttofront _l ^P
только размеры - ^C^C^P_texttofront _d ^P
только тексты - ^C^C^P_texttofront _t ^P
штриховки на задний план HATCHTOBACK
и т.п.
ЗЫ: если работать по слоям, есть классная программа от lee-mac
http://lee-mac.com/layerdraworder.html
Linkshunter вне форума  
Ответ
Вернуться   Форум 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