Форум: "KOL";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизКак в Delphi открыть dwg или dxf файлы Найти похожие ветки
← →
Shamansky (2004-11-21 23:24) [0]Подскажите как в Delphi работать с файлами dwg и dxf, я знаю есть компонент, но он стоит кучу денег, которых пока нету. можно ли как то анализировать dxf файл?
← →
mdw © (2004-11-22 11:27) [1]>Подскажите как в Delphi работать с файлами dwg и dxf
Так же, как и не в Delphi: берешь и работаешь.....
А если серьезно, то:
1. Смотри тему форума.
2. DXF - открытый формат, поэтому берешь спецификацию, читаешь, работаешь с файлом.
3. > я знаю есть компонент, но он стоит кучу денег А компонентов, на эту тему до фига. Только поискать нужно подходящий и рабочий.
← →
XProger © (2004-11-25 23:59) [2]
procedure TScene.Load_DXF(const FileName: string);
var
f : TextFile;
wrkString : String;
group, err : Integer;
x1, x2, y1, y2, z1, z2, x3, y3, z3 : Single;
begin
x1:=0; x2:=0; x3:=0;
y1:=0; y2:=0; y3:=0;
z1:=0; z2:=0; z3:=0;
AssignFile(f, FileName);
Reset(f);
try
repeat
ReadLn(f, wrkString);
until (wrkString = "ENTITIES") or eof(f);
while not eof (f) do
begin
ReadLn (f, group);
ReadLn (f, wrkString);
case group of
0: begin
SetLength(Obj.Polygon,Length(Obj.Polygon)+1);
Obj.Polygon[Length(Obj.Polygon)-1].Color.R:=150;
Obj.Polygon[Length(Obj.Polygon)-1].Color.G:=150;
Obj.Polygon[Length(Obj.Polygon)-1].Color.B:=150;
Obj.Polygon[Length(Obj.Polygon)-1].Color.A:=255;
SetLength(Obj.Vertex,Length(Obj.Vertex)+1);
Obj.Vertex[Length(Obj.Vertex)-1].X:=x1;
Obj.Vertex[Length(Obj.Vertex)-1].Y:=y1;
Obj.Vertex[Length(Obj.Vertex)-1].Z:=z1;
Obj.Polygon[Length(Obj.Polygon)-1].Point[1]:=Length(Obj.Vertex)-1;
SetLength(Obj.Vertex,Length(Obj.Vertex)+1);
Obj.Vertex[Length(Obj.Vertex)-1].X:=x2;
Obj.Vertex[Length(Obj.Vertex)-1].Y:=y2;
Obj.Vertex[Length(Obj.Vertex)-1].Z:=z2;
Obj.Polygon[Length(Obj.Polygon)-1].Point[2]:=Length(Obj.Vertex)-1;
SetLength(Obj.Vertex,Length(Obj.Vertex)+1);
Obj.Vertex[Length(Obj.Vertex)-1].X:=x3;
Obj.Vertex[Length(Obj.Vertex)-1].Y:=y3;
Obj.Vertex[Length(Obj.Vertex)-1].Z:=z3;
Obj.Polygon[Length(Obj.Polygon)-1].Point[3]:=Length(Obj.Vertex)-1;
end;
10: val(wrkString, x1, err);
20: val(wrkString, y1, err);
30: val(wrkString, z1, err);
11: val(wrkString, x2, err);
21: val(wrkString, y2, err);
31: val(wrkString, z2, err);
12: val(wrkString, x3, err);
22: val(wrkString, y3, err);
32: val(wrkString, z3, err);
end;
end;
Obj.CalcNormals;
Ready:=true;
except
MessageBox(0,"This is not DFX file.","Error",MB_ICONERROR);
Exit;
end;
CloseFile(f);
end;
Писал в прошлом году, тогда всё работало :)
Но на кривизну кода не смотреть :)
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c