A few issues with the qtdragon (Linuxcnc 2.9)

More
24 Sep 2022 16:06 #252666 by Eyecon
Hello,
I've been away for a few weeks and I just cloned and compiled the latest version of linuxcnc 2.9. Here are a couple of issue that I noticed:
1) Tool window add/delete tool button no longer do anything
2) While I noticed that the probe routine error checking is now implemented, for some probe routines(e.g. ridges and valleys) the error is triggered(according to the debug messages) but it doesn't trigger a UI notification error until you try to run the routine again. For example: starting a ridge probing routing when the first part of the routine and having it fail(e.g. the probe completed reached the max distance without being triggered) just kills the rest of the routine which is great but doesn't produce any UI notifications. When you try and run it again, the error is triggered in the UI at that point. The same is not true for other routines, just reporting what I managed to try so far.

 

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

More
25 Sep 2022 02:31 #252693 by cmorley
Thanks for the report - pushed a fix for the buttons just now.

When the error shows late, does it abort the new routine or is it just the message post late?

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

More
25 Sep 2022 10:16 - 25 Sep 2022 14:04 #252700 by Eyecon
Thanks Chris!
Yes, so when it silently fails the first time and you try the same routine button, the message pops up at this time and the routine doesn’t run. So if first press=silent fail->2nd press=error message only, routine does not run->3rd press=restart the routine.
Last edit: 25 Sep 2022 14:04 by Eyecon.

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

More
26 Sep 2022 17:52 #252793 by Eyecon
Another issue with basic probing in addition to the error handling behavior:
In edge angle mode: 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 2)when "set rotation angle" and "auto zero" are selected, the WCS offsets seem to reset to zero.

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

More
26 Sep 2022 18:47 #252796 by Eyecon
Also @cmorley, is there a place that I can lookup how the calibration function is supposed to work? I did my best to understand the routines from the prob_routines.py file but I can't figure out :)

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

More
28 Sep 2022 03:23 #252907 by cmorley
Sorry been very busy at work.
I'll try to find time to actually test the routines on a machine to see what you mean.
Which calibration routines?

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

More
28 Sep 2022 04:30 #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
28 Sep 2022 04:50 #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
28 Sep 2022 17:26 #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
29 Sep 2022 02:11 #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:
    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:
    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.

Moderators: cmorley
Time to create page: 0.112 seconds
Powered by Kunena Forum