dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

zenon вне форума Вставить имя

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

Выкладываю 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:
Просмотров: 252490
 
Непрочитано 29.11.2016, 13:39
#821
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,135


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

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


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

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,135


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


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


Здравствуйте, прошу прощения если поставил вопрос не корректно. Решил написать простой макрос для перемещения объектов в точку 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 Кб, 18 просмотров)

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

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,135


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


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


Подскажите, как правильно задать макрос, чтобы он подгружал файл 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,655
Отправить сообщение для Krieger с помощью Skype™


Попробуй так:
Код:
[Выделить все]
^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
Сообщений: 56


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

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


Насколько я помню, у команды _.checkstandards нет режима ком.строки. Так что макросом не получится.
P.S. Решения по обработке стандартов, кажется, на форуме были
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 12.07.2017, 15:24
#831
Maksim7enov


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


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

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


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


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

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,164
Отправить сообщение для zenon с помощью ICQ


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


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


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

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


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


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


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

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


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

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

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

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

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


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

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


Попробуй использовать _selectsimilar
__________________

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

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


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

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


Цитата:
Сообщение от 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 AutoCAD 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы