SimCNC Werkzeuglängenmessung

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

SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 06.03.2021, 20:57

Hallo,
ich verwende eine CSMIO IP-M Steuerung mit SimCNC Software. Leider ist in der Software noch nichts zur Werkzeuglängenmesung vorbereitet.
Es gibt lediglich ein Macro namens "probing". Das ist ein Python Script mit dem ich als absoluter nicht Programmierer nichts anfangen kann. Wer von euch kann mir da helfen weil er auch simCNC benutzt oder von Python Ahnung hat.

In dem Script hab ich die Settings vorgenommen und doch wird immer wieder die Meldung gebracht ich soll zuerst die Settings machen.
So sieht das aus...:

Code: Alles auswählen

#############################################
# CS-Lab s.c.
#
# simCNC sample automatic tool lenght probing macro
#############################################
import sys
import time

#############################################
# BEGIN WARNING BLOCK
# comment this block when you set/check settings below
#############################################
msg.wrn("Setup probing macro configuration first.\n\nMenu 'Macro->Show Script Editor' and choose 'probing'", "Warning!")
sys.exit("Error! Probing macro not configured!")
#############################################
# END WARNING BLOCK
#############################################


#############################################
###### BEGIN SETTINGS
#############################################
# probe index
probeIndex = 0
# probing start position [X, Y, Z]
probeStartAbsPos = [330, 38, 0]
# Axis Z probing end position (absolute)
zEndPosition = -105
# the absolute position of the Z axis of the probe contact for the reference tool
refToolProbePos = -100
# approach velocity (units/min)
vel = 15000
# probing velocity (units/min)
fastProbeVel = 500
slowProbeVel = 250
# lift up dist before fine probing
goUpDist = 5
# delay (seconds) before fine probing
fineProbingDelay = 0.2
# other options
moveX = True
moveY = True
checkFineProbingDiff = False
fineProbeMaxAllowedDiff = 0.1
#############################################
###### END SETTINGS
#############################################



#############################################
# Macro START
#############################################
d.setSpindleState(SpindleState.OFF)
toolNr = d.getSpindleToolNumber()
if(toolNr == 0):
  sys.exit("Tool(0) has no tool lenght offset. Probing failed!")

# get current absolute position
pos = d.getPosition(CoordMode.Machine)
# lift up Z to absolute 0
pos[Axis.Z.value] = 0;
d.moveToPosition(CoordMode.Machine, pos, vel)
# go to XY start probe position
if(moveX == True):
  pos[Axis.X.value] = probeStartAbsPos[Axis.X.value]
if(moveY == True):
  pos[Axis.Y.value] = probeStartAbsPos[Axis.Y.value]
d.moveToPosition(CoordMode.Machine, pos, vel)
# go to Z start probe position
pos[Axis.Z.value] = probeStartAbsPos[Axis.Z.value]
d.moveToPosition(CoordMode.Machine, pos, vel)

# start fast probing
pos[Axis.Z.value] = zEndPosition;
probeResult = d.executeProbing(CoordMode.Machine, pos, probeIndex, fastProbeVel)
if(probeResult == False):
  sys.exit("fast probing failed!")
# get fast probe contact position
fastProbeFinishPos = d.getProbingPosition(CoordMode.Machine)

# lift-up Z
d.moveAxisIncremental(Axis.Z, goUpDist, vel)
# delay
time.sleep(fineProbingDelay)
# start fine probing
probeResult = d.executeProbing(CoordMode.Machine, pos, probeIndex, slowProbeVel)
if(probeResult == False):
  sys.exit("slow probing failed!")
# get fine probe contact position
probeFinishPos = d.getProbingPosition(CoordMode.Machine)

# check diff between fast and fine probing
probeDiff = abs(fastProbeFinishPos[Axis.Z.value] - probeFinishPos[Axis.Z.value])
if(probeDiff > fineProbeMaxAllowedDiff and checkFineProbingDiff == True):
  errMsg = "ERROR: fine probing difference limit exceeded! (diff: {:.3f})".format(probeDiff)
  sys.exit( errMsg)

# calculate and set tool length
toolOffset = probeFinishPos[Axis.Z.value] - refToolProbePos
d.setToolLength(toolNr, toolOffset)

# lift Z to abs 0
pos[Axis.Z.value] = 0
d.moveToPosition(CoordMode.Machine, pos, vel)

