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

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 26-12-2015, 20:21:39

Название: Указание точки в AutoCAD с помощью API
Отправлено: Алексей (IdeaSoft) от 26-12-2015, 20:21:39
Всем привет!
Есть функция выбора точки на чертеже
Все хорошо работает много лет без сбоев.

А тут вот попался такой файл, в котором указываешь точку
в одном месте а возвращаемая точка в другом месте чертежа.
Сдвиг по X,Y стабильно на одну и туже величину.

Сразу скажу, что объектные привязки отключил.
(тестировал в Autocad 2010 и 2012)   

Вот фрагмент кода функции:
Код - vb.net [Выбрать]
  1.  
  2.             Dim doc = CAD_APS.Application.DocumentManager.MdiActiveDocument
  3.             Dim options As New CAD_EDI.PromptPointOptions(vbCrLf & "Укажите точку:")
  4.             Dim pr As CAD_EDI.PromptPointResult = doc.Editor.GetPoint(options)
  5.             ' коорд. точек беру из pr.Value.X, pr.Value.Y
  6.  
  7.  
Может имеет смысл прикрепить этот самый файл?
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Андрей Бушман от 26-12-2015, 20:23:29
Проверь текущую систему координат.
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Александр Ривилис от 26-12-2015, 20:24:25
Скорее всего ПСК != МСК
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Алексей (IdeaSoft) от 26-12-2015, 20:29:47
Проверь текущую систему координат.
А какая команда про
Проверь текущую систему координат
Ввел команду ПСК
AutoCAD выдал вот это:
Начало ПСК или [Грань/именоваННая/ОБъект/преДыдущая/Вид/Мир/X/Y/Z/ZОсь] <Мир>:
Нажал Enter и все стало нормально.
Это что значит, в мировых коорд. нужно было сделать?
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Андрей Бушман от 26-12-2015, 20:31:53
Это что значит, в мировых коорд. нужно было сделать?
Это решать тому, кто создаёт чертёж. F1 никто не отменял в AutoCAD. В базе данных чертежа координаты хранятся в МСК.
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Александр Ривилис от 26-12-2015, 20:35:53
Это что значит, в мировых коорд. нужно было сделать?
Это значит, что Editor.GetPoint возвращает точку в ПСК, а примитивы в dwg-файле в МСК. Так что, нужно точку трансформировать из ПСК в МСК для дальнейшей работы. Матрица преобразования ПСК->МСК может быть получена при помощи Editor.CurrentUserCoordinateSystem.
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Алексей (IdeaSoft) от 26-12-2015, 20:37:41
Скорее всего ПСК != МСК
А вот что было. Под компасом ПСК была "без имени"
я так понял, что задал "МИР" и все Ok!
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Андрей Бушман от 26-12-2015, 20:41:22
значок СК, если не отключен, чётко показывает, является ли текущая СК мировой.
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Александр Ривилис от 26-12-2015, 20:42:15
Крайне желательно писать программы, которые работают в любой ПСК, а не только в МСК.
Название: Re: Указание точки в AutoCAD с помощью API
Отправлено: Алексей (IdeaSoft) от 26-12-2015, 20:46:32
Крайне желательно писать программы, которые работают в любой ПСК, а не только в МСК
Всем большое спасибо за ответы. Я учту это в разработках своих функций!