Uli schrieb:
> Aber der Arm links hinter der Achse steht und ein G-Befehl den nach
> rechts hinten schickt. Also zB. von Y-100 X-100 nach Y-100 X100 was
> eigentlich nur das Verfahren der X Achse bedeuten würde, ich aber jetzt
> nach vorne, nach rechts und wieder nach hinten den Arm bewegen muss.
> Dabei wird dann auch noch die 2. Achse entsprechend gedreht.
Was heisst "2. Achse gedreht"?
So wie ich da verstanden habe, ist es eine Drehachse und eine Laufachse
am Arm bzw. Ausleger. Also im Prinzip das, was als Baukran an jeder
Hausbaustelle steht. Falls dem nicht so ist, bitte Erklärung.
Du scheinst nicht den Unterschied zwischen kartesisch und polar
verstanden zu haben. Im Polarsystem müssen immer beide Achsen fahren,
wenn eine gerade Linie gefahren werden soll. Im kartesischen nicht.
Sollen nur Positionen (Punkte) angefahren werden oder Linien gezogen
werden?
Punkte anzufahren ist über Radius+Azimut kein Problem.
Du brauchst dann nur eine Software, die die Punkte ins polare umrechnet.
Dann die Achsen von GRBL entsprechend verwenden, also X wird z.B. Radius
und Y wird Winkel. Je nach Antrieb muss eben nur aus dem Winkel z.B.
270° eine entsprechende Schrittzahl für den Motor umgerechnet werden.
Am GCODE und auch am GRBL an sich muss nichts geändert werden.
Du überträgst nur andere Zahlenwerte im normalen GCODE.
Wenn Dein Arm z.B. 10.000 Schritte für eine Umdrehung braucht, dann hast
Du 0,036 Grad / Schritt. Damit lässt sich doch leicht beim gewünschten
Winkel der zu fahrende Schrittwert berechnen.
Die Berechnung also NICHT im GRBL Kontroller machen, sondern in einem
Postprozessor, welcher das dann ganz normal an GRBL sendet.
Eine Umrechnung direkt in GRBL müsste ganz am Anfang des Interpreters
geschehen. Aber das stelle ich mir aufwändiger vor, als ein kleines
Übersetzungsprogramm.
Sollen Konturen gefahren werden, also die Achsen interpolieren, dann
kann man GRBL eh vergessen.
Denn der dort implementierte Bresenham-Algoritmus geht nicht in diesem
Koorinatensystem. Das müsste komplett umgeschrieben werden.
Da es sowohl bei X/Y als auch Radius/Winkel einen Nullpunkt und einen
Maximalwert gibt, kann das System nicht aus Versehen über Null oder
durch sich hindurch fahren.
Es gibt polar kein Plus/Minus. Es gibt nur 0-360 Grad und einen Radius.
In Deinem Fall würde man also z.B. von (r, 225°) nach (r, 315°) fahren,
wobei der Arm natürlich eine Kreisbewegung macht und keine Gerade
zeichnet.
Auch müssen bei der Nutzung der gesamten 360 Grad die Quadranten bei der
Umrechnung berücksichtigt werden. Ist aber alles 1000fach beschrieben
und keine KI.
Natürlich wäre eine genauere Erklärung der Anwendung hilfreich.
Gruß
Joachim