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

Вернуться   Форум 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:
Просмотров: 482661
 
Непрочитано 21.02.2012, 20:54
#481
gomer

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


Цитата:
Сообщение от Jonas Посмотреть сообщение
Для этого соорудил макрос:
это не макрос. это лиспина, причем весьма корявая! Что мешало написать хотя бы так:
Код:
[Выделить все]
 (defun c:delt ( / *error* es1 es2 )
  (defun *error* (msg) (princ))
  (if (and (setq es1 (car (entsel "\nВыберите тело: ")))
           (setq es2 (car (entsel "\nВыберите тело для вычитания: ")))
    )
    (progn
      (setvar 'cmdecho 0)
      (command "_copy" es2 "" '(0 0) '(0 0))
      (command "_subtract" es1 "" es2 "")
      (command "_solidedit" "_body" "_separate" es1 "" "" )
      (command "_erase" pause )
      (setvar 'cmdecho 1)
    )
  )
  (princ)
)
gomer вне форума  
 
Непрочитано 22.02.2012, 08:41
#482
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от gomer Посмотреть сообщение
это не макрос. это лиспина, причем весьма корявая! Что мешало написать хотя бы так:
Мешало отсутствие знаний.
Jonas вне форума  
 
Непрочитано 13.03.2012, 03:44
#483
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В 2008-м автокаде работал макрос
Код:
[Выделить все]
^C^C_qsave;_close
А 2011-й просит сохранить изменения еще раз. При больших размерах это небыстро. Причем в 2011-м если файл открыть и сразу закрыть, диалога "Сохранить изменения?.." не возникает. Если открыть, сохранить и закрыть - появляется, гад. Может, кого-то это тоже напрягло, и он нашел решение, как научить КАД не задавать лишних вопросов?
skkkk вне форума  
 
Непрочитано 26.03.2012, 10:05
#484
seregabs


 
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
<phrase 1=


Цитата:
Сообщение от Volv Посмотреть сообщение
Всем кто делал подсказки спасибо. Отдельное спасибо AlphaGeo.
В итоге вышло сделать кнопку, которая отвечает за поворот копии елемента с опорным углом

Код:
[Выделить все]
^C^C(defun c:kr () (setq ss (ssget)) (command "_rotate" ss "" pause "_c" "_r" (getvar "lastpoint") pause));kr

Отличная кнопка, спасибо! А возможно ли ее зациклить, чтобы, накопировав n-ое кол-во элементов, выходить по Esc ?
seregabs вне форума  
 
Непрочитано 29.03.2012, 02:58
#485
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Так что ли?
Код:
[Выделить все]
^C^C(defun c:kr () (while t (setq ss (entsel)) (command "_rotate" ss "" pause "_c" "_r" (getvar "lastpoint") pause pause)));kr
skkkk вне форума  
 
Непрочитано 29.03.2012, 09:15
#486
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 283
<phrase 1=


"*" Звездочку спереди поставь
Вовочка вне форума  
 
Непрочитано 29.03.2012, 10:38
#487
seregabs


 
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
<phrase 1=


Цитата:
Сообщение от skkkk Посмотреть сообщение
Так что ли?
Код:
[Выделить все]
^C^C(defun c:kr () (while t (setq ss (entsel)) (command "_rotate" ss "" pause "_c" "_r" (getvar "lastpoint") pause pause)));kr
Этот вариант после первого копирования запрашивает выбор объекта для следующего копирования, после чего уже для него надо ввести базовую точку, и угол. Т.е. по сути заменяет после первого копирования нажатие enter (повтор команды вобщем).

А хотелось бы, чтобы после первого копирования исходный объект был "уже выбран" и базовая точка осталась прежней, а кликать только для указания нового опорного угла. По аналогии с обычным копированием, где каждым следующим кликом вставляем объект в новую точку.




Добавление звездочки в самом (если я правильно понимаю) начале как исходного так и предложенного чуть выше варианта приводит к прокручиванию запросов в командной строке.
seregabs вне форума  
 
Непрочитано 29.03.2012, 13:26
#488
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Тогда так, если нужно вертеть копию одного объекта (минуется один enter - подтверждение набора):
Код:
[Выделить все]
^C^C(defun c:kr () (setq ss (entsel)) (setq pt (getpoint "Базовая точка:")) (while t (command "_rotate" ss "" pt "_c" "_r" (getvar "lastpoint") pause pause)));kr
или так, если копии нескольких объектов (множественный выбор):
Код:
[Выделить все]
^C^C(defun c:kr () (setq ss (ssget)) (setq pt (getpoint "Базовая точка:")) (while t (command "_rotate" ss "" pt "_c" "_r" (getvar "lastpoint") pause pause)));kr
Если опять-таки я правильно понял.
skkkk вне форума  
 
Непрочитано 29.03.2012, 14:08
#489
seregabs


 
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
<phrase 1=


Цитата:
Сообщение от skkkk Посмотреть сообщение
или так, если копии нескольких объектов (множественный выбор):
Работает исправно)
Сперва хотел написать, что в идеале бы еще и первую точку опорного угла использовать заданную при первой операции. А потом подумал, что, быть может, так как сейчас даже и лучше...
Спасибо!
seregabs вне форума  
 
Непрочитано 29.03.2012, 21:26
#490
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от seregabs Посмотреть сообщение
первую точку опорного угла использовать заданную при первой операции
Можно и так:
Код:
[Выделить все]
^C^C(defun c:kr () (setq ss (ssget)) (setq pt1 (getpoint "Базовая точка:")) (setq pt2 (getpoint "Опорный угол:")) (while t (command "_rotate" ss "" pt1 "_c" "_r" (getvar "lastpoint") pt2 pause)));kr

Последний раз редактировалось skkkk, 29.03.2012 в 21:34.
skkkk вне форума  
 
Непрочитано 01.04.2012, 11:34
#491
seregabs


 
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
<phrase 1=


Тоже отлично! Спасибо!
seregabs вне форума  
 
Непрочитано 01.04.2012, 16:54
1 | #492
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от skkkk Посмотреть сообщение
В 2008-м автокаде работал макрос
Код:
[Выделить все]
^C^C_qsave;_close
А 2011-й просит сохранить изменения еще раз. При больших размерах это небыстро. Причем в 2011-м если файл открыть и сразу закрыть, диалога "Сохранить изменения?.." не возникает. Если открыть, сохранить и закрыть - появляется, гад. Может, кого-то это тоже напрягло, и он нашел решение, как научить КАД не задавать лишних вопросов?
^C^C(command "_qsave")(command "_quit" "_Y")
или
^C^C_qsave;_quit;_Y

Последний раз редактировалось roaa, 01.04.2012 в 17:07.
roaa вне форума  
 
Непрочитано 02.04.2012, 14:47
#493
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от roaa Посмотреть сообщение
^C^C(command "_qsave")(command "_quit" "_Y")
или
^C^C_qsave;_quit;_Y
Думаю, неужели прокатит в 11-м? Закроет из командной строки диалог "Сохранить изменения...?" Не хочется FILEDIA обнулять...
Не прокатило.
Ладно, обнуляю. И тут не прокатывает!!! Диалог выскакивает всё равно.
Видимо новая опция в целях увеличения бдительности безопасности проделанной работы
Но и в 2008-м ^C^C_qsave;_close; никогда не подводили
skkkk вне форума  
 
Непрочитано 02.04.2012, 21:28
1 | #494
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от skkkk Посмотреть сообщение
Думаю, неужели прокатит в 11-м? Закроет из командной строки диалог "Сохранить изменения...?" Не хочется FILEDIA обнулять...
Для кнопки ^C^C(command "_qsave")(command "_quit" "_Y")пробел
^C^C_qsave;_quit;_Y;
опробывал - работает
roaa вне форума  
 
Непрочитано 02.04.2012, 22:16
#495
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В 2011-м? Странно... У меня не захотел. После выполнения макроса спрашивает опять "Сохранить...?" И при этом, quit закрывает все открытые файлы в текущем окне, а так не надо. Но с close ситуация аналогична.
skkkk вне форума  
 
Непрочитано 04.04.2012, 21:35
1 | #496
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от skkkk Посмотреть сообщение
Странно... У меня не захотел. После выполнения макроса спрашивает опять "Сохранить...?"
попробуйте так
(command "_qsave")(command "_close" "_n")
roaa вне форума  
 
Непрочитано 05.04.2012, 01:20
#497
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


roaa, действительно, сработало! Даже при FILEDIA= 1/ Спасибо. Сам бы не додумался никогда. В прежних версиях такие фокусы не прокатывали...
Правда сделал так:
Код:
[Выделить все]
^C^C(command "_qsave")(command "_close" "_y")
Потому как при "_n" выводит еще один запрос "Действительно хотите ли отказаться...?", правда только в командной строке. Но при "_y", хоть и сохраняет повторно, но второй раз очень быстро, - зато надежнее. Как ни странно, без макроса два сохранения гораздо дольше (почти в два раза)
Добавлено: А первый раз пробовал только без "command" , поэтому и не получилось. Слишком отчаялся, видимо, при неудаче первого варианта

Последний раз редактировалось skkkk, 05.04.2012 в 01:29.
skkkk вне форума  
 
Непрочитано 05.04.2012, 11:33
#498
starr74


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


Подскажите, можно ли в AutoCad 2006 без установленного Express сделать такую команду Toggle Frames ^C^C_tframes, скрытие контура маскировки? если возможно то напишите макрос. заранее спасибо
starr74 вне форума  
 
Непрочитано 05.04.2012, 11:51
#499
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от starr74 Посмотреть сообщение
Подскажите, можно ли в AutoCad 2006 без установленного Express сделать такую команду Toggle Frames ^C^C_tframes, скрытие контура маскировки? если возможно то напишите макрос. заранее спасибо
Если правильно понял вопрос, то попробуй так
Код:
[Выделить все]
^C^C_.wipeout;_f _On; - включить контур маскировки
^C^C_.wipeout;_f _Off; - выключить контур маскировки
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 05.04.2012, 12:01
#500
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Удобнее http://forum.dwg.ru/showpost.php?p=200705&postcount=13
ытя вне форума  
Ответ
Вернуться   Форум 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