# finish
print("Tool({:d}) offset set to: {:.4f}".format(toolNr, toolOffset))
Was mich wundert, man kann nirgends eingeben wo eine Parkposition ist wo man das Werkzeug wechselt wenn man ein Programm fräst. Das scheint man alles selbst noch hinzufügen zu müssen. Oder muß ich das dann in den Programm gCode schreiben?
Nervt mich grad übelst das ich in der Sache nicht weiter komme.
Könnte man die Werkzeuglängenmessung auch als gCode schreiben? Für die Messung hab ich mir in der simCNC schon einen Button gemacht der dann das Macro aufruft.

PS: Noch zur Info ich habe eine Spindel wo ich manuell das Werkzeug wechseln muß.
Gruß Daniel

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

Olli-CNC
Beiträge: 674
Registriert: 01.01.2018, 12:13

Re: SimCNC Werkzeuglängenmessung

Beitrag von Olli-CNC » 07.03.2021, 00:20

Hallo Daniel,
ich kann dir leider nicht direkt mit deinem Problem weiterhelfen, aber
hast du mal die Jungs von CS-Lab angeschrieben, mir haben die damals immer gut weitergeholfen als es mit Mach4
und der CSMIO-IP/S hing


Gruß
Olli

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

Re: SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 07.03.2021, 19:09

Hallo Olli, ja der Support ist allererste Sahne, die Jungs haben mir bisher immer geholfen. Bei einfachen Problemchen ist das auch okay aber mit englisch und polnisch hab ich es nicht so und dann bei so komplizierteren Dingen wäre mir muttersprachliche Hilfe am liebsten.
Na mal schauen wie ich das gelöst bekomme.
Gruß Daniel

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

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

Re: SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 08.03.2021, 18:12

Problem gelöst, juhu es funktioniert. Ich freu mich wie ein Schnitzel! Da ich absolut keinen Plan vom Programmieren habe, habe ich natürlich erst nach dem hundertsten Mal durchlesen und versuchen zu verstehen begriffen das ich die zwei Zeilen im "Warning block" kommentieren muß :roll: was auch immer das zu bedeuten hat...
Naja direkt heute meinen Arbeitskollege gefragt der Programmierer ist und der sagte ich muß nur eine Raute vor die Zeile setzen...so einfach.
Funktioniert nun wunderbar.
Gruß Daniel

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

Tobi1980
Beiträge: 6
Registriert: 01.01.2021, 09:27

Re: SimCNC Werkzeuglängenmessung

Beitrag von Tobi1980 » 07.08.2021, 15:45

Hallo Daniel,

schön mal wen gefunden zu haben der auch IP-M und simCNC nutzt !
ich habe eine selber-selbst gebaute fräse....habe mich auch für die IP-M Steuerung entschieden und Probiere mich mit sim CNC aus.

im Moment klemmt es bei mir an ähnlicher stell.
Ich habe das Macro probing.py geöffnet und meine werte eingestellt und gespeichert.
...hierzu bin ich nur nicht ganz sicher wofür die werte stehen.

also :
Zeile 25 probeStartAbsPos ist klar, hier habe ich [0, 0,-45] die Position wo mein WLS steht. die -45 ist ja der Eilgang Richtung Sensor.

Zeile 27 zEndPosition etwas unklar. hier habe ich jetzt -80 eingegeben, das wäre bei mir die höhe bevor die Spindel inkl. Fräser
gegen den tisch fährt.

Zeile 29 refToolProbePos = 0 hier weiß ich nicht weiter, habe ich bei Null belassen. Was meinen die mit: (the absolute position of the Z axis of the probe contact for the reference tool)


jedenfalls, das mit der Warnmeldung hab ich schon hinbekommen, wo du die raute gesetzt hast habe ich einfach die Zeilen gelöscht.

wenn ich nun die taste "3D Antasten" Klicke startet der messvorgang wie zu erwarten. Z fährt Richtung WLS macht die schnelle und langsame messung und fährt wieder hoch auf null.

Nun was kommen hier für zahlen zustande? Ich kann mir die nicht erklären. was misst der hier.

Ja und die andere Sache, wie kann ich hier in der Funktion mit dem Werkzeuglängensensor den Nullpunkt festlegen.
Also sprich, Ich habe ein Werkstück auf dem Tisch stell den WLS drauf, Fräser in der Spindel und nun Z0 finden.


