versuche gerade eine kleine Oberfläche für CNC-Programme zu erstellen.
Also CNC-Programm einlesen, analysieren und dann die Bahnen grafisch anzeigen lassen.
Klappt bisher alles recht gut nur das Zeichnen von Bögen finde ich nirgends.
Das gesamte Programm lese ich erst mal in eine Liste cncquelle() und untersuche nun jede Zeile.
Ist alles kein Problem nur habe ich keinen Befehl zum Zeichnen eines Bogens mit Mittelpunkt, Anfangspunkt, Entpunkt gefunden oder etwas ähnliches. Gibt es soetwas fertig oder muss man sich so einen Befehl selbst programmieren?
Hier mal das Teilprogramm welches die Elemente in ein Image_grafik zeichnet.
Werde es später vermutlich noch umstellen auf canvas aber ist ja unabhängig vom Zeichnen von Linien etc.
Code: Alles auswählen
If CreateImage(0, 450, 500) And StartDrawing(ImageOutput(0))
Box(0, 0, 450, 500, RGB(255, 255, 255))
xalt = 0.0
yalt = 0.0
zalt = 0.0
faktor = 1.0
ForEach cncquelle()
If cncquelle()\befehlnr = 1
LineXY(Round(xalt*faktor,#PB_Round_Nearest),Round(yalt*faktor,#PB_Round_Nearest),Round(cncquelle()\xpos*faktor,#PB_Round_Nearest),Round(cncquelle()\ypos*faktor,#PB_Round_Nearest),RGB(1, 1,255))
EndIf
If cncquelle()\befehlnr = 0
LineXY(Round(xalt*faktor,#PB_Round_Nearest),Round(yalt*faktor,#PB_Round_Nearest),Round(cncquelle()\xpos*faktor,#PB_Round_Nearest),Round(cncquelle()\ypos*faktor,#PB_Round_Nearest),RGB(1, 200,2))
EndIf
If cncquelle()\zpos < 0.0
; Circle(Round(cncquelle()\xpos*faktor,#PB_Round_Nearest),Round(cncquelle()\ypos*faktor,#PB_Round_Nearest),3,RGB(200, 2,2))
EndIf
xalt = cncquelle()\xpos
yalt = cncquelle()\ypos
Next
StopDrawing()
SetGadgetState(Image_grafik,ImageID(0))
EndIf