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

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

Функция замещения команды копирования с базовой точкой

Ответ
Поиск в этой теме
Непрочитано 10.12.2008, 00:43 #1
Функция замещения команды копирования с базовой точкой
Torero_80
 
Регистрация: 10.12.2008
Сообщений: 3

Есть функция SLE

Код:
[Выделить все]
  


    (defun c:SLE ()
    (command "-scalelistedit" "С" "Д" "В")
    (princ)
    ) ;_ end of defun

Подскажите как должен выглядеть следующий программный код, чтобы выполнялась функция SLE?


Код:
[Выделить все]
  
()

(if *vlr-cmd*
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if
(if (not *vlr-cmd*)
  (setq *vlr-cmd* (vlr-command-reactor
                    "cmd"
                    '(
                      (:vlr-commandwillstart . cmd-start)
                      )
                    ) ;_ end of VLR-Command-Reactor
        ) ;_ end of setq
  ) ;_ end of if

(defun cmd-start (react cmd / selset cmd_name adoc)
  (setq cmd_name (strcase (car cmd) t)
        adoc     (vla-get-activedocument (vlax-get-acad-object))
        ) ;_ end of setq
  (cond
    ((vl-string-search "copybase" cmd_name)
                              

      (SLE adoc)

          
     )
    ) ;_ end of cond
  ) ;_ end of defun
Просмотров: 3513
 
Непрочитано 10.12.2008, 02:18
#2
Кулик Алексей aka kpblc
Moderator

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


http://forum.dwg.ru/showpost.php?p=302360&postcount=75
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.12.2008, 21:18
#3
Torero_80


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


СПАСИБО!
Torero_80 вне форума  
 
Автор темы   Непрочитано 12.12.2008, 00:31
#4
Torero_80


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


Интересная штука получается...

С командой copyclip - все ОК, если команду copyclip заменить на copybase - ничего не получается...

Код:
[Выделить все]
;====================== ФУНКЦИЯ сбрасывания масштабов видовых экранов перед командой copybase =================================================

(defun restore-scale-list ()
  (vl-load-com)
  (foreach sc (dictsearch (namedobjdict) "acad_scalelist")
    (if (and (= (car sc) 350)
             (not (member (cdr (assoc 300 (entget (cdr sc))))
                          '("1:1" "1:2" "1:10" "1:50" "1:100" "2:1") ;_Здесь перечисляем нужные масштабы
                  ) ;_ end of member
             ) ;_ end of not
        ) ;_ end of and
      (vl-catch-all-apply
        'vla-delete
        (list (vlax-ename->vla-object (cdr sc)))
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  ) ;_ end of foreach
) ;_ end of defun


(if *vlr-cmd*
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if
(if (not *vlr-cmd*)
  (setq *vlr-cmd* (vlr-command-reactor
                    "cmd"
                    '(
                      (:vlr-commandwillstart . cmd-start)
                      )
                    ) ;_ end of VLR-Command-Reactor
        ) ;_ end of setq
  ) ;_ end of if

(defun cmd-start (react cmd / selset cmd_name adoc)
  (setq cmd_name (strcase (car cmd) t)
        adoc     (vla-get-activedocument (vlax-get-acad-object))
        ) ;_ end of setq
  (cond
    ((vl-string-search "copybase" cmd_name)
                              

      (restore-scale-list)
          
     )
    ) ;_ end of cond
  ) ;_ end of defun


;====================== ФУНКЦИЯ сбрасывания масштабов видовых экранов перед командой copyclip =================================================

(if *vlr-cmd*
  (progn
    (setq *vlr-cmd* nil)
    (vlr-remove-all :vlr-command-reactor)
    ) ;_ end of progn
  ) ;_ end of if
(if (not *vlr-cmd*)
  (setq *vlr-cmd* (vlr-command-reactor
                    "cmd"
                    '(
                      (:vlr-commandwillstart . cmd-start)
                      )
                    ) ;_ end of VLR-Command-Reactor
        ) ;_ end of setq
  ) ;_ end of if

(defun cmd-start (react cmd / selset cmd_name adoc)
  (setq cmd_name (strcase (car cmd) t)
        adoc     (vla-get-activedocument (vlax-get-acad-object))
        ) ;_ end of setq
  (cond
    ((vl-string-search "copyclip" cmd_name)
                              

      (restore-scale-list)
          
     )
    ) ;_ end of cond
  ) ;_ end of defun
Torero_80 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функция замещения команды копирования с базовой точкой



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
структурированный список Holon Программирование 22 11.09.2007 14:09
Прозрачные команды Vova AutoCAD 17 21.06.2006 05:33