Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Как в 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 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-1117707479
12DFBDDh
2005-06-02 14:17
2005.06.29
Он лайн библиотека "Архивариуса"


14-1117803383
Cerberus
2005-06-03 16:56
2005.06.29
Есть предложение.


1-1117620335
PhAn
2005-06-01 14:05
2005.06.29
Другой IntToStr


14-1117802870
syte_ser78
2005-06-03 16:47
2005.06.29
NOD 32


1-1117867566
seregka
2005-06-04 10:46
2005.06.29
как очистить буфер обмена