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

Вернуться   Форум 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:
Просмотров: 448861
 
Непрочитано 19.01.2016, 10:21
#761
gladi


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


Помогите...
Как сделать Объект Xline по по произвольному отрезку/полилинии, но с учетом объектов блоков и xref.
В лиспе не селен, поэтому прошу гуру.
gladi вне форума  
 
Непрочитано 20.01.2016, 00:26
#762
sathalex


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Сначала определи, что такое "исходные координаты".
К примеру создал я блок (скажем круг), с координатами его центра x=100 y=100, хотелось бы макросом вставить его в новый чертеж, с теми же координатами центра.
sathalex вне форума  
 
Непрочитано 20.01.2016, 06:54
#763
baksconstructor


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


Цитата:
Сообщение от sathalex Посмотреть сообщение
с координатами его центра x=100 y=100, хотелось бы макросом вставить его в новый чертеж, с теми же координатами центра.
Координаты Х и У должны находится в 0,0,0 блока, тогда всё получится.
Создайте блок в котором координатамы его центра x=100 y=100, а сам блок вставьте в чертеж в 0,0,0.
При вставке этого чертежа блока он вставится так как надо.
baksconstructor вне форума  
 
Непрочитано 26.01.2016, 10:55
#764
AlexZh


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


Макрос для выравнивания текста атрибута и изменения его положения


*^C^C-АТР;_Y;;;;\;Угол;0;Положение;\;

Пользуюсь часто.
AlexZh вне форума  
 
Непрочитано 26.01.2016, 11:50
#765
Кулик Алексей aka kpblc
Moderator

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


... И работает только в русской версии AutoCAD.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.01.2016, 13:27
#766
AlexZh


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


Да. имею русскую версию.

*^C^C_-ATTEDIT;_Y;;;;\;_Angle;0;_Position;\;
AlexZh вне форума  
 
Непрочитано 02.02.2016, 01:25
#767
Vova

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


Цитата:
Сообщение от AlexZh Посмотреть сообщение
Макрос для выравнивания текста атрибута и изменения его положения....
Для выравнивания (всех) атрибутов (а также обеих текстов) служит стандартная команда Express Torient (Text orientation). Атрибут передвигается грипсой, если он не заблокирован). Проще создать алиас для Torient, например, TT, и избежать таким образом лишней кнопки. Если, конечно, часто приходится выравнивать не все атрибуты у блока, тогда макрос зарулит
Vova вне форума  
 
Непрочитано 18.04.2016, 09:58
#768
betonolom


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


Доброго дня, товарищи!
Часто приходится работать с чертежами коллег и настраивать листы для дальнейшей печати (многие оформляют чертежи в листах, но не настраивают печать как положено).
Я написал небольшой макрос: выделяет весь чертеж (все видовые экраны, рамки и т.д.), указываем левый нижний угол форматки листа и все перемещается на настроенную область листа (соответственно левый нижний угол форматки переносится в точку с координатами 0,0).

^C^Cdynmode;-3;_.zoom;_e;_move;_all;;\0,0;dynmode;3;_.zoom;_e;

Может кто подскажет как усовершенствовать макрос (или решить это лиспом) так, чтоб левый нижний угол форматки указывался не вручную, а автоматически (точка с наименьшими координатами)
betonolom вне форума  
 
Непрочитано 18.04.2016, 12:17
#769
vik74


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


Цитата:
Сообщение от betonolom Посмотреть сообщение
Может кто подскажет как усовершенствовать макрос (или решить это лиспом) так, чтоб левый нижний угол форматки указывался не вручную, а автоматически (точка с наименьшими координатами)
А мне понравилась программа "РЕВЕРС" Кириллова Дмитрия, она сама собирает все форматки и выводит на печать, хоть с модели, хоть с листа. Да стоит копейки.
vik74 вне форума  
 
Непрочитано 22.04.2016, 14:29
#770
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Всем привет.
Очень нужен макрос, или скорее всего лисп, который бы подсчитывал количество неиспользуемых масштабов аннотаций, и при превышении определённого адекватного количества (например 100), чистил бы их командой (command "_-scalelistedit" "_d" "*" "_e").

Чтобы не задавали вопросы в стиле "а зачем так надо", и "почему именно так надо", опишу проблему.
В проектном институте на сервере выложены файлы с коммуникациями и есть сводный план сетей, который ссылками собирает эти файлы. В некоторых файлах содержится по 15-17 тысяч масштабов аннотаций, и вместо 2-3 секунд на подключение такого файла как ссылки тратится 1,5-2 минуты (засекал). Если таких файлов много, то сводник грузится неимоверно долго.
Многие видимо отключили запрос автокада про большое количество масштабов аннотаций и их не чистят.
Так же есть люди, которые пользуются аннотативными объектами со своими масштабами, поэтому вариант лиспа с полной очисткой масштабов и создания новых категорически не годится.
Просто чистить неиспользуемые масштабы аннотаций тоже нельзя, так как некоторые используют эти масштабы для видовых окон.

Ещё вариант: как-то (не знаю как) включить в автокаде автоматическую очистку при большом количестве масштабов аннотаций, но там тоже засада, автокад в таком случае сбрасывает список масштабов на стандартный, а этого делать нельзя.

Последний раз редактировалось Mitek, 22.04.2016 в 14:40.
Mitek вне форума  
 
Непрочитано 25.04.2016, 09:53
#771
RNB

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


Цитата:
Сообщение от Mitek Посмотреть сообщение
Всем привет.
Очень нужен макрос, или скорее всего лисп, который бы подсчитывал количество неиспользуемых масштабов аннотаций, и при превышении определённого адекватного количества (например 100), чистил бы их командой (command "_-scalelistedit" "_d" "*" "_e").

Чтобы не задавали вопросы в стиле "а зачем так надо", и "почему именно так надо", опишу проблему.
В проектном институте на сервере выложены файлы с коммуникациями и есть сводный план сетей, который ссылками собирает эти файлы. В некоторых файлах содержится по 15-17 тысяч масштабов аннотаций, и вместо 2-3 секунд на подключение такого файла как ссылки тратится 1,5-2 минуты (засекал). Если таких файлов много, то сводник грузится неимоверно долго.
Многие видимо отключили запрос автокада про большое количество масштабов аннотаций и их не чистят.
Так же есть люди, которые пользуются аннотативными объектами со своими масштабами, поэтому вариант лиспа с полной очисткой масштабов и создания новых категорически не годится.
Просто чистить неиспользуемые масштабы аннотаций тоже нельзя, так как некоторые используют эти масштабы для видовых окон.

Ещё вариант: как-то (не знаю как) включить в автокаде автоматическую очистку при большом количестве масштабов аннотаций, но там тоже засада, автокад в таком случае сбрасывает список масштабов на стандартный, а этого делать нельзя.
Открываешь список масштабов, выбираешь все, нажимаешь кнопочку "Удалить". Используемые останутся, остальные канут в лету
RNB вне форума  
 
Непрочитано 25.04.2016, 10:06
#772
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Цитата:
Сообщение от RNB Посмотреть сообщение
Открываешь список масштабов, выбираешь все, нажимаешь кнопочку "Удалить". Используемые останутся, остальные канут в лету
Замечательный ответ!
Как это сделать ручками я и так знаю.
Мне нужен лисп для автоматического исполнения его на 600 компах!
Алексей Кулик, VVA, где вы? Помогите, очень надо
Mitek вне форума  
 
Непрочитано 25.04.2016, 11:33
#773
RNB

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


Цитата:
Сообщение от Mitek Посмотреть сообщение
Замечательный ответ!
Как это сделать ручками я и так знаю.
Мне нужен лисп для автоматического исполнения его на 600 компах!
Если знаете, как руками, в чём проблема сделать макрос?
-scalelistedit;_D;*;_E;
RNB вне форума  
 
Непрочитано 25.04.2016, 11:40
#774
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


