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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вопрос про команду Mirror (зеркало)

Вопрос про команду Mirror (зеркало)

Ответ
Поиск в этой теме
Непрочитано 29.11.2007, 16:56 #1
Вопрос про команду Mirror (зеркало)
ilka_t
 
Москва
Регистрация: 20.01.2004
Сообщений: 154

как в команде Mirror сделать что бы она не выводила запрос на подтверждение удоления объектов а сразу их удоляла?
Просмотров: 2354
 
Непрочитано 29.11.2007, 17:05
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Зеркаль с помощью ручки и правой кнопки мыши
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.11.2007, 17:09
#3
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Или написать соотв. лисп, а исходную команду переопределить.
Pilot на форуме  
 
Автор темы   Непрочитано 29.11.2007, 21:04
#4
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


а может гуру напишут лиспик
ilka_t вне форума  
 
Непрочитано 29.11.2007, 21:36
#5
Profan


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


Макрос на кнопку:
Код:
[Выделить все]
 
^C^C_mirror;\\\\\_yes;
Но что-то неустойчиво работает.
Еще одна фигня:
Код:
[Выделить все]
 
^C^C_select;\_mirror;_p;;\\_yes

Последний раз редактировалось Profan, 29.11.2007 в 21:50.
Profan вне форума  
 
Непрочитано 29.11.2007, 22:03
#6
Кулик Алексей aka kpblc
Moderator

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


Если без динамической перерисовки:
Код:
[Выделить все]
(defun c:mod-mirror (/ *error* adoc selset pt1 pt2)
  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (if
    (and
      (setq selset (ssget "_:L"))
      (= (type (setq pt1
                      (vl-catch-all-apply
                        '(lambda ()
                           (getpoint "\nПервая точка оси зеркалирования <Отмена> : ")
                           ) ;_ end of lambda
                        ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of type
         'list
         ) ;_ end of =
      (= (type (setq
                 pt2 (vl-catch-all-apply
                       '(lambda ()
                          (getpoint pt1
                                    "\nПервая точка оси зеркалирования <Отмена> : "
                                    ) ;_ end of getpoint
                          ) ;_ end of lambda
                       ) ;_ end of vl-catch-all-apply
                 ) ;_ end of setq
               ) ;_ end of type
         'list
         ) ;_ end of =
      (setq pt1 (vlax-3d-point pt1))
      (setq pt2 (vlax-3d-point pt2))
      ) ;_ end of and
     (foreach ent (mapcar 'vlax-ename->vla-object
                          (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
                          ) ;_ end of mapcar
       (vla-mirror ent pt1 pt2)
       (vla-erase ent)
       ) ;_ end of foreach
     ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Вариант с использованием командных методов чего-то не получился. Точнее, получился, но вот динамической отрисовки у меня не видно
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.11.2007, 22:21
#7
Profan


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


Программка:
Код:
[Выделить все]
 
(defun C:MIRR_YES ( / ss pt1 pt2 )
(setq ss (ssget))
(initget 7)
(setq pt1 (getpoint "\n Первая точка оси отражения: "))
(setq pt2 (getpoint pt1 "\n Вторая точка оси отражения: "))
(vl-cmdf "_MIRROR" ss "" pt1 pt2 "_YES")
(princ)
)
Profan вне форума  
 
Непрочитано 29.11.2007, 22:42
#8
Profan


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


А вот с отрисовкой:
Код:
[Выделить все]
 
(defun C:MIRR_YES ( / echo ss)
(setq echo (getvar "CMDECHO"))
(setvar "CMDECHO" 1)
(setq ss (ssget))
(vl-cmdf "_MIRROR" ss "" pause pause "_YES")
(setvar "CMDECHO" echo)
(princ)
)
Правда, здесь присутствует функция pause, которую так не любит ShaggyDoс...
Profan вне форума  
 
Непрочитано 30.11.2007, 06:36
#9
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Profan Посмотреть сообщение
А вот с отрисовкой:
Правда, здесь присутствует функция pause, которую так не любит ShaggyDoс...
Он не любит, когда символ pause называют функцией.
ShaggyDoc вне форума  
 
Непрочитано 30.11.2007, 07:00
#10
Profan


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


Действительно, pause - символ. Что это нам дает? Ничего, IMHO.
Profan вне форума  
 
Автор темы   Непрочитано 30.11.2007, 13:52
#11
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154



Всем спаибо за помощь
ilka_t вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вопрос про команду Mirror (зеркало)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Худфильмы про строительство :) Саша_Лебедев Разное 119 25.01.2021 17:31
Вопрос про выделение Alexidis AutoCAD 72 05.07.2011 16:47
Вопрос про ТЕКСТ? ilka_t AutoCAD 15 21.07.2004 11:00
Возник вопрос про масштаб. Рогатин AutoCAD 4 18.02.2004 12:14