- Posts: 79
- Thank you received: 17
A few issues with the qtdragon (Linuxcnc 2.9)
4 years 1 month ago #252909
by Eyecon
Replied by Eyecon on topic A few issues with the qtdragon (Linuxcnc 2.9)
no worries Chris, we all appreciate your work on qtdragon!
I was referring to the calibration page of the basic probe screen. I can't seem to figure out how I'm supposed to calibrate my probe offsets
I was referring to the calibration page of the basic probe screen. I can't seem to figure out how I'm supposed to calibrate my probe offsets
Please Log in or Create an account to join the conversation.
4 years 1 month ago #252911
by cmorley
Replied by cmorley on topic A few issues with the qtdragon (Linuxcnc 2.9)
I think I got the late error message fixed - pushed to master.
The following user(s) said Thank You: Eyecon
Please Log in or Create an account to join the conversation.
4 years 1 month ago #252956
by Eyecon
Replied by Eyecon on topic A few issues with the qtdragon (Linuxcnc 2.9)
Thanks Chris, I ran a few tests with the new code on my sim machine and the fixes work perfectly!
If you are able to provide more clarity on the edge angle probing mechanism/logic that would be great. The issue I've observed are as follows:
1) setting edge angle seems to offset the WCS origin to the last point probed regardless of the measurement mode when "set rotation angle" is selected. For example when selecting the corner y plus edge angle routing, the XY origin is always shifted to the point where the probe made last contact.
2)when "set rotation angle" and "auto zero" are selected, the WCS offsets seem to reset to zero.
Also if you are able to provide some clarity on how the calibration page of the basic probe is supposed to be used that would be great!
Thanks for everything!!
If you are able to provide more clarity on the edge angle probing mechanism/logic that would be great. The issue I've observed are as follows:
1) setting edge angle seems to offset the WCS origin to the last point probed regardless of the measurement mode when "set rotation angle" is selected. For example when selecting the corner y plus edge angle routing, the XY origin is always shifted to the point where the probe made last contact.
2)when "set rotation angle" and "auto zero" are selected, the WCS offsets seem to reset to zero.
Also if you are able to provide some clarity on how the calibration page of the basic probe is supposed to be used that would be great!
Thanks for everything!!
Please Log in or Create an account to join the conversation.
4 years 1 month ago #252978
by cmorley
Replied by cmorley on topic A few issues with the qtdragon (Linuxcnc 2.9)
I didn't make the basic probe routines Jim. Qtdragons creator did that work.
I adapted Versa probe over but Jim has since worked on both.
So what I am saying is - I don't know much about them.
But looking at the code (basic probe and probe routines):
rotate_coord_system() function requires a setting 'allow_auto_skew' which doesn't seem to be settable in basic probe (versa probe has a button for it)
calibrate round boss:
It takes the probe calibration diameter entry number
probes it twice and sets 'Delta' on the screen
My guess is probing a (for instance) bearing diameter and using it as a standard to test the probing accurac.
Delta can be x offset, y offset or average of x and y - depending on the buttons selected.
calibration offset entry is used to compensate? the calculation of delta.
code is here:
I adapted Versa probe over but Jim has since worked on both.
So what I am saying is - I don't know much about them.
But looking at the code (basic probe and probe routines):
rotate_coord_system() function requires a setting 'allow_auto_skew' which doesn't seem to be settable in basic probe (versa probe has a button for it)
calibrate round boss:
Code:
def probe_cal_round_pocket(self):
self.data_side_edge_length = self.data_cal_diameter / 2
error = self.probe_xy_hole()
if error != 1: return error
# repeat but this time start from calculated center
error = self.probe_xy_hole()
if error != 1: return error
self.status_delta = self.get_new_offset('r')
return error
probes it twice and sets 'Delta' on the screen
My guess is probing a (for instance) bearing diameter and using it as a standard to test the probing accurac.
Delta can be x offset, y offset or average of x and y - depending on the buttons selected.
calibration offset entry is used to compensate? the calculation of delta.
code is here:
Code:
def get_new_offset(self, shape):
if shape == 'r':
base_x = base_y = self.data_cal_diameter
elif shape == 's':
base_x = self.data_cal_x_width
base_y = self.data_cal_y_width
else: return 0
xcal_error = abs(base_x - self.status_lx)
if base_x > self.status_lx:
newx_offset = self.data_calibration_offset - xcal_error
else:
newx_offset = self.data_calibration_offset + xcal_error
ycal_error = abs(base_y - self.status_ly)
if base_y > self.status_ly:
newy_offset = self.data_calibration_offset - ycal_error
else:
newy_offset = self.data_calibration_offset + ycal_error
new_cal_avg = (newx_offset + newy_offset) / 2
if self.cal_x_error is True: return newx_offset
elif self.cal_y_error is True: return newy_offset
else: return new_cal_avg
Please Log in or Create an account to join the conversation.
4 years 1 month ago #252979
by Eyecon
Replied by Eyecon on topic A few issues with the qtdragon (Linuxcnc 2.9)
thanks Chris, you explanation helps me understand what I was looking at a bit better so very much appreciated! As far as you can see the "offset value" on the calibration page doesn't do anything except produce an offset delta, it doesn't actually offset the values produced by the routines on the other pages, is my understanding correct?
Please Log in or Create an account to join the conversation.
4 years 1 month ago #252980
by cmorley
Replied by cmorley on topic A few issues with the qtdragon (Linuxcnc 2.9)
I stand corrected, in probe basic 'set rotation angle' is the same as versa probes allow_auto_skew
so auto rotation should work in both.
auto zero option should zero the current user coordinates in X and Y as well as rotate around Z:
G10 L2 P0 (optional) X (optional Y) R
so auto rotation should work in both.
Code:
def rotate_coord_system(self, a=0.):
self.status_a = a
if self.allow_auto_skew is True:
s = "G10 L2 P0"
if self.allow_auto_zero is True:
s += " X{}".format(self.data_adj_x)
s += " Y{}".format(self.data_adj_y)
else:
STATUS.stat.poll()
x = STATUS.stat.position[0]
y = STATUS.stat.position[1]
s += " X{}".format(x)
s += " Y{}".format(y)
s += " R{}".format(a)
self.CALL_MDI_WAIT(s, 30)
ACTION.RELOAD_DISPLAY()
auto zero option should zero the current user coordinates in X and Y as well as rotate around Z:
G10 L2 P0 (optional) X (optional Y) R
Please Log in or Create an account to join the conversation.
Moderators: cmorley
Time to create page: 0.053 seconds