RNB, вы умеете внимательно читать посты? В самом первом посте я написал, что этот макрос (точнее я указал команду (command "_-scalelistedit" "_d" "*" "_e"), что по сути одно и то же), нужно выполнять при условии, что количество масштабов превышает определенное адекватное количество (например 100), иначе ничего не выполнять!
Как узнать количество масштабов аннотаций в чертеже с помощью лиспа?
Mitek вне форума  
 
Непрочитано 25.04.2016, 11:41
#775
RNB

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


Цитата:
Сообщение от Mitek Посмотреть сообщение
RNB, вы умеете внимательно читать посты? В самом первом посте я написал, что этот макрос (точнее я указал команду (command "_-scalelistedit" "_d" "*" "_e"), что по сути одно и то же)
Извиняюсь, пропустил мимо глаз
RNB вне форума  
 
Непрочитано 26.04.2016, 13:10
#776
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Благодаря одному человеку, знающему lisp, написан небольшой код:
Код:
[Выделить все]
 (setq od (namedobjdict))
(setq spis (dictsearch od "ACAD_SCALELIST"))
(setq k 0 n 0) ;k - количество масштабов аннотаций
(repeat (length spis)
 (if (= 350 (car (nth n spis)))
  (setq k (+ k 1))
 )
 (setq n (+ n 1))
)
(if (> k 100) ; Если количество масштабов больше 100
 (alert (strcat "Этот чертёж содержит "(itoa k)" масштабов аннотаций!!"))
;(command "_-scalelistedit" "_d" "*" "_e") ;Вариант очистки вместо окна с предупреждением
)
Так что фактически вопрос решился
Mitek вне форума  
 
Непрочитано 26.04.2016, 13:31
#777
Кулик Алексей aka kpblc
Moderator

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


... И работает только в текущем документе.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.04.2016, 13:42
#778
Mitek

Мостовик-затейник
 
Регистрация: 25.02.2006
Москва
Сообщений: 76


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
... И работает только в текущем документе.
Ну да. А этот лисп грузится через acaddoc.lsp в каждый открываемый документ на каждом компьютере Так что этого пока вполне достаточно.
Offtop: P.S. На всякий случай, в теме http://adn-cis.org/forum/index.php?topic=709.0 тоже я (Подшиваленко Дмитрий).
Mitek вне форума  
 
Непрочитано 06.05.2016, 09:57
#779
99xt1

нефтепереработка
 
Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77


Помогите составить макрокоманду. Надо:
1. Установить размерный стиль.
2. Запустить команду параллельного размера.
3. После выбора начала первой и второй выносных линий, выбрать опцию "Текст", и ввести значение, размерного текста.
4. Выбрать положение размерной линии.
5. К полученному размеру применить команду "Размер, наклон" (_dimedit;_o) и наклонить на -30 градусов.

У меня получилось только первых 2 пункта:
^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned;
Понял что надо добавить паузу для ручного ввода, а потом продолжить макрос, но как не знаю. Книгу "Язык макрокоманд" скачал и начала читать, но решение надо сегодня, боюсь не успею прочесть))

окончание макрокоманды будет _dimedit;_o;\;-30;
Вот серединку бы добавить.

Последний раз редактировалось 99xt1, 06.05.2016 в 10:15.
99xt1 вне форума  
 
Непрочитано 06.05.2016, 10:52
1 | #780
Krieger

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


Цитата:
Сообщение от 99xt1 Посмотреть сообщение
Помогите составить макрокоманду.
Значение текста из макроса не получится ввести.
Попробуй так:
Код:
[Выделить все]
(defun c:dimob30 (/ p1 p2 txt)
	(setq p1 (getpoint "\nначало:") p2 (getpoint p1 "\nокончание:"))
	(princ (distance p1 p2))
	(setq txt (getstring "\nзначение:"))
	(command "_-dimstyle" "_restore" "Dist_A_R001")
	(command "_dimaligned" p1 p2 "_t" txt pause)
	(command "_dimedit" "_o" "_l" "" "-30")
  );defun
Как использовать лисп, опубликованный на форуме
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
Ответ
Вернуться   Форум 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