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

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

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

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 19.05.2008, 15:20 1 |
Мои макрокоманды
zenon
 
Остекляем!!! Алюминим!!!
 
Москва
Регистрация: 21.02.2005
Сообщений: 3,088
Отправить сообщение для 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:
Просмотров: 220329
 
Непрочитано 06.05.2016, 10:52
1 | #781
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 379


99xt1,
Может так
^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned;\\_text;\\_dimedit;_o;\;-30;
AlexCondor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.05.2016, 11:05
#782
99xt1

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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Попробуй так:
Всё отлично, благодарю.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от AlexCondor Посмотреть сообщение
99xt1,
Может так
^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned;\\_text;\\_dimedit;_o;\;-30;
Так тоже работает, но получается надо "руками" выбирать размер для dimedit. Т.е. надо как-то выбрать автоматически только что созданный размер.

Вот так вроде
^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned;\\_text;\\_dimedit;_o;_Last;;-30;
99xt1 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.05.2016, 11:13
1 | #783
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 379


99xt1,
Да так, а вообще я взял окончание предложенное вами же...
AlexCondor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.05.2016, 11:23
#784
99xt1

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


AlexCondor, верно. Это я ошибся сначала. Учусь. Благодарю.

Это автоматизирую простановку размеров в изометрических чертежах построенных в плоскости
Миниатюры
Нажмите на изображение для увеличения
Название: Изометрия.png
Просмотров: 90
Размер:	64.8 Кб
ID:	169965  
99xt1 вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 07.05.2016, 11:02
#785
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 184
Отправить сообщение для nolte с помощью Skype™


99xt1,предложу простановку размера и диаметра блоком с атрибутами
Миниатюры
Нажмите на изображение для увеличения
Название: 1212.JPG
Просмотров: 35
Размер:	62.2 Кб
ID:	170009  
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 09:48
#786
Maksim7enov


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


Здравствуйте уважаемые специалисты! Прошу помощи. Решил попытать удачу и создать простой макрос для команды повернуть с базовой точкой выглядит он так
Код:
[Выделить все]
^C^C_Rotate;\О;
меня интересует можно ли сократить один щелчок т.е. вызывает команду, выбираем объект, ставим базовую точку и сразу ставим 2-у точку опорного отрезка?
У меня получилось только предварительно выбрав объект вызываю команду, задаю базовую точку, 1 точка опорного отрезка, 2 точка опорного отрезка и поворачиваю.

Последний раз редактировалось Кулик Алексей aka kpblc, 28.07.2016 в 10:05.
Maksim7enov вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 10:05
1 | #787
skkkk

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


А лисп подойдет? Не люблю скакать по этим менюшкам, чтобы создавать и тестировать макросы. А на лиспе уже решение есть, но оно заработает только, если Автокад не LT. Зато будет вызываться повторно по правой кнопке или Enter.
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 10:06
#788
Maksim7enov


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


Подой

----- добавлено через 51 сек. -----
Подойдет! только я попутно еще разобраться хотел, что к чему и что неправильно делал.
Maksim7enov вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 10:34
1 | #789
skkkk

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


Цитата:
Сообщение от Maksim7enov Посмотреть сообщение
Подойдет!
Хорошо
Код:
[Выделить все]
 (defun C:ROTATE+ ( / sset pt pt2)
	(or
		(setq sset (ssget "_I"))
		(setq sset (ssget))
	)
	(if sset (setq pt (getpoint "\nБазовая точка:")))
	(cond  
	  (	pt
		(setq pt2 (getpoint pt "\nОпорный угол <0>"))
		(if (null pt2) (setq pt2 (polar pt 0 1)))
		(vl-cmdf  "_.ROTATE" sset "" pt "_R" pt pt2 pause)
	  )
	)
	(princ)
)
Цитата:
Сообщение от Maksim7enov Посмотреть сообщение
я попутно еще разобраться хотел, что к чему и что неправильно делал
Не стану углубляться и проверять, но наверное, макрос будет таким:
Код:
[Выделить все]
^C^C_Rotate;\О;(getvar "LASTPOINT");\
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 10:41
#790
Maksim7enov


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


Большое спасибо! вот и я думал как сослаться на последнюю точку, только моих знаний не хватает) Буду учиться!)
Maksim7enov вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 28.07.2016, 16:24
#791
Клаус


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


Электрик по образованию, при рисовании планов использую вот такие макросы:
1)*^C^C_fillet;Радиус;0.8;;_Polyline; -- Скругляет углы полилинии, начальнику нравится что кабель поворачивает плавно, мне тоже нравится
2)*^C^C_fillet;Радиус;0;;_Polyline; -- действие противоположное первому, применяю при изменении трассы кабеля
3)^C^CПСК;НН;С -- сохранить ПСК с указанием имени (новую ПСК обычно задаю командой Объект (^C^C_ucs _ob ))
4)^C^C_Plan;Текущая; -- поворачивает вид оператора в соответствии с текущей ПСК
Клаус вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 30.07.2016, 14:15
#792
Vova

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Не люблю скакать по этим менюшкам, чтобы создавать и тестировать макросы
Макросы надо создавать на инструментальной палете, и тогда не придется "скакать". Тестировать их становится легче чем лиспы

----- добавлено через ~19 мин. -----
Цитата:
Сообщение от Клаус Посмотреть сообщение
2)*^C^C_fillet;Радиус;0;;_Polyline; -- действие противоположное первому, применяю при изменении трассы кабеля
Пока не устаканилась трасса лучше рисовать ее одиночными полилиниями или даже отрезками (!?). Для этого поищи лисп от Profan, кaжется, нзывается Poliline-1. Если соединять их командой из Express Exfillet (вместо Fillet) то скругления также останутся не связанными с прилегающими прямыми. Зато затем все окончательно соединить легко командой Join. Если-же изначально не использовать полилинии а только отрезки и дуги но хочется иметь конечный результат в виде полилиний то команда Join легко превратит все соединенное в полилинию, если первый отрезок превратить в полилинию командой Pedit. Это мало кто знает, но, кажется, работает не во всех автокадах
Vova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 30.07.2016, 17:07
#793
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,449
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от skkkk Посмотреть сообщение
^C^C_Rotate;\О;(getvar "LASTPOINT");\
Цитата:
Сообщение от Maksim7enov Посмотреть сообщение
Большое спасибо! вот и я думал как сослаться на последнюю точку, только моих знаний не хватает) Буду учиться!)
Символ @ - ссылка на последнюю введенную точку. На этом построен ввод относительных координат с клавиатуры Еще пример можно посмотреть в первом посте темы (ищи макросы с символом @)
Без проверок, новый вид макроса
Код:
[Выделить все]
^C^C_Rotate;\О;@;\
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.07.2016, 12:38
#794
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,521
Отправить сообщение для gomer с помощью ICQ Отправить сообщение для gomer с помощью Skype™


Цитата:
Сообщение от Клаус Посмотреть сообщение
_fillet;Радиус
никогда не смешивайте английские команды и русские, это признак дурного тона
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.07.2016, 12:44
#795
Maksim7enov


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Символ @ - ссылка на последнюю введенную точку. На этом построен ввод относительных координат с клавиатуры Еще пример можно посмотреть в первом посте темы (ищи макросы с символом @)
Без проверок, новый вид макроса
Код:
[Выделить все]
^C^C_Rotate;\О;@;\
Спасибо! за ссылку. Только начал с этим разбираться. Но пока еще не понял полезно ли будет изучать лисп? Так как знания програмирования у меня 0, решил начать с макросов думаю это легче чем лисп. Так же не нашел применения лисп для проектирования ВК.
Maksim7enov вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.07.2016, 13:34
#796
skkkk

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


Клаус, на эту тему (скругление смежных отрезков) есть примитивный лиспик, он может обработать сразу много полилиний. Чтобы вернуть обратно скругления, надо назначить радиус равным нулю.
Цитата:
Сообщение от Vova Посмотреть сообщение
Макросы надо создавать на инструментальной палете, и тогда не придется "скакать".
Уважаемый Vova, на самой заре своей карьеры инженера мне довелось познакомиться с Вашей книгой. Именно она родила во мне интерес к программированию, за что я лично Вам непомерно благодарен. Только бы этот совет мне бы узреть лет эдак девять назад, когда я составлял для себя и коллег десятки макросов, упрощающих жизнь инженера. Просто однажды я "уперся" в ограничения языка макрокомманд, мне (нам) стало важно иметь повтор многих комманд по правой кнопке мыши - и я стал все чаще использовать в макросах конструкции с defun. После и вовсе потребовалось в программах иметь не только последовательность определенных команд и их опций, но и различные вычисления, интерактивную работу с пользователем, довольно сложные построения... Пусть Вы об этом и не знаете, но я - Ваш прилежный ученик и тайный поклонник, и первым, с кем бы я захотел встретиться, приехав в Америку, были бы именно Вы, если не откажете в такой чести... И оттого, что я перерос этот язык, уважение нисколько не уменьшилось, и оттого с каждым разом все больнее, когда я предлагаю кому-то альтернативные варианты программ в обход макрокоманд. Но, как говорится, "Платон мне друг...", - уверен, что Вы поймете меня правильно. Еще раз - спасибо огромное Вам за ваши "отцовские" наставления, за Ваши викторины и каверзные вопросы и просто интересные темы, в которых я пусть и заочно (намного позднее, чем Вы их размещали), но поучаствовал; за примеры Ваших проектов, из которых я почерпнул много полезного для себя. Серьезно - Вы - один из моих лучших учителей, хоть об этом пока и не знали.

Цитата:
Сообщение от Vova Посмотреть сообщение
Пока не устаканилась трасса лучше рисовать ее одиночными полилиниями или даже отрезками
Скажите, а появление средней ручки полилинии, кажется, в 2011-м, не изменило Вашего мнения на этот счет? Дело в том, что после этого я стал сторонником целостности трасс, с учетом, что можно, зажав Ctrl, добавить нужную вершину, я довольно ловко справляюсь с корректировкой трассы, не разрывая ее, а просто вернув все "скругления" к прямым (и не только) углам. После корректировки - повторно скругляю программкой из приведенной мною ссылки.

Цитата:
Сообщение от VVA Посмотреть сообщение
Без проверок, новый вид макроса
Я хотел было вспомнить про выражения на языке Delphi для макросов, как более близкие к этому языку и способные работать в LT версиях, но твой вариант оказался "качественнее", я совсем забыл про эту собачку.
skkkk на форуме вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 31.07.2016, 17:51
#797
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,449
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Vova Посмотреть сообщение
Пока не устаканилась трасса лучше рисовать ее одиночными полилиниями или даже отрезками (!?). Для этого поищи лисп от Profan, кaжется, нзывается Poliline-1
По-моему, здесь это было LISP. Отрисовка произвольной трассы из отрезков и дуг.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 06.08.2016, 21:05
#798
Vova

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Уважаемый Vova, на самой заре своей карьеры инженера мне довелось познакомиться с Вашей книгой. Именно она родила во мне интерес к программированию, за что я лично Вам.....
Спасибо за хороший отзыв, уважаемый SkkkK. Эта книга дала "програмистскую" путевку в жизнь многим пользователям, среди них одним из известных являетя Кулик Алексей aka kpblc. Всегда с удовольствием вспоминаю тот период в 2002году когда писал книгу. Я мало тогда знал о макросах, да и, похоже, и не было спецов, хотя бы что то написавших о них, в том числе на английском. Наш форум тогда реорганизовывался, админ просил помочь с названиями направлений и тем. Я предложил в раздел Программирование ввести и макросы. Поначалу это слово фигурировало в темах но потом исчезло так как никто ничего туда не писал. Я хотел поделиться теми крохами знаний, что имел, связался с издательством и сообщил о готовности написать небольшую брошюру, страниц на 30-40. А дальше, подумал, появятся отзывы и можно было бы продолжить тему. Но издательство связалось с Полещуком, он дал добро на тему, и они сказали что брошюра не их профиль, нужна книга хотя бы страниц на 200. Я приуныл но стал копать. Дело в том что я тогда работал на ЛТ и о лиспах ничего не слышал. Короче, нарыл аж на 300 страниц. Книга получилась удачная. Сегодня она, конечно, немного устарела. Две главы уже не работают: про меню (так как в АС- 2006 появилось CUI), и о калькуляторе, ибо в автокаде появился на нем какой- то баг, сбивающий процесс расчета. Остальным можно пользоваться до сих пор. Хотя считается что компьютерные книги долго не живут. И данная тема не появилась бы на форуме без этой книги.

