Загрузка и чтение объектов из файла
-
- Posts: 1
- Joined: 21 Apr 2014, 17:46
Загрузка и чтение объектов из файла
Есть ряд вопросов:
Так вот при переборе точек полилинии – по непонятным мне причинам оказывается что координаты части вертексов нулевые.
они и в исходном файле нулевые.
Но при этом в автокаде, да и в вашем примере - объект показывается нормально. Если смотреть пример SimpleImport – это также проявляется - точки экспортируются в текстовый файл с нулевыми координатами. Если это служебные точки (мусор) – то как можно их отсечь кроме как анализом координат? Нужно смотреть в TsgDXFVertex.Flag? Ниже привожу две точки из этого файла:

ну а должно быть как-то так

налицо неправильный порядок следования точек. прочедура чтения - в куске кода выше.
не смог прикрепить вложение поэтому примеры файлов - по ссылке
- 1
Code: Select all
//------------------------------------------------------------------------------
// полилиния
procedure TCADReader.DoConvertPolyline(Source: TObject; Dest: TMapObjectStructure);
var
i, sIndex: Integer;
Pnt: TFPoint;
CadVertex: TsgDXFVertex;
begin
sIndex:= Dest.AddSubObject(); //<-- это начало моего объекта
for i:= 0 to TsgDXFPolyLine(Source).Count -1 do
begin
CadVertex:= TsgDXFVertex(TsgDXFPolyLine(Source).Entities[i]);
Pnt:= FPointXMat(CadVertex.Point,FCADReadParams.Matrix);
// if ( Pnt.X <> 0 ) and ( Pnt.Y <> 0 ) then // <-- как отсечь мусор?
Dest.AddVertex(sIndex,
DoublePoint(
Pnt.X * FGeomCoordinatesScaleFactor,
Pnt.Y * FGeomCoordinatesScaleFactor));
end;
end;
они и в исходном файле нулевые.
Но при этом в автокаде, да и в вашем примере - объект показывается нормально. Если смотреть пример SimpleImport – это также проявляется - точки экспортируются в текстовый файл с нулевыми координатами. Если это служебные точки (мусор) – то как можно их отсечь кроме как анализом координат? Нужно смотреть в TsgDXFVertex.Flag? Ниже привожу две точки из этого файла:
VERTEX
8
59
6
CONTINUOUS
62
12
5
AF07
10
-11229.939
20
11368.54
30
0.0
70
192
0
VERTEX
8
59
6
CONTINUOUS
62
12
5
AF08
10
0.0
20
0.0
30
0.0
70
128
71
-1
72
2
73
-4
74
3
0
- 2
- 3
- 4

ну а должно быть как-то так

налицо неправильный порядок следования точек. прочедура чтения - в куске кода выше.
не смог прикрепить вложение поэтому примеры файлов - по ссылке
Re: Загрузка и чтение объектов из файла
Здравствуйте,
Если при загрузке файла не возникло ошибок, то он успешно загружен. Файл bad.dxf может быть успешно загружен при помощи библиотеки CAD VCL, но, по видимому, данный файл не содержит тех данных, которые вы пытаетесь прочитать.
На данный момент поддержка динамических блоков не реализована в библиотеке CAD VCL.
Точки полилинии (вертексы) отдаются именно в том порядке, как они располагаются в полилинии.
Михаил.
Если при загрузке файла не возникло ошибок, то он успешно загружен. Файл bad.dxf может быть успешно загружен при помощи библиотеки CAD VCL, но, по видимому, данный файл не содержит тех данных, которые вы пытаетесь прочитать.
На данный момент поддержка динамических блоков не реализована в библиотеке CAD VCL.
Точки полилинии (вертексы) отдаются именно в том порядке, как они располагаются в полилинии.
Михаил.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support
Chat support on Skype: cadsofttools.support