smuQ simCNC Screen

Steuerungssoftware, CAM, 2D/3D CAD, G-Code Editoren
Benutzeravatar
carbonkid
Beiträge: 237
Registriert: 28.09.2016, 16:08

smuQ simCNC Screen

Beitrag von carbonkid » 27.03.2023, 08:00

Hallo Sebastian und Alle die deinen Screen nutzen.
Ich habe jetzt Ewigkeiten nichts mit meiner Fräse gefräst und hatte glaub ich, auch das Werkstück antasten noch nie benutzt. Gestern hab ich mich damit mal beschäftigt aber es hat nicht funktioniert. In den Einstellungen I/O Signale sehe ich das mein 3D Taster schaltet. Der 3D Taster ist Probe 1 auf Eingang 5. Muß ich das nicht irgendwo in den macros fürs Vermessen angeben?
Dann noch eine Verständnisfrage zu den Bezeichnungen Tast Distanz, XY Abstand und Offset zu Ecke.
Tast Distanz = Suchstrecke bis Werkstückkante
XY Abstand ?
Offset zu Ecke ?
Was mir noch aufgefallen ist, wenn ich an den Punkt fahre von wo aus ich Antasten wollte ist Z erstmal in die Tiefe gefahren…
Gar nicht angenehm. Wo kann ich den Wert auf Null stellen?
Gruß Daniel

DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear

Benutzeravatar
carbonkid
Beiträge: 237
Registriert: 28.09.2016, 16:08

Re: smuQ simCNC Screen

Beitrag von carbonkid » 27.03.2023, 17:38

Hab vorhin nochmal bissl herum probiert und nun geht es. Für Alle die vielleicht auch Probleme haben. In einigen macros zum 3D Antasten muß in der Zeile probeIndex die Nummer eingetragen werden an welcher Position ihr in den Einstellungen unter I/O Signale euren 3D taster konfiguriert habt. Es können ja bis zu vier Sensoren angschlossen werden.
In den macros ist Standard 0 und ich habe meinen an 1 und 0 ist bei mir der Werkzeuglängensensor.
Offset zu Ecke hab ich nun auch heraus gefunden...gar nicht so einfach wenn man nicht weiß was beim drücken der Buttons passiert, wollte ja auch meinen 3d Taster nicht schrotten.
Wenn ich grob an die Ecke eures Rohteils fahrt und dann messt wird um diesen Wert (Offset zu Ecke) in X und Y Richtung gefahren.
Gut zu wissen ist auch noch das von eurem händisch angefahrenen Messstartpunkt in Z minus 5 gefahren wird. Das könnt ichr in den macros aber auch abändern.
Gruß Daniel

DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear

Anton
Beiträge: 188
Registriert: 13.08.2020, 12:34

Re: smuQ simCNC Screen

Beitrag von Anton » 05.04.2023, 14:55

Hallo Daniel,

eine Hilfe zu den Parametern wäre bestimmt gut.
Ich könnte z.B. die Labels (Tast-Distanz, X Y Abstand, ..) zu Buttons ändern, welche beim Anklicken ein TKinter-Fenster mit Beschreibung des Parameters zeigen.
Die 5mm in Z brauche ich auch nicht. Ein Auswahlfeld für den ProbeIndex wäre sinnvoll.

VG
Dateianhänge
Antasten.JPG
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi

basti2122
Beiträge: 50
Registriert: 31.08.2021, 06:24

Re: smuQ simCNC Screen

Beitrag von basti2122 » 03.05.2023, 10:27

Hallo zusammen,

leider komme ich in der letzten Zeit nicht wirklich zum Fräsen bzw. an die Maschine. Wenn Interesse besteht, könnte ich noch den Wert für die Probe in der GUI und das Anfahren implementieren. Eventuell falls jemand noch was brauchen wurde, könnte ich es noch dazu tun.

Grüße
Sebastian

Benutzeravatar
carbonkid
Beiträge: 237
Registriert: 28.09.2016, 16:08

Re: smuQ simCNC Screen

Beitrag von carbonkid » 18.05.2023, 12:24

