- Posts: 18
- Thank you received: 0
z_level_compensation
2 years 6 months ago #298898
by KlausB
z_level_compensation was created by KlausB
Hello,
I posted this in the german forum befor. Maybe it is better to post this internationaly.
I like to try the z_level_compensation modul with QtDragon_hd for graving.
My computer has the actual LinuxCNC Image with Debian 12 and LinuxCNC 2.9.2.
A "probe_points.txt" was created with "g-code-ripper".
I adopted the HAL configuration for z_level_compensation from the LinuxCNC Documentation and wrote it into a postgui HAL file.
As far as I understand, xpos-cmd, ypos-cmd, and zpos-cmd contain the coordinates of my coordinate system. In axis.x.pos-cmd and so on, the machine coordinates are located. The original lines from the documentation can only be exemplary, as the input pin can only receive one single value.
So I changed the HAL File, that z_level_compensation.x-pos and so on get the values of my coordinatge system:
net xpos-cmd z_level_compensation.x-pos
net ypos-cmd z_level_compensation.y-pos
net zpos-cmd z_level_compensation.z-pos
That seems to work (from HAL SHOW):
Component Pins:
Owner Type Dir Value Name
75 bit IN FALSE z_level_compensation.clear <== eoffset-clr2
75 s32 OUT 0 z_level_compensation.counts ==> eoffset-zlevel-count
75 bit IN FALSE z_level_compensation.enable-in <== z_compensation_on
75 float IN 0 z_level_compensation.fade-height
75 s32 IN 1 z_level_compensation.method
75 float OUT 0 z_level_compensation.scale
75 float IN -1.76964 z_level_compensation.x-pos <== xpos-cmd
75 float IN -3.283469 z_level_compensation.y-pos <== ypos-cmd
75 float IN 0.7778383 z_level_compensation.z-pos <== zpos-cmd
When pressing the "ENABLE Z COMP" in the gui, the folling message is shown in the console (when I start LinuxCNC with my configuration in the commandline console):
Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
After that, the PINs for z_level_compensation are away from the HAL, so I guess the module is unloaded with the error.
Does anyone got that working and/or can tell me whats wrong in my config?
The zip file in the attachment contails my complete configuration.
Thank You very much
Regards
Klaus
I posted this in the german forum befor. Maybe it is better to post this internationaly.
I like to try the z_level_compensation modul with QtDragon_hd for graving.
My computer has the actual LinuxCNC Image with Debian 12 and LinuxCNC 2.9.2.
A "probe_points.txt" was created with "g-code-ripper".
I adopted the HAL configuration for z_level_compensation from the LinuxCNC Documentation and wrote it into a postgui HAL file.
As far as I understand, xpos-cmd, ypos-cmd, and zpos-cmd contain the coordinates of my coordinate system. In axis.x.pos-cmd and so on, the machine coordinates are located. The original lines from the documentation can only be exemplary, as the input pin can only receive one single value.
So I changed the HAL File, that z_level_compensation.x-pos and so on get the values of my coordinatge system:
net xpos-cmd z_level_compensation.x-pos
net ypos-cmd z_level_compensation.y-pos
net zpos-cmd z_level_compensation.z-pos
That seems to work (from HAL SHOW):
Component Pins:
Owner Type Dir Value Name
75 bit IN FALSE z_level_compensation.clear <== eoffset-clr2
75 s32 OUT 0 z_level_compensation.counts ==> eoffset-zlevel-count
75 bit IN FALSE z_level_compensation.enable-in <== z_compensation_on
75 float IN 0 z_level_compensation.fade-height
75 s32 IN 1 z_level_compensation.method
75 float OUT 0 z_level_compensation.scale
75 float IN -1.76964 z_level_compensation.x-pos <== xpos-cmd
75 float IN -3.283469 z_level_compensation.y-pos <== ypos-cmd
75 float IN 0.7778383 z_level_compensation.z-pos <== zpos-cmd
When pressing the "ENABLE Z COMP" in the gui, the folling message is shown in the console (when I start LinuxCNC with my configuration in the commandline console):
Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
After that, the PINs for z_level_compensation are away from the HAL, so I guess the module is unloaded with the error.
Does anyone got that working and/or can tell me whats wrong in my config?
The zip file in the attachment contails my complete configuration.
Attachment not found
Thank You very much
Regards
Klaus
Please Log in to join the conversation.
2 years 6 months ago #298906
by cmorley
This is no good. Why did you comment out the end?
Replied by cmorley on topic z_level_compensation
Code:
net xpos-cmd z_level_compensation.x-pos # <= axis.x.pos-cmd
net ypos-cmd z_level_compensation.y-pos # <= axis.y.pos-cmd
net zpos-cmd z_level_compensation.z-pos # <= axis.z.pos-cmd
This is no good. Why did you comment out the end?
Please Log in to join the conversation.
2 years 6 months ago #298917
by KlausB
Replied by KlausB on topic z_level_compensation
Thank you for replying,
If I do not comment out the end of the line, I get en error, that xpos-cmd, ypos-cmd and so on already have an Input (in my AXIS.hal).
I do not know, what values z_level_compensation.x-pos, z_level_compensation.y-pos . . . should get. Possibly the value of xpos-cmd, ypos-cmd and so on or axis.x.pos-cmd . . .?
I decided to use the values of my coordinate system, not the machine coordinate system, like the values in the "probe_points.txt".
May be it's wrong?
If I do not comment out the end of the line, I get en error, that xpos-cmd, ypos-cmd and so on already have an Input (in my AXIS.hal).
I do not know, what values z_level_compensation.x-pos, z_level_compensation.y-pos . . . should get. Possibly the value of xpos-cmd, ypos-cmd and so on or axis.x.pos-cmd . . .?
I decided to use the values of my coordinate system, not the machine coordinate system, like the values in the "probe_points.txt".
May be it's wrong?
Please Log in to join the conversation.
2 years 6 months ago #298920
by KlausB
Replied by KlausB on topic z_level_compensation
This is the error I get without the comments:
Z-Compensation.hal:36: Signal 'xpos-cmd' can not add OUT pin 'axis.x.pos-cmd', it already has OUT pin 'joint.0.motor-pos-cmd'
Z-Compensation.hal:36: Signal 'xpos-cmd' can not add OUT pin 'axis.x.pos-cmd', it already has OUT pin 'joint.0.motor-pos-cmd'
Please Log in to join the conversation.
2 years 6 months ago #298945
by cmorley
Replied by cmorley on topic z_level_compensation
It means xpos-cmd was already used for something else.
Change all the xpos-cmd to something else like xpos-cmd-axis
Change all the xpos-cmd to something else like xpos-cmd-axis
Code:
net xpos-cmd-axis z_level_compensation.x-pos <= axis.x.pos-cmd
net ypos-cmd-axis z_level_compensation.y-pos <= axis.y.pos-cmd
net zpos-cmd-axis z_level_compensation.z-pos <= axis.z.pos-cmd
Please Log in to join the conversation.
2 years 6 months ago #298966
by KlausB
Replied by KlausB on topic z_level_compensation
Tank you for your remark.
I tried this before. The different is, that z_level_compensation.x-pos and so on gets the values from axis.x.pos-cmd . . .. These are the maschine coordinates for x, y, z. See the Component Pins in my initial Post.
But it does not change the error I get when ENABLE Z COMP:
Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
The z_level_compensation modul crashes and ist no longer loaded until I start LinuxCNC again.
I am using a simple milling mashine with parallel port and an old Computer. Is it possible, that the computer is to slow? I would expect a nother behave if so.
I tried this before. The different is, that z_level_compensation.x-pos and so on gets the values from axis.x.pos-cmd . . .. These are the maschine coordinates for x, y, z. See the Component Pins in my initial Post.
But it does not change the error I get when ENABLE Z COMP:
Traceback (most recent call last):
File "/usr/bin/z_level_compensation", line 204, in <module>
comp.run()
File "/usr/bin/z_level_compensation", line 179, in run
compensation = self.compensate()
^^^^^^^^^^^^^^^^^
File "/usr/bin/z_level_compensation", line 105, in compensate
compensation = int(zo / self.scale)
^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
The z_level_compensation modul crashes and ist no longer loaded until I start LinuxCNC again.
I am using a simple milling mashine with parallel port and an old Computer. Is it possible, that the computer is to slow? I would expect a nother behave if so.
Please Log in to join the conversation.
2 years 6 months ago #298968
by cmorley
Replied by cmorley on topic z_level_compensation
Can you post the file /usr/bin/z_level_compensation?
Please Log in to join the conversation.
2 years 6 months ago #298976
by KlausB
Replied by KlausB on topic z_level_compensation
This is the z_level_compensation :
Attachment not found
Please Log in to join the conversation.
2 years 6 months ago #298996
by cmorley
Replied by cmorley on topic z_level_compensation
Ok that looks fine. Can you post your probe_points.txt file.
Please Log in to join the conversation.
2 years 6 months ago #298998
by cmorley
Replied by cmorley on topic z_level_compensation
Ok it has to do with the probe_points file (I found yours and tried it here)
I don't have enough experience to give suggestions other then redoing the gcode ripper part.
I don't have enough experience to give suggestions other then redoing the gcode ripper part.
Please Log in to join the conversation.
Time to create page: 0.209 seconds
