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

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

действия над координатами

Ответ
Поиск в этой теме
Непрочитано 04.02.2007, 16:54 #1
действия над координатами
Unreal_2007
 
Н НОвгород
Регистрация: 04.02.2007
Сообщений: 15

Здраствуйте!
Подскажите как выполнить действия на координатами.
Получаю базовую точку getpoint(), а как ее сместить и\или выпольнить програмную прорисовку фигуры в итносительных коодинатах. Ищу 3й день . Помогите пожалуйста!!! :cry:
Просмотров: 3670
 
Непрочитано 04.02.2007, 22:44
#2
den001

Инженер по автоматизации (строительство)
 
Регистрация: 05.05.2006
Люберцы
Сообщений: 241


Вы про Lisp или про VBA? И не совсем понятна суть проблемы. Выполнить действия над точкой, (в VBA) - ничего нет проще:
Код:
[Выделить все]
Dim pnt As ACAD_POINT
pnt = ThisDrawing.Utility.GetPoint
Получаете массив из 3-х элементов, и делать с ним можно что угодно
Можно использовать как точку для другого метода, напр.:
Код:
[Выделить все]
 
rad = 10
ThisDrawing.ModelSpace.AddCircle pnt, rad
или
Код:
[Выделить все]
Dim cobj As AcadCircle
cobj = ThisDrawing.ModelSpace.AddCircle(pnt, rad)
Или я не о том?
Если интересует преобразование из одной системы координат в другую, то
Код:
[Выделить все]
pnt = ThisDrawing.Utility.TranslateCoordinates(pnt, acWorld, acUCS, 0)
или
Код:
[Выделить все]
pnt = ThisDrawing.Utility.TranslateCoordinates(pnt, acUCS, acWorld, 0)
А если интересует Lisp - то это не ко мне
den001 вне форума  
 
Непрочитано 05.02.2007, 10:11
#3
Кулик Алексей aka kpblc
Moderator

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


Я не понял вопроса. Ну, получена точка. Так что, надо вокруг этой точки выполнить отрисовку? К примеру, есть список точек вершин отрезков типа
'(((-2. -2.) (2. 2.)) ((-2. 2.) (2. -2.)))
Тогда будет нечто типа:
Код:
[Выделить все]
_$ (setq lst '(((-2. -2.) (2. 2.)) ((-2. 2.) (2. -2.))))
(((-2.0 -2.0) (2.0 2.0)) ((-2.0 2.0) (2.0 -2.0)))
_$ (setq pt (GETPOINT))
(232.284 196.397 0.0)
(mapcar '(LAMBDA(b) (mapcar '(LAMBDA(a) (mapcar '+ a pt)) b)) lst)
(((230.284 194.397) (234.284 198.397)) ((230.284 198.397) (234.284 194.397)))
===
Добавлено:
Отрисовку можно сделать в общем-то и так:
Код:
[Выделить все]
(mapcar '(LAMBDA(b / tmp) (setq tmp (mapcar '(LAMBDA(a) (mapcar '+ a pt)) b)) (entmakex (list (cons 0 "LINE")(cons 10 (car tmp)) (cons 11 (cadr tmp))))
) lst)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.02.2007, 12:29 ОПЯТЬ по поводу кординат
#4
Unreal_2007


 
Регистрация: 04.02.2007
Н НОвгород
Сообщений: 15


Например получил точку, как сместить ее на 100 "точек" вверх или вниз. Примерчик, если можно!!!
Unreal_2007 вне форума  
 
Непрочитано 05.02.2007, 13:40
#5
Кулик Алексей aka kpblc
Moderator

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


(mapcar '+ pt '(100. 100.))
Где pt - твои координаты точек
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.02.2007, 18:25
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc
(mapcar '+ pt '(100. 100.))
Где pt - твои координаты точек
Это по диагонали!
(setq pt1 (mapcar '+ pt '(0.0 100.0 0.0))) ; А это по вертикали вверх!
Александр Ривилис вне форума  
 
Непрочитано 06.02.2007, 08:26
#7
Кулик Алексей aka kpblc
Moderator

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


> Александр Ривилис : ессно Неверно прочитал вопрос... Сорри.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > действия над координатами