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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Копирование в буфер координат указанного места в виде X,Y

Копирование в буфер координат указанного места в виде X,Y

Ответ
Поиск в этой теме
Непрочитано 01.08.2014, 18:27 #1
Копирование в буфер координат указанного места в виде X,Y
Janna_R
 
Регистрация: 03.06.2011
Сообщений: 12

Всем здравствуйте!

Нуждаюсь в помощи знатоков лиспа...
Задача такова: Я запускаю лисп, указываю какое-либо место на экране мышью, и лисп определяет и записывает координаты в буфер памяти в формате X,Y.
В работе постоянно возникает необходимость накладывать чертежи архитекторов и конструкторов на топографические планы. Проблема в том, что архитекторы и конструкторы работают в условных системах координат... Пока я это побеждаю так, команда ID: (Specify point: X = 360.9796 Y = 176.0386 Z = 0.0000). Ctr+c (360.9796 Y = 176.0386) , Ctr+p в блокнот, заменяю пробелы и Y = запятой, получаю 360.9796,176.0386 копирую то что получилось в буфер и передвигаю все обьекты с чертежей архитекторов и конструкторов в нужное место... Имею смутное подозрение, что такие танцы с бубном можно автоматизировать. Надеюсь на помощь и моя благодарность не будет иметь разумных границ :-)

Жанна
Просмотров: 2832
 
Непрочитано 01.08.2014, 19:03
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Что именно Вы хотите автоматизировать то?) И задание базовой точки на чертежах конструкторов/архитекторов - не вариант? Или копирование с базовой точкой....
Сергей812 вне форума  
 
Автор темы   Непрочитано 01.08.2014, 19:40
#3
Janna_R


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


2 Сергей812
Вот, базовая точка, это то что мне нужно!!! Расскажите, как ее получить и как пользоваться? Вот у меня чертеж архитектора координаты X=0 Y=0, чертеж конструктора координаты X=-2853,25 Y=-3685,25. Нужно переместить их в координаты X=252638,25 Y=689353,25 ,научите как проще это сделать.
Жанна
Janna_R вне форума  
 
Непрочитано 01.08.2014, 20:43
#4
Кулик Алексей aka kpblc
Moderator

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


А простой _.move не сработает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2014, 20:54
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


например, при копировании Ctrl+Shift+C.. в ответ на запрос указываете базовую точку.. теперь в любом другом чертеже можно вставить как блок (Ctrl+Shift+V), либо просто как совокупность элементов - Ctrl-V с заданной ранее базовой точкой. Очень удобно, когда требуется, например, перенести часть оборудования смежников в свой проект для подключения.. привязались к осям и все встало по месту сразу
Сергей812 вне форума  
 
Непрочитано 01.08.2014, 20:59
#6
Кулик Алексей aka kpblc
Moderator

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


Есть еще масса вариантов: вставка внешней ссылки, изменение переменной insbase, вставка блока из файла... Как говорится, "учите матчасть" - там много интересного
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2014, 20:59
#7
VVA

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


Janna_R, Эти чертежи потом вставляются как ссылки? Если да, то посмотри команду _BASE (БАЗА)
На лиспе так же нет проблем http://forum.dwg.ru/showthread.php?t=14860

Код:
[Выделить все]
(defun C:MyID (/ p1 )
  (if (setq p1 (getpoint "\nТочка: "))
    (copyToclipboard (strcat (rtos (car p1) 2 3) "," (rtos (cadr p1) 2 3)))
    );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
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 01.08.2014, 21:03
#8
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


генплан в метрах, арх. чертежи в мм - INSUNITS!
trir вне форума  
 
Непрочитано 01.08.2014, 21:11
#9
Кулик Алексей aka kpblc
Moderator

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


А также insunitsdefsource, insunitsdeftarget
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.08.2014, 23:50 For VVA !!!
#10
Janna_R


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


For VVA !!!

Это именно то, что мне было нужно. Спасибо тебе, Добрый человек!!! Помолюсь на коленях за тебя, за здравие да долголетие!
Janna_R вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Копирование в буфер координат указанного места в виде X,Y



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Проблемы с копирование через буфер обмена. zenon AutoCAD 2 22.12.2005 07:20