Seite 1 von 1

Milling mit Klipper

Verfasst: Di 9. Mär 2021, 21:46
von mhier
Ich mache mal einen neuen Thread speziell für's Milling mit Klipper auf, da der andere Klipper-Thread doch langsam unübersichtlich wird.

Ich habe jetzt endlich einen guten Workflow gefunden. Gerade habe ich ins Repository ein paar nützliche G-Code-Macros in die Konfiguration hinzugefügt. Wenn man sich noch folgende Custom Controls in Octoprint einbaut:
Auszug aus Octoprints config.yaml

Code: Alles auswählen

controls:
-   children:
    -   children:
        -   command: FIRMWARE_RESTART
            name: Restart
        -   command: G28
            name: Home
        -   command: SET_KINEMATIC_POSITION X=0 Y=0 Z=0
            name: Force XYZ=0
        -   command: SET_KINEMATIC_POSITION Z=180
            name: Force Z=180
        layout: horizontal
    -   children:
        -   commands:
            - M109 S160
            - G92 E0
            - G0 E-50 F6000
            - G0 E-80
            - M190 S0
            name: Unload PLA
        -   commands:
            - M109 S210
            - G92 E0
            - G0 E-50 F6000
            - G0 E-80
            - M190 S0
            name: Unload ABS
        -   commands:
            - G92 E0
            - G0 E50 F6000
            - G0 E70 F6000
            - G0 E80 F200
            name: Load
        -   commands:
            - BED_MESH_CALIBRATE
            - SAVE_CONFIG
            name: Bed calibr
        -   command: Z_OFFSET_SCAN
            name: Z scan here
        layout: horizontal
    layout: vertical
    name: Printing
-   children:
    -   children:
        -   command: edge_add_x
            name: Add X point
        -   command: edge_add_y
            name: Add Y point
        -   command: edge_clear
            name: Clear points
        -   command: set_z
            name: Set Z point
        -   command: set_z_clearance
            name: Z clearance
        layout: horizontal
    -   children:
        -   command: probe_z
            name: Probe Z
        -   command: probe_xpyp
            name: Probe X+Y+
        -   command: probe_xpym
            name: Probe X+Y-
        -   command: probe_xmyp
            name: Probe X-Y+
        -   command: probe_xmym
            name: Probe X-Y-
        layout: horizontal
    -   children:
        -   command: compute_workpart_safe
            name: Compute
        -   command: clear_workpart_transform
            name: Clear Transform
        layout: horizontal
    -   children:
        -   command: workpart_xy_start
            name: Surface XY Start
        -   command: workpart_xy_end
            name: Surface XY End
        -   command: workpart_scan DISTANCE=%(dist)s
            input:
            -   default: 5
                name: Distance [mm]
                parameter: dist
            name: Surface Scan
        layout: horizontal
    -   children:
        -   command: FIRMWARE_RESTART
            name: Restart
        -   commands:
            - G28 Z1
            - G28 X1 Y1
            name: Home
        -   command: SET_KINEMATIC_POSITION X=0 Y=0 Z=0
            name: Force XYZ=0
        -   command: SET_KINEMATIC_POSITION Z=180
            name: Force Z=180
        layout: horizontal
    layout: vertical
    name: Milling
kann man recht komfortabel die Einrichtung des Rohteils machen. Ich habe in Octoprint noch das Webcam-Bild aktiviert und die Keyboard-Controls ebenfalls. Dadurch kann ich mit den Cursortasten den Fräser bewegen. Mit den Custom-Controls Buttons kann ich dann schnell die Scan-Punkte festlegen. (Die Webcam selbst funktioniert bei mir nicht aus irgendwelchen Gründen, ist dafür aber egal. Wichtig ist, dass das Webcam-Bild bzw. der Platzhalter dafür sichtbar ist.)

