AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Paint Parser - Kleines Zeichenprogramm mit Scriptsprache
Thema durchsuchen
Ansicht
Themen-Optionen

Paint Parser - Kleines Zeichenprogramm mit Scriptsprache

Ein Thema von Tormentor32 · begonnen am 21. Dez 2006 · letzter Beitrag vom 4. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Tormentor32
Tormentor32
Registriert seit: 27. Okt 2005
Hallo Leute

Ich habe ein Programm geschrieben, welches sich mit dem Prinzip der Turtle-Grafik befasst, dazu habe ich eine kleine Scriptsprache mit 7 Befehlen entwickelt

Anleitung:

Jede Zeile entspricht einem Befehl, Zeilen, die mit keiner der Folgenden Anweisungen beginnen werden ignoriert,
Leerzeilen werden ignoriert. Groß- und Kleinschreibung wird ignoriert.
Es werden immer nur die ersten beiden Worte einer Zeile interpretiert, das heißt

Code:
<Befehl> <Wert>
bedeutet das Gleiche wie
Code:
<Befehl> <Wert> Irgendwas
Die Anzahl der Leerzeichen ist ebenfalls unbedeutend:
Code:
<Befehl> <Wert>
bedeutet das Gleiche wie
Code:
     <Befehl>         <Wert>    Irgendwas
Die Befehle:

Code:
maydraw true
maydraw false
Sagt, ob der Stift auf der Zeichenfäche ist oder nicht, es sind nur die Werte 'true' und 'false' erlaubt
Code:
reset true
reset
Setzt den Stift zurück auf die Mitte des Bildes und richtet ihn wieder nach oben aus, wird der Parameter 'true' übergeben, dann wird außerdem die Zeichenfläche gelöscht, alle anderen Parameter, sowie keiner, bewirken nur das zurücksetzen des Stifts.
Code:
go 50
goback 50
Bewegt den Stift um 50 Pixel nach vorne, bzw um 50 Pixel nach hinten, es sind alle Gleitkommawerte erlaubt, aber es muss ein Wert angegeben werden. ("go -50" = "goback 50")
Code:
rotateL 45
rotateR 45
Dreht die Zeichenrichtung um 45° nach links, bzw nach rechts, es sind alle ganzzahligen Werte erlaubt, aber es muss ein Wert angegeben werden. ("rotatel 45" = "rotateR -45")
Code:
draw
Zeichnet das alles was gezeichnet wurde auf das Bild, es werden keine Parameter benötigt

Was noch fehlt:

Eine art Schleifenanweisung, mit der man das untere Beispiel besser machen kann.

Beispiel:

Code:
reset true
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
draw
Erzeugt ein gleichseitiges Achteck mit der Seitenlänge 20.

Ich würde mich über Kritik, Verbesserungsvorschläge, Bug-Reports freuen...

Bis dahin

Richard


Neue Version!

3 Neue Befehle hinzugefügt

Code:
color
oder
Code:
color r
ändert die Farbe in einen Zufallswert ('color r' verwenden, wenn noch ein Kommentar in der Zeile steht, da sonst das erste Wort des Kommentars als Wert interpretiert wird)
Code:
color 255,0,0
ändert die Farbe in den den RGB-Wert "255 0 0", also rot. Es dürfen keine Leerzeichen zwischen den Werten sein.

Code:
neck
zeichnet ein N-Eck mit den Parametern in den Spin-Edits

Code:
ybaum
zeichnet den Y-Baum mit den Parametern in den Spin-Edits

Das Speichern und Laden von Scripten, sowie das Speichern des Bildes ist jetzt möglich!
Miniaturansicht angehängter Grafiken
screenie_258.jpg  
Angehängte Dateien
Dateityp: zip paint_parser_186.zip (963,4 KB, 36x aufgerufen)
 
Benutzerbild von Tormentor32
Tormentor32

 
Delphi XE5 Professional
 
#2
  Alt 4. Jan 2007, 06:27
Also den vielen Antworten nach zu schließen ist mein Programm entweder perfekt oder völlig uninteressant
Richard Mahr
  Mit Zitat antworten Zitat
