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

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

Макрос с повтором

Ответ
Поиск в этой теме
Непрочитано 09.11.2009, 12:42 #1
Макрос с повтором
Positron
 
Регистрация: 25.06.2009
Сообщений: 147

Помогите с макросом?
Незнаю как зделать чтоб макрос начинался с
^C^C_arc;
и заканчивался цыклом
*^C^C_arc;@;

В результате первый радиус делается с любой точки, а последующий по последним координатам с автоповтором до отмены Esc'ом

Пробывал так ^C^C_arc;*^C^C_arc;@; и понял шо неправ... непашет
Просмотров: 2781
 
Непрочитано 09.11.2009, 12:49
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Звездочка зацикливает макрос, только если находится на первом месте.
Profan вне форума  
 
Автор темы   Непрочитано 09.11.2009, 14:31
#3
Positron


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


Цитата:
Сообщение от Positron Посмотреть сообщение
В результате первый радиус делается с любой точки, а последующий по последним координатам с автоповтором до отмены Esc'ом
а как тогда оформить правильно макрос?
Positron вне форума  
 
Автор темы   Непрочитано 11.11.2009, 15:54
#4
Positron


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


Возможно надо лисп файлик ? может кто поможет, если в не напряг
Positron вне форума  
 
Непрочитано 11.11.2009, 16:25
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Можно использовать команду "_MULTIPLE" ("МНОГОРАЗ"), но она не запоминает опции...

Грубоватая программа построения последовательных дуг только по 3-м точкам:
Код:
[Выделить все]
 
(defun C:arcrep ( / echo flag dn)
(setq echo (getvar "CMDECHO"))
(setvar "CMDECHO" 1)
(setq flag T)
(vl-cmdf "_arc" pause pause pause)
(initget "Д Н")
(While flag
(setq dn (getstring "\n Продолжить? [Да/Нет] <Да>: "))
(if (or (= dn "д") (= dn ""))
    (vl-cmdf "_arc" "@" pause pause)
    (setq flag nil)
)
)
(setvar "CMDECHO" echo)
(princ)
)

Последний раз редактировалось Profan, 11.11.2009 в 20:10.
Profan вне форума  
 
Автор темы   Непрочитано 13.11.2009, 13:13
#6
Positron


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


Цитата:
Сообщение от Profan Посмотреть сообщение
Грубоватая программа построения последовательных дуг только по 3-м точкам:
...
Покашто только такая идея в голову пришла:
^C^C_arcrep;\\\;\\;\\;\\;\\;\\;\\;\\; и ещо много \\;

Positron вне форума  
 
Непрочитано 13.11.2009, 13:16
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да рисуй полилинию дуговыми сегментами, а потом расчлени.
А что это за команда _arcrep?
Profan вне форума  
 
Непрочитано 13.11.2009, 13:37
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
А что это за команда _arcrep?
#5
Do$ вне форума  
 
Непрочитано 13.11.2009, 13:47
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Да, вот что значит несерьезно отнесся к своему труду. Я теперь и не сразу вспомнил, а почему arcrep? Видимо, так: ARC+REPeat.
Profan вне форума  
 
Непрочитано 15.11.2009, 23:47
#10
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
Да, вот что значит несерьезно отнесся к своему труду. Я теперь и не сразу вспомнил, а почему arcrep? Видимо, так: ARC+REPeat.
DO$ Тут 5 не обойдешся надо
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 16.11.2009, 07:20
#11
Krieger

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


Может так:
Код:
[Выделить все]
^C^C(command "_arc" pause pause pause)(while (vl-cmdf "_arc" (getvar "lastpoint") pause pause))
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 16.11.2009 в 15:13.
Krieger вне форума  
 
Автор темы   Непрочитано 16.11.2009, 13:18
#12
Positron


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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Может так:
Код:
[Выделить все]
^C^C(command "_arc" pause pause pause) (while (vl-cmdf "_arc" (getvar "lastpoint") pause pause))
непашет
через 2 мин...
^C^C(command "_arc" pause pause pause)(while (vl-cmdf "_arc" (getvar "lastpoint") pause pause)) ... убрал пробел между командами и зарабатоло

Огромное СПАСИБО!

Последний раз редактировалось Positron, 16.11.2009 в 13:24. Причина: ^C^C(command "_arc" pause pause pause)(while (vl-cmdf "_arc" (getvar "lastpoint") pause pause))
Positron вне форума  
 
Автор темы   Непрочитано 18.11.2009, 17:05
#13
Positron


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


А возможно заменить (Esc) отмену команды клавишей Enter?
какбы 2-й клавишей мышки будет, тогда будет вообще быстрая штука
шото типа if "Enter"
и как ето в коде выглядеть будет интересно...

Последний раз редактировалось Positron, 18.11.2009 в 17:48.
Positron вне форума  
 
Непрочитано 18.11.2009, 18:43
#14
Krieger

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


Попробуй так:
Код:
[Выделить все]
^C^C(if (setq p1 (getpoint)) (while (setq p2 (getpoint p1)) (vl-cmdf "_arc" p1 p2 pause) (setq p1 (getvar "lastpoint"))))
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 18.11.2009, 18:50
#15
Positron


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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Попробуй так:
Код:
[Выделить все]
^C^C(if (setq p1 (getpoint)) (while (setq p2 (getpoint p1)) (vl-cmdf "_arc" p1 p2 pause) (setq p1 (getvar "lastpoint"))))
супер, спасибо!
Positron вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Макрос с повтором



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать макрос для кнопки "зеркало" vasyavip Программирование 2 10.04.2013 23:43
Макрос для удаления всех объектов в выбранном слое 6aman4ik Программирование 9 26.06.2009 00:26
Помогите сделать макрос для автокада Sky_cool Программирование 8 17.01.2009 03:04
Нужен макрос (поворот на 90 предварительно выделенного) dextron3 Программирование 20 10.07.2007 21:36