A few issues with the qtdragon (Linuxcnc 2.9)

More
4 years 1 month ago #252909 by Eyecon
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

Please Log in or Create an account to join the conversation.

More
4 years 1 month ago #252911 by cmorley
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.

More
4 years 1 month ago #252956 by Eyecon
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!!

Please Log in or Create an account to join the conversation.

More
4 years 1 month ago #252978 by cmorley
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:
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
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:
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.

More
4 years 1 month ago #252979 by Eyecon
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.

More
4 years 1 month ago #252980 by cmorley
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.
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.067 seconds
Powered by Kunena Forum