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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Результат команды "ДИСТ" в буфер обмена

Результат команды "ДИСТ" в буфер обмена

Ответ
Поиск в этой теме
Непрочитано 25.04.2013, 17:48
Результат команды "ДИСТ" в буфер обмена
Вовочка
 
пищевая технология
 
Киев
Регистрация: 02.06.2009
Сообщений: 283

Возможно ли автоматизировать загрузку результата команды "ДИСТ" в буфер обмена? Интересует именно растояние.
Просмотров: 5242
 
Непрочитано 26.04.2013, 11:00
#21
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Штатно в лиспе нет функций для работы с буфером обмена. Как то решал такую задачи при помощи функций из DOSlib. Т.е. программно вычисляем расстояние между двумя точками и загоняем результат в буфер через функцию "dos_clipboard". Взять можно здесь http://download.rhino3d.com/download.asp?id=doslib

лови прогу

Код:
[Выделить все]
(defun kr_distance (/ p1 dist)
  (dos_clipboard (setq dist (distance (setq p1 (getpoint "начало отрезка")) (getpoint p1 "\nокончание отрезка\n"))))
  (strcat "длина: " (rtos dist 2 2))
  )
__________________
Делай хорошо, плохо само получится.

Последний раз редактировалось Krieger, 26.04.2013 в 11:22.
Krieger вне форума  
 
Автор темы   Непрочитано 26.04.2013, 11:44
#22
Вовочка

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


Спасибо за помощь, но почему то пишет:
Команда: (kr_distance)
; ошибка: слишком мало аргументов
__________________
AutoCAD 2011.
Вовочка вне форума  
 
Непрочитано 26.04.2013, 11:51
#23
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Еще раз скопируй, я там пробел забыл.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Автор темы   Непрочитано 26.04.2013, 12:10
#24
Вовочка

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


Спасибо Огромное. Будете в Киеве, пишите - с меня пиво.
__________________
AutoCAD 2011.
Вовочка вне форума  
 
Непрочитано 26.04.2013, 12:22
#25
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Да не за что.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 26.04.2013, 23:33
#26
VVA

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


Цитата:
Сообщение от Krieger Посмотреть сообщение
Штатно в лиспе нет функций для работы с буфером обмена. Как то решал такую задачи при помощи функций из DOSlib
Можно с помощью объекта "InternetExplorer.Application" и "htmlfile" (предпочтительнее)
Программирование > Копирование в буфер обмена
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.04.2013, 05:46
#27
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Спасибо, попробую. Не хочется привязываться к doslib.
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 29.04.2013, 05:52
2 | #28
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Вариант без doslib, в буфер загоняет 12 знаков после запятой.
Код:
[Выделить все]
 (defun kr_distance (/ p1 p2 dist *error*)
  (defun *error* (msg)
    (setq p1 nil))
  (if (setq p1 (getpoint "Начало отрезка"))
    (if (setq p2 (getpoint p1 "\nОкончание отрезка\n"))
      (progn (copyToclipboard (rtos (setq dist (distance p1 p2)) 2 12))
	(strcat "Длина: " (rtos dist 2 4)))
      );if
    );if
  );defun


;  ! ***************************************************************************
;; !                           copyToclipboard
;; ! ***************************************************************************
;; ! Function : Copy text to clipboard
;; ! Argument : 'str'     - String
;; ! Returns  : nil
;; see http://www.theswamp.org/index.php?topic=21764.new
;; ! ****************************************************************************

(defun copyToclipboard ( text / htmlfile result)
 (setq result
        (vlax-invoke
            (vlax-get
                (vlax-get
                    (setq htmlfile (vlax-create-object "htmlfile"))
                   'ParentWindow
                )
               'ClipBoardData
            )
           'SetData
            "Text"
            text
        )
    )

    (vlax-release-object htmlfile)
    result
)
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Результат команды "ДИСТ" в буфер обмена



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемный файл, не работает буфер обмена и сохранение файла KOT404 AutoCAD 26 13.01.2014 07:58
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
Непонятное увеличение элемента при копировании через буфер обмена tanash AutoCAD 9 30.08.2010 06:54
Проблема копирования дин. блоков с многстроч. атрибутами через буфер обмена kp+ AutoCAD 7 21.10.2009 22:23
Прозрачные команды Vova AutoCAD 17 21.06.2006 05:33