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

Вернуться   Форум 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:
Просмотров: 448739
 
Непрочитано 28.10.2008, 16:34
#81
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


VVA, пост #75, а если я в список внесу масштаб не существующий в автокаде к примеру 1:13 то что будет?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 28.10.2008, 17:29
#82
VVA

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


Ничего не будет
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.10.2008, 23:24
#83
Кулик Алексей aka kpblc
Moderator

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


Еще один вариант, в продолжение #75. По идее должно работать и в предыдущих версиях, тупо очищая словарь. Скорость не замерял. В 2008 вроде работает корректно:
Код:
[Выделить все]
(defun _dwgru-scale-list-clear-and-restore-by-doc (doc lst / dict)
                                                  ;|
*    Очистка неиспользуемых списков масштабов документа
*    Параметры вызова:
	doc	указатель на обрабатываемый документ. nil -> текущий
	lst	список строковых представлений масштабов, которые надо
		"ставить в живых"
*    Примеры вызова:
(_dwgru-scale-list-clear-and-restore-by-doc nil '("1:100" "1:10"))
|;
  (vl-load-com)
  (if (not doc)
    (setq doc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of if
  (if (= (type
           (setq
             dict (vl-catch-all-apply
                    (function
                      (lambda ()
                        (vla-item (vla-get-dictionaries doc) "acad_scalelist")
                        ) ;_ end of lambda
                      ) ;_ end of function
                    ) ;_ end of vl-catch-all-apply
             ) ;_ end of setq
           ) ;_ end of type
         'vla-object
         ) ;_ end of =
    (vlax-for item dict
      (if (not
            (member (cdr (assoc 300 (entget (vlax-vla-object->ename item))))
                    lst
                    ) ;_ end of member
            ) ;_ end of not
        (vl-catch-all-apply
          (function
            (lambda ()
              (vla-delete item)
              ) ;_ end of lambda
            ) ;_ end of function
          ) ;_ end of vl-catch-all-apply
        ) ;_ end of if
      ) ;_ end of vlax-for
    ) ;_ end of if
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.10.2008, 05:26
#84
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Подскажите, как в 1 макросе правильно прописать выполнение 2 и более лиспов. Или выпонение комманды автокад после выполнения лиспа. Лисп подгружен, лежит в путях доступа.
Тупо
Код:
[Выделить все]
^C^C_layiso;\\;лисп\;_Layuniso
не хочет работать. После выполнения лиспа макрос прекрашает работать
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 29.10.2008, 08:24
#85
Кулик Алексей aka kpblc
Moderator

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


Возможно, проблема в самом лиспе. И, кстати, кто мешает полностью прописать все команды внутри лиспа?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.10.2008, 02:11
#86
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Возможно, проблема в самом лиспе.
сомневаюсь. Это твой bbl2
Цитата:
И, кстати, кто мешает полностью прописать все команды внутри лиспа?
Через command?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 03:03
#87
Кулик Алексей aka kpblc
Moderator

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


wetr, а что это за bbl2? Чего оно делает (если б я помнил все что написал...) - напомни.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.10.2008, 04:46
#88
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


http://forum.dwg.ru/showthread.php?t=20808
Расставляет блоки на пересечении линий.
Но в лисп я вносить изменения не очень хочу - испорчу только.
А в принципе должен работать макрос, например
Цитата:
^C^Cbbl2;_line
???
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 09:52
#89
VVA

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


wetr, Если лиспы подгружены, то можно так
Код:
[Выделить все]
^C^C(Defun C:RUN()(C:LAYISO)(while (> (getvar "CMDACTIVE") 0)(command pause))(C:BBL2)(C:LAYUNISO));RUN
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.10.2008, 10:18
#90
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


VVA, попытаюсь разобраться.
Цитата:
(Defun C:RUN()
(C:LAYISO)
(while (> (getvar "CMDACTIVE") 0)(command pause))
(C:BBL2)
(C:LAYUNISO)
)
программа запускает LAYISO, до тех пор пока команда активна она зациклена (выполняется).
Потом выполнить лисп BBL2
Потом выполнить LAYUNISO.

Меня смущает вот это
Цитата:
(C:LAYISO
Это сокращение для command используемое для макросов?
(Я не могу предположить, что ты принял команду LAYISO за лисп)

В общем не работает у меня.
Цитата:
Command: (Defun C:RUN()(C:LAYISO)(while (> (getvar "CMDACTIVE") 0)(command
pause))(C:BBL2)(C:LAYUNISO))
C:RUN

Command: RUN ; error: no function definition: C:LAYISO
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 30.10.2008, 13:10
#91
VVA

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


Цитата:
Сообщение от wetr Посмотреть сообщение
(Я не могу предположить, что ты принял команду LAYISO за лисп)
В общем так оно раньше (до 2008) и было
Кусочек файла acetlayr.lsp
Код:
[Выделить все]
; -------------------- ISOLATE LAYER FUNCTION --------------------
; Isolates selected object's layer by turning all other layers off
; ----------------------------------------------------------------
 
(Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)
  ;;;local function to find an unused layer state name for saving
....
У тебя 2008 и старше (команды работы со слоями перекочевали из express в Автокад)
Для 2008, 2009
Код:
[Выделить все]
^C^C(Defun C:RUN()(Command "LAYISO")(while (> (getvar "CMDACTIVE") 0)(command pause))(C:BBL2)(Command "LAYUNISO"));RUN
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.10.2008, 15:25
#92
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


VVA, спасибо! Действительно все так и есть.
Я так полагаю вариант из №89 подойдет для запуска двух лиспов.
Offtop: Я уже нарисовал колонну по твоему заданию для чайников, изучающих лисп. Сейчас изучаю функции AutoLISP
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 01.11.2008, 06:25
#93
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Очень простой макрос, но мне очень помогает.
Для тех кто часто использует wipeout
Отключить границы wipeout
Код:
[Выделить все]
^C^C_wipeout;f;off;
Включить границы wipeout
Код:
[Выделить все]
^C^C_wipeout;f;on;
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 01.11.2008, 13:39
#94
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


wetr, а для чего отключать границы, ведь можно в невидиомо слое делать?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.11.2008, 13:42
#95
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от dextron3 Посмотреть сообщение
wetr, а для чего отключать границы, ведь можно в невидиомо слое делать?
В непечатаемом?
Тогда при печати ничего не замаскируется.
Makswell вне форума  
 
Непрочитано 01.11.2008, 14:19
#96
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


Makswell, я не понял термин замаскируется, что под этим словом поразумевается в Автокаде?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 01.11.2008, 14:31
#97
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Команда _.WIPEOUT в русском Автокаде переведена как МАСКИРОВКА...
Makswell вне форума  
 
Непрочитано 05.11.2008, 12:16 масштаб линий
#98
Jonas

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


Часто встречаются вопросы о том что не видна прерывистая (или иная не сплошная) линия. И чще всего проблемма в масштабе линии. Чтобы долго не выяснять сделал макрос.

^C^Cсвойства;\;Лмасштаб;2.5;;;\;Лмасштаб;5;;;\;Лмасштаб;10;;;\;Лмасштаб;15;;;\;Лмасштаб;20;;;\;Лмасштаб;30;;;\;Лмасштаб;40;;;\;Лмасштаб;50;;;\;Лмасштаб;75;;;\;Лмасштаб;100;;;\;Лмасштаб;150;;;\;Лмасштаб;200;;;\;Лмасштаб;500;;

теперь просто щелкаю по лиии пока не получу желаемый результат.
Jonas вне форума  
 
Непрочитано 05.11.2008, 20:08
#99
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,143


Jonas, а можно для английского автокада, данный макрос?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 06.11.2008, 01:00
#100
Кулик Алексей aka kpblc
Moderator

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


Я бы искал / писал лисп... А так...
Код:
[Выделить все]
^C^C_properties;\;;_lw;2.5;;;
Ну и тому подобное...
Вроде так.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум 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