Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Балиев от 31-07-2016, 13:07:33

Название: Проблема с координатами во вновь созданной UCS
Отправлено: Балиев от 31-07-2016, 13:07:33
Проблема в следующем:

- создаю новую UCS со смещением по оси Х на -20.
- рисую две одинаковые линии:

Код - Auto/Visual Lisp [Выбрать]
  1. (command "_line" '(10 10 0) '(20 20 0) "")                                             
  2. (setq lineTMP (vla-AddLine model_space (vlax-3D-point 10 10 0) (vlax-3D-point 20 20 0)))
  3.  

Линия по автокадовской комманде рисуется в новой UCS, а методом ActiveX - в мировой UCS (смю рис). Почему? И как добится, чтобы метод рисовал в новой UCS?

Заранее благодарен.
Название: Re: Проблема с координатами во вновь созданной UCS
Отправлено: Александр Ривилис от 31-07-2016, 13:34:19
Линия по автокадовской комманде рисуется в новой UCS, а методом ActiveX - в мировой UCS (смю рис). Почему?
Так и должно быть. Чтобы получилось то, что ты хочешь нужно преобразовать координаты из ПСК в МСК.
Название: Re: Проблема с координатами во вновь созданной UCS
Отправлено: Балиев от 31-07-2016, 13:37:48
Преобразовать = пересчитать? Но тогда зачем нужна новая UCS? Или я чего-то  не так понимаю?
Название: Re: Проблема с координатами во вновь созданной UCS
Отправлено: Александр Ривилис от 31-07-2016, 16:25:56
Преобразовать = пересчитать? Но тогда зачем нужна новая UCS? Или я чего-то  не так понимаю?
Видимо не понимаешь. С ПСК(UCS) работают команды AutoCAD, а COM/ActiveX работает (в большинстве случаев) с МСК(WCS).
Преобразовать = пересчитать?
Да. Хотя наверное лучше поступить иначе:
1) Получить матрицу преобразования ПСК->МСК
2) Создать примитив (в данном случае LINE) в МСК
3) Воспользоваться методом TransformBy для трансформации примитива из одной системы координат в другую.
Примеры смотри в документации ActiveX Reference Guide: http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-A809CD71-4655-44E2-B674-1FE200B9FE30
http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-2FAE4C13-06F2-47A2-B213-8A9A6958B799
Название: Re: Проблема с координатами во вновь созданной UCS
Отправлено: Александр Ривилис от 31-07-2016, 16:38:54
Матрицу преобразования UCS->WCS можно получить при помощи метода GetUCSMatrix:
http://help.autodesk.com/view/ACD/2016/ENU/?guid=GUID-85495614-C788-45C7-8E26-2BC8A2C3A490
Название: Re: Проблема с координатами во вновь созданной UCS
Отправлено: Балиев от 31-07-2016, 17:24:42
То, что нужно. Спасибо!