19/07/2013
В какой системе координат возвращает точку GetClosestPointTo() для вставки блока при помощи ObjectARX
Вопрос:
Почему координаты ближайшей точки (с использованием GetClosestPointTo()) полученной для вставки блока не соответствуют ни МСК (WCS), ни ПСК (UCS)?
Ответ:
Точки получаются относительно системы координат AcDbBlockTableRecord владельца. Если вы хотите конвертировать из системы координат AcDbBlockTableRecord, в которой находится AcDbBlockReference, вам нужно преобразовать их при помощи AcDbBlockReference::blockTransform().
Вероятно, вам придется сначала преобразовать «указанную точку» при помощи инвертированной AcDbBlockReference::blockTransform(), далее выполнить вычисление ближайшей точки, а затем конвертировать результат обратно в исходное пространство.
Обсуждение: http://adn-cis.org/forum/index.php?topic=133.0
Опубликовано 19.07.2013
Отредактировано 04.08.2013 в 17:08:15
Отредактировано 04.08.2013 в 17:08:15