Page 1 of 1

Incorrect coordinates

Posted: 15 Aug 2019, 02:36
by y.kuklin
При импорте DWG в некоторых файлах неверно импортируются координаты точек. Причем вывод на экран осуществляется корректно.
Если к примеру открыть прилагаемый файл в вашей демо программе Simple Import то он открывается правильно, но если сохранить как его текст в этой же программе, то координата левого нижнего круга по Х = -5, а должна быть +5. Все остальные координаты правильные. Пока это было замечено на Circle и Arc.
Возможно это связано с тем, что файлы были созданы в новой версии DWG, которые при попытке импортировать в старой версии CAD VCL выдают ошибку "Unsupported new DWG version ID: AC1032".

Как это можно исправить?

Re: Incorrect coordinates

Posted: 22 Aug 2019, 21:50
by support
Здравствуйте.

В прилагаемом файле описанное Вами поведение наблюдается только на объектах Arc, которые находятся в блоках, а проблема в том, что координаты точек объекта, находящегося в блоке, в данном случае рассчитываются относительно пространства блока, а не пространства модели, в котором данный блок вставлен.

Чтобы получить координаты точки в пространстве модели для объекта в блоке, необходим пересчет координат точки с учетом матрицы вставки данного блока (TsgDXFInsert.GetMatrix). Для этих целей можно использовать функцию FPointXMat, реализованную в модуле sgFunction:

Code: Select all

function FPointXMat(const APoint: TFPoint; const AMatrix: TFMatrix): TFPoint;
Пример использования функции FPointXMat приведен здесь.

Михаил