Чем-же рисовать. полилиниями или отрезками? Я сторонник отрезков, если нет необходимости выделять всю трассу для просмотра или задавать толщину. Во всяком случае, пока делается чертеж и если трасса сложная и их много, и они пресекаются. Ведь в процессе создания чертежа обычно маршрут трасс меняется. Крайним случаем такого чертежа, где миллион линий и все они пересекаются является электрич. схема. Пока ее сформируешь, сотни и сотни раз отрезки перерисовываются, идут другим маршрутом и грипса на середине сегмента полилинии мало поможет. Если в конце черчения, когда все устаканилось.все отрезки превратить в полилинии (кстати, это легко и быстро делает команда Join, даже примененная к чистым отрезкам) то и в этом случае возможны коллизии, если схема в полилиниях а не в отрезках. Ведь обычно вскоре последуют изменения, которые может делать другой сотрудник, менее продвинутый. Он все повзрывает.
SKKKK, если будешь в наших краях, конечно, встретимся и поговорим, и даже примем на грудь
Vova вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 07.08.2016, 20:57
#799
АлексЮстасу

топограф, технолог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,513


Цитата:
Сообщение от Vova Посмотреть сообщение
Во всяком случае, пока делается чертеж и если трасса сложная и их много, и они пресекаются. Ведь в процессе создания чертежа обычно маршрут трасс меняется. Крайним случаем такого чертежа, где миллион линий и все они пересекаются является электрич. схема. Пока ее сформируешь, сотни и сотни раз отрезки перерисовываются, идут другим маршрутом и грипса на середине сегмента полилинии мало поможет. Если в конце черчения, когда все устаканилось.все отрезки превратить в полилинии (кстати, это легко и быстро делает команда Join, даже примененная к чистым отрезкам) то и в этом случае возможны коллизии, если схема в полилиниях а не в отрезках. Ведь обычно вскоре последуют изменения, которые может делать другой сотрудник, менее продвинутый. Он все повзрывает.
Если можно, то уточните - желательны, удобны именно отрезки или необходимо разбивать на пересечениях?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 08.08.2016, 00:06
#800
Vova

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Если можно, то уточните - желательны, удобны именно отрезки или необходимо разбивать на пересечениях?
Это не совсем offtop, в конце будет и про макрокоманду
Насколько я помню историю схемных пересечений то она выглядела так: при царе горохе и в СССР до 60х- 70х годов пересечения в схемах согласно рисовательному госту осуществлялось разрывом с дугой, что давало понять что эл. контакта в месте пересечения нет. Затем гост упростили: дугу убрали но разрыв оставили. И, наконец, в очередном новом госте убрали и разрыв. Поскольку все схемные пересечения обычно осуществляются под прямым углом, разночтений - есть ли контакт не возникало, а карандашное черчение значительно упростилось. В США гостов на рисование нет, что вызывает недоумение на форуме. Рисовали согласно традициям начальников. Когда я делал свою первую схему, уже в автокаде, на образцах увидел разрывы. Поначалу и я делал разрывы, а потом понял что многократное изменение конфигурации схемы, перенос ранее нарисованных отрезков, составляющих линию- фидер требует много доп. работы. И я вспомнил последний советский гост неразрывных пересечений и стал так рисовать. Начальству понравилось, и это стало традицией в нашей компании, а также в тех, куда попадали мои чертежи. Чужие схемы видел разные, по всем трем вариантам. Наши легко читаются и отслеживаются в автокаде несколькими кликами от начала до конца.
Для того чтобы трасса прослеживалась малым количеством кликов (в пределе одним, если сделать ее полилинией) надо кроме того сделать некоторое количество "хитрых" блоков того оборудования, которое нанизано на линию. Именно тогда я и изобрел блок с маскировкой, который получил широкое распространение на форуме. Но автокад иногда капризничает и опускает блоки с вайпаутом вниз, под линию. Отдать файл - чертеж в чужие руки небезопасно Поэтому не надо перебарщивать, стараясь непремено не разрывать свои трассы, добиваясь одного клика для выделения. На всякий случай я имею макрос, поднимающий весь слой, на котором размещены блоки с вайпаутом наверх, сделанный на базе команды... ХХХХ.
Предлагаю умельцам создать такой макрос здесь

Последний раз редактировалось Vova, 08.08.2016 в 00:28.
Vova вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум 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 || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


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