AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

NToBE ?

Ein Thema von Bjoerk · begonnen am 2. Mär 2014 · letzter Beitrag vom 8. Mär 2014
Antwort Antwort
Seite 3 von 3     123   
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: NToBE ?

  Alt 7. Mär 2014, 12:20
Nee. Stop. Scheint irgendwie doch ASCII Format zu sein, aber ohne richtiges FormFeed. Im Editor sah das auf den ersten Blick nur so aus. Sorry. TStringList liest sie aber dennoch korrekt ein.

BTW, bin mit meinem Parser fertig, bin aber dennoch unzufrieden. Irfanview ist schon noch besser. Hab mir aber sagen lassen daß die "Anderen" dxf Files auch nur mit erheblichen Verlusten einlesen. Gibt in Mannheim so ein AutoLISP Freak der auch Kunde von mir ist. Den ruf ich mal an.
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
670 Beiträge
 
#22

AW: NToBE ?

  Alt 7. Mär 2014, 13:15
Was willst Du von einem Parser mit rund 2000 Codezeilen verlangen. Ich glaube, wenn Du einen richtig guten haben willst, wird der Aufwand überproportional größer.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: NToBE ?

  Alt 7. Mär 2014, 13:43
Ja sicher. Stimmt, sind auch ziemlich genau 2000 Zeilen.

Ärgert mich aber trotzdem. Die Struktur haben die FreePascal Autoren ja wirklich sehr schön herausgearbeitet. Läuft auch (wesentlich) stabiler als zum Beispiel der Parser von John Biddiscombe (DXF_read und Co). Bis dato hatte ich auch noch keine Exception beim Einlesen. Der Rest ist wohl noch etwas Fleißarbeit. Ist ja irgendwie immer nur das Gleiche.
Beispiel ReadEntities_LINE:
Delphi-Quellcode:
procedure TDxfParser.ReadEntities_LINE(ATokens: TObjectList; const Base: TFloatPointD2);
var
  Current: TDxfToken;
  I: integer;
  X1, Y1, X2, Y2, Value: double;
  Color: TColor;
begin
  X1 := 0;
  Y1 := 0;
  X2 := 0;
  Y2 := 0;
  Color := clBlack;
  for I := 0 to ATokens.Count - 1 do
  begin
    Current := TDxfToken(ATokens[I]);
    if Current.Group in [10, 20, 11, 21, 62] then
    begin
      Value := StrToFloat(Trim(Current.Name));
      case Current.Group of
        10: X1 := Base.X + Value;
        20: Y1 := Base.Y + Value;
        11: X2 := Base.X + Value;
        21: Y2 := Base.Y + Value;
        62: Color := FAutoCadColorPalette[Round(Value)];
      end;
    end;
  end;
  FItem.Clear;
  FItem.Typ := dxfLINE;
  FItem.BlockName := FBlockName;
  FItem.Pen.Color := Color;
  FItem.Points.Add(FloatPointD2(X1, Y1));
  FItem.Points.Add(FloatPointD2(X2, Y2));
  // ShowMessage(Format('%s %f %f %f %f', [FBlockName, X1, Y1, X2, Y2]));
  if Assigned(FOnGetDxfItem) then
    FOnGetDxfItem(FItem);
end;
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
670 Beiträge
 
#24

AW: NToBE ?

  Alt 7. Mär 2014, 22:02
Mit den Events meinte ich das etwas anders.
Wenn das Event ungefähr so aussehen würde ohne dies "FItem"
Delphi-Quellcode:
// FItem hier ganz rauswerfen
if Assigned(FOnDXFLine) then
    FOnDXFLine(Self, Blockname, Color, FloatPointD2(X1, Y1), FloatPointD2(X2, Y2));
Dann würdest Du diese DXF-Sache komplett von deinem Programm abgrenzen.
Die graphische Darstellung würde etwa so aussehen :
Delphi-Quellcode:
procedure OnDXFLine(Sender: TObject; Name:string; Color:Tcolor; P1, P2: TPoint);
begin
  FMeineGraphikListe.AddLine(Color, P1, P2);
  FMeineGraphikListe.Draw;
  // oder so ähnlich
end;
Hinsichtlich OOP-Optimierung mußt Du sonst halt Christian fragen
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: NToBE ?

  Alt 7. Mär 2014, 22:57
Der ParserItem hat mit meiner Software nichts am Hut. Mit deinem Hinweis den Parser von der restlichen Software zu entkoppeln hattest du völlig Recht und so hab ich's auch gemacht. Die ReadHeader hab ich übrigens ganz neu aufgesetzt. BTW, kennst du das?
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
670 Beiträge
 
#26

AW: NToBE ?

  Alt 7. Mär 2014, 23:06
Okay, dann habe ich Deine Code falsch verstanden. War ja auch nur ein kleiner Ausschnitt.
Nee, Buch kenne ich nicht. Habe mich aber mit DXF in der Art auch noch nicht auseinandergesetzt.
Eigentlich kauft man sich solch eine Komponente ja auch günstig ein. In der Delphi-Welt scheint es das aber nicht zu geben.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
670 Beiträge
 
#27

AW: NToBE ?

  Alt 7. Mär 2014, 23:20
Habe gerade mal die Bücher geguckt. Das mit dem Bild kostet bei Amazon gebraucht Euro 200,--
Stolzer Preis!

Problem bei den Dingern ist wohl, die sind uralt. Die Standards habe sich -glaube ich- schon etwas verändert. Zum Schluß bist Du nach dem Lesen des Buches wieder auf dem Stand Deines eigenen Parsers.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#28

AW: NToBE ?

  Alt 8. Mär 2014, 09:45
Jo, scheint irgendwie Kultstatuts zuhaben? Ich hab mir DXF intern bestellt. "DXF intern ist eine korrigierte und erweiterte Neuauflage des seit einiger Zeit ausverkauften Referenzbuchs Der DXF-Standard". Kostet (neu) auch nur die Hälfte (als das alte gebraucht).

Mir geht es auch nicht darum die 500 Seiten durchzuackern sondern nachzuschauen was ich (noch) brauch und um Unklarheiten zu beseitigen. Was ist z.B. der Unterschied zwischen ExtMax/Min und LimMax/Min. Was bedeutet InsBase? Wie sind z.B. die diversen Skalierungsfaktoren und Ratationsangles zu verstehen? Und sind die bei Blöcken additiv usw..
  Mit Zitat antworten Zitat
Jens01
Online

Registriert seit: 14. Apr 2009
670 Beiträge
 
#29

AW: NToBE ?

  Alt 8. Mär 2014, 11:06
Das könnte auch schon helfen.

Zitat:
Jo, scheint irgendwie Kultstatuts zuhaben?
Nee, gucke öfter nach guten, alten Büchern. Wenn die etwas knapp sind, versucht einer immer die für solche Preise an den Mann zu bringen.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#30

AW: NToBE ?

  Alt 8. Mär 2014, 14:49
Hey, danke. Hab schon mal nach der auf deutsch gesucht. Unter Google hab ich mich doch gewundert warum "dxf reference german" die nicht findet?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz