Ich möchte mit einer kleinen CNC-Maschine (CNC-1610) Platinen bohren. Für meine Anwendungen schreibe ich ein kleines Programm, welches eine einfache Bedienung ermöglichen soll. So möchte ich, daß das Programm die Lage der Platine auf dem Bohrtisch erfasst und eine "Schieflage" (also einen Winkelfehler) automatisch korrigiert. Das Programm habe ich soweit fertig und ich teste mit auf Pappe geklebten Layout-Ausdrucken. Aber, unabhängig davon, ob ich das Layout ausgerichtet oder gezielt schief auf den Bohrtisch lege, es gehen immer Bohrungen daneben. Die Ergebnisse sehen absolut gleich aus, nur leider fehlerhaft... Was mache ich falsch, wo ist mein Denkfehler? Hier meine Arbeitsweise: Test-Layout gedruckt, Excellon-Bohrdatei erzeugt (Sprint-Layout), Nullpunkt unten links bei Sicht auf die Lötseite. Platine auf den CNC-Tisch fixieren. Das Programm fordert auf, den Nullpunkt anzusteuern (Jogging). Wenn NullPunkt manuell einjustiert, bestätigen. Das Programm setzt jetzt seine internen Koordinaten auf X=0,Y=0. Das Programm fährt danach automatisch einen Referenzpunkt an. Dazu sucht es die Bohrung, die am weitesten vom Nullpunkt entfernt ist (diagonal zum Nullpunkt). Aufgrund des Einrichtungsfehlers (Schieflage) ist eine Korrektur der Bohrposition erforderlich, wieder manuelles Jogging. Nach dieser Korrektur kennt das Programm auch die wirklichen Koordinaten des Referenzpunktes. Aus der Abweichung dieser Koordinaten zu denen der aus der Bohrdatei soll für alle Bohrungen die tatsächliche Position errechnet werden. Winkelfehler berechnen: Der Referenzpunkt liegt auf einer Kreisbahn um den Nullpunkt. Radius zum Referenzpunkt Rref (Koordinaten Bohrdatei) Radius zum Referenzpunkt Rcnc (wahre Position, CNC-Maschine) Wenn kein Maßstabsfehler vorliegt sollte Rcnc=Rref sein. Rref=sqrt(Xref*Xref+Yref*Yref) Rcnc=sqrt(Xcnc*Xcnc+Ycnc*Ycnc) ALPHAref=arcsin(Yref/Rref) ALPHAcnc=arcsin(Ycnc/Rcnc) ALPHAerr=ALPHAcnc-ALPHAref (der Winkelfehler durch Schieflage) Maßstabsfehler berechnen: (könnte entfallen, da vernachlässigbar...) Der Maßstabsfehler ist unabhängig vom Winkelfehler. Der Referenzpunkt Xcnc,Ycnc liegt idealerweise auf der gleichen Kreisbahn wie Xref,Yref (wenn Rcnc=Rref). D.h., unter dem gegebenen Winkelfehler und ohne Maßstabsfehler müsste dieser Punkt auf x=cos(ALPHAcnc)*Rref y=sin(ALPHAcnc)*Rref liegen. Die Abweichung zu den tatsächlichen Koordinaten, gemessen mit der CNC-Maschine (Xcnc, Ycnc), ergeben die Verzerrungen für Xscale=Xcnc/x Yscale=Ycnc/y Damit sollten die Korrekturwerte für alle Bohrungen bekannt sein (Xdat,Ydat aus der Bohrdatei): Xbohr = (Xdat*cos(ALPHAerr) - Ydat*sin(ALPHAerr)) * Xscale Ybohr = (Xdat*sin(ALPHAerr) + Ydat*cos(ALPHAerr)) * Yscale Ein Hinweis zum Foto (gebohrte Pappe): Der REF-Punkt oben rechts ist präzise getroffen, der weiße Punkt links im Pad ist ein Papierfussel. Ebenso ist der Null-Pad genau gebohrt. Es sieht so aus, als würde ein Winkelfehler rechts-drehend die Bohrungen verschieben. Danke für's mitdenken! Boor
Dir ist aber schon klar das ein Laserdrucker das Papier ganz schön stresst und möglicherweise auch verzerrt?
Ich schätze die maschine ist schlichtweg nicht rechtwinklig. darauf beruht aber die positionierung und das kalibrierst du nicht raus. versuch mal mit 3 punkten zu referenzieren. Dann ist nicht nur position und drehwinkel, sondern auch paralellogrammförmiger versatz rausrechenbar.
pegel schrieb: > Dir ist aber schon klar das ein Laserdrucker das Papier ganz schön > stresst und möglicherweise auch verzerrt? Nein, das ist ihm nicht klar und mir auch nicht. Ich habe hier einen "Brother HL2030", der stresst und verzerrt NIEMANDEN -weder mich noch das Papier.
Ich habe das jetzt nicht im Einzelnen nachvollzogen, möchte aber eine Beobachtung, eine Vermutung und einen Ratschlag zum Besten geben. Die Bohrungen scheinen entlang der Linie zwischen Nullpunkt unten links und Referenzpunkt oben rechts recht genau das im Layout ausgelassene Loch zu treffen. D.h. die Winkelkorrektur ist für Punkte auf oder nahe dieser Linie recht gut. Das aber legt die Vermutung nahe, dass bei dem Berechnungsschema etwas schiefgelaufen ist. Die nächst genauere Vermutung wäre, dass in dem Schema irgendwo ein unzulässiger Übergang zwischen absoluten (Maschinenkoordinaten) und Layoutkoordinaten vorkommt bzw. der Offset dazwischen unberücksichtigt blieb. (Wenn ich es nicht übersehen habe, dann fehlt die Berücksichtigung des Offsets eigentlich). Denn eine einfache Drehung kann den Fehler nicht korrigieren. Falls man das Layout um irgendeinen Punkt dreht, mögen die Löcher in einiger Entfernung von der oben erwähnten Linie zwar richtig getroffen werden, aber die Punkte in der Nähe der Linie nicht mehr. Was wiederum darauf hindeutet, dass der Mittelpunkt der Drehung irgendwann gewechselt wurde. Ich rate Dir das Verfahren einmal graphisch zu skizzieren, damit man das nachvollziehen kann. Das könntest Du, falls Du dabei nicht selbst auf den Unterschied kommst, auch hier posten.
Rundungsfehler evtl.? Versuch mal, insbesondere bei den trigonometrischen Funktionen, mit doppelter Genauigkeit zu rechnen.
PegelMesser schrieb: > "Brother HL2030", der stresst und verzerrt NIEMANDEN Na dann ist es ja gut. Um das zu prüfen kannst du das Layout auch mehrmals auf eine Seite drucken, ausschneiden und übereinander legen. Bei meinem alten Laserdrucker war ich teilweise echt erstaunt.
@ pegel richtig, bei meinem altem Laserdrucker muß ich den Faktor 1.01 für die X-Richtung einstellen. Diese Vorlage ist jedoch mit einem HP-Tintendrucker erstellt worden, und da habe ich keine Verzerrungen ausmessen können. Ich glaube eher an ein programmiertechnisches Matheproblem bei mir... @ nachtmix Das war auch bereits mein Gedanke. Die Koordinaten speichere ich als integer mit 1um Auflösung. Einen Integer-Überlauf gibt es nicht. Die Trigonometrie mache ich mit real, hatte aber auch schon extended probiert (Lazarus). Immer das selbe Ergebnis... @ frickelfreak Danke für diese Info! Darüber habe ich noch garnicht nachgedacht. Möglich ist es schon, war ja ein Bausatz. Aber müsste die Achse nicht klemmen, wenn sie schief läuft? Es passt aber zur bleibenden Winkelabweichung, wie auf dem Foto sichtbar. @ Theor Der Offset wird berücksichtigt. Bei der Nullung werden die Programm-Koordinaten auf 0 gesetzt und die CNC mit GCode G92. Das klappt auch. Gruß Boor
Wenn Du Trapez-Verzerrungen mit berücksichtigen willst, geht das extrem einfach mit Lagrange-Polynomen erster Ordnung. Als Parameter entstehen dann einfach die vier Eckpunkte des Trapezes. Berücksichtigt werden dann: Skalierung, Drehung, Trapezverzerrung in beide Richtungen. Dafür mußt Du vier Punkte, deren Lage bekannt ist, abtasten. Tastest Du mehr als vier Punkte ab, kannst Du das z.B. mit der gaußschen Fehlerquadratmethode berücksichtigen, um die Genauigkeit zu steigern. Die Programmierung ist recht geradeheraus, wenn man mit float arbeiten kann. Ich hatte das damals mal als Matlab-Skript gemacht. Gescheitert ist es bei mir dann daran, dass angetasteten Punkte von Hand von der CNC-Steuerung ins Matlab-Programm übernommen werden mußten, während die Leiterplattenhersteller plötzlich immer billiger wurden, daß die Lust am Weiterentwickeln vergangen ist. Bei begrenzter Genauigkeit wäre dann eine Affine Abbildung im 4D Mittel der Wahl (bei Wikipedia unter "Householder Transformation" zu finden). Die Implemtierung ist auch einfach, aber der theoretische Unterbau gewöhnungsbedürftig.
:
Bearbeitet durch User
Du kannst neben den Null- und Refpunkt Koordinaten die größten Ausreißer mal in der Originalen und Berechneten Form in ein CAD eintragen und drehen. Z.B.: LibreCAD Dann sieht man, ob es Hard oder Soft Probleme gibt.
Sri-Denkfehler: Bei 2D bleibt von der Householder-Transformation nur eine affine Abbildung im 3D-Raum übrig. Macht sie aber nicht weniger gewöhnungsbedürftig. :-)
Boor schrieb: [...] > @ Theor > Der Offset wird berücksichtigt. Bei der Nullung werden > die Programm-Koordinaten auf 0 gesetzt und die CNC mit > GCode G92. Das klappt auch. > > Gruß > Boor Und was ist mit dem Offset des Nullpunktes auf der Platine? Der wird ja nicht in Platinenkoordinaten genau bei Null, Null liegen, oder? In irgendeiner Weise müsste die Differenz in Platinenkoordinaten zwischen der Lage des Nullpunktes und den jeweiligen anderen Bohrungen in der Berechnung vorkommen, meine ich. Es bleibt insgesamt die Frage ob das Verfahren korrekt ist. Um diese Frage beantworten zu können, wäre eine genaue Beschreibung mit Skizze nützlich. Es fehlen Informationen und die verbale Darstellung muss (zumindest, damit ich selbst sie leichter nachvollziehen kann) erst in eine visuelle Vorstellung umgewandelt werden.
Vielen Dank für die große Unterstützung! Da ich bei meiner Programmierung keinen Fehler entdeckt habe, halte ich die Mechanik als Ursache für möglich. Nun habe ich bei dem Layout (s. oben) zuerst für eine rechtwinklige Ausrichtung gesorgt, indem ich vom Nullpunkt aus die auf gleicher Höhe liegende rechte Bohrung anfahre und beide Punkte auf eine X-Linie bringe. Dann vom Nullpunkt in Y-Richtung nach oben zur Eck-Bohrung, der Bohrer steht mittig! So ein deutlicher Versatz wie auf dem Foto ist nicht vorhanden. Ich glaube, die Tendenz des Fehlers ist deutlich sichtbar. Im oberen linken Viertel sind große Verschiebungen nach rechts, im unteren rechten Viertel sind es große Verschiebungen nach links. Bei der Leiste rechts kann man das Wegwandern erkennen. @ Theor Doch, die Bohrung unten links ist der Platinen-Nullpunkt. D.h., die Koordinaten aller Bohrungen in der Excellon-Datei beziehen sich darauf. Der Nullpunkt ist frei wählbar im Layoutprogramm und ich habe ihn auf diese Bohrung gesetzt um die CNC besser justieren zu können - hätte aber auch eine andere Referenzmarke wählen können. Gruß Boor
Schon mal getestet, wie genau deine (Arcus-)Winkelfunktionen sind? Der von dir genutzte arcsin sollte bei Ref unten rechts die höchste und oben links die schlechteste Genauigkeit haben.
Du versuchst, mit Hilfe von zwei Eingabewerten (Xcnc und Ycnc) drei Abbildungsparameter (ALPHAerr, Xscale und Yscale) zu bestimmen, d.h. das Ergebnis ist unbestimmt. Wenn deine Rechnung dennoch ein eindeutiges Ergebnis liefert, kann das nur bedeuten, dass sie fehlerhaft ist. Du braucht also einen weiteren Referenzpunkt, um die gesuchten Parameter zu bestimmen. Da du dann vier Eingabewerte hast, kannst du auch gleich noch den Scherungsparameter (Parallelogrammverszerrung) bestimmen. Alle vier Parameter zusammen beschreiben eine affine Abbildung, die sich auch ohne trigonemtrische Funktionen als Multiplikation mit einer 2×2-Matrix darstellen lässt:
(xd,yd) ist dabei ein Punkt im Koordinatensystem deiner Bohrdatei, (xb,yb) der enstrpechende Punkt im Koordinatensystem deiner CNC- Bohrmaschine und t11, t12, t21 und t22 die Parameter der affinen Abbildung. Du legst also wie gehabt den Nullpunkt fest und vermisst zusätzlich zwei Referenzpunkte (x1d,y1d) und (x2d,y2d). Die gemessenen Bohrkoordinaten seien (x1b,y1b) und (x2b,y2b). Mit den folgenden Gleichungen berechnest du die Abbildungsparameter:
1 | det = y1d·x2d - x1d·y2d |
2 | t11 = (y1d·x2b - x1b·y2d) / det |
3 | t12 = (x1b·x2d - x1d·x2b) / det |
4 | t21 = (y1d·y2b - y1b·y2d) / det |
5 | t22 = (y1b·x2d - x1d·y2b) / det |
Nun kannst du alle weiteren Punkte (xd,yd) folgendermaßen in das Bohrkoordinatensystem transformieren:
1 | xb = t11·xd + t12·yd |
2 | yb = t21·xd + t22·yd |
Das ist alles. Und man braucht nicht einmal Trigonometrie dafür :) Edit: Ich sehe gerade, dass bei deiner Rechnung immer Xscale=Yscale ist und damit aus den drei Parametern zwei werden, so dass das Ergebnis eindeutig bestimmt ist. Ansonsten scheint deine Rechnung zu stimmen. Vielleicht hat dein Laserdrucker ja tatsächlich ein leicht von 1 abweichendes x/y-Verhältnis. Dieses wird durch deine Rechnung durch eine Rotation kompensiert, weswegen die vier äußeren Bohrlöcher in deinem Foto ein Rechteck bilden, das zwar das gewünschte Seitenverhältnis hat, aber leicht verdreht ist.
:
Bearbeitet durch Moderator
schau dir mal opencv an... mit der library kannst du eigentlich recht einfach Features auf einem Bild erkennen (z.B. den Platinenrand) und eine transformationsmatrix zu einer referenz erstellen. Wenn du nur Rechtecke erkennen willst geht das recht einfach wenn du bilder mit gutem kontrast hast- prinzipiell könntest du aber sogar die PADs erkennen lassen. Sprich, du gibst die Bohrdaten rein und bekommst eine transformationsmatrix auf die erkannten pads am Bild vom PCB. Die nicht-Rechtwinkeligkeit der Maschine müsste sich mit etwas Hirnschmalz auch rausrechnen lassen... (also Soll-Ist transformationsmatrix errechnen). Hab sowas (also definierte features erkennen, perspektive rausrechen und entzerren) schon mal gemacht... ist nicht an einem wochenende erledigt, aber durchaus machbar. 73
Yalu X. schrieb: > die sich > auch ohne trigonemtrische Funktionen als Multiplikation mit einer > 2×2-Matrix darstellen lässt: Stimmt nicht ganz. Auf diese Weise kannst Du die Nullpunktverschiebung nicht darstellen. Mit Nullpunktverschiebung sieht es so aus:
Oder eben affin:
mit leicht anderen Parametern.
Danke Yalu für die ausführliche Beschreibung! Ich muß mir das ganze jetzt erst durch den Kopf gehen lassen... Die Korrektur des Maßstabfehlers hatte ich mir wohl zu einfach vorgestellt. Wenn der Radius Rcnc vom Nullpunkt zum CNC-Referenzpunkt 10mm länger ist als der anhand der Bohrkoordinaten erwartete Radius Rref und der Winkel 45° beträgt, hatte ich für X und Y jeweils einen Fehler von 7,07mm erwartet. Da das ganze doch etwas komplizierter wird und der Skalierungsfehler keine große Rolle spielt, kann ich auch darauf verzichten. Bei zu großen Fehlern würde eine VG96-Leiste auch nicht mehr passen, also die Vorlage muß schon stimmen. Aber selbst wenn ich die Skalierungsfaktoren fest auf 1 setze habe ich immer noch dieses herauswandern der Bohrungen. @ Hans Ja, das wäre das Optimale! Aber für diese kleine CNC wohl etwas zu aufwändig? Ich werde mir das mal anschauen! Hätte mir bisher nur eine Kamera als "Sehhilfe" zum Positionieren vorgestellt. Danke für die Information! Boor
PegelMesser schrieb: > Nein, das ist ihm nicht klar und mir auch nicht. Schon das Bild der Belichtungsvorlage zeigt massive Verzerrungen. Soll er halt mal ein Millimeterpapier drüberlegen und vergleichen. Oder einmal landscape und ein mal portrait ausdrucken und übereinanderlegen
Walter T. schrieb: > Yalu X. schrieb: >> die sich >> auch ohne trigonemtrische Funktionen als Multiplikation mit einer >> 2×2-Matrix darstellen lässt: > > Stimmt nicht ganz. Auf diese Weise kannst Du die Nullpunktverschiebung > nicht darstellen. Mit Nullpunktverschiebung sieht es so aus: Ich habe den TE so verstanden, dass der Punkt, der im Bild mit "NULL" bezeichnet ist, in der Datei bereits die Koordinaten (0,0) hat bzw. der Offset bereits vor Beginn der von ihm beschriebenen Berechnung von allen Punkten subtrahiert wird. Auf der Maschine wird der entsprechende Nullpunkt durch das erste manuelle Verfahren gesetzt, so dass auch hier nichts korrigiert werden muss. Man sieht in seinem Bild ja auch keinen Offsetfehler, sondern nur eine Kombination aus Rotation und Skalierung. Solle ich falsch liegen, kann man den Offset aber leicht in der von dir beschriebenen Weise berücksichtigen. Man muss dann nur von allen Punkten erst einmal die Koordinaten des gewählten Nullpunkts subtrahieren. Danach geht es weiter wie in meinem obigen Beitrag.
Hallo MaWin, die Verzerrungen stammen von meiner Kamera! Ich belichte meine Platinen mit Laserdruck auf transparentem Zeichenpapier, bohre (bisher) von Hand und bin glücklich damit... Nein, die Vorlage ist OK und mit der Qualität meiner Platinen bin ich auch sehr zufrieden. Ist aber nur für Hobby-Bastelei. Gruß Boor
@ Yalu Einen Skalierungsfehler sehe ich nicht. Der Null-Punkt und der diagonale Referenzpunkt werden gut getroffen. Es läuft an einer schrägen Linie entlang heraus, Trapezfehler passt hier ganz gut zur Beschreibung. Also doch etwas an der Mechanik, wie frickelfreak schon schrieb. Oder liege ich falsch? Gruß Boor
Boor schrieb: > Einen Skalierungsfehler sehe ich nicht. Für mich sieht das ein wenig so aus wie im angehängten Bild: Die beiden Vierecke sind perfekt rechtwinklig und haben exakt die gleiche Diagonale, sie unterscheiden sich aber etwas in ihrem Längen-/ Breitenverhältnis. Da die beiden Rechtecke einen gemeinsamen linken unteren (Nullpunk) und rechten oberen Eckpunkt (Referenzpunkt) haben müssen, bleibt dem roten Rechteck nichts anderes übrig, als sich ein wenig zu drehen. Wenn du das Layout einmal auf dem Laserdrucker ausdruckst und einmal ohne jegliche Umrechnungen auf der CNC-Maschine in ein Stück Pappe bohrst, solltest du theoretisch beides manuell zur Deckung bringen können. D.h. du kannst die Pappe so auf den Ausdruck legen, dass du durch die Bohrlöcher der Pappe die Bohrmarkierungen auf dem Ausdruck sehen kannst. Wenn dies der Fall ist, dann wissen wir, das eine Anpassung der Bohrkoordinaten allein durch eine Verschiebung und eine Rotation möglich ist. Dann solltest du mit deiner Berechnung ohne den Skalierungsfaktor zum Ziel kommen. Wenn nicht, musst du nachschauen, worin sich die beiden durch die vier äußeren Bohrlöcher gebildeten Rechtecke unterscheiden. Haben sie tatsächlich die gleiche Länge und Breite und sind sie wirklich exakt rechtwinklig?
Tief im Forum gibt es so ein Programm bereits von jemand für Linux geschrieben.
Boor schrieb: > Damit sollten die Korrekturwerte für alle Bohrungen > bekannt sein (Xdat,Ydat aus der Bohrdatei): > > Xbohr = (Xdat*cos(ALPHAerr) - Ydat*sin(ALPHAerr)) * Xscale > Ybohr = (Xdat*sin(ALPHAerr) + Ydat*cos(ALPHAerr)) * Yscale kommt mir komisch vor. hast du da mal eine Skizze dazu gemacht? Ich würde die Daten in Polarkoordinaten umwandeln, drehen und skalieren und wieder zurück wandeln. Ist einfacher zu durchschauen und weniger fehleranfällig eine unterschiedliche Skalierung in x und y Richtung geht allerdings nicht.
Roland L. schrieb: >> Xbohr = (Xdat*cos(ALPHAerr) - Ydat*sin(ALPHAerr)) * Xscale >> Ybohr = (Xdat*sin(ALPHAerr) + Ydat*cos(ALPHAerr)) * Yscale > > kommt mir komisch vor. hast du da mal eine Skizze dazu gemacht? Das ist eine ganz gewöhnliche Multiplikation mit einer Rotationsmatrix. https://de.wikipedia.org/wiki/Drehmatrix#Drehmatrix_der_Ebene_%7F'%22%60UNIQ--postMath-00000003-QINU%60%22'%7F Sehr viel direkter kann man eine Rotation in kartesischen Koordinaten nicht formulieren. Roland L. schrieb: > Ich würde die Daten in Polarkoordinaten umwandeln, drehen und skalieren > und wieder zurück wandeln. > Ist einfacher zu durchschauen und weniger fehleranfällig Für die Umwandlung in Polarkoordinaten und zurück brauchst vier statt zwei Formeln, was doppelt so fehleranfällig ist. Die eigentliche Rotation (also die fünfte Formel) ist dann zugegebenermaßen sehr einfach :)
Roland L. schrieb: >> Xbohr = (Xdat*cos(ALPHAerr) - Ydat*sin(ALPHAerr)) * Xscale >> Ybohr = (Xdat*sin(ALPHAerr) + Ydat*cos(ALPHAerr)) * Yscale Hier wird übrigens erst gedreht, dann in X- und Y-Richtung skaliert. Das erzeugt zwangsweise eine Winkeländerung, wenn Xscale und Yscale unterschiedlich sind. Xdat *= Xscale Ydat *= Yscale Xbohr = (Xdat*cos(ALPHAerr) - Ydat*sin(ALPHAerr)) Ybohr = (Xdat*sin(ALPHAerr) + Ydat*cos(ALPHAerr)) So herum wird erst skaliert, dann gedreht. Die Abbildung bleibt winkeltreu.
Hallo zusammen, das hat mir jetzt keine Ruhe gelassen, dass das so umständlich mit Rotationsmatrizen und Nullpunktverschiebung gemacht wird. Also habe ich -sozusagen als Fingerübung vor dem Einschlafen- mal direkt die Transformationsparameter angenähert, also die Fehlerquadratmethode auf die Transformierte von (x/y) angewendet und nach den Transformationsparametern aufgelöst. In Matlab implementiert sieht das dann wie auf dem Bild aus. Das hat den netten Vorteil, dass man 1. durch mehrere Stützpunkte die Genauigkeit steigern kann und 2. man nicht lange suchen muss, in welcher Reihenfolge man die Operationen durchführt. 3. ist die Implementierung auch geradeheraus. Ganz ohne Nachteile ist es nicht: Wenn die gemessenen Punkte zu dicht beieinander liegen, kommt man um doppelte Genauigkeit nicht mehr herum, ansonsten ist die Jacobimatrix singulär. Aber das sollte ja selbst auf einem kleinen Mikrocontroller kein Problem sein, eine niedliche 3x3-Matrix in doppelter Genauigkeit (zweimal) zu lösen. Viele Grüße W.T.
:
Bearbeitet durch User
Beitrag #5723504 wurde von einem Moderator gelöscht.
Hallo und vielen Dank nochmal für die tolle Mitarbeit! Um zwischen Software- und Hardware-(Mechanik)-Problemen unterscheiden zu können, habe ich, wie vorgeschlagen, die Bohrungen auf Millimeterpapier durchgeführt. Das Papier zuvor an der X-Achse ausgerichtet und mehrfach vom NullPunkt zu X+100mm verfahren. Dabei zeigte sich, daß statt 100mm nur 99mm erreicht wurden. Es gibt aber keine Fehler die sich aufsummieren. Die Y-Achse habe ich vom Nullpunkt nach Y+80mm verfahren, die X-Position blieb dabei erhalten (kein Winkelfehler) und die Abweichung war etwa -1/4mm. Beim anschliessenden Bohren mit den Kordinaten aus der Bohrdatei habe ich jegliche "Korrektur" ausgeschaltet, die GCode-Befehle werden zudem in einem Textfenster mit- geloggt. Wie man auf den Bild erkennen kann, sind die Bohrungen soweit OK. Die Drehung, wie Yalu sie entdeckt und grafisch dargestellt hat, ist nicht vorhanden. Damit ist es klar ein Softwarefehler in meiner Koordinaten- umrechnung. Dennoch sind mir einige kleine Fehler der CNC aufgefallen, dazu habe ich einige Bohrungen im Bild nummeriert. Die Nummerierung ist die Reihenfolge der Bohrungen. 1: X=55.88 Y= 0.00 Die erste Bohrung. 6: X=40.64 Y= 5.08 Passt zur Reihe darüber. 76: X=40.64 Y= 2.54 Weicht von 6 ab, obwohl gleiches X ! 59: X=55.88 Y=43.18 114: X= 0.00 Y=43.18 119: X= 0.00 Y= 0.00 Der Nullpunkt des Koordinatensystems. Die Bohrungen 6 und 76 liegen nicht auf einer Linie, die Reihe ging von 6 aufwärts und der darunterliegende Punkt 76 wurde erst später angefahren. Dieses ist auch an weiteren Stellen erkennbar. Es kann doch nur ein Spiel der Achse sein, obwohl ich es nicht spüren kann. Die Achsen haben eine Spindelmutter mit Anti-Backlash Feder. Ich werde die Mechanik nochmal neu zusammensetzen. Dieses Problem gehört auch in eine andere Rubrik des Forums... Bleibt die Programmierung der Winkelkorrektur, über die ich noch einmal intensiv nachdenken muß. Danke an hardyf für den Link. Das Programm sieht wirklich gut aus! Leider ist der Quellcode nicht dabei. Alles Gute! Boor
@ Boor
Es wäre, meiner Ansicht nach, sinnvoll, dass von Yalu vorgeschlagene
Verfahren,
> ...ohne jegliche Umrechnungen auf der CNC-Maschine in ein Stück Pappe
bohrst ...
nicht mit einem realen Layout durchzuführen, sondern mit einem Raster
von Punkten das sich über die gesamte von der CNC ansteuerbaren Fläche
erstreckt.
Zum einen könnte man, beim Vergleich, auf dem Layout Länge und Richtung
der Abweichung markieren und hätte einen systematischen Überblick.
Zum anderen sind Punkte in Randlage, wegen der numerisch grossen
Koordinaten-Werte resp. ihrer Differenzen, gut für eine nachfolgenden
Einsatz in einer Fehlerkorrektur. (Man könnte den Bereich sogar noch mit
einem Pantographen erweitern).
Das ist nichts Neues, aber ich wollte es mal erwähnen. Ich hoffe es ist
hilfreich.
Danke Theor, ich habe zuerst einmal die Mechanik neu zusammengebaut. Das Spiel der Achsen ist jetzt raus. Testpunkte auf Millimeterpapier im Abstand von X=100mm und Y=80mm wurden exakt angefahren, reproduzierbar. Durch das Spiel wurden auch die Referenzpunkte falsch ermittelt, was sich auf die weiteren Berechnungen ausgewirkt hat. Ich muß jetzt noch testen, wie sich die Softwarekorrektur bei schiefliegenden Vorlagen auswirkt. Dazu werde ich die von Dir vorgeschlagene Methode anwenden. Mit freundlichem Gruß Boor
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.