Hallo,
ich habe eine DXF-Zeichnung im AutoCAD Format AC1014 und möchte diese mit Hilfe von einem selbst geschriebenen Programm manipulieren, sprich einzelne Bauteile herrauslöschen, in dem ich den Positionsbezeichner angebe.
Ich habe mal in Delphi eine kleiner Funktion geschrieben, die auch teilweise funktioniert.
Das Bauteile BR500, kann man damit löschen (links unten)
Beim Bauteil X28 funktioniert das aber nicht (in der Mitte)
So sieht meine Funktion aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| function LoescheBT(Bauteil: String; DXF: TStringList):Boolean; var check: Boolean; t, y, status: Integer; begin check := false; t := 0; while check = false do begin if Bauteil = DXF[t] then begin while t > 0 do begin if DXF[t] = 'AcDbEntity' then begin dec(t); break; end; dec(t); end; y := t; status := 0; while t < DXF.Count-1 do begin if (DXF[t+6] = 'AcDbText') and (status = 2) then begin check := true; break; end; if (DXF[t] = 'AcDbText') then inc(status); Form1.Memo2.Lines.Add(DXF[t]); DXF.Delete(t); end; end; inc(t); if t > DXF.Count-1 then break; end; result := check; end; |
Im Anhang habe ich mal die Zeichnung von der ich spreche
Moderiert von
Narses: Topic aus Multimedia / Grafik verschoben am Fr 05.03.2010 um 17:30