Hi Sebastian,
so langsam komme ich wieder rein und weiß welche Werte/Parameter was machen.
Momentan ist mein screen den ich mir erstellt habe auch völlig ausreichend für mich. Nach und nach werde ich von Anton noch die Zyklen einbauen.
Aber wenn du schon so anbietest noch was hinzuzufügen dann hätte ich noch was kleines ;-)
Spindelwarmlauf - vielleicht hättest du ja Lust und Zeit da was zu machen. Hab mal eine Skizze eingefügt...
Man bräuchte ein feld wo man die Zeit einträgt wie lange der Warmlauf gehen soll und diese Zeit sollte am besten rückwärts runter laufen.
Einen Button wo man das ganze startet und drei Felder zur Drehzahleingabe. Die Drehzahlen sollten dann einfach je nach eingegebener Zeit zu gleichen Teilen laufen.
So könnte das dann auch jeder in seinen bestehenden screen einbauen.
Weiß nicht ob das zu kompliziert ist...
Dateianhänge
Skizze_Spindelwarmlauf.jpg
Gruß Daniel

DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear

Anton
Beiträge: 188
Registriert: 13.08.2020, 12:34

Re: smuQ simCNC Screen

Beitrag von Anton » 19.05.2023, 13:04

Moin Daniel,
das geht recht einfach:

Code: Alles auswählen


import time

#from ___INIT import *

#Maschine muss eingeschaltet sein 0/1-Button
if d.getState() != State.Idle:
    print("Sie müssen in den Idle Mode wechseln")
    exit(0)

zeit = d.getMachineParam(180)
verbleibendeZeit= d.getMachineParam(181)
drehzahl1= d.getMachineParam(182)
drehzahl2 = d.getMachineParam(183)
drehzahl3 = d.getMachineParam(184)

#Lässt sich die Warmlaufzeit durch 3 teilen (Ganzzahl)
zeit = zeit//3*3
d.setMachineParam(180, zeit)

#verbleibende Zeit setzen
d.setMachineParam(181, zeit)


while verbleibendeZeit >= 1:
    d.setMachineParam(181,verbleibendeZeit)
    if verbleibendeZeit > zeit * 0.66:
        print("------Drehzahl 1")
        d.setSpindleSpeed(drehzahl1)
        d.setSpindleState(SpindleState.CW_ON)
        gui.SpindelWarmlauf_cbx_S1.setCheckboxState( True )
        gui.SpindelWarmlauf_cbx_S2.setCheckboxState( False )
        gui.SpindelWarmlauf_cbx_S3.setCheckboxState( False )
    else:
        if verbleibendeZeit > zeit * 0.33:
            print("------Drehzahl 2")
            d.setSpindleSpeed(drehzahl2)
            gui.SpindelWarmlauf_cbx_S1.setCheckboxState(False)
            gui.SpindelWarmlauf_cbx_S2.setCheckboxState(True)
            gui.SpindelWarmlauf_cbx_S3.setCheckboxState(False)
        else:
            print("------Drehzahl 3")
            d.setSpindleSpeed(drehzahl3)
            gui.SpindelWarmlauf_cbx_S1.setCheckboxState(False)
            gui.SpindelWarmlauf_cbx_S2.setCheckboxState(False)
            gui.SpindelWarmlauf_cbx_S3.setCheckboxState(True)
    time.sleep(60);
    verbleibendeZeit = verbleibendeZeit - 1

d.setSpindleState(SpindleState.OFF)
gui.SpindelWarmlauf_cbx_S3.setCheckboxState(False)
d.setMachineParam(181, zeit)



Die GUI für den Spindelwarmlauf habe ich in den letzten Tab des default_de - Sceens kopiert und ihn default_deW genannt.
Das Skript schaltet keine Wasserkühlung ein. Das muss berücksichtigt werden, falls Du eine hast.
Hier noch ein Filmchen vom Test an der Maschine, eine Minute wurde für das Filmchen auf 5 Sekunden geschrumpft:

https://photos.app.goo.gl/qYVuSUGq7cWvqN2J6


VG
Dateianhänge
default_deW.7z
(73.48 KiB) 156-mal heruntergeladen
Spindelwarmlauf.JPG
Spindelwarmlauf.JPG (23.37 KiB) 8431 mal betrachtet
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi

Benutzeravatar
carbonkid
Beiträge: 237
Registriert: 28.09.2016, 16:08

Re: smuQ simCNC Screen

Beitrag von carbonkid » 19.05.2023, 17:47

Ihr seit der Wahnsinn! Ich wünschte ich könnte das. Werde ich ausprobieren.
Schon mal Danke!
Gruß Daniel

DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear

Anton
Beiträge: 188
Registriert: 13.08.2020, 12:34

Re: smuQ simCNC Screen

Beitrag von Anton » 21.05.2023, 23:31

Moin,
ich habe noch kleine Änderungen am Spindelwarmlauf vorgenommen.
Für meine Spindel (max. 12000 U/min) habe ich 16 Minuten Warmlaufzeit bei 4 verschiedenen Drehzahlen gewählt. Es ist also ein Drehzahlfeld hinzugekommen. Bei mir wird auch die Wasserkühlung der Spindel über das Skript geschaltet, die liegt bei mir auf der Kühlschmierung (Wasserhahn-Button). Da ich an dieser Maschine niemals mit einer Wasserkühlung arbeiten werde, konnte ich das so machen. Für Euch habe ich alles was mit der Wasserkühlung zu tun hat auskommentiert,
Alle Zeilen vor denen ein # steht, werden beim Programmablauf nicht berücksichtigt.

Code: Alles auswählen

import time

# from ___INIT import *

# Maschine muss eingeschaltet sein 0/1-Button
if d.getState() != State.Idle:
    print("Sie müssen in den Idle Mode wechseln")
    exit(0)

zeit = d.getMachineParam(180)
verbleibendeZeit = zeit
drehzahl1 = d.getMachineParam(182)
drehzahl2 = d.getMachineParam(183)
drehzahl3 = d.getMachineParam(184)
drehzahl4 = d.getMachineParam(185)

# Lässt sich die Warmlaufzeit durch 4 teilen (Ganzzahl)
# sonst nächst kleinere, durch 4 teilbare, Zahl verwenden
zeit = zeit//4*4
d.setMachineParam(180, zeit)

# verbleibende Zeit setzen
d.setMachineParam(181, zeit)

#Wasserkühlung 10 Sekunden vor Spindel starten
#d.setFloodState(FloodState.ON)
#print("------ WaKü ein ------")
#time.sleep(10)

print("------ Starte Warmlauf ------")
while verbleibendeZeit >= 1:
    if verbleibendeZeit > zeit * 0.75:
        print("------ Drehzahl 1 ------")
        # Drehzahl setzen
        d.setSpindleSpeed(drehzahl1)
        # Spindel einschalten
        d.setSpindleState(SpindleState.CW_ON)
        # Checkboxen setzen zum Markieren der aktuellen Drehzahl
        gui.SpindelWarmlauf_cbx_S1.setCheckboxState(True)
        gui.SpindelWarmlauf_cbx_S2.setCheckboxState(False)
        gui.SpindelWarmlauf_cbx_S3.setCheckboxState(False)
        gui.SpindelWarmlauf_cbx_S4.setCheckboxState(False)
    else:
        if verbleibendeZeit > zeit * 0.5:
            print("------ Drehzahl 2 ------")
            d.setSpindleSpeed(drehzahl2)
            gui.SpindelWarmlauf_cbx_S1.setCheckboxState(False)
            gui.SpindelWarmlauf_cbx_S2.setCheckboxState(True)
            gui.SpindelWarmlauf_cbx_S3.setCheckboxState(False)
            gui.SpindelWarmlauf_cbx_S4.setCheckboxState(False)
        else:
            if verbleibendeZeit > zeit * 0.25:
                print("------ Drehzahl 3 ------")
                d.setSpindleSpeed(drehzahl3)
                gui.SpindelWarmlauf_cbx_S1.setCheckboxState(False)
                gui.SpindelWarmlauf_cbx_S2.setCheckboxState(False)
                gui.SpindelWarmlauf_cbx_S3.setCheckboxState(True)
                gui.SpindelWarmlauf_cbx_S4.setCheckboxState(False)
            else:
                print("------ Drehzahl 4 ------")
                d.setSpindleSpeed(drehzahl4)
                gui.SpindelWarmlauf_cbx_S1.setCheckboxState(False)
                gui.SpindelWarmlauf_cbx_S2.setCheckboxState(False)
                gui.SpindelWarmlauf_cbx_S3.setCheckboxState(False)
                gui.SpindelWarmlauf_cbx_S4.setCheckboxState(True)
    time.sleep(60)
    #Eine Minute (60 Sekunden) von der verbleibenden Zeit abziehen
    verbleibendeZeit = verbleibendeZeit - 1
    d.setMachineParam(181, verbleibendeZeit)