uwewo

 
Delphi 2006 Professional
 
#3
  Alt 4. Jan 2007, 06:34
Hallo Richard,

ganz so krass würde ich das jetzt nicht sehen, aber anscheinend besteht derzeit kein Bedarf daran.

Nur so als Tipp, hast Du Dir schon einmal Gedanken darüber gemacht CNC Daten auf diese Art zu visualisieren?

Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

 
Delphi XE5 Professional
 
#4
  Alt 4. Jan 2007, 06:43
Hi Uwe

Wie meinst du das jetzt? Praktisch den "Fräs-Plan" für eine CNC-Fräse? Als Vektorgrafik? Oder das man dem Programm sagen kann "So jetzt bitte eine Linie von A nach B mit derundder Dicke und derundder Tiefe"?

Gruß
Richard Mahr
  Mit Zitat antworten Zitat
uwewo

 
Delphi 2006 Professional
 
#5
  Alt 4. Jan 2007, 06:58
Hi,

ein CNC Programm enthält in jeder Zeile x,y Koordinaten usw.
Interessant wäre es doch ein solches Programm von einem Parser abarbeiten zu lassen, und dies Grafisch darzustellen. Somit könnte man Kollisionen an der Maschine vermeiden, oder wenn Du noch eine Bemaßung in der Zeichnung einfügst sehen ob das Programm zum gewünschten Ergebnis kommt.

Hatte mal eine Zeit beruflich damit zu tun, deshalb fiel mir diese Idee jetzt spontan ein.

Achtung die Umsetzung ist nicht ganz so einfach.

Hier mal ein Link zur Veranschaulichung von CNC Programmen.

Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

 
Delphi XE5 Professional
 
#6
  Alt 4. Jan 2007, 07:22
*pfeif*
Huiuiui das ist aber schon recht kompliziert... Ich werde erstmal ein kleines Physik-Bauplan-Tool schreiben, das dürfte auch schon recht kompliziert werden mit verzweigten Stromkreisen etc...
Danke für die Anregung, ich werde (viel?) später darauf zurückkommen...

Gruß

PS: Ist mein Programm denn Bugfrei?
Richard Mahr
  Mit Zitat antworten Zitat
uwewo

 
Delphi 2006 Professional
 
#7
  Alt 4. Jan 2007, 08:53
Habe es nur überflogen, will Dich aber nicht im Regen stehen lassen

So hier einige Verbesserungsvorschläge:

1. Man kann mehrer Kommas in die Edit Felder eingeben z.Bsp: 10,2,3,4
2. Benutze vielleicht ein SynEdit Memo für Syntax Highlight, Bessere Erkennung wenn man einen Befehl falsch schreibt.
3. Erstelle eine ComboBox in der alle Befehle enthalten sind, ein Editfeld für Zahleneingaben und ein Button zum übernehmen der Werte. Oder erstelle Schaltflächen für jeden Befehl.

Damit kann man sich Tipparbeit sparen!

4. Damit erhalte ich eine Zugriffsverletzung (Also Bug)
reset true
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20


Denke das reicht vorerst

Uwe
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#8
  Alt 4. Jan 2007, 09:26
wie wär's mit einem Befehl color?

z.B: Color red
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

 
Delphi XE5 Professional
 
#9
  Alt 4. Jan 2007, 10:50
Zitat von uwewo:
Habe es nur überflogen, will Dich aber nicht im Regen stehen lassen

4. Damit erhalte ich eine Zugriffsverletzung (Also Bug)
reset true
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20
rotateR 45
go 20


Uwe
also bei mir klappt das... er zeigts nicht an weil da kein draw steht, aber ich bekomme keine Zugriffsverletzung.

Zitat von toms:
wie wär's mit einem Befehl color?

z.B: Color red
läuft

Neu Version kommt gleich...

[edit]Neu Version on...
@uwewo: Schau mal, ob du die Zugriffsverletzung immer noch kriegst
@toms: Befehl Color ist drin, siehe erstes Posting
[/edit]
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms

 
Delphi XE Professional
 
#10
  Alt 4. Jan 2007, 15:14
Neuer Vorschlag: Scripte laden und speichern
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:44 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