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

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

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

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

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

Выкладываю 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:
Просмотров: 482277
 
Автор темы   Непрочитано 12.06.2011, 17:10
#421
zenon

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


Цитата:
Сообщение от Sta1917 Посмотреть сообщение
Привет, нужно создавать полилинию с уровнем Z=0, собрал команды в макрос: ^C^C_pline;\\\;_flatten;_Last;;n
Как реализовать пользовательский ввод _pline до тех пор пока не будет нажат Enter?
ну зачем так сложно? отключи привязку по Z и все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon на форуме  
 
Непрочитано 12.06.2011, 18:17
#422
Sta1917

геодезист
 
Регистрация: 21.03.2009
Санкт-Петербург
Сообщений: 67


zenon, оказывается все просто А на будущее как это можно реализовать?
Sta1917 вне форума  
 
Непрочитано 13.06.2011, 09:13
#423
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


Sta1917, это можно реализовать примероно так *^C^C_-layer;_m;_Водопровод_подземный;;_CELTYPE;gugk5_122_v;;;_CELWEIGHT;30;;;_pline; т.е. сначала выполнить настройки а потом рисовать полилинию. но в товоем случае это видимо не получится с командой _flatten. да и сдругими командами тоже т.к. отрисовка полилинии трубует завершения по enter.
mamuk вне форума  
 
Непрочитано 19.06.2011, 10:29
#424
konstruktornn


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


Всем, доброго времени суток.
У меня просьба, подскажите, что не так сделал
^C^C(setq lr (getvar 'clayer)) (setvar 'clayer "Размеры") _dimlinear; (setvar 'clayer lr).
Работает, но как-то криво.
Хотелось поставить размер в нужный слой, не выбирая объекты, а просто проставляя размеры.
konstruktornn вне форума  
 
Непрочитано 19.06.2011, 11:39
#425
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от konstruktornn Посмотреть сообщение
Хотелось поставить размер в нужный слой, не выбирая объекты, а просто проставляя размеры.
Код:
[Выделить все]
^C^C(setq lr (getvar 'clayer));clayer;Размеры;_dimlinear;\\\clayer;!lr;
это раз...
Это два
gomer вне форума  
 
Непрочитано 19.06.2011, 11:59
#426
konstruktornn


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


Спасибо. Понял свою ошибку
konstruktornn вне форума  
 
Непрочитано 20.06.2011, 11:03
#427
PSG


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


Подскажите, пожалуйста, можно ли создать макрос (выбрать на каком-то определенном слое "ИмяСлоя" МТЕХТ (многострочный текст), взорвать его, т.е. преобрабовать МТЕХТ в ТЕХТ, заменить "." на ",") или надо писать LISP-программу.
PSG вне форума  
 
Автор темы   Непрочитано 20.06.2011, 14:48
#428
zenon

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


PSG, _.QSELECT
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon на форуме  
 
Непрочитано 20.06.2011, 15:51
#429
PSG


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


_QSELECT - быстрый выбор
Я так и делаю,
1. _QSELECT выбираю свойства объекта (МТЕХТ), значение (слой)
2. _ЕXPLODE
3. _QSELECT свойства объекта (ТЕХТ), значение (слой)
4. _FIND (найти "." и заменить на ",")
Хотелось бы, нажал на одну кнопку и все готово
PSG вне форума  
 
Непрочитано 21.06.2011, 17:30
#430
PSG


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


Подскажите, пожалуйста, как в макросе, вот таком -
^C^C(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_find;(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_explode
сделать, чтобы МТЕХТ выбирался не на всем чертеже, а на текущем слое (ActiveLayer)
PSG вне форума  
 
Непрочитано 21.06.2011, 17:42
#431
Do$

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


(ssget "_X" '((0 . "MTEXT"))) заменить на (ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer"))))
Do$ вне форума  
 
Автор темы   Непрочитано 21.06.2011, 17:44
#432
zenon

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


PSG, ну и кто мешает загнать сию последовательность в макрос??
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon на форуме  
 
Непрочитано 21.06.2011, 19:03
#433
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от zenon Посмотреть сообщение
ну и кто мешает загнать сию последовательность в макрос??
Цитата:
Сообщение от PSG Посмотреть сообщение
^C^C(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_find;(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_explode
Ну и кто мешает писать на лиспе... это ж не макрос это лисп собственной персоной
gomer вне форума  
 
Непрочитано 21.06.2011, 19:12
#434
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от zenon Посмотреть сообщение
PSG, ну и кто мешает загнать сию последовательность в макрос??
_QSELECT не имеет формы для командной строки — только диалоговое окно... Так что без LISP'a не обойтись.
 
 
Непрочитано 22.06.2011, 10:21
#435
PSG


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


Всем ответившим, большое спасобо. Я только начинаю ... поэтому ...
PSG вне форума  
 
Непрочитано 23.06.2011, 10:25
#436
PSG


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


Еще вопрос -
^C^C(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_find;(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_explode
^C^C(setq a(ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_text-
по отдельности они работают, а если их объединить вместе
^C^C(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_find;(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_explode;(setq a(ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_text-
то не работают. В чем моя ошибка?
PSG вне форума  
 
Непрочитано 23.06.2011, 11:35
#437
Do$

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


А если после explode; поставить ^C^C?
Do$ вне форума  
 
Непрочитано 23.06.2011, 12:44
#438
PSG


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
А если после explode; поставить ^C^C?
Не помогло

Команда:
Команда:
РАСЧЛЕНИТЬ
Выберите объект: (setq a(ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar
"clayer")))))
nil


*Неверный выбор*
Требуется точка или Последний/Все/Группа

Выберите объект:
Команда:
PSG вне форума  
 
Непрочитано 23.06.2011, 13:42
#439
Do$

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


Мне проще как-то так:
Код:
[Выделить все]
 ((lambda (ss / _dwgru-conv-pickset-to-list lst)
   (defun _dwgru-conv-pickset-to-list (value / tab item)
     (repeat (setq tab	nil
		   item	(sslength value)
	     ) ;_ end setq
       (setq tab (cons (ssname value (setq item (1- item))) tab))
     ) ;_ end repeat
   ) ;_ end defun
   (if ss
     (progn
       (setq lst (_dwgru-conv-pickset-to-list ss))
       (mapcar
	 '(lambda (obj)
	    (vla-put-TextString
	      obj
	      (vl-string-translate "." "," (vla-get-TextString obj))
	    ) ;_ end of vla-put-TextString
	  ) ;_ end of lambda
	 (mapcar 'vlax-ename->vla-object lst)
       ) ;_ end of mapcar
       (prompt
	 (strcat
	   "\nВзорвано мультитекстов: "
	   (itoa
	     (length
	       (mapcar '(lambda (ent) (vl-cmdf "_.explode" ent)) lst)
	     ) ;_ end of length
	   ) ;_ end of itoa
	   "шт."
	 ) ;_ end of strcat
       ) ;_ end of prompt
       (sssetfirst
	 nil
	 (ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar "clayer"))))
       ) ;_ end of sssetfirst
     ) ;_ end of progn
   ) ;_ end of if
 ) ;_ end of lambda
  (ssget "_X"
	 (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))
  ) ;_ end of ssget
)
(vl-cmdf "_text-")
Do$ вне форума  
 
Непрочитано 23.06.2011, 14:18
#440
PSG


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


Спасибо. Но пока для меня это сложно и не понятно. Сразу же вопрос, а как это загрузить? Что тут набирать в ком.строке?
PSG вне форума  
Ответ
Вернуться   Форум 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