Главная страница
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.031 c
14-1117777034
break
2005-06-03 09:37
2005.06.29
Исходники предка


10-1094813948
Чебуратор
2004-09-10 14:59
2005.06.29
Быстро передать файл клиенту через сервер приложений (MIDAS)?


1-1117905329
sofs
2005-06-04 21:15
2005.06.29
как записать в мемо какой либо символ из кодовой таблицы Windows?


6-1112272722
spam
2005-03-31 16:38
2005.06.29
Как програмно узнать, что пришол пакет на опредилённый порт?


4-1114770645
Sour Smile
2005-04-29 14:30
2005.06.29
Работа с сетью из-под сервиса