# Spindel ausschalten
d.setSpindleState(SpindleState.OFF)
print("------ Spindel aus ------")
gui.SpindelWarmlauf_cbx_S4.setCheckboxState(False)
# verbleibendeZeit auf zeit zurückstellen
d.setMachineParam(181, zeit)

#Wasserkühlung eine Minuten nach Spindel ausschalten
#time.sleep(60)
#d.setFloodState(FloodState.OFF)
#print("------ WaKü aus ------")

print("------ Ende Warmlauf ------")

Dateianhänge
default_deWV2.zip
(110.49 KiB) 159-mal heruntergeladen
Spindelwarmlauf.JPG
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi

Benutzeravatar
carbonkid
Beiträge: 237
Registriert: 28.09.2016, 16:08

Re: smuQ simCNC Screen

Beitrag von carbonkid » 22.05.2023, 07:17

Super! Also ich habe keine Wasserkühlung der Spindel ;-) Die hätte ich vermutlich so gemacht das wenn die Spindel geschalten wird automatisch auch der Wasserkühlung mit angeht.
Eine weitere Drehzahl hinzufügen sollte ja nicht das Problem sein, man muß nur drauf achten das dann auch die Zeit durch die Anzahl der Drehzahlen geteilt wird.
Hab ich das richtig verstanden das die Checkboxen nur zur Anzeige da sind in welcher "Stufe" der Warmlöauf gerade ist?
Gruß Daniel

DiY Fräse : CSMIO-IP-M / JMC-iHSS57 / simCNC-CS-Lab / intel NUC6i3
3D Drucker: Anycubic Delta Linear

Anton
Beiträge: 188
Registriert: 13.08.2020, 12:34

Re: smuQ simCNC Screen

Beitrag von Anton » 22.05.2023, 07:55

carbonkid hat geschrieben:
22.05.2023, 07:17
Super! Also ich habe keine Wasserkühlung der Spindel ;-) Die hätte ich vermutlich so gemacht das wenn die Spindel geschalten wird automatisch auch der Wasserkühlung mit angeht.
Ja, die Wasserkühlung der Spindel hat bei mir etwas Vor- und Nachlauf - wie Du vielleicht im Skript erkennen kannst.
carbonkid hat geschrieben:
22.05.2023, 07:17
Eine weitere Drehzahl hinzufügen sollte ja nicht das Problem sein, man muß nur drauf achten das dann auch die Zeit durch die Anzahl der Drehzahlen geteilt wird.
Ja, so habe ich das gemacht, weil ich nicht mit Sekunden arbeiten wollte.
Für die GUI mit 4 Drehzahlen gilt:
  • Wenn Du z.B. 14 Minuten als Warmlaufzeit angibst, dann wird 14//4 geteilt (Ganzzahldivision, ergibt 3 Rest 2). Das Ganzzahldivisionsergebnis wird dann mit 4 multipliziert und daraus ergibt sich die Zeit 12 Minuten. Wenn Du als Zeit 16 eingibst, dann bleibt die Zeit bei 16, weil sich 16 durch 4 teilen lässt.
  • Bei 4 Drehzahlen bekommt jede Drehzahl 25% der Gesamtzeit. Das erkennst Du an den if´s im Skript und den Werten 0,75, 0,5, 0,25.
    carbonkid hat geschrieben:
    22.05.2023, 07:17
    Hab ich das richtig verstanden das die Checkboxen nur zur Anzeige da sind in welcher "Stufe" der Warmlöauf gerade ist?
[/quote]

Genau, die CheckBoxen zeigen nur in der GUI an, welche Drehzahl gerade aktiv ist. Eigentlich wollte ich die Hintergrundfarbe der Line-Edits (Eingabefelder für Drehzahl) hierzu nutzen. Habe aber bis jetzt noch nicht herausgefunden, wie ich aus dem Python-Skript auf das CSS der LineEdits zugreifen kann. Hierzu habe ich eine Anfrage https://en.cs-lab.eu/forum/forum/csmio- ... -software/ bei cs-lab im Forum eingestellt.
DIY Fräse Mineralguss-ALU / simCNC-CS-Lab / CSMIO-IP-M / JMC-Servos / GDK80-12Z-2.2 - Spindel
https://www.youtube.com/@boessi

Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 1 Gast