PP2 & Metric machine configuration

More
7 years 3 months ago #140974 by davidimurray
My journey of getting my Pathpilot parallel port lathe up and running is moving on. Hit an intriguing stumbling point today.

My original lathe config under Linuxcnc is in metric. I've transferred all my HAL settings over and the machine is moving in all axis. The strange issue I've come across is that the DRO's are all out by a factor of 25.4. A dig around and I found this thread - forum.linuxcnc.org/pathpilot/31531-metri...stem-bug-in-pathpilo - that described exactly my issue.

So I edited the tormach_lathe_ui.py file as describe and no change. It seems I can set whatever value I want as the scaling and nothing changes. I've been digging through the python file but cannot see where the actual scaling factor is used. Interestingly, it is picking up the unit setting from the ini file, I've proved this by putting a G20 in the startup code and pathpilot is automatically detecting the metric configuration and changing the mode to G21 as PP starts.

Any help would be much appreciated.

Cheers

Dave

Please Log in to join the conversation.

More
7 years 2 months ago #141054 by smgvbest
You have to remember PP is written for Tormach Machines which exclusively use inch ballscrews so in many places in the ui code this assumption is made. you'll have to fix them all

this is what i see on a cursory look at just the mill ui. really should check all python files, a grep could help there
is see reference in
ui_common.py as well

in the mill ui
these are places to check for where tormach may be correcting for the assumption the machine is in inches
some of these are snippets, i put ... at the end of each block if it is
Code:
def get_linear_scale(self): """Return the scale factor for all linear axes based on current G20/G21 mode""" return 25.4 if self.g21 else 1.0
Code:
def on_touch_z_button_release_event(self, widget, data=None): btn.ImageButton.unshift_button(widget) valid, dro_val, error_msg = self.conversational.validate_z_touch_val(self.dro_list['touch_z_dro']) if not valid: self.error_handler.write(error_msg, ALARM_LEVEL_LOW) return ind = 2 # the G10 command wants values in mm if G21, but actual_postion and g5x_offsets are in machine units (in.) # so we take the sup value and turn it into machine units, then send the offset command in g20/21 units supplemental_offset = dro_val / self.get_axis_scale(ind) tool_number = self.status.tool_in_spindle ...
Code:
def get_current_gcode_states(self, param): outstr = '\n<span color="#003aff">' g20 = 'inches' active_gcodes = self.active_gcodes() for gc in active_gcodes: if gc in 'G54G55G56G57G58G59': outstr += '<b>'+gc+'</b>'+' - current work offset\n'; continue if gc == 'G20' : outstr += '<b>'+gc+'</b>'+' - machine in <b>inch</b> units\n'; continue if gc == 'G21' : outstr += '<b>'+gc+'</b>'+' - machine in <b>metric</b> units\n'; g20 = 'mm'; continue if gc == 'G90' : outstr += '<b>'+gc+'</b>'+' - distance mode <b>absolute</b>\n'; continue ...
Code:
def update_gui_unit_state(self): is_metric = self.status.gcodes[linuxcnc.G_CODE_UNITS] == 210 if self.g21 == is_metric: return self.g21 = is_metric # swap button art on jog step sizes self.clear_jog_LEDs() self.set_jog_LEDs() # store off in redis for startup in same mode next time. self.redis.hset('machine_prefs', 'g21', self.g21) if self.g21: self.dro_long_format = "%3.3f" ...
Code:
class Tormach_Mill_Gremlin(gremlinbase.Tormach_Gremlin_Base): def __init__(self, ui, width, height): gremlinbase.Tormach_Gremlin_Base.__init__(self, ui, width, height) self.ui_view = 'p' self.g21 = self.status.gcodes[linuxcnc.G_CODE_UNITS] == 210 if self.g21: self.grid_size = (10.0/25.4) else: self.grid_size = 0.5 self.connect("button_press_event", self.on_gremlin_double_click)
Code:
def set_grid_size_small(self, widget): size = (5/25.4) if self.ui.g21 else .1 self.set_grid_size(size) self.ui.gremlin_options.update_grid_size('small') def set_grid_size_med(self, widget): size = (10/25.4) if self.ui.g21 else .5 self.set_grid_size(size) self.ui.gremlin_options.update_grid_size('med') def set_grid_size_large(self, widget): size = (25/25.4) if self.ui.g21 else 1.0 self.set_grid_size(size) self.ui.gremlin_options.update_grid_size('large')

you'll probably want to review all of these if you want to change the units in the ini file instead of the method used by tormach which assumes the machine is in inches

Please Log in to join the conversation.

More
7 years 2 months ago #141321 by davidimurray
Thanks for those suggestions. I haven't been able to get in the workshop for yet to have a look again.

Think I might take the lazy route and change may configuration from mm to inches ;)

Please Log in to join the conversation.

More
7 years 2 months ago #141655 by dinkata
everything in inches
Code:
[AXIS_0] TYPE = LINEAR MAX_VELOCITY = 1.0 MAX_ACCELERATION = 15.0 MAX_JOG_VELOCITY_UPS = 1.0 MIN_JOG_VELOCITY_UPS = 0.008333 # 20% higher STEPGEN_MAX_VEL = 1.2 # 2.5x STEPGEN_MAXACCEL = 37.5 SCALE = 16933.333 # time in nanoseconds DIRSETUP = 10000 DIRHOLD = 10000 STEPLEN = 8000 STEPSPACE = 5000 FERROR = 0.050 MIN_FERROR = 0.010 MIN_LIMIT = -10.000 MAX_LIMIT = 0.000001 HOME_OFFSET = 0.025 HOME_SEARCH_VEL = 0.750 HOME_LATCH_VEL = -0.050 HOME_IGNORE_LIMITS = YES HOME_SEQUENCE = 0
change only G20 => G21 here
Code:
[RS274NGC] PARAMETER_FILE = ~/lathe_data/emc.var RS274NGC_STARTUP_CODE = G7 G18 G20 G90 G64

Please Log in to join the conversation.

More
7 years 1 month ago #144790 by rafferty
I used the same approach, everything in inches and G21 in the RS274NGC_STARTUP_CODE line.

No problems with PP1 but since updating to PP2 I've not done much but it appeared OK.

Please Log in to join the conversation.

More
7 years 1 month ago #144822 by pl7i92
Just a Guess it is only the mashine Config
if you change the VIEW to mm and all Gcode files got G21
it will work as on all mashines bevor
there is also a startup code but on PP i woudent trust that
use G21 for every File

if you get a postprocessor of your choice get G21 to all Toolchanges even at block mode
so you are at the safe siode on RUN
it may look different on the manuell base
but it shoudt work as G21 is in nominal

Please Log in to join the conversation.

Time to create page: 0.094 seconds
Powered by Kunena Forum