Das sieht dann so aus:
Octoprint-Milling.png
Im Einzelnen ist der Ablauf dann folgender (mit Abtast-Werkzeug eingespannt):
  • Zuerst die Z clearance festlegen. Das ist die sichere Höhe, in der der Fräser beliebig in XY fahren kann, ohne z.B. mit den Spannpratzen zu kollidieren. Wichtig: Diese Höhe ist absolut gemessen in Maschinen-Koordinaten. Wenn also unterschiedlich lange Werkzeuge verwendet werden, sollte genügend Platz für das längste vorgesehen werden.
  • Dann mit "Set Z point" den Start-Punkt im Raum (also auch Z!) festlegen, bei dem der Z-Scan beginnen soll. Auch dieser Punkt ist wieder absolut und sollte für das längste Werkzeug passen.
  • Jetzt beliebig viele Punkte an den beiden zu messenden Kanten anfahren. Das Tastwerkzeug sollte in gewissem Abstand zur Kante stehen, wenn der jeweilige Knopf gedrückt wird, denn das ist wieder der Startpunkt des Scans. Hierbei ist jetzt die Z-Koordinate unwichtig.
  • Dann "Probe Z" drücken, um den Z=0 Punkt einzumessen.
  • Schließlich z.B. "Probe X+Y+" drücken, um die X und Y Achsen einzumessen. Wichtig ist, dass der Knopf mit den richtigen Vorzeichen für die Scanrichtung gewählt wird, entsprechend den vorher festgelegten Punkten. Wenn also die linke vordere Ecke X/Y=0 werden soll, ist Probe X+Y+ richtig. Wird z.B. die rechte vordere Ecke X/Y=0 (und die X-Koordinaten gehen ins Negative), ist Probe X-Y+ der richtige Knopf. Das muss man natürlich schon bei der Wahl der Messpunkte vorher bedacht haben.
  • Wenn der Scan fertig ist, "Compute" drücken. Das Werkzeug fährt dann automatisch auf die sichere Z-Höhe an den neuen X/Y-Ursprung.
  • Jetzt kann das Werkzeug auf z.B. den Schaftfräser gewechselt werden und per "Probe Z" die Länge neu vermessen werden.
Wichtig zu wissen ist, dass die Scan-Punkte alle dauerhaft abgespeichert werden und einen Neustart von Klipper überleben. Das ist praktisch, denn man kann ggf. nach einer Pause einfach "Probe Z" gefolgt von "Probe X+Y+" und "Compute" drücken und hat das Rohteil neu eingemessen. Alternativ kann man nach "Probe X+Y+" auch "SAVE_CONFIG" ausführen, wodurch das Messergebnis in der Konfiguration gespeichert wird. Dann genügt ein "Probe Z" und ein "Compute", allerdings hat man Ungenauigkeiten durch das erneute Homen in X/Y.

Will man neu anfangen (z.B. neues Werkstück), muss man natürlich zuerst mit "Clear Points" alle X/Y-Punkte löschen.

Den Oberflächen-Scan über die Knöpfe habe ich noch nicht getestet...

Re: Milling mit Klipper

Verfasst: Fr 12. Mär 2021, 05:52
von nikibalboa
Ich habe gestern eine doppelseitige Print fertig gefräst, die schon sehr sauber aussieht.
Leide hatte ich beim bohren einen zu hohen Vorschub und daher sind ein paar Leiterbahnen etwas unschön.

Zum Kanen antasten, es dürften meine DMS verspannt gewesen sein aber trotzdem kommt es ab und zu noch vor das zu viel zugestellt wird und dann wird der gesamte Tisch nach unten gedrückt bis wieder die Kante erreicht wird.

Beim „bedmesh“ musste ich die alten Werte „fade_start=1.0“ und „ fade_end=10.0“ eintragen weil dann immer die Meldung „out of range“ (X oder Y) kam nach dem ich ein mesh gespeichert habe.

Die zweite doppelseitige Print wartet schon aufs Fräsen.

@mhier: Wenn compute_workpart ausgeführt wurde kann man dann eigentlich das offset noch verschieben oder wid dadurch das Ergebnis verändert?
Das wäre interessant falls man mit den Kanten zu nahe an den Pratzen ist, so könnte man den X/Y-Nullpunkt weiter ins Werkstück verschieben.

bottom.JPG
top.jpg

Re: Milling mit Klipper

Verfasst: Fr 12. Mär 2021, 11:29
von mhier
nikibalboa hat geschrieben:Beim „bedmesh“ musste ich die alten Werte „fade_start=1.0“ und „ fade_end=10.0“ eintragen weil dann immer die Meldung „out of range“ (X oder Y) kam nach dem ich ein mesh gespeichert habe.
Damit ist dein Mesh de-facto deaktiviert. Es zählt die absolute Z-Koordinate, gemessen vom Endschalter. G92 macht da keinen Unterschied. Du wirst demnach sehr wahrscheinlich nicht unter Z=1.0mm kommen, nur da wäre aber das Mesh voll aktiv.

Wenn du "out of range" nach dem Homing bekommst, wenn das Mesh aktiv ist, musst du entweder zuerst in Z etwas hochfahren, oder dein Z-Max z.B. um 0.5mm größer als die Endstop-Position wählen (vorausgesetzt dein Mesh ist nirgendwo größer als +-0.5mm). Letzteres sollte ich vielleicht mal committen :-)