vielleicht kannst du mir weiter helfen, würde mich über eine Antwort freuen.
Gruß Tobi
Zuletzt geändert von Tobi1980 am 07.08.2021, 16:05, insgesamt 1-mal geändert.
MFG Tobi

DiY Fräse : JMC-iHSS86 / CSMIO IP-M / simCNC-CS-Lab / 3KW DELTA MS300/ ThinkCentre M Serie

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

Re: SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 08.08.2021, 01:34

Hallo Tobi,
hab dir schon in deinem Beitrag was geschrieben.
Also das Macro probing.py ist nur für die Werkzeuglängenmessung. Das ist blöderweise bei dem "3D Messen" Knopf hinterlegt.
Da mußt du dir mal noch so einen erstellen der dann einfach "WKZ Messen" heißt und dort hinterlegst du dieses macro.
zEndPosition müßte bei dir so stimmen.
refToolProbePos ist dort wo der Werkzeuglängensensor auslöst.

Fürs Werkstück antasten gibts ein extra macro. Da hatten die jungs von CS-Lab mir mal eins geschickt, das funktionierte aber nicht weil sie inzwischen den Softwarestand geändert hatten. Vor etlichen Wochen haben sie mir ein angepasstes geschickt aber das bringt immer simcnc zum Absturz. Muß aber dazu sagen das ich Linux auf dem Fräsenrechner habe. Diesen Fehler habe ich Ihnen auch geschrieben aber bisher noch nichts wieder davon gehört, leider. Hoffe da kommt demnächst was.

PS: Ich kann dir das macro ja mal schicken, vielleicht funktioniert es bei dir.
Gruß Daniel

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

Tobi1980
Beiträge: 6
Registriert: 01.01.2021, 09:27

Re: SimCNC Werkzeuglängenmessung

Beitrag von Tobi1980 » 08.08.2021, 11:35

Moin,

Danke erstmal für deine Info.

Gern kannst du das Skript mal schicken ... hierzu habe ich noch garnix im Netz gefunden.

Die andere Sache, wie meinst du das mit dem erstellen von dem "WKZ" Knopf ? Davon habe ich auch noch nicht gelesen.
MFG Tobi

DiY Fräse : JMC-iHSS86 / CSMIO IP-M / simCNC-CS-Lab / 3KW DELTA MS300/ ThinkCentre M Serie

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

Re: SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 08.08.2021, 13:38

Dann schick mir bitte per PN mal deine email.

Die simCNC hat einen integrierten GUI Editor, damit kannst du dir die Bildschirmoberfläche anpassen/verändern und Funktionen hinzufügen.
Welchen Screen nutzt du?
Die deutsche Oberfläche welche bei der Installation mit dabei ist habe ich erstellt und übersetzt. Das haben die CS Lab Jungs dann gleich mit integriert.
Ich habe die bei mir jetzt auch noch um diese WKZ Messen Schaltflächen erweitert. Kann ich dir auch mitschicken.

Gruß Daniel
Gruß Daniel

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

Tobi1980
Beiträge: 6
Registriert: 01.01.2021, 09:27

Re: SimCNC Werkzeuglängenmessung

Beitrag von Tobi1980 » 08.08.2021, 16:06

..so, den Editor habe ich gleich mal ausprobiert und mir eine neue Schaltfläche hinzugeführt . Alles garnet so schwierig, bis jetzt bin ich von den Möglichkeiten mit simCNC ganz begeistert.
warum die Schaltfläche jetzt so groß geworden ist weiß i noch nicht .egal
Die Skript Geschichte bleibt noch offen und zu lösen. Ich bin gespannt was du mir schickst.
Ich bleib dran zu finden wie man das besagte erstellt und erfolgreich zum Einsatz bringt.... so kompliziert kann das doch nicht sein.
ScreensimCNC.jpg
MFG Tobi

DiY Fräse : JMC-iHSS86 / CSMIO IP-M / simCNC-CS-Lab / 3KW DELTA MS300/ ThinkCentre M Serie

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

Re: SimCNC Werkzeuglängenmessung

Beitrag von carbonkid » 08.08.2021, 17:15

Email ist raus.
Ja der Editor funktioniert ganz gut, das mit der breite der Schaltflächen ist mir auch nicht gelungen, da mußte ich tricksen.
Gruß Daniel

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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste