diff --git a/custom_config.yml b/custom_config.yml new file mode 100644 index 0000000..93ff230 --- /dev/null +++ b/custom_config.yml @@ -0,0 +1,83 @@ +# example of a machine specific settings +windows: + mainwindow: + kwargs: + confirm_exit: false + +data_plugins: + tooltable: + provider: qtpyvcp.plugins.tool_table:ToolTable + kwargs: + columns: TZDR + + offsettable: + provider: qtpyvcp.plugins.offset_table:OffsetTable + kwargs: + columns: "XYZR" + +settings: + + # VTK backplot view settings + + backplot.show-grid: + default_value: false + + backplot.show-program-bounds: + default_value: false + + backplot.show-program-labels: + default_value: false + + backplot.show-program-ticks: + default_value: false + + backplot.show-machine-bounds: + default_value: false + + backplot.show-machine-labels: + default_value: false + + backplot.show-machine-ticks: + default_value: false + + backplot.perspective-view: + default_value: false + + backplot.multitool-colors: + default_value: True + + rack-atc-setup.user-param-1: + description: user param label name + default_value: user param 1 + persistent: true + + rack-atc-setup.user-param-2: + description: user param label name + default_value: user param 2 + persistent: true + + rack-atc-setup.user-param-3: + description: user param label name + default_value: user param 3 + persistent: true + + rack-atc-setup.user-param-4: + description: user param label name + default_value: user param 4 + persistent: true + + rack-atc-setup.user-param-5: + description: user param label name + default_value: user param 5 + persistent: true + + tool-setter-probe.user-param-name-1: + description: tool setter user param 1 + default_value: user param 1 + persistent: true + + tool-setter-probe.user-param-name-2: + description: tool setter user param 2 + default_value: user param 2 + persistent: true + diff --git a/pbsplash.png b/pbsplash.png new file mode 100644 index 0000000..720d6f9 Binary files /dev/null and b/pbsplash.png differ diff --git a/probe_basic.var b/probe_basic.var new file mode 100644 index 0000000..4e52f40 --- /dev/null +++ b/probe_basic.var @@ -0,0 +1,210 @@ +3000 0.000000 +3001 0.000000 +3002 0.000000 +3003 0.000000 +3004 0.000000 +3005 0.000000 +3006 0.000000 +3007 0.000000 +3008 0.000000 +3009 0.000000 +3010 0.000000 +3011 0.000000 +3012 0.000000 +3013 0.000000 +3014 0.000000 +3015 0.000000 +3016 0.000000 +3017 0.000000 +3018 0.000000 +3019 0.000000 +3020 0.000000 +3021 0.000000 +3022 0.000000 +3023 0.000000 +3024 0.000000 +3025 0.000000 +3026 0.000000 +3027 0.000000 +3028 0.000000 +3029 0.000000 +3030 0.000000 +3031 0.000000 +3032 0.000000 +3033 0.000000 +3034 0.000000 +3035 0.000000 +3036 0.000000 +3037 0.000000 +3038 0.000000 +3039 0.000000 +3050 0.000000 +3051 0.000000 +3052 0.000000 +3053 0.000000 +3054 0.000000 +3979 0.000000 +3980 6.000000 +3981 0.000000 +3982 0.000000 +3983 0.000000 +3984 0.000000 +3985 0.000000 +3986 0.000000 +3987 0.000000 +3988 0.000000 +3989 0.000000 +3990 0.000000 +3991 0.000000 +3992 0.000000 +3993 0.000000 +3994 0.000000 +3995 0.000000 +3996 0.000000 +3997 0.000000 +3998 0.000000 +3999 0.000000 +4000 0.000000 +4001 0.000000 +4002 0.000000 +4003 0.000000 +4004 0.000000 +4005 0.000000 +4006 0.000000 +4007 0.000000 +4008 0.000000 +4009 0.000000 +4010 0.000000 +4011 0.000000 +4012 0.000000 +4013 0.000000 +4014 0.000000 +4015 0.000000 +4016 0.000000 +4017 0.000000 +4018 0.000000 +4019 0.000000 +4020 0.000000 +4021 0.000000 +4022 0.000000 +4023 0.000000 +4024 0.000000 +5161 0.000000 +5162 0.000000 +5163 0.000000 +5164 0.000000 +5165 0.000000 +5166 0.000000 +5167 0.000000 +5168 0.000000 +5169 0.000000 +5181 0.000000 +5182 0.000000 +5183 0.000000 +5184 0.000000 +5185 0.000000 +5186 0.000000 +5187 0.000000 +5188 0.000000 +5189 0.000000 +5210 0.000000 +5211 0.000000 +5212 0.000000 +5213 0.000000 +5214 0.000000 +5215 0.000000 +5216 0.000000 +5217 0.000000 +5218 0.000000 +5219 0.000000 +5220 1.000000 +5221 0.000000 +5222 0.000000 +5223 0.000000 +5224 0.000000 +5225 0.000000 +5226 0.000000 +5227 0.000000 +5228 0.000000 +5229 0.000000 +5230 0.000000 +5241 0.000000 +5242 0.000000 +5243 0.000000 +5244 0.000000 +5245 0.000000 +5246 0.000000 +5247 0.000000 +5248 0.000000 +5249 0.000000 +5250 0.000000 +5261 0.000000 +5262 0.000000 +5263 0.000000 +5264 0.000000 +5265 0.000000 +5266 0.000000 +5267 0.000000 +5268 0.000000 +5269 0.000000 +5270 0.000000 +5281 0.000000 +5282 0.000000 +5283 0.000000 +5284 0.000000 +5285 0.000000 +5286 0.000000 +5287 0.000000 +5288 0.000000 +5289 0.000000 +5290 0.000000 +5301 0.000000 +5302 0.000000 +5303 0.000000 +5304 0.000000 +5305 0.000000 +5306 0.000000 +5307 0.000000 +5308 0.000000 +5309 0.000000 +5310 0.000000 +5321 0.000000 +5322 0.000000 +5323 0.000000 +5324 0.000000 +5325 0.000000 +5326 0.000000 +5327 0.000000 +5328 0.000000 +5329 0.000000 +5330 0.000000 +5341 0.000000 +5342 0.000000 +5343 0.000000 +5344 0.000000 +5345 0.000000 +5346 0.000000 +5347 0.000000 +5348 0.000000 +5349 0.000000 +5350 0.000000 +5361 0.000000 +5362 0.000000 +5363 0.000000 +5364 0.000000 +5365 0.000000 +5366 0.000000 +5367 0.000000 +5368 0.000000 +5369 0.000000 +5370 0.000000 +5381 0.000000 +5382 0.000000 +5383 0.000000 +5384 0.000000 +5385 0.000000 +5386 0.000000 +5387 0.000000 +5388 0.000000 +5389 0.000000 +5390 0.000000 diff --git a/probe_basic_postgui.hal b/probe_basic_postgui.hal new file mode 100644 index 0000000..762c968 --- /dev/null +++ b/probe_basic_postgui.hal @@ -0,0 +1,25 @@ +loadrt time +loadrt not + +addf time.0 servo-thread +addf not.0 servo-thread + +net prog-running not.0.in <= halui.program.is-idle +net prog-paused halui.program.is-paused => time.0.pause +net cycle-timer time.0.start <= not.0.out +net cycle-seconds qtpyvcp.timerseconds.in <= time.0.seconds +net cycle-minutes qtpyvcp.timerminutes.in <= time.0.minutes +net cycle-hours qtpyvcp.timerhours.in <= time.0.hours +# *** Time items required for Probe Basic to run *** + +# ---manual tool change signals--- +net tool-change-request => qtpyvcp_manualtoolchange.change +net tool-change-confirmed <= qtpyvcp_manualtoolchange.changed +net tool-number => qtpyvcp_manualtoolchange.number + +# *** Probe graphic simulation trigger push probe tip *** +# net probe-in => qtpyvcp.probe-in.out +net probe-in <= qtpyvcp.probe-led.on + +# *** Set line below for actual spindle readout from your hal file *** +# net spindle-rpm-filtered scale_to_rpm.out => qtpyvcp.spindle-encoder-rpm.in diff --git a/probe_basic_required_ini_items.ini b/probe_basic_required_ini_items.ini new file mode 100644 index 0000000..4a0bd35 --- /dev/null +++ b/probe_basic_required_ini_items.ini @@ -0,0 +1,38 @@ +# These ini configuration items are required for probe basic. +# please compare contrast to your machine ini configuration +# and edit any matching existing items and/or add any items +# that are not under the corresponding ini sections. + +[DISPLAY] +DISPLAY = probe_basic +OPEN_FILE = ~/linuxcnc/nc_files/pb_examples/blank.ngc +CONFIG_FILE = custom_config.yml +MAX_FEED_OVERRIDE = 2.000000 # Recommended Setting for Probe Basic +MAX_SPINDLE_OVERRIDE = 2.000000 # Recommended Setting for Probe Basic +MIN_SPINDLE_OVERRIDE = 0.500000 # Recommended Setting for Probe Basic +INTRO_GRAPHIC = pbsplash.png # Recommended Setting for Probe Basic +INTRO_TIME = 5 # Recommended Setting for Probe Basic +INCREMENTS = JOG .01in .001in .0001in # REQUIRED Setting for Probe Basic +GEOMETRY = xyz # REQUIRED Setting for Probe Basic +USER_TABS_PATH = user_tabs/ # REQUIRED Setting for Probe Basic +USER_BUTTONS_PATH = user_buttons/ # REQUIRED Setting for Probe Basic +USER_DROS_PATH = user_dro_display/ # REQUIRED Setting for Probe Basic +DRO_DISPLAY = xyz # REQUIRED Setting for Probe Basic, Options: xyz, xyza, xyzab, xyzac, xyzbc, user +# ATC tab display options, 0 = no atc tab displayed, 1 = Carousel atc display, 2 = rack atc display +ATC_TAB_DISPLAY = 0 +#USER_ATC_BUTTONS_PATH = user_atc_buttons/ + +[RS274NGC] +RS274NGC_STARTUP_CODE = F10 S300 G20 G17 G40 G49 G54 G64 P.001 G80 G90 G91.1 G92.1 G94 G97 G98 +PARAMETER_FILE = linuxcnc.var +OWORD_NARGS = 1 +NO_DOWNCASE_OWORD = 1 +SUBROUTINE_PATH = subroutines + +[HAL] +HALUI = halui +POSTGUI_HALFILE = probe_basic_postgui.hal +TWOPASS = one + +[TRAJ] +AXES = 3 # or number of axes of your machine \ No newline at end of file diff --git a/python/remap.py b/python/remap.py new file mode 100644 index 0000000..f95dc2a --- /dev/null +++ b/python/remap.py @@ -0,0 +1,19 @@ +# This is a component of LinuxCNC +# Copyright 2011, 2012, 2013, 2014 Dewey Garrett , +# Michael Haberler , Norbert Schechner +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +from stdglue import * diff --git a/python/stdglue.py b/python/stdglue.py new file mode 100644 index 0000000..ff7ea5d --- /dev/null +++ b/python/stdglue.py @@ -0,0 +1,165 @@ + +#NOTE: +# The legacy names *selected_pocket* and *current_pocket* actually reference +# a sequential tooldata index for tool items loaded from a tool +# table ([EMCIO]TOOL_TABLE) or via a tooldata database ([EMCIO]DB_PROGRAM) + +# stdglue - canned prolog and epilog functions for the remappable builtin codes (T,M6,M61,S,F) +# +# we dont use argspec to avoid the generic error message of the argspec prolog and give more +# concise ones here + + +import emccanon + +from linuxcnc import version +from interpreter import * +from emccanon import MESSAGE + +throw_exceptions = 1 + +VERSION = version + +# used so screens can get info. +# add this to toplevel to call it: + +# import remap +# def __init__(self): +# if self.task: +# remap.build_hal(self) + +def build_hal(self): + import hal + try: + h=hal.component('remapStat') + h.newpin("tool", hal.HAL_S32, hal.HAL_OUT) + h.newpin("wear", hal.HAL_S32, hal.HAL_OUT) + h.ready() + self.hal_tool_comp = h + except Exception as e: + print(e) + +# REMAP=T prolog=prepare_prolog ngc=prepare epilog=prepare_epilog +# exposed parameters: # # + +def prepare_prolog(self,**words): + try: + cblock = self.blocks[self.remap_level] + if not cblock.t_flag: + self.set_errormsg("T requires a tool number") + return INTERP_ERROR + tool = cblock.t_number + if tool: + (status, pocket) = self.find_tool_pocket(tool) + if status != INTERP_OK: + self.set_errormsg("T%d: pocket not found" % (tool)) + return status + else: + pocket = -1 # this is a T0 - tool unload + self.params["tool"] = tool + self.params["pocket"] = pocket + return INTERP_OK + except Exception as e: + self.set_errormsg("T%d/prepare_prolog: %s" % (int(words['t']), e)) + return INTERP_ERROR + +def prepare_epilog(self, **words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + return INTERP_ERROR + if self.blocks[self.remap_level].builtin_used: + #print "---------- T builtin recursion, nothing to do" + return INTERP_OK + else: + if self.return_value > 0: + self.selected_tool = int(self.params["tool"]) + self.selected_pocket = int(self.params["pocket"]) + emccanon.SELECT_TOOL(self.selected_tool) + return INTERP_OK + else: + self.set_errormsg("T%d: aborted (return code %.1f)" % (int(self.params["tool"]),self.return_value)) + return INTERP_ERROR + except Exception as e: + self.set_errormsg("T%d/prepare_epilog: %s" % (tool,e)) + return INTERP_ERROR + +# REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog +# exposed parameters: +# # +# # +# # +# # + +def change_prolog(self, **words): + try: + # this is relevant only when using iocontrol-v2. + if self.params[5600] > 0.0: + if self.params[5601] < 0.0: + self.set_errormsg("Toolchanger hard fault %d" % (int(self.params[5601]))) + return INTERP_ERROR + print("change_prolog: Toolchanger soft fault %d" % int(self.params[5601])) + + if self.selected_pocket < 0: + self.set_errormsg("M6: no tool prepared") + return INTERP_ERROR + if self.cutter_comp_side: + self.set_errormsg("Cannot change tools with cutter radius compensation on") + return INTERP_ERROR + self.params["tool_in_spindle"] = self.current_tool + self.params["selected_tool"] = self.selected_tool + self.params["current_pocket"] = self.current_pocket + self.params["selected_pocket"] = self.selected_pocket + return INTERP_OK + except Exception as e: + self.set_errormsg("M6/change_prolog: %s" % (e)) + return INTERP_ERROR + +def change_epilog(self, **words): + try: + if not self.value_returned: + r = self.blocks[self.remap_level].executing_remap + self.set_errormsg("the %s remap procedure %s did not return a value" + % (r.name,r.remap_ngc if r.remap_ngc else r.remap_py)) + yield INTERP_ERROR + # this is relevant only when using iocontrol-v2. + if self.params[5600] > 0.0: + if self.params[5601] < 0.0: + self.set_errormsg("Toolchanger hard fault %d" % (int(self.params[5601]))) + yield INTERP_ERROR + print("change_epilog: Toolchanger soft fault %d" % int(self.params[5601])) + + if self.blocks[self.remap_level].builtin_used: + #print "---------- M6 builtin recursion, nothing to do" + yield INTERP_OK + else: + if self.return_value > 0.0: + + # commit change + + self.selected_pocket = int(self.params["selected_pocket"]) + + if "2.9" in VERSION: + emccanon.CHANGE_TOOL(self.selected_pocket) + elif "2.10" in VERSION: + emccanon.SELECT_TOOL(self.selected_tool) + emccanon.CHANGE_TOOL() + + self.current_pocket = self.selected_pocket + self.selected_pocket = -1 + self.selected_tool = -1 + # cause a sync() + self.set_tool_parameters() + self.toolchange_flag = True + yield INTERP_EXECUTE_FINISH + else: + # yield to print any messages from the NGC program + yield INTERP_EXECUTE_FINISH + self.set_errormsg("M6 aborted (return code %.1f)" % (self.return_value)) + yield INTERP_ERROR + except Exception as e: + self.set_errormsg("M6/change_epilog: %s" % (e)) + yield INTERP_ERROR + diff --git a/python/toplevel.py b/python/toplevel.py new file mode 100644 index 0000000..299cba5 --- /dev/null +++ b/python/toplevel.py @@ -0,0 +1,19 @@ +# This is a component of LinuxCNC +# Copyright 2011, 2013, 2014 Dewey Garrett , +# Michael Haberler , Norbert Schechner +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +import remap diff --git a/subroutines/clamptool.ngc b/subroutines/clamptool.ngc new file mode 100644 index 0000000..8b1a7b1 --- /dev/null +++ b/subroutines/clamptool.ngc @@ -0,0 +1,12 @@ +o sub + +M65 P2 ; clamp the tool + +M66 P5 L3 Q2 ; check the clamped tool sensor +o100 if [#5399 LT 0] + (abort, Failed to release tool) ; abort if the sensor does not activate in 2 seconds +o100 endif + +o endsub [1] + +M2 diff --git a/subroutines/extendatc.ngc b/subroutines/extendatc.ngc new file mode 100644 index 0000000..2bdc02c --- /dev/null +++ b/subroutines/extendatc.ngc @@ -0,0 +1,27 @@ +o sub + +; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) + +# = -3.9000 +o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o100 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o110 endif + +G0 G53 Z# ; move z to clear height + +M65 P1 ; Turn off carousel home solenoid +M64 P0 ; Move Carousel OUT +M66 P1 L3 Q5 ; check for carousel out position sensor +o120 if [#5399 LT 0] + M65 P0 ; switch off atc out solenoid + (abort, ATC not in position) +o120 endif + +o endsub [1] + +M2 diff --git a/subroutines/go_to_g30.ngc b/subroutines/go_to_g30.ngc new file mode 100644 index 0000000..71956e0 --- /dev/null +++ b/subroutines/go_to_g30.ngc @@ -0,0 +1,10 @@ +o sub + +M73 +G90 +G53 G0 Z0 +G30 + +o endsub + +M2 diff --git a/subroutines/go_to_home.ngc b/subroutines/go_to_home.ngc new file mode 100644 index 0000000..2756d9f --- /dev/null +++ b/subroutines/go_to_home.ngc @@ -0,0 +1,20 @@ +o sub + +M73 +G90 +G53 G0 Z0 +G53 G0 X0 Y0 + +o100 if [EXISTS[#<_ini[traj]axes>]] + # = #<_ini[traj]axes> +o100 endif + +o110 if [# EQ 4] + G53 G0 A0 +o110 else if [# EQ 5] + G53 G0 A0 C0 +o110 endif + +o endsub + +M2 diff --git a/subroutines/go_to_zero.ngc b/subroutines/go_to_zero.ngc new file mode 100644 index 0000000..289a6d7 --- /dev/null +++ b/subroutines/go_to_zero.ngc @@ -0,0 +1,20 @@ +o sub + +M73 +G90 +G53 G0 Z0 +G0 X0 Y0 + +o100 if [EXISTS[#<_ini[traj]axes>]] + # = #<_ini[traj]axes> +o100 endif + +o110 if [# EQ 4] + G0 A0 +o110 else if [# EQ 5] + G0 A0 C0 +o110 endif + +o endsub + +M2 diff --git a/subroutines/load_spindle_safety.ngc b/subroutines/load_spindle_safety.ngc new file mode 100644 index 0000000..fafb7f5 --- /dev/null +++ b/subroutines/load_spindle_safety.ngc @@ -0,0 +1,48 @@ +(author: Chris P) +(version: 0.5) +(date: 06/27/24) + +(load tool in spindle safety macro) +; This is called form the ATC page +; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently) +; Parameters #4001 to #4024 are used to track which tool is in which pocket (persistently) +; Parameter #4000 is not populated just used in the maths to calculate the above numbers +; #: The number of pockets the ATC platter has, This is user set in the INI file via #<_ini[atc]pockets> + +o sub +(PRINT, o) + +# = #1 ; this is the value form the ATC tab +# = #3014 + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o101 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o101 endif + +#10 = 0 +#11 = 0 ; 1 if tool is already stored in carousel + +o110 while [#10 LT #] + #10 = [#10+1] + o120 if [# EQ #[4000 + #10]] + (DEBUG, the tool you are trying to load is already stored in carousel pocket %d#10) + #11 = 1 + o120 endif +o110 endwhile + +o130 if [#11 EQ 0] + M61 Q# G43 H# + #3991 = # +o130 endif + +o140 if [# EQ #] + S0 M5 +o140 endif + +o call + +o endsub + +M2 (end program) diff --git a/subroutines/load_spindle_safety_2.ngc b/subroutines/load_spindle_safety_2.ngc new file mode 100644 index 0000000..c4e879b --- /dev/null +++ b/subroutines/load_spindle_safety_2.ngc @@ -0,0 +1,48 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(load tool in spindle safety macro) +; This is called form the Tool page +; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently) +; Parameters #4001 to #4024 are used to track which tool is in which pocket (persistently) +; Parameter #4000 is not populated just used in the maths to calculate the above numbers +; #: The number of pockets the ATC platter has, This is user set in the INI file via #<_ini[atc]pockets> + +o sub +(PRINT, o) + +# = #1 ; this is the value form the TOOL tab +# = #3014 + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o101 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o101 endif + +#10 = 0 +#11 = 0 ; 1 if tool is already stored in carousel + +o110 while [#10 LT #] + #10 = [#10+1] + o120 if [# EQ #[4000 + #10]] + (DEBUG, the tool you are trying to load is already stored in carousel pocket %d#10) + #11 = 1 + o120 endif +o110 endwhile + +o130 if [#11 EQ 0] + M61 Q# G43 H# + #3991 = # +o130 endif + +o140 if [# EQ #] + S0 M5 +o140 endif + +o call + +o endsub + +M2 (end program) diff --git a/subroutines/m10.ngc b/subroutines/m10.ngc new file mode 100644 index 0000000..c868b5a --- /dev/null +++ b/subroutines/m10.ngc @@ -0,0 +1,39 @@ +o sub + +; Move tool carousel best direction to pocket P +; Parameter #3989 is used to track if the carousel is homed (M13) (volatile) +; Parameter #3990 is used to track the current tool pocket (persistently) +; #: The number of pockets in the ATC is automaticity pulled from the INI via #<_ini[atc]pockets> +(PRINT, o P#

) + +o100 if [#3989 NE 1] + M13 +o100 endif + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o110 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o110 endif + +# = [#3990 - #

] +(PRINT, o P#

, steps=#) +o120 if [# GT [# / 2]] + #=[# - #] +o120 endif + +o130 if [# LT -[# / 2]] + #=[# + #] +o130 endif + +o140 if [# GT 0] + M12 P[#] +o140 elseif [# LT 0] + #=[# * -1] + M11 P[#] +o140 endif + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m11.ngc b/subroutines/m11.ngc new file mode 100644 index 0000000..24860d5 --- /dev/null +++ b/subroutines/m11.ngc @@ -0,0 +1,50 @@ +o sub + +; Move tool carousel CW Parameter P number of steps +; Without parameter one step CW. +; Parameter #3989 is used to track if the carousel is homed (M13) (volatile) +; Parameter #3990 is used to track the current tool pocket (persistently) +; #: The number of pockets in the ATC is automaticity pulled from the INI via #<_ini[atc]pockets> +(PRINT, o P#

) + +o100 if [#3989 NE 1] + (PRINT, atc not homed, homing) + M13 +o100 endif + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o110 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o110 endif + +o120 if [EXISTS[#

]] + # = #

+o120 else + # = 1 + (tells the atc widget move 1 step forward) +o120 endif + +(tells the atc widget how many steps to move and start moving forward) +(DEBUG, EVAL[vcp.getWidget{"dynatc"}.rotate{#, "cw"}]) + +M64 P4 ; Move atc motor FWD + +o130 do + M66 P4 L1 Q3 ; wait for rising edge on rotation index + o131 if [#5399 LT 0] + M65 P4 ; Stop atc motor + (abort, Failed to get rotation index) + o131 endif + #3990 = [[[#3990+2] MOD #]-1] ; Pocket is no.1-# + # = [#-1] +o130 while [# GT 0] + +M65 P4 ; Stop motor + +#<_my_current_pocket> = #3990 + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m12.ngc b/subroutines/m12.ngc new file mode 100644 index 0000000..5159535 --- /dev/null +++ b/subroutines/m12.ngc @@ -0,0 +1,50 @@ +o sub + +; Move tool carousel CCW Parameter P number of steps +; Without parameter one step CCW. +; Parameter #3989 is used to track if the carousel is homed (M13) (volatile) +; Parameter #3990 is used to track the current tool pocket (persistently) +; #: The number of pockets in the ATC is automaticity pulled from the INI via #<_ini[atc]pockets> +(PRINT, o P#

) + +o100 if [#3989 NE 1] + (PRINT, atc not homed, homing) + M13 +o100 endif + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o110 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o110 endif + +o120 if [EXISTS[#

]] + # = #

+o120 else + #=1 + (tells the atc widget move 1 step reverse) +o120 endif + +(tells the atc widget how many steps to move and start moving reverse) +(DEBUG, EVAL[vcp.getWidget{"dynatc"}.rotate{#, "ccw"}]) + +M64 P3 ; Move atc motor REV + +o130 do + M66 P4 L1 Q3 ; wait for rising edge on rotation index + o131 if [#5399 LT 0] + M65 P3 ; Stop atc motor + (abort, Failed to get rotation index) + o131 endif + #3990 = [[[#3990-2] MOD #]+1] ; Pocket is no.1-# + # = [#-1] +o130 while [# GT 0] + +M65 P3 ; Stop motor + +#<_my_current_pocket> = #3990 + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m13.ngc b/subroutines/m13.ngc new file mode 100644 index 0000000..e5f3110 --- /dev/null +++ b/subroutines/m13.ngc @@ -0,0 +1,42 @@ +o sub + +; Move tool carousel CW until ATC zero +; Parameter #3989 is used to track if the carousel is homed (M13) (volatile) +; Parameter #3990 is used to track the current tool pocket (persistently) +; #: The number of pockets in the ATC is automaticity pulled from the INI via #<_ini[atc]pockets> +(PRINT, o) + +(DEBUG, EVAL[vcp.getWidget{"dynatc"}.atc_message{"REFERENCING"}]) + +M64 P4 ; Move Motor FWD +M66 P4 L1 Q20 ; wait for rising edge on home index +o100 if [#5399 LT 0] + M65 P4 ; stop motor + (abort, Failed to home carousel) +o100 endif + +#3990 = 1 +M65 P4 ; Stop motor +#3989 = 1 + +(DEBUG, EVAL[vcp.getWidget{"dynatc"}.atc_message{}]) + +# = 12 +o110 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o110 endif + +#1 = 0 + +o120 while [#1 LT #] + #1 = [#1+1] + #2 = #[4000+#1] + (DEBUG, EVAL[vcp.getWidget{"dynatc"}.store_tool{#1, #2}]) +o120 endwhile + +M61 Q#3991 G43 H#3991 + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m21.ngc b/subroutines/m21.ngc new file mode 100644 index 0000000..4c146a8 --- /dev/null +++ b/subroutines/m21.ngc @@ -0,0 +1,45 @@ +o sub + +; Move Carousel to the tool change position - OUT +; then unload any tool in the spindle into the current pocket +; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently) +; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) +(PRINT, o) + +# = -3.9000 +o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o100 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o110 endif + +M65 P1 ; switch off carousel in solenoid +M66 P1 L3 Q1 + +M5 M9 +G90 +G0 G53 Z# ; rapid move to above the tool change height + +;M19 R0 Q3 ; orient spindle + +M64 P0 ; Move Carousel out +M66 P1 L3 Q5 ; check for carousel out sensor +o120 if [#5399 LT 0] + M65 P0 ; switch off atc out solenoid + (abort, ATC not in position) +o120 endif + +M24 ; activate drawbar, release the tool +M5 ; turn off spindle lock + +G0 G53 Z# ; move z to clear height + +#3991 = 0; save fact there is now no tool in the spindle + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m22.ngc b/subroutines/m22.ngc new file mode 100644 index 0000000..605338e --- /dev/null +++ b/subroutines/m22.ngc @@ -0,0 +1,42 @@ +o sub + +; Move Carousel to the home position - IN +; after loading any tool in the current pocket to the spindle +; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) +(PRINT, o) + +# = -3.9000 +o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o100 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o110 endif + +;M19 R0 Q2 +M24 +;M19 R0 Q1 +;G90 +G0 G53 Z# ; rapid move to above the tool change height +M65 P2 ; release the drawbar to clamp the tool +M5 +M66 P5 L3 Q1 ; check the tool clamped sensor +o120 if [#5399 LT 0] + (abort, Failed to reclamp tool) +o120 endif + +M65 P0 ; Move Carousel home +M66 P0 L3 Q4 ; check carousel in position sensor +o130 if [#5399 LT 0] + M65 P1 ; turn off the solenoid to send atc home + (abort, Failed to send carousel home) ; abort if the sensor does not activate in 5 seconds +o130 endif + +;M65 P1 ; Turn off carousel home position solenoid + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m23.ngc b/subroutines/m23.ngc new file mode 100644 index 0000000..e69de29 diff --git a/subroutines/m24.ngc b/subroutines/m24.ngc new file mode 100644 index 0000000..3745496 --- /dev/null +++ b/subroutines/m24.ngc @@ -0,0 +1,14 @@ +o sub +(PRINT, o) + +M64 P2 ; unclamp the tool +M66 P2 L3 Q2 ; check the unclamped tool sensor +o100 if [#5399 LT 0] + M65 P2 ; turn off the drawbar + (abort, failed to release tool) ; abort if the sensor does not activate in 3 seconds +o100 endif + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m25.ngc b/subroutines/m25.ngc new file mode 100644 index 0000000..a1a7ac9 --- /dev/null +++ b/subroutines/m25.ngc @@ -0,0 +1,15 @@ +o sub +(PRINT, o) + +M64 P0 ; Move Carousel out + +M66 P1 L3 Q5 ; check for carousel out sensor +o100 if [#5399 LT 0] + M65 P0 ; switch off atc out solenoid + (abort, ATC not in position) +o100 endif + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/m26.ngc b/subroutines/m26.ngc new file mode 100644 index 0000000..e69de29 diff --git a/subroutines/m6_tool_call_atc_page.ngc b/subroutines/m6_tool_call_atc_page.ngc new file mode 100644 index 0000000..5a32dcf --- /dev/null +++ b/subroutines/m6_tool_call_atc_page.ngc @@ -0,0 +1,25 @@ +(author: Chris P) +(version: 0.3) +(date: 06/27/24) + +(m6 tool call with g43 offset applied) + +o sub + +# = #1 +# = #3014 + +T# M6 +o100 if [1 EQ 1] + G43 H# +o100 endif + +o110 if [# EQ #] + S0 M5 +o110 endif + +o call + +o endsub + +M2 (end program) diff --git a/subroutines/m6_tool_call_main_panel.ngc b/subroutines/m6_tool_call_main_panel.ngc new file mode 100644 index 0000000..2f32dec --- /dev/null +++ b/subroutines/m6_tool_call_main_panel.ngc @@ -0,0 +1,26 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(m6 tool call with g43 offset applied) + +o sub + +# = #1 +# = #3014 + +T# M6 + +o100 if [1 EQ 1] + G43 H# +o100 endif + +o110 if [# EQ #] + S0 M5 +o110 endif + +o call + +o endsub + +M2 (end program) diff --git a/subroutines/m6_tool_call_tool_page.ngc b/subroutines/m6_tool_call_tool_page.ngc new file mode 100644 index 0000000..2765e6c --- /dev/null +++ b/subroutines/m6_tool_call_tool_page.ngc @@ -0,0 +1,26 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(m6 tool call with g43 offset applied) + +o sub + +# = #1 +# = #3014 + +T# M6 + +o100 if [1 EQ 1] + G43 H# +o100 endif + +o110 if [# EQ #] + S0 M5 +o110 endif + +o call + +o endsub + +M2 (end program) diff --git a/subroutines/move_head_above_carousel.ngc b/subroutines/move_head_above_carousel.ngc new file mode 100644 index 0000000..61d754f --- /dev/null +++ b/subroutines/move_head_above_carousel.ngc @@ -0,0 +1,19 @@ +o sub + +; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) + +# = -3.9000 +o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o100 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o110 endif + +G0 G53 Z# ; move z to clear height + +o endsub [1] + +M2 diff --git a/subroutines/move_tool_to_carousel_height.ngc b/subroutines/move_tool_to_carousel_height.ngc new file mode 100644 index 0000000..42144db --- /dev/null +++ b/subroutines/move_tool_to_carousel_height.ngc @@ -0,0 +1,18 @@ +o sub +; # is the height you spindle needs to be at to clamp/unclamp a tool form the ATC (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # is the clearance height you spindle needs to be at to safely clear the ATC (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) + +# = -3.9000 +o100 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o100 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o110 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o110 endif + +G0 G53 Z# ; rapid move to above the tool change height + +o endsub [1] + +M2 diff --git a/subroutines/on_abort.ngc b/subroutines/on_abort.ngc new file mode 100644 index 0000000..da9f690 --- /dev/null +++ b/subroutines/on_abort.ngc @@ -0,0 +1,9 @@ +% +o sub + +G90 +G40 +G49 + +o endsub +% diff --git a/subroutines/orientspindle.ngc b/subroutines/orientspindle.ngc new file mode 100644 index 0000000..1776e94 --- /dev/null +++ b/subroutines/orientspindle.ngc @@ -0,0 +1,11 @@ +o sub +; Orient the spindle with platter +(PRINT, o) + +M5 M9 ; stop all spindle motion and coolant +M19 R0 Q4 ; orient spindle +M5 ; turn off spindle lock + +o endsub [1] + +M2 diff --git a/subroutines/probe_back_left_inside_corner.ngc b/subroutines/probe_back_left_inside_corner.ngc new file mode 100644 index 0000000..59fd36a --- /dev/null +++ b/subroutines/probe_back_left_inside_corner.ngc @@ -0,0 +1,122 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe back left inside corner for x,y,z 0,0,0 position) +(Start probe position is over back left inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + G91 + F[#] + G38.3 X[#] Y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_minus_sub" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (move to X start Position) + G90 + F[#] + G38.3 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (move to Y start Position) + G90 + F[#] + G38.3 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_back_left_top_corner.ngc b/subroutines/probe_back_left_top_corner.ngc new file mode 100644 index 0000000..3aa726e --- /dev/null +++ b/subroutines/probe_back_left_top_corner.ngc @@ -0,0 +1,118 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe back left top corner for x,y,z 0,0,0 position) +(Start probe position is over back left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_back_right_inside_corner.ngc b/subroutines/probe_back_right_inside_corner.ngc new file mode 100644 index 0000000..99e16fc --- /dev/null +++ b/subroutines/probe_back_right_inside_corner.ngc @@ -0,0 +1,122 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe back right inside corner for x,y,z 0,0,0 position) +(Start probe position is over back right inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width X and Y) + G91 + F[#] + G38.3 X-[#] Y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (move to X start Position) + G90 + F[#] + G38.3 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (move to Y start Position) + G90 + F[#] + G38.3 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_back_right_top_corner.ngc b/subroutines/probe_back_right_top_corner.ngc new file mode 100644 index 0000000..423ad59 --- /dev/null +++ b/subroutines/probe_back_right_top_corner.ngc @@ -0,0 +1,117 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe back right top corner for x,y,z 0,0,0 position) +(Start probe position is over back right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + (Probe Y Positioning Move) + F[#] + G38.3 X-[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_back_top_side.ngc b/subroutines/probe_back_top_side.ngc new file mode 100644 index 0000000..b85e5d4 --- /dev/null +++ b/subroutines/probe_back_top_side.ngc @@ -0,0 +1,91 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe back top side for y,z 0,0 position) +(Start probe position is over back edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Step Off Width) + G91 + F[#] + G38.3 Y[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o120 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 Y[# + #] + o120 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_cal_reset.ngc b/subroutines/probe_cal_reset.ngc new file mode 100644 index 0000000..081bbe5 --- /dev/null +++ b/subroutines/probe_cal_reset.ngc @@ -0,0 +1,8 @@ +o sub + + #3032 = 0 + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + +o endsub + +M2 (end program) diff --git a/subroutines/probe_cal_round_boss.ngc b/subroutines/probe_cal_round_boss.ngc new file mode 100644 index 0000000..d52bcd1 --- /dev/null +++ b/subroutines/probe_cal_round_boss.ngc @@ -0,0 +1,329 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe calibration offset using defined diam round boss) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3033 (=0) + # = #3036 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (clear current probe calibration offset) + #3032 = 0 + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [#] + + (remove probe tip diam and cal offset from probed width calculations) + # = [#] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030][#3032] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Move to z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Move to Y Center) + G90 + F[#] + G38.3 Y[#] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate X Width Probed) + o110 if [# GT #] + # = [# - #] + o110 else + # = [# - #] + o110 endif + + (Completed probed width calculations) + # = [# - #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + o120 if [# GT #] + # = [# - #] + o120 else + # = [# - #] + o return + o120 endif + + (Completed probed width calculations) + # = [# - #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + # = [[# + #] / 2] + + #1010 = # + (DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + o130 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o130 else + # = [[# - #] / 2] + # = [#] + o130 endif + + o140 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o140 else + # = [[# - #] / 2] + # = [#] + o140 endif + + # = [[# + #] / 2] + + o150 if [# EQ 0] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o150 else if [# EQ 1] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o150 else + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o150 endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o160 if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o160 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_cal_round_pocket.ngc b/subroutines/probe_cal_round_pocket.ngc new file mode 100644 index 0000000..825c0e4 --- /dev/null +++ b/subroutines/probe_cal_round_pocket.ngc @@ -0,0 +1,223 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe calibration offset using defined diam round pocket) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3033 (=0) + # = #3036 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (clear current probe calibration offset) + #3032 = 0 + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [#] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030][#3032] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3033][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3033 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3033][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Z Clearance Plane, Y Zero) + G90 + F[#] + G38.3 Y[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][3017][#3018 + #3033 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3033][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3033 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3033][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed diameter calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + # = [[# + #] / 2] + + #1010 = # + (DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + + G90 + F[#] + G38.3 Y[#] + G91 + F[#] + G38.3 Z[#] + + o110 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o110 else + # = [[# - #] / 2] + # = [#] + o110 endif + + o120 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o120 else + # = [[# - #] / 2] + # = [#] + o120 endif + + # = [[# + #] / 2] + + o130 if [# EQ 0] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else if [# EQ 1] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o140 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_cal_square_boss.ngc b/subroutines/probe_cal_square_boss.ngc new file mode 100644 index 0000000..5ceceb7 --- /dev/null +++ b/subroutines/probe_cal_square_boss.ngc @@ -0,0 +1,224 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe calibration offset using defined width square boss) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3034 (=0) + # = #3035 (=0) + # = #3036 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (clear current probe calibration offset) + #3032 = 0 + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [#] + + (remove probe tip diam and cal offset from probed width calculations) + # = [#] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030][#3032] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[#/2 + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Traverse Speed) + G91 + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[#/2 + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at traverse Speed) + G91 + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + o110 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o110 else + # = [[# - #] / 2] + # = [#] + o110 endif + + o120 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o120 else + # = [[# - #] / 2] + # = [#] + o120 endif + + # = [[# + #] / 2] + + o130 if [# EQ 0] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else if [# EQ 1] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o140 if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_cal_square_pocket.ngc b/subroutines/probe_cal_square_pocket.ngc new file mode 100644 index 0000000..3acb363 --- /dev/null +++ b/subroutines/probe_cal_square_pocket.ngc @@ -0,0 +1,178 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe calibration offset using defined width square pocket) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3034 (=0) + # = #3035 (=0) + # = #3036 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (clear current probe calibration offset) + #3032 = 0 + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [#] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030][#3032] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3034][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3035 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3035][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + G90 + F[#] + G38.3 Y[#] + G91 + F[#] + G38.3 Z[#] + + o110 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o110 else + # = [[# - #] / 2] + # = [#] + o110 endif + + o120 if [# GT #] + (calculate calibration error and adjust calibration offset) + # = [[# - #] / 2] + # = [#] + o120 else + # = [[# - #] / 2] + # = [#] + o120 endif + + # = [[# + #] / 2] + + o130 if [# EQ 0] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else if [# EQ 1] + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 else + #3032 = [ABS[#]] + (DEBUG, EVAL[vcp.getWidget{"calibration_offset_3032"}.setValue{#3032}]) + o130 endif + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o140 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_corner_x_minus_edge_angle.ngc b/subroutines/probe_corner_x_minus_edge_angle.ngc new file mode 100644 index 0000000..080e8bb --- /dev/null +++ b/subroutines/probe_corner_x_minus_edge_angle.ngc @@ -0,0 +1,173 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Corner X minus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over front right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 y-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe X- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 Y[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe X- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o130 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o130 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o140 endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o150 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o150 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_corner_x_plus_edge_angle.ngc b/subroutines/probe_corner_x_plus_edge_angle.ngc new file mode 100644 index 0000000..745ea6b --- /dev/null +++ b/subroutines/probe_corner_x_plus_edge_angle.ngc @@ -0,0 +1,173 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Corner X plus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over back left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X-[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe X+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 Y-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe X+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o130 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o130 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o140 endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o150 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o150 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_corner_y_minus_edge_angle.ngc b/subroutines/probe_corner_y_minus_edge_angle.ngc new file mode 100644 index 0000000..2492d9d --- /dev/null +++ b/subroutines/probe_corner_y_minus_edge_angle.ngc @@ -0,0 +1,173 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Corner Y minus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over back right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5421 + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X-[#] Y[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 X-[#] + + # = #5420 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o130 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o130 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o140 endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o150 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o150 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_corner_y_plus_edge_angle.ngc b/subroutines/probe_corner_y_plus_edge_angle.ngc new file mode 100644 index 0000000..ac817a1 --- /dev/null +++ b/subroutines/probe_corner_y_plus_edge_angle.ngc @@ -0,0 +1,173 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Corner Y Plus Edge Angle for x,y,z 0,0,0 position) +(Start probe position is over front left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5421 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 X[#] + + # = #5420 + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o130 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o130 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + # = [# + [# - #] * COS[-#] - [# - #] * SIN[-#]] + + # = [# + [# - #] * SIN[-#] + [# - #] * COS[-#]] + + # = [# + [# - #] * COS[#] - [# - #] * SIN[#]] + + # = [# + [# - #] * SIN[#] + [# - #] * COS[#]] + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO,Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o140 endif + + (probe mode rules for WCO,Rotation and probe position measuring only) + o150 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[# + #] R[#] + o150 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_front_left_inside_corner.ngc b/subroutines/probe_front_left_inside_corner.ngc new file mode 100644 index 0000000..76a3fca --- /dev/null +++ b/subroutines/probe_front_left_inside_corner.ngc @@ -0,0 +1,123 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe front left inside corner for x,y,z 0,0,0 position) +(Start probe position is over front left inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + G91 + F[#] + G38.3 X[#] Y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (move to X start Position) + G90 + F[#] + G38.3 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (move to Y start Position) + G90 + F[#] + G38.3 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_front_left_top_corner.ngc b/subroutines/probe_front_left_top_corner.ngc new file mode 100644 index 0000000..0c3fc33 --- /dev/null +++ b/subroutines/probe_front_left_top_corner.ngc @@ -0,0 +1,119 @@ +(author: Chris P) +(version: 0.5) +(date: 06/27/24) + +(Probe front left top corner for x,y,z 0,0,0 position) +(Start probe position is over front left corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece at Z Clearance plane) + F[#] + G38.3 X[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_front_right_inside_corner.ngc b/subroutines/probe_front_right_inside_corner.ngc new file mode 100644 index 0000000..cdf536c --- /dev/null +++ b/subroutines/probe_front_right_inside_corner.ngc @@ -0,0 +1,123 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe front right inside corner for x,y,z 0,0,0 position) +(Start probe position is over front right inside corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width X and Y) + G91 + F[#] + G38.3 X-[#] Y[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + G90 + (Current X Position including offsets in current program units) + # = #5420 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (move to X start Position) + G90 + F[#] + G38.3 X[#] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (move to Y start Position) + G90 + F[#] + G38.3 Y[#] + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_front_right_top_corner.ngc b/subroutines/probe_front_right_top_corner.ngc new file mode 100644 index 0000000..209692d --- /dev/null +++ b/subroutines/probe_front_right_top_corner.ngc @@ -0,0 +1,120 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe front right top corner for x,y,z 0,0,0 position) +(Start probe position is over front right corner of stock) +(inside the step off width square and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Y Positioning Move, up to Z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Probe Y Positioning Move, Traverse Workpiece Top at Z Clearance Height plane) + F[#] + G38.3 X-[#] Y-[#] + + (Probe Y Positioning Move,to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + (Probe Completion Move to Z Clearance Plane, and XY Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_front_top_side.ngc b/subroutines/probe_front_top_side.ngc new file mode 100644 index 0000000..dd48f34 --- /dev/null +++ b/subroutines/probe_front_top_side.ngc @@ -0,0 +1,92 @@ +(author: Chris P) +(version: 0.5) +(date: 06/27/24) + +(Probe front top side for y,z 0,0 position) +(Start probe position is over front edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Step Off Width) + G91 + F[#] + G38.3 Y-[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o120 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 Y[# + #] + o120 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_left_top_side.ngc b/subroutines/probe_left_top_side.ngc new file mode 100644 index 0000000..74425fd --- /dev/null +++ b/subroutines/probe_left_top_side.ngc @@ -0,0 +1,92 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe left top side for x,z 0,0 position) +(Start probe position is over left side edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (probe mode rules for WCO or probe position measuring only) + o120 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + o120 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_rect_boss.ngc b/subroutines/probe_rect_boss.ngc new file mode 100644 index 0000000..c6b5deb --- /dev/null +++ b/subroutines/probe_rect_boss.ngc @@ -0,0 +1,185 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Boss in X and Y Axes, find center and z 0 position) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3026 (=0) + # = #3027 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[[#/2] + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[[#/2] + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_rect_pocket.ngc b/subroutines/probe_rect_pocket.ngc new file mode 100644 index 0000000..0f2ebc7 --- /dev/null +++ b/subroutines/probe_rect_pocket.ngc @@ -0,0 +1,139 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe rect pocket center measure x and widths, find xy center position) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3026 (=0) + # = #3027 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3026][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3027 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3027][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + G90 + F[#] + G38.3 Y[#] + G91 + F[#] + G38.3 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_rect_pocket_center_start.ngc b/subroutines/probe_rect_pocket_center_start.ngc new file mode 100644 index 0000000..063a498 --- /dev/null +++ b/subroutines/probe_rect_pocket_center_start.ngc @@ -0,0 +1,121 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe rect pocket center measure x and y widths, find xy center position) +(Start probe position is rough center of pocket probe tip below top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3026 (=0) + # = #3027 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3026 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3026][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to X Zero, Y Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3027 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3027][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X and Y Zero in selected WCO) + G10 L2 P#5220 X[# + #] Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_ridge_x.ngc b/subroutines/probe_ridge_x.ngc new file mode 100644 index 0000000..a3d0a9a --- /dev/null +++ b/subroutines/probe_ridge_x.ngc @@ -0,0 +1,129 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Ridge in X Axis to find center and z 0 position) +(Start probe position is over center of stock in the X axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3028 (=0) + # = #3029 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[[#/2] + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 X[# + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_ridge_y.ngc b/subroutines/probe_ridge_y.ngc new file mode 100644 index 0000000..d21311c --- /dev/null +++ b/subroutines/probe_ridge_y.ngc @@ -0,0 +1,129 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Ridge in Y Axis to find center and z 0 position) +(Start probe position is over center of stock in the Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + # = #3014 + # = #3015 + # = #3016 + # = #3017 + # = #3018 + # = #3019 + # = #3020 + # = #3021 + # = #3022 + # = #3023 + # = #3024 + # = #3028 + # = #3029 + # = #3030 + # = #3032 + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[[#/2] + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 Y[# + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# - #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero) + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_right_top_side.ngc b/subroutines/probe_right_top_side.ngc new file mode 100644 index 0000000..8fe5e59 --- /dev/null +++ b/subroutines/probe_right_top_side.ngc @@ -0,0 +1,91 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe right top side for x,z 0,0 position) +(Start probe position is over right side edge of stock) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (probe mode rules for WCO or probe position measuring only) + o120 if [# EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] + o120 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_round_boss.ngc b/subroutines/probe_round_boss.ngc new file mode 100644 index 0000000..7b15891 --- /dev/null +++ b/subroutines/probe_round_boss.ngc @@ -0,0 +1,293 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Boss in X and Y Axes, find center, Diam and z 0 position) +(Start probe position is over center of stock in X and Y axis) +(within max z distance, ensure all settings have been) +(set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3025 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[[# / 2] + [#]] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[[# / 2] + [#]] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + G91 + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Move to z clearance plane) + G91 + F[#] + G38.3 Z[#] + + (Move to Y Center) + G90 + F[#] + G38.3 Y[#] + + (Probe X Positioning Move, X hint/2 + Step Off Width) + G91 + F[#] + G38.3 X-[[# / 2] + [#]] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in X, X Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 X[# + # + #] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate X Width Probed) + o110 if [# GT #] + # = [# - #] + o110 else + # = [# - #] + o110 endif + + (Completed probed width calculations) + # = [# - #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] + + (Probe Y Positioning Move, Y hint/2 + Step Off Width) + G91 + F[#] + G38.3 Y-[[# / 2] + [#]] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (first side Probe Completion Move to Z Clearance Plane) + G91 + F[#] + G38.3 Z[#] + + (Positioning move in Y, Y Hint + Step Off Width at Rapid Speed) + F[#] + G38.3 Y[# + # + #] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (probed center calulation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + o120 if [# GT #] + # = [# - #] + o120 else + # = [# - #] + o120 endif + + (Completed probed width calculations) + # = [# - #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + # = [[# + #] / 2] + + #1010 = # + (DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + # = [# + #] + + # = [# + #] + + (probe mode rules for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record XY Zero in selected WCO) + G10 L2 P#5220 X[#] Y[#] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_round_pocket.ngc b/subroutines/probe_round_pocket.ngc new file mode 100644 index 0000000..bbcafd7 --- /dev/null +++ b/subroutines/probe_round_pocket.ngc @@ -0,0 +1,184 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe round pocket center measure x and y Diam, find xy center position) +(Start probe position is over left side edge of pocket wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3025 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Z Clearance Plane, Y Zero) + G90 + F[#] + G38.3 Y[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed diameter calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + # = [[# + #] / 2] + + #1010 = # + (DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + + G90 + F[#] + G38.3 Y[#] + G91 + F[#] + G38.3 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_round_pocket_center_start.ngc b/subroutines/probe_round_pocket_center_start.ngc new file mode 100644 index 0000000..bad31c5 --- /dev/null +++ b/subroutines/probe_round_pocket_center_start.ngc @@ -0,0 +1,167 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe round pocket center start measure x and y Diam, find xy center position) +(Start probe position is rough center of pocket a safe distance below top edge) +(no z move will be initiated in this routine. end position is hole center) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3025 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to X Zero) + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Y Zero) + G90 + F[#] + G38.3 Y[#] + + (Call sub "probe_x_minus" to Probe x-) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + G90 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe Y+) + o call [#3014][#3015][#3016][3017][#3018 + #3025 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus" to Probe Y-) + o call [#3014][#3015][#3016][3017][#3018 + #3025][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed diameter calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + # = [[# + #] / 2] + + #1010 = # + (DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 X[# + #] + G10 L2 P#5220 Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_spindle_nose.ngc b/subroutines/probe_spindle_nose.ngc new file mode 100644 index 0000000..67e98bf --- /dev/null +++ b/subroutines/probe_spindle_nose.ngc @@ -0,0 +1,77 @@ +(author: Chris P) +(version: 0.0) +(date: 12/26/24) + +(Probe Spindle Nose in Z Minus direction over tool setter and set Spindle Zero Distance) +(Start probe position is over toolsetter platter within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + + # = #3004 (=10.0) + # = #3005 (=0) + # = #3006 (=50) + # = #3007 (=12.5) + # = #3009 (=0.1000) + + (Cancel G92 offsets) + G92.1 + + o100 if [2 EQ 2] + G49 + o100 endif + + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Z# + F[#] + (return from sub) + o return + o110 endif + + (Move up retract_distance height for slow probe) + G90 + G1 F[#] Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 + G90 + G1 F[#] Z[# + #] + o120 endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (output to gui DRO "Z PROBED POSITION") + #1009 = # + #3010 = [ABS[# - #]] + # = [#3010 * 1.001] + #3007 = # + + (DEBUG, EVAL[vcp.getWidget{"z_minus_probed_position"}.setValue{#1009}]) + (DEBUG, EVAL[vcp.getWidget{"spindle_zero_height_3010"}.setValue{#3010}]) + (DEBUG, EVAL[vcp.getWidget{"z_max_travel_3007"}.setValue{#3007}]) + + G53 G0 Z0.0 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_top_back_edge_angle.ngc b/subroutines/probe_top_back_edge_angle.ngc new file mode 100644 index 0000000..1507e66 --- /dev/null +++ b/subroutines/probe_top_back_edge_angle.ngc @@ -0,0 +1,131 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe back top edge angle for y,z 0,0 position and edge angle) +(Start probe position is over back edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Step Off Width) + G91 + F[#] + G38.3 Y[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 X-[#] + + (Call sub "probe_y_minus" to Probe y- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o130 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] + o130 endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] R[#] + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_top_front_edge_angle.ngc b/subroutines/probe_top_front_edge_angle.ngc new file mode 100644 index 0000000..7220d75 --- /dev/null +++ b/subroutines/probe_top_front_edge_angle.ngc @@ -0,0 +1,131 @@ +(author: Chris P) +(version: 0.5) +(date: 06/27/24) + +(Probe top front edge angle for y,z 0,0 position and edge angle) +(Start probe position is over front edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5420 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Step Off Width) + G91 + F[#] + G38.3 Y-[#] + + (Probe Y Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 X[#] + + (Call sub "probe_y_plus" to Probe y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing Y Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o130 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] + o130 endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[#] Y[# + #] R[#] + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_top_left_edge_angle.ngc b/subroutines/probe_top_left_edge_angle.ngc new file mode 100644 index 0000000..7d2ace0 --- /dev/null +++ b/subroutines/probe_top_left_edge_angle.ngc @@ -0,0 +1,131 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe top left edge angle for y,z 0,0 position and edge angle) +(Start probe position is over left edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X-[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 Y-[#] + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o130 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] + o130 endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] R[#] + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_top_right_edge_angle.ngc b/subroutines/probe_top_right_edge_angle.ngc new file mode 100644 index 0000000..93bf811 --- /dev/null +++ b/subroutines/probe_top_right_edge_angle.ngc @@ -0,0 +1,131 @@ +(author: Chris P) +(version: 0.4) +(date: 06/27/24) + +(Probe top right edge angle for y,z 0,0 position and edge angle) +(Start probe position is over right edge of stock, set edge width,) +(step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3030 (=0) + # = #3031 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + (set rotation offset to zero for new probe cycle) + G10 L2 P[#5220] R0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probing depth from the z probed clearance height, used for z moves) + # = [# + # + #] + + # = #5421 + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o110 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o110 endif + + (edge width move to edge second probing point) + G91 + F[#] + G38.3 Y[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #<_value> + + (value returned safety check, aborts if no value returned) + o120 if [# EQ 1 AND #<_value_returned> NE 1] + (DEBUG, Missing X Sub returned edge parameter, aborting) + M50 P1 + o return + o120 endif + + # = [# - #] + + # = [ATAN [#] / [#]] + + #1011 = # + (DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + + #1012 = # + (DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + + (Probe Completion Move to Z Clearance Plane, and Y Zero) + G91 + F[#] + G38.3 Z[#] + G90 + F[#] + G38.3 X[#] Y[#] + + (probe mode rules for WCO, Rotation and probe position measuring only) + o130 if [# EQ 0 AND # EQ 0] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] + o130 endif + + (probe mode rules for WCO, Rotation and probe position measuring only) + o140 if [# EQ 0 AND # EQ 1] + (Record Zero in selected axes and WCO) + G10 L2 P#5220 X[# + #] Y[#] R[#] + o140 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_valley_x.ngc b/subroutines/probe_valley_x.ngc new file mode 100644 index 0000000..63b1be0 --- /dev/null +++ b/subroutines/probe_valley_x.ngc @@ -0,0 +1,109 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe valley in x, find Z0, X0 valley center position) +(Start probe position is over left side edge of valley wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3028 (=0) + # = #3029 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe X Positioning Move, Step Off Width) + G91 + F[#] + G38.3 X[#] + + (Probe X Positioning Move, to Probing Depth) + F[#] + G38.3 Z-[#] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3028][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + F[#] + G38.3 X[#] + G91 + F[#] + G38.3 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_valley_x_center_start.ngc b/subroutines/probe_valley_x_center_start.ngc new file mode 100644 index 0000000..e9212ce --- /dev/null +++ b/subroutines/probe_valley_x_center_start.ngc @@ -0,0 +1,91 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe valley in x, find X zero valley center position) +(Start probe position is centered between valley walls) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3028 (=0) + # = #3029 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + (Call sub "probe_x_minus" to Probe x- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3028 / 2][#3019][#3032] + + # = #5061 + + (Call sub "probe_x_plus" to Probe x+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3028][#3019][#3032] + + # = #5061 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate X Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1001 = # + (DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1001}]) + + #1002 = # + (DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1002}]) + + (Probe Completion Move to X Zero) + G90 + F[#] + G38.3 X[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_valley_y.ngc b/subroutines/probe_valley_y.ngc new file mode 100644 index 0000000..5541a80 --- /dev/null +++ b/subroutines/probe_valley_y.ngc @@ -0,0 +1,107 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe valley in Y, find Z0, Y0 valley center position) +(Start probe position is over back side edge of valley wall) +(inside the step off width distance and within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3028 (=0) + # = #3029 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + # = [# + # + #] + + (Call sub "probe_z_minus_sub" to Probe top of Workpiece) + o call [#3014][#3015][#3016][#3017][#3020][#3021][#3030] + + (Probe Y Positioning Move, Step Off Width) + G91 + F[#] + G38.3 Y-[#] + F[#] + G38.3 Z-[#] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#3014][#3015][#3016][#3017][#3018][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus_sub" to Probe Y- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3029][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + F[#] + G38.3 Y[#] + G91 + F[#] + G38.3 Z[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_valley_y_center_start.ngc b/subroutines/probe_valley_y_center_start.ngc new file mode 100644 index 0000000..944f9b7 --- /dev/null +++ b/subroutines/probe_valley_y_center_start.ngc @@ -0,0 +1,91 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe valley in Y find Y0 valley center position) +(Start probe position is rough center between valley walls) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3024 (=0.5000) + # = #3028 (=0) + # = #3029 (=0) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (remove probe tip diam and cal offset from probed width calculations) + # = [# - [# * 2]] + + (Call sub "probe_y_plus" to Probe Y+ side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3029 / 2][#3019][#3032] + + # = #5062 + + (Call sub "probe_y_minus_sub" to Probe Y- side of Workpiece) + o call [#3014][#3015][#3016][3017][#3018 + #3029][#3019][#3032] + + # = #5062 + + (probed center calculation) + # = [[# + #] / 2] + + (calculate Y Width Probed) + # = [# - #] + + (Completed probed width calculations) + # = [# + #] + + #1003 = # + (DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1003}]) + + #1004 = # + (DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1004}]) + + (Probe Completion Move to Z Clearance Plane, and X Zero) + G90 + F[#] + G38.3 Y[#] + + (probe mode rules for WCO or probe position measuring only) + o110 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o110 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_x_minus.ngc b/subroutines/probe_x_minus.ngc new file mode 100644 index 0000000..5e74897 --- /dev/null +++ b/subroutines/probe_x_minus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe X Minus direction and set X 0 in current WCO) +(Start probe position to the right side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X- Probe) + G91 + F[#] + G38.2 X-[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] X# + F[#] + (return from sub) + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] X[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow X- Probe) + G91 + F[#] + G38.2 X-[# * 2] + # = #5061 + G90 + G1 F[#] X[# + #] + o120 endif + + # = [# - #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (output to gui DRO "X PROBED POSITION") + #1005 = # + (DEBUG, EVAL[vcp.getWidget{"x_minus_probed_position"}.setValue{#1005}]) + +o endsub [#] + +M2 (end program) diff --git a/subroutines/probe_x_minus_wco.ngc b/subroutines/probe_x_minus_wco.ngc new file mode 100644 index 0000000..20485ca --- /dev/null +++ b/subroutines/probe_x_minus_wco.ngc @@ -0,0 +1,105 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe X Minus direction and set X 0 in current WCO) +(Start probe position to the right side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X- Probe) + G91 + F[#] + G38.2 X-[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] X# + F[#] + M50 P1 + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] X[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow X- Probe) + G91 + F[#] + G38.2 X-[# * 2] + # = #5061 + G90 + G1 F[#] X[# + #] + o120 endif + + # = [# - #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (output to gui DRO "X PROBED POSITION") + #1005 = # + (DEBUG, EVAL[vcp.getWidget{"x_minus_probed_position"}.setValue{#1005}]) + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_x_plus.ngc b/subroutines/probe_x_plus.ngc new file mode 100644 index 0000000..a712542 --- /dev/null +++ b/subroutines/probe_x_plus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe X plus direction and set X 0 in current WCO) +(Start probe position to the left side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X+ Probe) + G91 + F[#] + G38.2 X[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] X# + F[#] + (return from sub) + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] X[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow X+ Probe) + G91 + F[#] + G38.2 X[# * 2] + # = #5061 + G90 + G1 F[#] X[# - #] + o120 endif + + # = [# + #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (output to gui DRO "X PROBED POSITION") + #1006 = # + (DEBUG, EVAL[vcp.getWidget{"x_plus_probed_position"}.setValue{#1006}]) + +o endsub [#] + +M2 (end program) diff --git a/subroutines/probe_x_plus_wco.ngc b/subroutines/probe_x_plus_wco.ngc new file mode 100644 index 0000000..cc7a2a4 --- /dev/null +++ b/subroutines/probe_x_plus_wco.ngc @@ -0,0 +1,105 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe X plus direction and set X 0 in current WCO) +(Start probe position to the left side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5201 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current X Position including offsets in current program units) + # = #5420 + + (Initiate Fast X+ Probe) + G91 + F[#] + G38.2 X[#] + # = #5061 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] X# + F[#] + M50 P1 + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] X[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow X+ Probe) + G91 + F[#] + G38.2 X[# * 2] + # = #5061 + G90 + G1 F[#] X[# - #] + o120 endif + + # = [# + #] + + (defines the edge as x_probed_position for DRO reporting) + # = # + + (output to gui DRO "X PROBED POSITION") + #1006 = # + (DEBUG, EVAL[vcp.getWidget{"x_plus_probed_position"}.setValue{#1006}]) + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record X Zero in selected WCO) + G10 L2 P#5220 X[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_y_minus.ngc b/subroutines/probe_y_minus.ngc new file mode 100644 index 0000000..6723ff0 --- /dev/null +++ b/subroutines/probe_y_minus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Y Minus direction to locate edge, end at clearance distance) +(Start probe position to the back side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast Y- Probe) + G91 + F[#] + G38.2 y-[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Y# + F[#] + (return from sub) + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] Y[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Y- Probe) + G91 + F[#] + G38.2 Y-[# * 2] + # = #5062 + G90 + G1 F[#] Y[# + #] + o120 endif + + # = [#5062 - #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (output to gui DRO "Y PROBED POSITION") + #1007 = # + (DEBUG, EVAL[vcp.getWidget{"y_minus_probed_position"}.setValue{#1007}]) + +o endsub [#] + +M2 (end program) diff --git a/subroutines/probe_y_minus_wco.ngc b/subroutines/probe_y_minus_wco.ngc new file mode 100644 index 0000000..05dcea5 --- /dev/null +++ b/subroutines/probe_y_minus_wco.ngc @@ -0,0 +1,105 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Y Minus direction and set Y 0 in current WCO) +(Start probe position to the back side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast Y- Probe) + G91 + F[#] + G38.2 y-[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Y# + F[#] + M50 P1 + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] Y[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Y- Probe) + G91 + F[#] + G38.2 Y-[# * 2] + # = #5062 + G90 + G1 F[#] Y[# + #] + o120 endif + + # = [#5062 - #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (output to gui DRO "Y PROBED POSITION") + #1007 = # + (DEBUG, EVAL[vcp.getWidget{"y_minus_probed_position"}.setValue{#1007}]) + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_y_plus.ngc b/subroutines/probe_y_plus.ngc new file mode 100644 index 0000000..27bf62b --- /dev/null +++ b/subroutines/probe_y_plus.ngc @@ -0,0 +1,85 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Y plus direction to locate edge, end at clearance distance) +(Start probe position to the front side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + + (Cancel G92 offsets) + G92.1 + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast y+ Probe) + G91 + F[#] + G38.2 Y[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Y# + F[#] + (return from sub) + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] Y[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Y+ Probe) + G91 + F[#] + G38.2 Y[# * 2] + # = #5062 + G90 + G1 F[#] Y[# - #] + o120 endif + + # = [#5062 + #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (output to gui DRO "Y PROBED POSITION") + #1008 = # + (DEBUG, EVAL[vcp.getWidget{"y_plus_probed_position"}.setValue{#1008}]) + +o endsub [#] + +M2 (end program) diff --git a/subroutines/probe_y_plus_wco.ngc b/subroutines/probe_y_plus_wco.ngc new file mode 100644 index 0000000..9010b5e --- /dev/null +++ b/subroutines/probe_y_plus_wco.ngc @@ -0,0 +1,105 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Y plus direction and set Y 0 in current WCO) +(Start probe position to the front side edge of stock) +(inside the max xy distance with the probe tip below the stock top edge) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3018 (=0.5000) + # = #3019 (=0.1000) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3022 (=0.0000) + # = #3023 (=0.5000) + # = #3030 (=0) + # = #3032 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5202 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Probe Diameter) + # = #5410 + + (Probe Radius) + # = [# / 2] + + (Probe Centerline Offset) + # = [# - #] + + (Current Y Position including offsets in current program units) + # = #5421 + + (Initiate Fast y+ Probe) + G91 + F[#] + G38.2 Y[#] + # = #5062 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Y# + F[#] + M50 P1 + o return + o110 endif + + (Move to xy_clearance distance for slow probe) + G90 + G1 F[#] Y[# - #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Y+ Probe) + G91 + F[#] + G38.2 Y[# * 2] + # = #5062 + G90 + G1 F[#] Y[# - #] + o120 endif + + # = [#5062 + #] + + (defines the edge as y_probed_position for DRO reporting) + # = # + + (output to gui DRO "Y PROBED POSITION") + #1008 = # + (DEBUG, EVAL[vcp.getWidget{"y_plus_probed_position"}.setValue{#1008}]) + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Y Zero in selected WCO) + G10 L2 P#5220 Y[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/probe_z_minus_sub.ngc b/subroutines/probe_z_minus_sub.ngc new file mode 100644 index 0000000..4f1d041 --- /dev/null +++ b/subroutines/probe_z_minus_sub.ngc @@ -0,0 +1,84 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Z Minus direction and set Z 0 in current WCO) +(Start probe position is over stock within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + + (Cancel G92 offsets) + G92.1 + + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + o return + o100 endif + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Z# + F[#] + (return from sub) + o return + o110 endif + + (Move to z_clearance height for slow probe) + G90 + G1 F[#] Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 + G90 + G1 F[#] Z[# + #] + o120 endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (output to gui DRO "Z PROBED POSITION") + #1009 = # + (DEBUG, EVAL[vcp.getWidget{"z_minus_probed_position"}.setValue{#1009}]) + + # = [# + #] + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Z zero in selected WCO) + G10 L2 P#5220 Z[# + #] + o return + o130 endif + +o endsub [#] + +M2 (end program) diff --git a/subroutines/probe_z_minus_wco.ngc b/subroutines/probe_z_minus_wco.ngc new file mode 100644 index 0000000..6c302a5 --- /dev/null +++ b/subroutines/probe_z_minus_wco.ngc @@ -0,0 +1,91 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Probe Z Minus direction and set Z 0 in current WCO) +(Start probe position is over stock within max z distance) +(ensure all settings have been set properly according to help diagrams) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + # = #3014 (=99) + # = #3015 (=0) + # = #3016 (=10.0) + # = #3017 (=50) + # = #3020 (=0.5000) + # = #3021 (=0.1000) + # = #3030 (=0) + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + # = #[5203 + [20 * #5220]] + + (Probe Tool Safety Check) + o100 if [#5400 NE #] + (DEBUG, Specified probe tool %d# not in spindle, aborting) + M50 P1 + o return + o100 endif + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Z# + F[#] + (return from sub) + M50 P1 + o return + o110 endif + + (Move to z_clearance height for slow probe) + G90 + G1 F[#] Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 + G90 + G1 F[#] Z[# + #] + o120 endif + + (defines the edge as z_probed_position for DRO reporting) + # = # + + (output to gui DRO "Z PROBED POSITION") + #1009 = # + (DEBUG, EVAL[vcp.getWidget{"z_minus_probed_position"}.setValue{#1009}]) + + # = [# + #] + + (probe mode rule for WCO or probe position measuring only) + o130 if [# EQ 0] + (Record Z zero in selected WCO) + G10 L2 P#5220 Z[# + #] + o130 endif + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/program_coolant.ngc b/subroutines/program_coolant.ngc new file mode 100644 index 0000000..5e76d69 --- /dev/null +++ b/subroutines/program_coolant.ngc @@ -0,0 +1,45 @@ +(author: Chris P) +(version: 0.3) +(date: 06/27/24) + +(programmable coolant subroutine for aiming the coolant nozzle) +(settings for setup are displayed on probe basic setting page) +(in the programmable coolant constants container.) +(calculations assume coolant nozzle is located on the right side of the spindle) + + +o sub +(PRINT, o) + + # = #3000 + # = #3001 + # = #3002 + # = #3003 + + o100 if [# EQ 0] + o100 return + o100 endif + + # = #5403 + + # = #5410 + + # = [# / 2] + + # = [# - #] + + # = [[#] + [#]] + + # = [ATAN[#] / [#]] + + # = [[#] + [#]] + + #1000 = # + (DEBUG, EVAL[vcp.getWidget{"coolant_final_angle"}.setValue{#1000}]) + + M68 E0 Q[#] + + (PRINT, o endsub) +o endsub + +M2 (end program) diff --git a/subroutines/rack_id_calc.ngc b/subroutines/rack_id_calc.ngc new file mode 100644 index 0000000..3faf268 --- /dev/null +++ b/subroutines/rack_id_calc.ngc @@ -0,0 +1,139 @@ +(author: Chris P, Lcvette) +(version: 0.1) +(date: 02/8/25) + +(This sub will write user parameters to the var file and ui widgets) +(Determine ATC Rack Position, Pocket Order, and Clearance Direction) +(Requires Pockets to be aligned parallel with X or Y Axis Travels) + +o sub + + # = #1 (0) + # = #2 (0) + # = #3 (0) + # = #4 (0) + # = #5 (0) + # = #6 (0) + # = #7 (0) + # = #8 (0) + # = #9 (0) + # = #10 (0) + # = #11 (0) + # = #12 (0) + # = #13 (0) + # = #14 (0) + + #3974 = # + #3975 = # + #3976 = # + #3977 = # + #3978 = # + #3980 = # + #3981 = # + #3982 = # + #3983 = # + #3984 = # + #3985 = # + #3986 = # + #3987 = # + #3988 = # + + (Initialize ALL variables first) + #3979 = 0 + # = 0 + # = 0 + # = 0 + # = 0 + + (Pull ini pocket count and write to ui) + o100 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> + #3973 = # + (DEBUG, EVAL[vcp.getWidget{"rack_pocket_count"}.setValue{#3973}]) + o100 endif + + (Check for duplicate pocket positions) + o110 if [# EQ #] + o111 if [# EQ #] + (PRINT, "Error: Duplicate pocket positions detected!") + #3979 = 0 + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + o return + o111 endif + o110 endif + + (Check if row is parallel to the Y-axis) + o120 if [# EQ #] + (PRINT, "Row is parallel to Y-axis") + + (Determine pocket order) + o121 if [# GT #] + # = 1 (-Y to +Y) + o121 else + # = 2 (+Y to -Y) + o121 endif + + (Determine clearance direction - MUST be in X) + o122 if [# GT #] + # = 1 (+X) + o122 elseif [# LT #] + # = 2 (-X) + o122 else + (PRINT, "Error: Clearance direction must be perpendicular to pocket row!") + #3979 = 0 + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + o return + o122 endif + + (Assign rack_id - break down calculation steps) + # = [# - 1] + # = [# * 2] + # = [# + #] + # = # + #3979 = # + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + o return + o120 endif + + (Check if row is parallel to the X-axis) + o130 if [# EQ #] + (PRINT, "Row is parallel to X-axis") + + (Determine pocket order) + o131 if [# GT #] + # = 1 (-X to +X) + o131 else + # = 2 (+X to -X) + o131 endif + + (Determine clearance direction - MUST be in Y) + o132 if [# GT #] + # = 1 (+Y) + o132 elseif [# LT #] + # = 2 (-Y) + o132 else + (PRINT, "Error: Clearance direction must be perpendicular to pocket row!") + #3979 = 0 + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + o return + o132 endif + + (Assign rack_id - break down calculation steps) + # = [# - 1] + # = [# * 2] + # = [# + #] + # = [# + 4] + # = # + #3979 = # + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + o return + + o130 endif + + (MSG, "Error: No Conditions Met, Rack ID Not Set") + #3979 = 0 + (DEBUG, EVAL[vcp.getWidget{"atc_rack_id"}.setValue{#3979}]) + +o endsub + +M2 diff --git a/subroutines/reset_all_data.ngc b/subroutines/reset_all_data.ngc new file mode 100644 index 0000000..9b89dde --- /dev/null +++ b/subroutines/reset_all_data.ngc @@ -0,0 +1,41 @@ +o sub + +#1001 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1001}]) + +#1002 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1002}]) + +#1003 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1003}]) + +#1004 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1004}]) + +#1005 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_minus_probed_position"}.setValue{#1005}]) + +#1006 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_plus_probed_position"}.setValue{#1006}]) + +#1007 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_minus_probed_position"}.setValue{#1007}]) + +#1008 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_plus_probed_position"}.setValue{#1008}]) + +#1009 = 0 +(DEBUG, EVAL[vcp.getWidget{"z_minus_probed_position"}.setValue{#1009}]) + +#1010 = 0 +(DEBUG, EVAL[vcp.getWidget{"averaged_diam"}.setValue{#1010}]) + +#1011 = 0 +(DEBUG, EVAL[vcp.getWidget{"edge_delta"}.setValue{#1011}]) + +#1012 = 0 +(DEBUG, EVAL[vcp.getWidget{"edge_angle"}.setValue{#1012}]) + +o endsub + +M2 (end program) diff --git a/subroutines/retractatc.ngc b/subroutines/retractatc.ngc new file mode 100644 index 0000000..f9d400f --- /dev/null +++ b/subroutines/retractatc.ngc @@ -0,0 +1,15 @@ +o sub + +M65 P0 ; Turn off carousel out solenoid +M64 P1 ; Move Carousel IN + +M66 P0 L3 Q5 ; check carousel in position sensor +o100 if [#5399 LT 0] + M65 P1 ; turn off the solenoid to send atc home + (abort, Failed to send carousel home) ; abort if the sensor does not activate in 5 seconds +o100 endif +M65 P1 + +o endsub [1] + +M2 diff --git a/subroutines/set_g30_position.ngc b/subroutines/set_g30_position.ngc new file mode 100644 index 0000000..036d83b --- /dev/null +++ b/subroutines/set_g30_position.ngc @@ -0,0 +1,19 @@ +o sub + +o100 if [1 EQ 1] + (G30.1 records the tool touch off position in the var file) + G30.1 +o100 endif + +#1000 = #5181 +(DEBUG, EVAL[vcp.getWidget{"x_tool_change_position"}.setValue{#1000}]) + +#1001 = #5182 +(DEBUG, EVAL[vcp.getWidget{"y_tool_change_position"}.setValue{#1001}]) + +#1002 = #5183 +(DEBUG, EVAL[vcp.getWidget{"z_tool_change_position"}.setValue{#1002}]) + +o endsub + +M2 diff --git a/subroutines/store_tool_in_carousel.ngc b/subroutines/store_tool_in_carousel.ngc new file mode 100644 index 0000000..b66b45b --- /dev/null +++ b/subroutines/store_tool_in_carousel.ngc @@ -0,0 +1,16 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(store spindle tool in carousel macro) + +o sub +(PRINT, o) + +G49 + +T0 M6 + +o endsub + +M2 (end program) diff --git a/subroutines/surface_scan_param_update.ngc b/subroutines/surface_scan_param_update.ngc new file mode 100644 index 0000000..6f12eb5 --- /dev/null +++ b/subroutines/surface_scan_param_update.ngc @@ -0,0 +1,21 @@ +o sub + + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + + #3050 = # + + #3051 = # + + #3052 = # + + #3053 = # + + #3054 = # + +o endsub [1] + +M2 diff --git a/subroutines/surface_test.ngc b/subroutines/surface_test.ngc new file mode 100644 index 0000000..a49fae1 --- /dev/null +++ b/subroutines/surface_test.ngc @@ -0,0 +1,44 @@ +o sub + ;(MSG, SURFACE_TEST.NGC) + M64 P0 (turn off compensation) + ;T1 M6 (Install probe) + # = #3050 ;(debug, x0: [#]) + # = #3051 ;(debug, y0: [#]) + # = #3052 ;(debug, height: [#]) + # = #3053 ;(debug, width: [#]) + # = #3054 ;(debug, step: [#]) + # = #3055 ;(debug, search_feed: [#]) + # = #3056 ;(debug, latch_feed: [#]) + # = #3057 ;(debug, safe_z: [#]) + # = #3058 ;(debug, search_z: [#]) + + ;(PROBEOPEN filename.txt) + + G0 Z# + # = # + o101 while [# LT #+#] + # = # + o102 while [# LE #+#] + G0 X# Y# + G38.2 Z# F# + G0 Z# + # = [#+#] + o102 endwhile + + # = [#+#] + # = [#+#] + + o103 while [# GE #] + G0 X# Y# + G38.2 Z# F# + G0 Z# + # = [#-#] + o103 endwhile + + # = [#+#] + o101 endwhile + + ;(PROBECLOSE) +o endsub + +M2 diff --git a/subroutines/tool_setter_param_update.ngc b/subroutines/tool_setter_param_update.ngc new file mode 100644 index 0000000..c73d799 --- /dev/null +++ b/subroutines/tool_setter_param_update.ngc @@ -0,0 +1,45 @@ +o sub + + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + # = #8 + # = #9 + # = #10 + # = #11 + # = #12 + # = #13 + + #3004 = # + + #3005 = # + + #3006 = # + + #3007 = # + + #3008 = # + + #3009 = # + + #3010 = # + + #3011 = # + + #3012 = # + + #3013 = # + + #3037 = # + + #3038 = # + + #3039 = # + +o endsub [1] + +M2 diff --git a/subroutines/tool_touch_off.ngc b/subroutines/tool_touch_off.ngc new file mode 100644 index 0000000..5746059 --- /dev/null +++ b/subroutines/tool_touch_off.ngc @@ -0,0 +1,101 @@ +(author: Chris P, TooTall18) +(version: 0.2) +(date: 06/27/24) + +o sub + +# = #3004 (set from probe screen fast probe feed rate) +# = #3005 (set from probe screen slow probe feedrate) +# = #3006 (set from probe screen traverse probe feedrate) +# = #3007 (max z distance the tool travels before erroring out if not contact is made) +# = #3008 (max xy distance the tool travels before erroring out if not contact is made) +# = #3009 (distance the tool retracts after making contact during fast feed mode) +# = #3010 (G53 distance from home to spindle nose triggering point on touch plate) +# = #3011 (activates the tool diameter probe subroutine section) +# = #3012 (activates the tool diameter offset position for probe subroutine section) +# = #3013 (sets tool setter offset direction to move tool) +# = #5410 (current tool's diameter used for offseting probe position in x axis) + +G92.1 (Cancel G92 offset) +M50 P0 + +# = #5181 +# = #5182 +# = #5183 + +# = [# / 2] +# = [# - #] +# = [# + #] +# = [# - #] +# = [# + #] + +o100 if [# EQ 1] + o101 if [# EQ 0] + # = # + o101 else if [# EQ 1] + # = # + o101 else if [# EQ 2] + # = # + o101 else if [# EQ 3] + # = # + o101 endif +o100 endif + +o110 if [2 EQ 2] + G49 +o110 endif + +G90 (set absolute coordinates) +G53 G1 F[#] Z0 (move to z0 home position) +G53 G1 F[#] X# Y# +G53 G1 F[#] Z# + +# = #5422 ;Stores the offset of the current Z coordinate. + +G91 +F # +G38.2 Z-[#] (fast tool probe) +# = #5063 (save probe result of fast probe to parameters) +G1 F[#] Z[#] (retract tool retract distance amount) + +(Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) +o120 if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] (set probe slow feedrate) + G38.2 Z-[# * 2] (slow tool probe) + # = #5063 + G90 + G1 F[#] Z[# + #] +o120 endif + +o130 if [#5070 EQ 1] (verify probe event was succesful) + # = #5063 (save slow probe result to parameters) +o130 else + (DEBUG,Tool Length Offset Probe Failed) +o130 endif + +(Tool Diameter Probe Mode Section, User must define this section as needed) +o140 if [# EQ 1] + (DEBUG, Tool Diameter Probing is Not Defined in Subroutine) +o140 endif + +o150 if [3 EQ 3] + G49 +o150 endif + +G90 (set absolute coordinates) +G53 G1 F[#] Z0 (Send Spindle to home zero position) + +(define new tool length offset parameters) +# = [ABS[# + #5063 - #]] + +G10 L1 P #5400 Z [#] (5400 = tool number) + +T #5400 G43 H #5400 (enable tool length offset) + +M50 P1 (reinstate feedrate override) + +o endsub + +M2 (end program) diff --git a/subroutines/toolchange.ngc b/subroutines/toolchange.ngc new file mode 100644 index 0000000..5940c12 --- /dev/null +++ b/subroutines/toolchange.ngc @@ -0,0 +1,137 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +o sub + +; Parameter #3989 is used to track if the carousel is homed (M13) (volatile) +; Parameter #3990 is used to track the current tool pocket (persistently) +; Parameter #3991 is used to track the current tool loaded it in the spindle (persistently) +; Parameters #4001 to #4024 are used to track which tool is in which pocket (persistently) +; Parameter #4000 is not populated just used in the maths to calculate the above numbers +; #: The number of pockets the ATC platter has, This is user set in the INI file via #<_ini[atc]pockets> +; # The Z height your spindle needs to be at to clamp/unclamp a tool from the ATC platter (Set via INI [ATC]Z_TOOL_CHANGE_HEIGHT) +; # The Z clearance height in machine coordinates that your spindle needs to be at to clear the tools during carousel rotation (Set via INI [ATC]Z_TOOL_CLEARANCE_HEIGHT) + +(PRINT, o selected_tool: #, tool_in_spindle: #, selected_pocket: #, current_pocket: #, task: #<_task>) + +o100 if [#<_task> EQ 0] + (DEBUG, Task is null) + o return [999] +o100 endif (this code eliminates tool missing error on load for multiple use tools) + +; default to a 12 pocket ATC (matching DynATC Widget behaviour), then update based on INI settings +# = 12 +o110 if [EXISTS[#<_ini[atc]pockets>]] + # = #<_ini[atc]pockets> +o110 endif + +# = -3.9000 +o120 if [EXISTS[#<_ini[atc]z_tool_change_height>]] + # = #<_ini[atc]z_tool_change_height> +o120 endif +# = [#<_ini[AXIS_Z]MAX_LIMIT>-0.01] +o130 if [EXISTS[#<_ini[atc]z_tool_clearance_height>]] + # = #<_ini[atc]z_tool_clearance_height> +o130 endif + +; assign the variables passed by M6 change_prolog to some parameters +#100 = # +#110 = # +#120 = # +#121 = # +; NOTE: +; The legacy names *selected_pocket* and *current_pocket* actually reference +; a sequential tooldata index for tool items loaded from a tool +; table ([EMCIO]TOOL_TABLE) or via a tooldata database ([EMCIO]DB_PROGRAM) +; see Linuxcnc docs for further information on how these are used + +o140 if [# EQ #] ; checks if tool in the spindle is same as requested + (PRINT, Requested tool already in spindle) + (PRINT, o endsub) + o endsub [1] + M2 +o140 endif + +o150 if [#3991 NE #] + (PRINT, o tool_in_spindle does not match 3991) +o150 endif + +# = 0 ; assigns 0 to the next pocket for a later check if the tool is found in the carousel +# = 0 +#130 = # ; assign test parameter the number of pockets in the carousel + +o160 do + o161 if [#[4000 + #130] EQ #] ; checks all pockets to see if it contains tool number requested as the new tool + # = #130 ; if tool is found in pocket, assigns the next pocket + o161 endif + o162 if [#[4000 + #130] EQ 0] ; checks if the pocket is empty, last pocket checked will be the lowest empty pocket number, for putting tool in spindle away. + # = #130 + o162 endif + #130 = [#130 - 1] +o160 while [#130 GT 0] +o170 if [# EQ 0] ; if tool is not found, aborts and sends a message + (abort, Tool T%d# not found in carousel) +o170 endif + +; now we know which pocket the next tool is sitting in +; we need to know if we need to put a tool away +; or if there is not tool in the spindle + +o180 if [# GT 0] ; checks if there is a valid tool in the spindle + o181 if [# EQ 0] ; If there is a tool in the spindle, checks if there is an open pocket + (abort, Carousel is full, cant put away tool T# in into carousel) + o181 endif + M10 P[#] ; move carousel to an open pocket + M21 ; puts the tool in spindle away into the open pocket + (DEBUG, EVAL[vcp.getWidget{"dynatc"}.store_tool{#, #}]) + #140 = # + #[4000 + #140] = # ; save tool number in pocket + #3991 = 0 ; empty tool in the spindle + M61 Q0 + G49 +o180 endif + +G90 +G0 G53 Z# ; move z to clear height + +o190 if [# GT 0] ; selected tool is not tool0 + M10 P# ; set the carousel to move to the right pocket for the selected tool + M65 P1 + M64 P0 + M66 P1 L3 Q5 ; check carousel out position sensor + o191 if [#5399 LT 0] + M65 P0 ; turn off the solenoid to send atc to tool change + (abort, Failed to send carousel home) ; abort if the sensor does not activate in 5 seconds + o191 endif + M65 P0 + + (DEBUG, EVAL[vcp.getWidget{"dynatc"}.store_tool{#, 0}]) + M22 ; Carousel out + #150 = # + #[4000 + #150] = 0 ; empty the pocket + #3991 = # ; Set persistent variable to remember tool in spindle after power cycle +o190 else + M65 P2 ; deactive drawbar + M65 P0 ; make sure ATC out solenoid is off + M64 P1 ; move carousel home + M66 P0 L3 Q4 ; check carousel in position sensor + o192 if [#5399 LT 0] + M65 P1 ; turn off the solenoid to send atc home + (abort, Failed to send carousel home) ; abort if the sensor does not activate in 5 seconds + o192 endif + M65 P1 +o190 endif + +M61 Q# + +o200 if [1 EQ 1] + G43 H# +o200 endif + +o call + +(PRINT, o endsub) +o endsub [1] + +M2 diff --git a/subroutines/toolsetter_wco.ngc b/subroutines/toolsetter_wco.ngc new file mode 100644 index 0000000..dc6b0c9 --- /dev/null +++ b/subroutines/toolsetter_wco.ngc @@ -0,0 +1,95 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +(Measure tool and set Z 0.000 in current WCO for new tool) + +o sub + + (uses NGCGUI style arg spec) + (number after "=" in comment is default value) + + # = #3004 (set from probe screen fast probe feed rate) + # = #3005 (set from probe screen slow probe feedrate) + # = #3006 (set from probe screen traverse probe feedrate) + # = #3007 (max z distance the tool travels before erroring out if not contact is made) + # = #3008 (max xy distance the tool travels before erroring out if not contact is made) + # = #3009 (distance the tool retracts after making contact during fast feed mode) + # = #3010 (G53 distance from home to spindle nose triggering point on touch plate) + # = #3011 (activates the tool diameter probe subroutine section) + # = #3012 (activates the tool diameter offset position for probe subroutine section) + # = #5410 (current tool's diameter used for offseting probe position in x axis) + + (start with an m6, do all the standard m6 stuff and then touch off -TMC) + M6 + + (Cancel G92 offsets) + G92.1 + + (Cancel Feedrate Override) + M50 P0 + + o100 if [2 EQ 2] + G49 + o100 endif + + G90 (set absolute coordinates) + G53 G1 F[#] Z0 (move to z0 home position) + G53 G1 F[#] X# Y# + + # = #[5203 + [20 * #5220]] + + (Current Z Position including offsets in current program units) + # = #5422 + + (Initial Fast Z- Probe) + G91 + F[#] + G38.2 Z-[#] + # = #5063 + + (Probe Error check, #5070 will be 0 if failed) + o110 if [#5070 EQ 0] + (back to start point and feed) + G90 + G1 F[#] Z# + F[#] + (return from sub) + M50 P1 + o return + o110 endif + + (Move to z_clearance height for slow probe) + G90 + G1 F[#] Z[# + #] + + (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed) + o120 if [# GT 0] + (Initiate Slow Z- Probe) + G91 + F[#] + G38.2 Z-[# * 2] + # = #5063 + G90 + G1 F[#] Z[# + #] + o120 endif + + # = [# + #] + + # = [# - #] + + (Record Z zero in selected WCO) + G10 L2 P#5220 Z[# + #] + + (Move to Toolset location) + G53 G1 F[#] X# Y# + + (pause for dust boot) + M0 (replace the dust boot) + + (Reinstate Feedrate Override) + M50 P1 + +o endsub + +M2 (end program) diff --git a/subroutines/touch_probe_param_update.ngc b/subroutines/touch_probe_param_update.ngc new file mode 100644 index 0000000..f8c60f8 --- /dev/null +++ b/subroutines/touch_probe_param_update.ngc @@ -0,0 +1,75 @@ +o sub + + # = #1 + # = #2 + # = #3 + # = #4 + # = #5 + # = #6 + # = #7 + # = #8 + # = #9 + # = #10 + # = #11 + # = #12 + # = #13 + # = #14 + # = #15 + # = #16 + # = #17 + # = #18 + # = #19 + # = #20 + # = #21 + # = #22 + # = #23 + + #3014 = # + + #3015 = # + + #3016 = # + + #3017 = # + + #3018 = # + + #3019 = # + + #3020 = # + + #3021 = # + + #3022 = # + + #3023 = # + + #3024 = # + + #3025 = # + + #3026 = # + + #3027 = # + + #3028 = # + + #3029 = # + + #3030 = # + + #3031 = # + + #3032 = # + + #3033 = # + + #3034 = # + + #3035 = # + + #3036 = # + +o endsub [1] + +M2 diff --git a/subroutines/unclamptool.ngc b/subroutines/unclamptool.ngc new file mode 100644 index 0000000..ac9c379 --- /dev/null +++ b/subroutines/unclamptool.ngc @@ -0,0 +1,12 @@ +o sub + +M64 P2 ; unclamp the tool + +M66 P2 L3 Q2 ; check the unclamped tool sensor +o100 if [#5399 LT 0] + (abort, Failed to release tool) ; abort if the sensor does not activate in 2 seconds +o100 endif + +o endsub [1] + +M2 diff --git a/subroutines/unload_spindle.ngc b/subroutines/unload_spindle.ngc new file mode 100644 index 0000000..f3a8bf4 --- /dev/null +++ b/subroutines/unload_spindle.ngc @@ -0,0 +1,17 @@ +(author: Chris P) +(version: 0.1) +(date: 04/20/24) + +(unloads tool in spindle in software) +; This is called form the ATC and tool pages + +o sub +(PRINT, o) + +M61 Q0 +G49 +#3991 = 0 + +o endsub + +M2 (end program) diff --git a/subroutines/update_programmable_coolant_params.ngc b/subroutines/update_programmable_coolant_params.ngc new file mode 100644 index 0000000..9702fd7 --- /dev/null +++ b/subroutines/update_programmable_coolant_params.ngc @@ -0,0 +1,22 @@ +(author: Chris P) +(version: 0.2) +(date: 06/27/24) + +o sub + + # = #1 + # = #2 + # = #3 + # = #4 + + #3000 = # + + #3001 = # + + #3002 = # + + #3003 = # + +o endsub [1] + +M2 diff --git a/subroutines/x_data_reset.ngc b/subroutines/x_data_reset.ngc new file mode 100644 index 0000000..39bec9b --- /dev/null +++ b/subroutines/x_data_reset.ngc @@ -0,0 +1,17 @@ +o sub + +#1001 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_center_probed"}.setValue{#1001}]) + +#1002 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_probed_width"}.setValue{#1002}]) + +#1005 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_minus_probed_position"}.setValue{#1005}]) + +#1006 = 0 +(DEBUG, EVAL[vcp.getWidget{"x_plus_probed_position"}.setValue{#1006}]) + +o endsub + +M2 (end program) diff --git a/subroutines/y_data_reset.ngc b/subroutines/y_data_reset.ngc new file mode 100644 index 0000000..093d30d --- /dev/null +++ b/subroutines/y_data_reset.ngc @@ -0,0 +1,17 @@ +o sub + +#1003 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_center_probed"}.setValue{#1003}]) + +#1004 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_probed_width"}.setValue{#1004}]) + +#1007 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_minus_probed_position"}.setValue{#1007}]) + +#1008 = 0 +(DEBUG, EVAL[vcp.getWidget{"y_plus_probed_position"}.setValue{#1008}]) + +o endsub + +M2 (end program) diff --git a/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.py b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.py new file mode 100644 index 0000000..a94238f --- /dev/null +++ b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserAtcButton(QWidget): + def __init__(self, parent=None): + super(UserAtcButton, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.ui b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.ui new file mode 100644 index 0000000..c61c896 --- /dev/null +++ b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.ui @@ -0,0 +1,868 @@ + + + USER_ATC_BUTTONS + + + + 0 + 0 + 299 + 508 + + + + + 0 + 0 + + + + User Atc Buttons + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 300 + 0 + + + + + 300 + 16777215 + + + + .QWidget { + background-color: rgb(51, 57, 59); + border-style: solid; + border-color: rgb(186, 189, 182); + border-width: 2px; + border-radius: 6px; +} + + + + 16 + + + 20 + + + 18 + + + 20 + + + 21 + + + + + 15 + + + QLayout::SetFixedSize + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + true + + + false + + + Qt::NoFocus + + + M11P1 User Defined Macro Call from Subroutine Folder + + + -1 + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ATC REV + + + + :/images/ccw_arrow.png:/images/ccw_arrow.png + + + + 20 + 20 + + + + M12P1 + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M12 P1 User Defined Macro Call from Subroutine Folder + + + Qt::RightToLeft + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ATC FWD + + + + :/images/cw_arrow.png:/images/cw_arrow.png + + + + 20 + 20 + + + + M11P1 + + + + + + + + + 15 + + + QLayout::SetFixedSize + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::LeftToRight + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + ATC RETRACT + + + + :/images/left_arrow.png:/images/left_arrow.png + + + + 20 + 20 + + + + retractatc.ngc + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::RightToLeft + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + ATC EXTEND + + + + :/images/right_arrow.png:/images/right_arrow.png + + + + 20 + 20 + + + + extendatc.ngc + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + CLAMP TOOL + + + clamptool.ngc + + + + + + + true + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + RELEASE TOOL + + + [{"name": "New Rule", "property": "Enable", "expression": "not ch[0]", "channels": [{"url": "status:spindle.0.enabled", "trigger": true}]}] + + + unclamptool.ngc + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + ORIENT SPINDLE + + + true + + + orientspindle.ngc + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M112 User Defined Macro Call from Subroutine Folder + + + Qt::RightToLeft + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + UNLOCK SPINDLE + + + + 20 + 20 + + + + M5 + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + MOVE HEAD ABOVE CAROUSEL + + + move_head_above_carousel.ngc + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + MOVE TOOL TO CAROUSEL HEIGHT + + + move_tool_to_carousel_height.ngc + + + + + + + + + + 0 + 0 + + + + Qt::AlignCenter + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 125 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M13 User Defined Macro Call from Subroutine Folder + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + REF CAROUSEL + + + + 20 + 20 + + + + M13 + + + + + + + + + + + + + SubCallButton + QPushButton +

qtpyvcp.widgets.button_widgets.subcall_button
+ + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + + + + + diff --git a/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons_ui.py b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons_ui.py new file mode 100644 index 0000000..4d2f4e1 --- /dev/null +++ b/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons_ui.py @@ -0,0 +1,445 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_atc_buttons/template_user_atc_buttons/template_user_atc_buttons.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_USER_ATC_BUTTONS(object): + def setupUi(self, USER_ATC_BUTTONS): + USER_ATC_BUTTONS.setObjectName("USER_ATC_BUTTONS") + USER_ATC_BUTTONS.resize(299, 508) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(USER_ATC_BUTTONS.sizePolicy().hasHeightForWidth()) + USER_ATC_BUTTONS.setSizePolicy(sizePolicy) + USER_ATC_BUTTONS.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(USER_ATC_BUTTONS) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.widget_64 = QtWidgets.QWidget(USER_ATC_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.widget_64.sizePolicy().hasHeightForWidth()) + self.widget_64.setSizePolicy(sizePolicy) + self.widget_64.setMinimumSize(QtCore.QSize(300, 0)) + self.widget_64.setMaximumSize(QtCore.QSize(300, 16777215)) + self.widget_64.setStyleSheet(".QWidget {\n" +" background-color: rgb(51, 57, 59);\n" +" border-style: solid;\n" +" border-color: rgb(186, 189, 182);\n" +" border-width: 2px;\n" +" border-radius: 6px;\n" +"}") + self.widget_64.setObjectName("widget_64") + self.verticalLayout_66 = QtWidgets.QVBoxLayout(self.widget_64) + self.verticalLayout_66.setContentsMargins(20, 18, 20, 21) + self.verticalLayout_66.setSpacing(16) + self.verticalLayout_66.setObjectName("verticalLayout_66") + self.horizontalLayout_115 = QtWidgets.QHBoxLayout() + self.horizontalLayout_115.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) + self.horizontalLayout_115.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_115.setSpacing(15) + self.horizontalLayout_115.setObjectName("horizontalLayout_115") + self.atc_rev_button = MDIButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.atc_rev_button.sizePolicy().hasHeightForWidth()) + self.atc_rev_button.setSizePolicy(sizePolicy) + self.atc_rev_button.setMinimumSize(QtCore.QSize(120, 45)) + self.atc_rev_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.atc_rev_button.setMouseTracking(True) + self.atc_rev_button.setTabletTracking(False) + self.atc_rev_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.atc_rev_button.setToolTipDuration(-1) + self.atc_rev_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/ccw_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.atc_rev_button.setIcon(icon) + self.atc_rev_button.setIconSize(QtCore.QSize(20, 20)) + self.atc_rev_button.setObjectName("atc_rev_button") + self.horizontalLayout_115.addWidget(self.atc_rev_button) + self.atc_fwd_button = MDIButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.atc_fwd_button.sizePolicy().hasHeightForWidth()) + self.atc_fwd_button.setSizePolicy(sizePolicy) + self.atc_fwd_button.setMinimumSize(QtCore.QSize(120, 45)) + self.atc_fwd_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.atc_fwd_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.atc_fwd_button.setLayoutDirection(QtCore.Qt.RightToLeft) + self.atc_fwd_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/images/cw_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.atc_fwd_button.setIcon(icon1) + self.atc_fwd_button.setIconSize(QtCore.QSize(20, 20)) + self.atc_fwd_button.setObjectName("atc_fwd_button") + self.horizontalLayout_115.addWidget(self.atc_fwd_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_115) + self.horizontalLayout_116 = QtWidgets.QHBoxLayout() + self.horizontalLayout_116.setSizeConstraint(QtWidgets.QLayout.SetFixedSize) + self.horizontalLayout_116.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_116.setSpacing(15) + self.horizontalLayout_116.setObjectName("horizontalLayout_116") + self.atc_retract_button = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.atc_retract_button.sizePolicy().hasHeightForWidth()) + self.atc_retract_button.setSizePolicy(sizePolicy) + self.atc_retract_button.setMinimumSize(QtCore.QSize(120, 45)) + self.atc_retract_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.atc_retract_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.atc_retract_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(":/images/left_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.atc_retract_button.setIcon(icon2) + self.atc_retract_button.setIconSize(QtCore.QSize(20, 20)) + self.atc_retract_button.setObjectName("atc_retract_button") + self.horizontalLayout_116.addWidget(self.atc_retract_button) + self.atc_extend_button = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.atc_extend_button.sizePolicy().hasHeightForWidth()) + self.atc_extend_button.setSizePolicy(sizePolicy) + self.atc_extend_button.setMinimumSize(QtCore.QSize(120, 45)) + self.atc_extend_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.atc_extend_button.setLayoutDirection(QtCore.Qt.RightToLeft) + self.atc_extend_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(":/images/right_arrow.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.atc_extend_button.setIcon(icon3) + self.atc_extend_button.setIconSize(QtCore.QSize(20, 20)) + self.atc_extend_button.setObjectName("atc_extend_button") + self.horizontalLayout_116.addWidget(self.atc_extend_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_116) + self.horizontalLayout_117 = QtWidgets.QHBoxLayout() + self.horizontalLayout_117.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_117.setSpacing(15) + self.horizontalLayout_117.setObjectName("horizontalLayout_117") + self.clamp_tool_button = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.clamp_tool_button.sizePolicy().hasHeightForWidth()) + self.clamp_tool_button.setSizePolicy(sizePolicy) + self.clamp_tool_button.setMinimumSize(QtCore.QSize(120, 45)) + self.clamp_tool_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.clamp_tool_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.clamp_tool_button.setObjectName("clamp_tool_button") + self.horizontalLayout_117.addWidget(self.clamp_tool_button) + self.release_tool_button = SubCallButton(self.widget_64) + self.release_tool_button.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.release_tool_button.sizePolicy().hasHeightForWidth()) + self.release_tool_button.setSizePolicy(sizePolicy) + self.release_tool_button.setMinimumSize(QtCore.QSize(120, 45)) + self.release_tool_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.release_tool_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.release_tool_button.setObjectName("release_tool_button") + self.horizontalLayout_117.addWidget(self.release_tool_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_117) + self.horizontalLayout_152 = QtWidgets.QHBoxLayout() + self.horizontalLayout_152.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_152.setSpacing(15) + self.horizontalLayout_152.setObjectName("horizontalLayout_152") + self.spindle_orientation = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.spindle_orientation.sizePolicy().hasHeightForWidth()) + self.spindle_orientation.setSizePolicy(sizePolicy) + self.spindle_orientation.setMinimumSize(QtCore.QSize(120, 45)) + self.spindle_orientation.setMaximumSize(QtCore.QSize(16777215, 45)) + self.spindle_orientation.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.spindle_orientation.setCheckable(True) + self.spindle_orientation.setObjectName("spindle_orientation") + self.horizontalLayout_152.addWidget(self.spindle_orientation) + self.unlock_spindle = MDIButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.unlock_spindle.sizePolicy().hasHeightForWidth()) + self.unlock_spindle.setSizePolicy(sizePolicy) + self.unlock_spindle.setMinimumSize(QtCore.QSize(120, 45)) + self.unlock_spindle.setMaximumSize(QtCore.QSize(16777215, 45)) + self.unlock_spindle.setFocusPolicy(QtCore.Qt.NoFocus) + self.unlock_spindle.setLayoutDirection(QtCore.Qt.RightToLeft) + self.unlock_spindle.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.unlock_spindle.setIconSize(QtCore.QSize(20, 20)) + self.unlock_spindle.setObjectName("unlock_spindle") + self.horizontalLayout_152.addWidget(self.unlock_spindle) + self.verticalLayout_66.addLayout(self.horizontalLayout_152) + self.horizontalLayout_174 = QtWidgets.QHBoxLayout() + self.horizontalLayout_174.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_174.setSpacing(15) + self.horizontalLayout_174.setObjectName("horizontalLayout_174") + self.move_head_above_carousel_button = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.move_head_above_carousel_button.sizePolicy().hasHeightForWidth()) + self.move_head_above_carousel_button.setSizePolicy(sizePolicy) + self.move_head_above_carousel_button.setMinimumSize(QtCore.QSize(120, 45)) + self.move_head_above_carousel_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.move_head_above_carousel_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.move_head_above_carousel_button.setObjectName("move_head_above_carousel_button") + self.horizontalLayout_174.addWidget(self.move_head_above_carousel_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_174) + self.horizontalLayout_118 = QtWidgets.QHBoxLayout() + self.horizontalLayout_118.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_118.setSpacing(15) + self.horizontalLayout_118.setObjectName("horizontalLayout_118") + self.move_tool_to_carousel_height_button = SubCallButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.move_tool_to_carousel_height_button.sizePolicy().hasHeightForWidth()) + self.move_tool_to_carousel_height_button.setSizePolicy(sizePolicy) + self.move_tool_to_carousel_height_button.setMinimumSize(QtCore.QSize(120, 45)) + self.move_tool_to_carousel_height_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.move_tool_to_carousel_height_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.move_tool_to_carousel_height_button.setObjectName("move_tool_to_carousel_height_button") + self.horizontalLayout_118.addWidget(self.move_tool_to_carousel_height_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_118) + self.label_20 = QtWidgets.QLabel(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_20.sizePolicy().hasHeightForWidth()) + self.label_20.setSizePolicy(sizePolicy) + self.label_20.setAlignment(QtCore.Qt.AlignCenter) + self.label_20.setObjectName("label_20") + self.verticalLayout_66.addWidget(self.label_20) + self.horizontalLayout_119 = QtWidgets.QHBoxLayout() + self.horizontalLayout_119.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_119.setSpacing(15) + self.horizontalLayout_119.setObjectName("horizontalLayout_119") + self.reference_carousel = MDIButton(self.widget_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.reference_carousel.sizePolicy().hasHeightForWidth()) + self.reference_carousel.setSizePolicy(sizePolicy) + self.reference_carousel.setMinimumSize(QtCore.QSize(125, 45)) + self.reference_carousel.setMaximumSize(QtCore.QSize(16777215, 45)) + self.reference_carousel.setFocusPolicy(QtCore.Qt.NoFocus) + self.reference_carousel.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.reference_carousel.setIconSize(QtCore.QSize(20, 20)) + self.reference_carousel.setObjectName("reference_carousel") + self.horizontalLayout_119.addWidget(self.reference_carousel) + self.verticalLayout_66.addLayout(self.horizontalLayout_119) + self.verticalLayout.addWidget(self.widget_64) + + self.retranslateUi(USER_ATC_BUTTONS) + QtCore.QMetaObject.connectSlotsByName(USER_ATC_BUTTONS) + + def retranslateUi(self, USER_ATC_BUTTONS): + _translate = QtCore.QCoreApplication.translate + USER_ATC_BUTTONS.setWindowTitle(_translate("USER_ATC_BUTTONS", "User Atc Buttons")) + self.atc_rev_button.setToolTip(_translate("USER_ATC_BUTTONS", "M11P1 User Defined Macro Call from Subroutine Folder")) + self.atc_rev_button.setText(_translate("USER_ATC_BUTTONS", " ATC REV")) + self.atc_rev_button.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M12P1")) + self.atc_fwd_button.setToolTip(_translate("USER_ATC_BUTTONS", "M12 P1 User Defined Macro Call from Subroutine Folder")) + self.atc_fwd_button.setText(_translate("USER_ATC_BUTTONS", " ATC FWD ")) + self.atc_fwd_button.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M11P1")) + self.atc_retract_button.setText(_translate("USER_ATC_BUTTONS", " ATC RETRACT")) + self.atc_retract_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "retractatc.ngc")) + self.atc_extend_button.setText(_translate("USER_ATC_BUTTONS", "ATC EXTEND ")) + self.atc_extend_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "extendatc.ngc")) + self.clamp_tool_button.setText(_translate("USER_ATC_BUTTONS", "CLAMP TOOL")) + self.clamp_tool_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "clamptool.ngc")) + self.release_tool_button.setText(_translate("USER_ATC_BUTTONS", "RELEASE TOOL")) + self.release_tool_button.setProperty("rules", _translate("USER_ATC_BUTTONS", "[{\"name\": \"New Rule\", \"property\": \"Enable\", \"expression\": \"not ch[0]\", \"channels\": [{\"url\": \"status:spindle.0.enabled\", \"trigger\": true}]}]")) + self.release_tool_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "unclamptool.ngc")) + self.spindle_orientation.setText(_translate("USER_ATC_BUTTONS", "ORIENT SPINDLE")) + self.spindle_orientation.setProperty("filename", _translate("USER_ATC_BUTTONS", "orientspindle.ngc")) + self.unlock_spindle.setToolTip(_translate("USER_ATC_BUTTONS", "M112 User Defined Macro Call from Subroutine Folder")) + self.unlock_spindle.setText(_translate("USER_ATC_BUTTONS", "UNLOCK SPINDLE")) + self.unlock_spindle.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M5")) + self.move_head_above_carousel_button.setText(_translate("USER_ATC_BUTTONS", "MOVE HEAD ABOVE CAROUSEL")) + self.move_head_above_carousel_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "move_head_above_carousel.ngc")) + self.move_tool_to_carousel_height_button.setText(_translate("USER_ATC_BUTTONS", "MOVE TOOL TO CAROUSEL HEIGHT")) + self.move_tool_to_carousel_height_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "move_tool_to_carousel_height.ngc")) + self.reference_carousel.setToolTip(_translate("USER_ATC_BUTTONS", "M13 User Defined Macro Call from Subroutine Folder")) + self.reference_carousel.setText(_translate("USER_ATC_BUTTONS", "REF CAROUSEL")) + self.reference_carousel.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M13")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.button_widgets.subcall_button import SubCallButton +import probe_basic_rc diff --git a/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.py b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.py new file mode 100644 index 0000000..47dec90 --- /dev/null +++ b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserRackAtcButton(QWidget): + def __init__(self, parent=None): + super(UserRackAtcButton, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.ui b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.ui new file mode 100644 index 0000000..43e38bc --- /dev/null +++ b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.ui @@ -0,0 +1,699 @@ + + + USER_ATC_BUTTONS + + + + 0 + 0 + 300 + 429 + + + + + 0 + 0 + + + + User Atc Buttons + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 300 + 16777215 + + + + + + + + 16 + + + 20 + + + 18 + + + 20 + + + 18 + + + + + true + + + + 0 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: solid; + border-color: rgb(176, 179, 172); + border-width: 2px; + border-radius: 5px; + color: white; + background: rgb(90, 90, 90); + font: 16pt "Bebas Kai"; +} + + + QFrame::NoFrame + + + ATC MANUAL CONTROL PANEL + + + Qt::AlignCenter + + + true + + + 0 + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M13 User Defined Macro Call from Subroutine Folder + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + AIR BLAST + + + + 20 + 20 + + + + M13 + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M13 User Defined Macro Call from Subroutine Folder + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + RETR DUST BOOT + + + + 20 + 20 + + + + M13 + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + CLAMP TOOL + + + clamptool.ngc + + + + + + + false + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + RELEASE TOOL + + + [{"name": "spindle safety", "property": "Enable", "expression": "not ch[0]", "channels": [{"url": "status:spindle.0.enabled", "trigger": true}]}] + + + unclamptool.ngc + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + ORIENT SPINDLE + + + true + + + orientspindle.ngc + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M112 User Defined Macro Call from Subroutine Folder + + + Qt::RightToLeft + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + UNLOCK SPINDLE + + + + 20 + 20 + + + + M5 + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + HEAD UP + + + move_head_above_carousel.ngc + + + + + + + + 1 + 0 + + + + + 120 + 45 + + + + + 16777215 + 45 + + + + SubCallButton { + color: white; + border-color: black; + border-style: solid; + border-radius: 5px; + border-width: 2px; + background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255)); + font-family: "Bebas Kai"; + font-size: 15pt; +} + +SubCallButton:disabled { + border-color: gray; +} + +SubCallButton:hover { + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959); +} + +SubCallButton:pressed { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255)); +} + + + + HEAD DOWN + + + move_tool_to_carousel_height.ngc + + + + + + + + + + + + 15 + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 1 + 0 + + + + + 125 + 45 + + + + + 16777215 + 45 + + + + Qt::NoFocus + + + M13 User Defined Macro Call from Subroutine Folder + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + REF RACK DATA + + + + 20 + 20 + + + + M13 + + + + + + + + + + + + + SubCallButton + QPushButton +
qtpyvcp.widgets.button_widgets.subcall_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+
+ + +
diff --git a/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons_ui.py b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons_ui.py new file mode 100644 index 0000000..ce0b217 --- /dev/null +++ b/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons_ui.py @@ -0,0 +1,354 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_atc_buttons/template_user_rack_atc_buttons/template_user_rack_atc_buttons.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_USER_ATC_BUTTONS(object): + def setupUi(self, USER_ATC_BUTTONS): + USER_ATC_BUTTONS.setObjectName("USER_ATC_BUTTONS") + USER_ATC_BUTTONS.resize(300, 429) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(USER_ATC_BUTTONS.sizePolicy().hasHeightForWidth()) + USER_ATC_BUTTONS.setSizePolicy(sizePolicy) + USER_ATC_BUTTONS.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(USER_ATC_BUTTONS) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.frame_64 = QtWidgets.QFrame(USER_ATC_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame_64.sizePolicy().hasHeightForWidth()) + self.frame_64.setSizePolicy(sizePolicy) + self.frame_64.setMaximumSize(QtCore.QSize(300, 16777215)) + self.frame_64.setStyleSheet("") + self.frame_64.setObjectName("frame_64") + self.verticalLayout_66 = QtWidgets.QVBoxLayout(self.frame_64) + self.verticalLayout_66.setContentsMargins(20, 18, 20, 18) + self.verticalLayout_66.setSpacing(16) + self.verticalLayout_66.setObjectName("verticalLayout_66") + self.work_column_header_8 = QtWidgets.QLabel(self.frame_64) + self.work_column_header_8.setEnabled(True) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header_8.sizePolicy().hasHeightForWidth()) + self.work_column_header_8.setSizePolicy(sizePolicy) + self.work_column_header_8.setMinimumSize(QtCore.QSize(0, 38)) + self.work_column_header_8.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_column_header_8.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179, 172);\n" +" border-width: 2px;\n" +" border-radius: 5px;\n" +" color: white;\n" +" background: rgb(90, 90, 90);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.work_column_header_8.setFrameShape(QtWidgets.QFrame.NoFrame) + self.work_column_header_8.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header_8.setWordWrap(True) + self.work_column_header_8.setIndent(0) + self.work_column_header_8.setObjectName("work_column_header_8") + self.verticalLayout_66.addWidget(self.work_column_header_8) + self.horizontalLayout_119 = QtWidgets.QHBoxLayout() + self.horizontalLayout_119.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_119.setSpacing(15) + self.horizontalLayout_119.setObjectName("horizontalLayout_119") + self.reference_carousel_3 = MDIButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.reference_carousel_3.sizePolicy().hasHeightForWidth()) + self.reference_carousel_3.setSizePolicy(sizePolicy) + self.reference_carousel_3.setMinimumSize(QtCore.QSize(120, 45)) + self.reference_carousel_3.setMaximumSize(QtCore.QSize(16777215, 45)) + self.reference_carousel_3.setFocusPolicy(QtCore.Qt.NoFocus) + self.reference_carousel_3.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.reference_carousel_3.setIconSize(QtCore.QSize(20, 20)) + self.reference_carousel_3.setObjectName("reference_carousel_3") + self.horizontalLayout_119.addWidget(self.reference_carousel_3) + self.reference_carousel_4 = MDIButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.reference_carousel_4.sizePolicy().hasHeightForWidth()) + self.reference_carousel_4.setSizePolicy(sizePolicy) + self.reference_carousel_4.setMinimumSize(QtCore.QSize(120, 45)) + self.reference_carousel_4.setMaximumSize(QtCore.QSize(16777215, 45)) + self.reference_carousel_4.setFocusPolicy(QtCore.Qt.NoFocus) + self.reference_carousel_4.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.reference_carousel_4.setIconSize(QtCore.QSize(20, 20)) + self.reference_carousel_4.setObjectName("reference_carousel_4") + self.horizontalLayout_119.addWidget(self.reference_carousel_4) + self.verticalLayout_66.addLayout(self.horizontalLayout_119) + self.horizontalLayout_117 = QtWidgets.QHBoxLayout() + self.horizontalLayout_117.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_117.setSpacing(15) + self.horizontalLayout_117.setObjectName("horizontalLayout_117") + self.clamp_tool_button = SubCallButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.clamp_tool_button.sizePolicy().hasHeightForWidth()) + self.clamp_tool_button.setSizePolicy(sizePolicy) + self.clamp_tool_button.setMinimumSize(QtCore.QSize(120, 45)) + self.clamp_tool_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.clamp_tool_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.clamp_tool_button.setObjectName("clamp_tool_button") + self.horizontalLayout_117.addWidget(self.clamp_tool_button) + self.release_tool_button = SubCallButton(self.frame_64) + self.release_tool_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.release_tool_button.sizePolicy().hasHeightForWidth()) + self.release_tool_button.setSizePolicy(sizePolicy) + self.release_tool_button.setMinimumSize(QtCore.QSize(120, 45)) + self.release_tool_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.release_tool_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.release_tool_button.setObjectName("release_tool_button") + self.horizontalLayout_117.addWidget(self.release_tool_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_117) + self.horizontalLayout_152 = QtWidgets.QHBoxLayout() + self.horizontalLayout_152.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_152.setSpacing(15) + self.horizontalLayout_152.setObjectName("horizontalLayout_152") + self.spindle_orientation = SubCallButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.spindle_orientation.sizePolicy().hasHeightForWidth()) + self.spindle_orientation.setSizePolicy(sizePolicy) + self.spindle_orientation.setMinimumSize(QtCore.QSize(120, 45)) + self.spindle_orientation.setMaximumSize(QtCore.QSize(16777215, 45)) + self.spindle_orientation.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.spindle_orientation.setCheckable(True) + self.spindle_orientation.setObjectName("spindle_orientation") + self.horizontalLayout_152.addWidget(self.spindle_orientation) + self.unlock_spindle = MDIButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.unlock_spindle.sizePolicy().hasHeightForWidth()) + self.unlock_spindle.setSizePolicy(sizePolicy) + self.unlock_spindle.setMinimumSize(QtCore.QSize(120, 45)) + self.unlock_spindle.setMaximumSize(QtCore.QSize(16777215, 45)) + self.unlock_spindle.setFocusPolicy(QtCore.Qt.NoFocus) + self.unlock_spindle.setLayoutDirection(QtCore.Qt.RightToLeft) + self.unlock_spindle.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.unlock_spindle.setIconSize(QtCore.QSize(20, 20)) + self.unlock_spindle.setObjectName("unlock_spindle") + self.horizontalLayout_152.addWidget(self.unlock_spindle) + self.verticalLayout_66.addLayout(self.horizontalLayout_152) + self.horizontalLayout_174 = QtWidgets.QHBoxLayout() + self.horizontalLayout_174.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_174.setSpacing(15) + self.horizontalLayout_174.setObjectName("horizontalLayout_174") + self.move_head_above_carousel_button = SubCallButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.move_head_above_carousel_button.sizePolicy().hasHeightForWidth()) + self.move_head_above_carousel_button.setSizePolicy(sizePolicy) + self.move_head_above_carousel_button.setMinimumSize(QtCore.QSize(120, 45)) + self.move_head_above_carousel_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.move_head_above_carousel_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.move_head_above_carousel_button.setObjectName("move_head_above_carousel_button") + self.horizontalLayout_174.addWidget(self.move_head_above_carousel_button) + self.move_tool_to_carousel_height_button = SubCallButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.move_tool_to_carousel_height_button.sizePolicy().hasHeightForWidth()) + self.move_tool_to_carousel_height_button.setSizePolicy(sizePolicy) + self.move_tool_to_carousel_height_button.setMinimumSize(QtCore.QSize(120, 45)) + self.move_tool_to_carousel_height_button.setMaximumSize(QtCore.QSize(16777215, 45)) + self.move_tool_to_carousel_height_button.setStyleSheet("SubCallButton {\n" +" color: white;\n" +" border-color: black;\n" +" border-style: solid;\n" +" border-radius: 5px;\n" +" border-width: 2px;\n" +" background: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(213, 218, 216, 255), stop:0.169312 rgba(82, 82, 83, 255), stop:0.328042 rgba(72, 70, 73, 255), stop:0.492063 rgba(78, 77, 79, 255), stop:0.703704 rgba(72, 70, 73, 255), stop:0.86 rgba(82, 82, 83, 255), stop:1 rgba(213, 218, 216, 255));\n" +" font-family: \"Bebas Kai\";\n" +" font-size: 15pt;\n" +"}\n" +"\n" +"SubCallButton:disabled {\n" +" border-color: gray;\n" +"}\n" +"\n" +"SubCallButton:hover {\n" +" background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A19E9E, stop: 1.0 #5C5959);\n" +"}\n" +"\n" +"SubCallButton:pressed {\n" +" background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(85, 85, 238, 255), stop:0.544974 rgba(90, 91, 239, 255), stop:1 rgba(126, 135, 243, 255));\n" +"}\n" +"") + self.move_tool_to_carousel_height_button.setObjectName("move_tool_to_carousel_height_button") + self.horizontalLayout_174.addWidget(self.move_tool_to_carousel_height_button) + self.verticalLayout_66.addLayout(self.horizontalLayout_174) + self.widget_10 = QtWidgets.QWidget(self.frame_64) + self.widget_10.setObjectName("widget_10") + self.verticalLayout_66.addWidget(self.widget_10) + self.horizontalLayout_159 = QtWidgets.QHBoxLayout() + self.horizontalLayout_159.setContentsMargins(2, 2, 2, 2) + self.horizontalLayout_159.setSpacing(15) + self.horizontalLayout_159.setObjectName("horizontalLayout_159") + self.reference_carousel_2 = MDIButton(self.frame_64) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.reference_carousel_2.sizePolicy().hasHeightForWidth()) + self.reference_carousel_2.setSizePolicy(sizePolicy) + self.reference_carousel_2.setMinimumSize(QtCore.QSize(125, 45)) + self.reference_carousel_2.setMaximumSize(QtCore.QSize(16777215, 45)) + self.reference_carousel_2.setFocusPolicy(QtCore.Qt.NoFocus) + self.reference_carousel_2.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.reference_carousel_2.setIconSize(QtCore.QSize(20, 20)) + self.reference_carousel_2.setObjectName("reference_carousel_2") + self.horizontalLayout_159.addWidget(self.reference_carousel_2) + self.verticalLayout_66.addLayout(self.horizontalLayout_159) + self.verticalLayout.addWidget(self.frame_64) + + self.retranslateUi(USER_ATC_BUTTONS) + QtCore.QMetaObject.connectSlotsByName(USER_ATC_BUTTONS) + + def retranslateUi(self, USER_ATC_BUTTONS): + _translate = QtCore.QCoreApplication.translate + USER_ATC_BUTTONS.setWindowTitle(_translate("USER_ATC_BUTTONS", "User Atc Buttons")) + self.work_column_header_8.setText(_translate("USER_ATC_BUTTONS", "ATC MANUAL CONTROL PANEL")) + self.reference_carousel_3.setToolTip(_translate("USER_ATC_BUTTONS", "M13 User Defined Macro Call from Subroutine Folder")) + self.reference_carousel_3.setText(_translate("USER_ATC_BUTTONS", "AIR BLAST")) + self.reference_carousel_3.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M13")) + self.reference_carousel_4.setToolTip(_translate("USER_ATC_BUTTONS", "M13 User Defined Macro Call from Subroutine Folder")) + self.reference_carousel_4.setText(_translate("USER_ATC_BUTTONS", "RETR DUST BOOT")) + self.reference_carousel_4.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M13")) + self.clamp_tool_button.setText(_translate("USER_ATC_BUTTONS", "CLAMP TOOL")) + self.clamp_tool_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "clamptool.ngc")) + self.release_tool_button.setText(_translate("USER_ATC_BUTTONS", "RELEASE TOOL")) + self.release_tool_button.setProperty("rules", _translate("USER_ATC_BUTTONS", "[{\"name\": \"spindle safety\", \"property\": \"Enable\", \"expression\": \"not ch[0]\", \"channels\": [{\"url\": \"status:spindle.0.enabled\", \"trigger\": true}]}]")) + self.release_tool_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "unclamptool.ngc")) + self.spindle_orientation.setText(_translate("USER_ATC_BUTTONS", "ORIENT SPINDLE")) + self.spindle_orientation.setProperty("filename", _translate("USER_ATC_BUTTONS", "orientspindle.ngc")) + self.unlock_spindle.setToolTip(_translate("USER_ATC_BUTTONS", "M112 User Defined Macro Call from Subroutine Folder")) + self.unlock_spindle.setText(_translate("USER_ATC_BUTTONS", "UNLOCK SPINDLE")) + self.unlock_spindle.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M5")) + self.move_head_above_carousel_button.setText(_translate("USER_ATC_BUTTONS", "HEAD UP")) + self.move_head_above_carousel_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "move_head_above_carousel.ngc")) + self.move_tool_to_carousel_height_button.setText(_translate("USER_ATC_BUTTONS", "HEAD DOWN")) + self.move_tool_to_carousel_height_button.setProperty("filename", _translate("USER_ATC_BUTTONS", "move_tool_to_carousel_height.ngc")) + self.reference_carousel_2.setToolTip(_translate("USER_ATC_BUTTONS", "M13 User Defined Macro Call from Subroutine Folder")) + self.reference_carousel_2.setText(_translate("USER_ATC_BUTTONS", "REF RACK DATA")) + self.reference_carousel_2.setProperty("MDICommand", _translate("USER_ATC_BUTTONS", "M13")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.button_widgets.subcall_button import SubCallButton diff --git a/user_buttons/template_user_buttons/template_user_buttons.py b/user_buttons/template_user_buttons/template_user_buttons.py new file mode 100644 index 0000000..75bc881 --- /dev/null +++ b/user_buttons/template_user_buttons/template_user_buttons.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserButton(QWidget): + def __init__(self, parent=None): + super(UserButton, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_buttons/template_user_buttons/template_user_buttons.ui b/user_buttons/template_user_buttons/template_user_buttons.ui new file mode 100644 index 0000000..ca309de --- /dev/null +++ b/user_buttons/template_user_buttons/template_user_buttons.ui @@ -0,0 +1,410 @@ + + + USER_BUTTONS + + + + 0 + 0 + 285 + 196 + + + + + 0 + 0 + + + + User Buttons + + + Qt::LeftToRight + + + + 1 + + + 3 + + + 1 + + + 1 + + + 3 + + + 8 + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + BLOCK DELETE + + + true + + + program.block-delete.toggle + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + M01 BREAK + + + true + + + program.optional-stop.toggle + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + Flood + + + true + + + coolant.flood.toggle + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + SINGLE BLOCK + + + program.step + + + + + + + + 1 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + Mist + + + true + + + coolant.mist.toggle + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + FEED HOLD + + + true + + + [{"channels": [{"url": "status:interp_state?text", "trigger": true}], "property": "Checked", "expression": "ch[0] == 'Paused'", "name": "check when paused"}] + + + program.pause + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + CLEAR PGM + + + false + + + program.clear + + + + + + + + 0 + 0 + + + + + 135 + 42 + + + + + 16777215 + 42 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + RELOAD PGM + + + false + + + program.reload + + + + + + + + 1 + 0 + + + + + + + + + 1 + 0 + + + + + + + + + 1 + 0 + + + + + + + + + 1 + 0 + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+
+ + +
diff --git a/user_buttons/template_user_buttons/template_user_buttons_ui.py b/user_buttons/template_user_buttons/template_user_buttons_ui.py new file mode 100644 index 0000000..1cf3f15 --- /dev/null +++ b/user_buttons/template_user_buttons/template_user_buttons_ui.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_buttons/template_user_buttons/template_user_buttons.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_USER_BUTTONS(object): + def setupUi(self, USER_BUTTONS): + USER_BUTTONS.setObjectName("USER_BUTTONS") + USER_BUTTONS.resize(285, 196) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(USER_BUTTONS.sizePolicy().hasHeightForWidth()) + USER_BUTTONS.setSizePolicy(sizePolicy) + USER_BUTTONS.setLayoutDirection(QtCore.Qt.LeftToRight) + self.gridLayout = QtWidgets.QGridLayout(USER_BUTTONS) + self.gridLayout.setContentsMargins(1, 3, 1, 1) + self.gridLayout.setHorizontalSpacing(3) + self.gridLayout.setVerticalSpacing(8) + self.gridLayout.setObjectName("gridLayout") + self.block_delete_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.block_delete_button.sizePolicy().hasHeightForWidth()) + self.block_delete_button.setSizePolicy(sizePolicy) + self.block_delete_button.setMinimumSize(QtCore.QSize(135, 42)) + self.block_delete_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.block_delete_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.block_delete_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.block_delete_button.setCheckable(True) + self.block_delete_button.setObjectName("block_delete_button") + self.gridLayout.addWidget(self.block_delete_button, 2, 2, 1, 1) + self.m01_break_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.m01_break_button.sizePolicy().hasHeightForWidth()) + self.m01_break_button.setSizePolicy(sizePolicy) + self.m01_break_button.setMinimumSize(QtCore.QSize(135, 42)) + self.m01_break_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.m01_break_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.m01_break_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.m01_break_button.setCheckable(True) + self.m01_break_button.setObjectName("m01_break_button") + self.gridLayout.addWidget(self.m01_break_button, 3, 2, 1, 1) + self.flood_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.flood_button.sizePolicy().hasHeightForWidth()) + self.flood_button.setSizePolicy(sizePolicy) + self.flood_button.setMinimumSize(QtCore.QSize(135, 42)) + self.flood_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.flood_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.flood_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.flood_button.setCheckable(True) + self.flood_button.setObjectName("flood_button") + self.gridLayout.addWidget(self.flood_button, 2, 0, 1, 1) + self.single_block_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.single_block_button.sizePolicy().hasHeightForWidth()) + self.single_block_button.setSizePolicy(sizePolicy) + self.single_block_button.setMinimumSize(QtCore.QSize(135, 42)) + self.single_block_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.single_block_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.single_block_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.single_block_button.setObjectName("single_block_button") + self.gridLayout.addWidget(self.single_block_button, 1, 2, 1, 1) + self.mist_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.mist_button.sizePolicy().hasHeightForWidth()) + self.mist_button.setSizePolicy(sizePolicy) + self.mist_button.setMinimumSize(QtCore.QSize(135, 42)) + self.mist_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.mist_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.mist_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.mist_button.setCheckable(True) + self.mist_button.setObjectName("mist_button") + self.gridLayout.addWidget(self.mist_button, 3, 0, 1, 1) + self.feed_hold_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.feed_hold_button.sizePolicy().hasHeightForWidth()) + self.feed_hold_button.setSizePolicy(sizePolicy) + self.feed_hold_button.setMinimumSize(QtCore.QSize(135, 42)) + self.feed_hold_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.feed_hold_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.feed_hold_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.feed_hold_button.setCheckable(True) + self.feed_hold_button.setObjectName("feed_hold_button") + self.gridLayout.addWidget(self.feed_hold_button, 0, 2, 1, 1) + self.clear_program_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.clear_program_button.sizePolicy().hasHeightForWidth()) + self.clear_program_button.setSizePolicy(sizePolicy) + self.clear_program_button.setMinimumSize(QtCore.QSize(135, 42)) + self.clear_program_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.clear_program_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.clear_program_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.clear_program_button.setCheckable(False) + self.clear_program_button.setObjectName("clear_program_button") + self.gridLayout.addWidget(self.clear_program_button, 1, 0, 1, 1) + self.reload_program_button = ActionButton(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.reload_program_button.sizePolicy().hasHeightForWidth()) + self.reload_program_button.setSizePolicy(sizePolicy) + self.reload_program_button.setMinimumSize(QtCore.QSize(135, 42)) + self.reload_program_button.setMaximumSize(QtCore.QSize(16777215, 42)) + self.reload_program_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.reload_program_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.reload_program_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.reload_program_button.setCheckable(False) + self.reload_program_button.setObjectName("reload_program_button") + self.gridLayout.addWidget(self.reload_program_button, 0, 0, 1, 1) + self.label = QtWidgets.QLabel(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 1, 1, 1) + self.label_2 = QtWidgets.QLabel(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth()) + self.label_2.setSizePolicy(sizePolicy) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 1, 1, 1, 1) + self.label_3 = QtWidgets.QLabel(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth()) + self.label_3.setSizePolicy(sizePolicy) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 2, 1, 1, 1) + self.label_4 = QtWidgets.QLabel(USER_BUTTONS) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) + self.label_4.setSizePolicy(sizePolicy) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 3, 1, 1, 1) + + self.retranslateUi(USER_BUTTONS) + QtCore.QMetaObject.connectSlotsByName(USER_BUTTONS) + + def retranslateUi(self, USER_BUTTONS): + _translate = QtCore.QCoreApplication.translate + USER_BUTTONS.setWindowTitle(_translate("USER_BUTTONS", "User Buttons")) + self.block_delete_button.setText(_translate("USER_BUTTONS", "BLOCK DELETE")) + self.block_delete_button.setProperty("actionName", _translate("USER_BUTTONS", "program.block-delete.toggle")) + self.m01_break_button.setText(_translate("USER_BUTTONS", "M01 BREAK")) + self.m01_break_button.setProperty("actionName", _translate("USER_BUTTONS", "program.optional-stop.toggle")) + self.flood_button.setText(_translate("USER_BUTTONS", "Flood")) + self.flood_button.setProperty("actionName", _translate("USER_BUTTONS", "coolant.flood.toggle")) + self.single_block_button.setText(_translate("USER_BUTTONS", "SINGLE BLOCK")) + self.single_block_button.setProperty("actionName", _translate("USER_BUTTONS", "program.step")) + self.mist_button.setText(_translate("USER_BUTTONS", "Mist")) + self.mist_button.setProperty("actionName", _translate("USER_BUTTONS", "coolant.mist.toggle")) + self.feed_hold_button.setText(_translate("USER_BUTTONS", "FEED HOLD")) + self.feed_hold_button.setProperty("rules", _translate("USER_BUTTONS", "[{\"channels\": [{\"url\": \"status:interp_state?text\", \"trigger\": true}], \"property\": \"Checked\", \"expression\": \"ch[0] == \'Paused\'\", \"name\": \"check when paused\"}]")) + self.feed_hold_button.setProperty("actionName", _translate("USER_BUTTONS", "program.pause")) + self.clear_program_button.setText(_translate("USER_BUTTONS", "CLEAR PGM")) + self.clear_program_button.setProperty("actionName", _translate("USER_BUTTONS", "program.clear")) + self.reload_program_button.setText(_translate("USER_BUTTONS", "RELOAD PGM")) + self.reload_program_button.setProperty("actionName", _translate("USER_BUTTONS", "program.reload")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton diff --git a/user_dro_display/user_dros/dros_user.py b/user_dro_display/user_dros/dros_user.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/user_dros/dros_user.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/user_dros/dros_user.ui b/user_dro_display/user_dros/dros_user.ui new file mode 100644 index 0000000..e437517 --- /dev/null +++ b/user_dro_display/user_dros/dros_user.ui @@ -0,0 +1,2148 @@ + + + dros_user + + + + 0 + 0 + 466 + 316 + + + + + 0 + 0 + + + + dros_user + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 14pt "Bebas Kai"; +} + + + ALL + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 5 + + + 7 + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + A + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF A + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:a + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + B + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF B + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:b + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + C + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 5 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 5 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 5 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF C + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:c + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/user_dros/dros_user_ui.py b/user_dro_display/user_dros/dros_user_ui.py new file mode 100644 index 0000000..d130ba3 --- /dev/null +++ b/user_dro_display/user_dros/dros_user_ui.py @@ -0,0 +1,1047 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/user_dros/dros_user.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_user(object): + def setupUi(self, dros_user): + dros_user.setObjectName("dros_user") + dros_user.resize(466, 316) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_user.sizePolicy().hasHeightForWidth()) + dros_user.setSizePolicy(sizePolicy) + dros_user.setLayoutDirection(QtCore.Qt.LeftToRight) + self.c_axis_dro_layout_2 = QtWidgets.QVBoxLayout(dros_user) + self.c_axis_dro_layout_2.setContentsMargins(0, 0, 0, 0) + self.c_axis_dro_layout_2.setSpacing(0) + self.c_axis_dro_layout_2.setObjectName("c_axis_dro_layout_2") + self.widget_user = QtWidgets.QWidget(dros_user) + self.widget_user.setObjectName("widget_user") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget_user) + self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_4.setSpacing(0) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.header_layout = QtWidgets.QHBoxLayout() + self.header_layout.setContentsMargins(1, 1, 1, 1) + self.header_layout.setSpacing(7) + self.header_layout.setObjectName("header_layout") + self.zero_all_button = MDIButton(self.widget_user) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 14pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_all_button.setIcon(icon) + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.header_layout.addWidget(self.zero_all_button) + self.frame = QtWidgets.QFrame(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_103 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_103.setContentsMargins(5, -1, 7, -1) + self.horizontalLayout_103.setSpacing(8) + self.horizontalLayout_103.setObjectName("horizontalLayout_103") + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_103.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_103.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_103.addWidget(self.dtg_column_header) + self.header_layout.addWidget(self.frame) + self.ref_all_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.header_layout.addWidget(self.ref_all_button) + self.verticalLayout_4.addLayout(self.header_layout) + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout.setSpacing(7) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(self.widget_user) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.dro_entry_main_x = DROLineEdit(self.widget_user) + self.dro_entry_main_x.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_x.setFont(font) + self.dro_entry_main_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_x.setProperty("referenceType", 1) + self.dro_entry_main_x.setProperty("axisNumber", 0) + self.dro_entry_main_x.setProperty("latheMode", 0) + self.dro_entry_main_x.setObjectName("dro_entry_main_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_main_x) + self.drolabel_machine_x = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout.addWidget(self.drolabel_dtg_x) + self.ref_x_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button.sizePolicy().hasHeightForWidth()) + self.ref_x_button.setSizePolicy(sizePolicy) + self.ref_x_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button.setObjectName("ref_x_button") + self.x_axis_dro_layout.addWidget(self.ref_x_button) + self.verticalLayout_4.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout.setSpacing(7) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(self.widget_user) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.dro_entry_main_y = DROLineEdit(self.widget_user) + self.dro_entry_main_y.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_y.setFont(font) + self.dro_entry_main_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_y.setProperty("axisNumber", 1) + self.dro_entry_main_y.setObjectName("dro_entry_main_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_main_y) + self.drolabel_machine_y = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout.addWidget(self.ref_y_button) + self.verticalLayout_4.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout.setSpacing(7) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(self.widget_user) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.dro_entry_main_z = DROLineEdit(self.widget_user) + self.dro_entry_main_z.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_z.setFont(font) + self.dro_entry_main_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_z.setProperty("axisNumber", 2) + self.dro_entry_main_z.setObjectName("dro_entry_main_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_main_z) + self.drolabel_machine_z = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout.addWidget(self.ref_z_button) + self.verticalLayout_4.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.a_axis_dro_layout.setSpacing(7) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button = MDIButton(self.widget_user) + self.zero_a_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_a_button.sizePolicy().hasHeightForWidth()) + self.zero_a_button.setSizePolicy(sizePolicy) + self.zero_a_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_a_button.setIcon(icon) + self.zero_a_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_a_button.setObjectName("zero_a_button") + self.a_axis_dro_layout.addWidget(self.zero_a_button) + self.dro_entry_main_a = DROLineEdit(self.widget_user) + self.dro_entry_main_a.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_a.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_a.setFont(font) + self.dro_entry_main_a.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_a.setProperty("axisNumber", 3) + self.dro_entry_main_a.setObjectName("dro_entry_main_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_main_a) + self.drolabel_machine_a = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_a.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_a.setSizePolicy(sizePolicy) + self.drolabel_machine_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_a.setProperty("referenceType", 0) + self.drolabel_machine_a.setProperty("axisNumber", 3) + self.drolabel_machine_a.setProperty("latheMode", 0) + self.drolabel_machine_a.setObjectName("drolabel_machine_a") + self.a_axis_dro_layout.addWidget(self.drolabel_machine_a) + self.drolabel_dtg_a = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_a.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_a.setSizePolicy(sizePolicy) + self.drolabel_dtg_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_a.setProperty("referenceType", 2) + self.drolabel_dtg_a.setProperty("axisNumber", 3) + self.drolabel_dtg_a.setProperty("latheMode", 0) + self.drolabel_dtg_a.setObjectName("drolabel_dtg_a") + self.a_axis_dro_layout.addWidget(self.drolabel_dtg_a) + self.ref_a_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_a_button.sizePolicy().hasHeightForWidth()) + self.ref_a_button.setSizePolicy(sizePolicy) + self.ref_a_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_a_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_a_button.setObjectName("ref_a_button") + self.a_axis_dro_layout.addWidget(self.ref_a_button) + self.verticalLayout_4.addLayout(self.a_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.b_axis_dro_layout.setSpacing(7) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button = MDIButton(self.widget_user) + self.zero_b_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_b_button.sizePolicy().hasHeightForWidth()) + self.zero_b_button.setSizePolicy(sizePolicy) + self.zero_b_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_b_button.setIcon(icon) + self.zero_b_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_b_button.setObjectName("zero_b_button") + self.b_axis_dro_layout.addWidget(self.zero_b_button) + self.dro_entry_main_b = DROLineEdit(self.widget_user) + self.dro_entry_main_b.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_b.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_b.setFont(font) + self.dro_entry_main_b.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_b.setProperty("referenceType", 1) + self.dro_entry_main_b.setProperty("axisNumber", 4) + self.dro_entry_main_b.setProperty("latheMode", 0) + self.dro_entry_main_b.setObjectName("dro_entry_main_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_main_b) + self.drolabel_machine_b = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_b.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_b.setSizePolicy(sizePolicy) + self.drolabel_machine_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_b.setProperty("referenceType", 0) + self.drolabel_machine_b.setProperty("axisNumber", 4) + self.drolabel_machine_b.setProperty("latheMode", 0) + self.drolabel_machine_b.setObjectName("drolabel_machine_b") + self.b_axis_dro_layout.addWidget(self.drolabel_machine_b) + self.drolabel_dtg_b = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_b.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_b.setSizePolicy(sizePolicy) + self.drolabel_dtg_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_b.setProperty("referenceType", 2) + self.drolabel_dtg_b.setProperty("axisNumber", 4) + self.drolabel_dtg_b.setProperty("latheMode", 0) + self.drolabel_dtg_b.setObjectName("drolabel_dtg_b") + self.b_axis_dro_layout.addWidget(self.drolabel_dtg_b) + self.ref_b_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_b_button.sizePolicy().hasHeightForWidth()) + self.ref_b_button.setSizePolicy(sizePolicy) + self.ref_b_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_b_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_b_button.setObjectName("ref_b_button") + self.b_axis_dro_layout.addWidget(self.ref_b_button) + self.verticalLayout_4.addLayout(self.b_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.c_axis_dro_layout.setSpacing(7) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(self.widget_user) + self.zero_c_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_c_button.sizePolicy().hasHeightForWidth()) + self.zero_c_button.setSizePolicy(sizePolicy) + self.zero_c_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setIcon(icon) + self.zero_c_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.dro_entry_main_c = DROLineEdit(self.widget_user) + self.dro_entry_main_c.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_c.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_c.setFont(font) + self.dro_entry_main_c.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_c.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_c.setProperty("referenceType", 1) + self.dro_entry_main_c.setProperty("axisNumber", 5) + self.dro_entry_main_c.setProperty("latheMode", 0) + self.dro_entry_main_c.setObjectName("dro_entry_main_c") + self.c_axis_dro_layout.addWidget(self.dro_entry_main_c) + self.drolabel_machine_c = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_c.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_c.setSizePolicy(sizePolicy) + self.drolabel_machine_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_c.setProperty("referenceType", 0) + self.drolabel_machine_c.setProperty("axisNumber", 5) + self.drolabel_machine_c.setProperty("latheMode", 0) + self.drolabel_machine_c.setObjectName("drolabel_machine_c") + self.c_axis_dro_layout.addWidget(self.drolabel_machine_c) + self.drolabel_dtg_c = DROLabel(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_c.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_c.setSizePolicy(sizePolicy) + self.drolabel_dtg_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_c.setProperty("referenceType", 2) + self.drolabel_dtg_c.setProperty("axisNumber", 5) + self.drolabel_dtg_c.setProperty("latheMode", 0) + self.drolabel_dtg_c.setObjectName("drolabel_dtg_c") + self.c_axis_dro_layout.addWidget(self.drolabel_dtg_c) + self.ref_c_button = ActionButton(self.widget_user) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_c_button.sizePolicy().hasHeightForWidth()) + self.ref_c_button.setSizePolicy(sizePolicy) + self.ref_c_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_c_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_c_button.setObjectName("ref_c_button") + self.c_axis_dro_layout.addWidget(self.ref_c_button) + self.verticalLayout_4.addLayout(self.c_axis_dro_layout) + self.c_axis_dro_layout_2.addWidget(self.widget_user) + + self.retranslateUi(dros_user) + QtCore.QMetaObject.connectSlotsByName(dros_user) + + def retranslateUi(self, dros_user): + _translate = QtCore.QCoreApplication.translate + dros_user.setWindowTitle(_translate("dros_user", "dros_user")) + self.zero_all_button.setText(_translate("dros_user", "ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0")) + self.work_column_header.setProperty("rules", _translate("dros_user", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_user", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_user", "DTG")) + self.ref_all_button.setText(_translate("dros_user", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_user", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_user", "machine.home.all")) + self.zero_x_button.setText(_translate("dros_user", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} X0.0")) + self.dro_entry_main_x.setText(_translate("dros_user", " 0.000")) + self.dro_entry_main_x.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.dro_entry_main_x.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.dro_entry_main_x.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_x_button.setText(_translate("dros_user", "REF X")) + self.ref_x_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_x_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_user", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_y_button.setText(_translate("dros_user", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_user", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_z_button.setText(_translate("dros_user", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:z")) + self.zero_a_button.setText(_translate("dros_user", "A")) + self.zero_a_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} A0.0")) + self.drolabel_machine_a.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_a.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_a.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_a.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_a.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_a.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_a_button.setText(_translate("dros_user", "REF A")) + self.ref_a_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_a_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:a")) + self.zero_b_button.setText(_translate("dros_user", "B")) + self.zero_b_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} B0.0")) + self.dro_entry_main_b.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.dro_entry_main_b.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.dro_entry_main_b.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_machine_b.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_b.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_b.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_b.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_b.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_b.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_b_button.setText(_translate("dros_user", "REF B")) + self.ref_b_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_b_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:b")) + self.zero_c_button.setText(_translate("dros_user", "C")) + self.zero_c_button.setProperty("rules", _translate("dros_user", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("dros_user", "G10 L20 P{ch[0]} C0.0")) + self.dro_entry_main_c.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.dro_entry_main_c.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.dro_entry_main_c.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_machine_c.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_machine_c.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_machine_c.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.drolabel_dtg_c.setProperty("inchFormat", _translate("dros_user", "%9.4f")) + self.drolabel_dtg_c.setProperty("millimeterFormat", _translate("dros_user", "%10.3f")) + self.drolabel_dtg_c.setProperty("degreeFormat", _translate("dros_user", "%10.2f")) + self.ref_c_button.setText(_translate("dros_user", "REF C")) + self.ref_c_button.setProperty("rules", _translate("dros_user", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_c_button.setProperty("actionName", _translate("dros_user", "machine.home.axis:c")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/user_dros/offset_dros_user.ui b/user_dro_display/user_dros/offset_dros_user.ui new file mode 100644 index 0000000..ec6f619 --- /dev/null +++ b/user_dro_display/user_dros/offset_dros_user.ui @@ -0,0 +1,2024 @@ + + + offset_dros_xyzab + + + + 0 + 0 + 493 + 332 + + + + + 0 + 0 + + + + offset_dros_xyzab + + + Qt::LeftToRight + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + A + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + B + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + C + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/user_dros/offset_dros_user_ui.py b/user_dro_display/user_dros/offset_dros_user_ui.py new file mode 100644 index 0000000..0809d19 --- /dev/null +++ b/user_dro_display/user_dros/offset_dros_user_ui.py @@ -0,0 +1,1085 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/user_dros/offset_dros_user.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyzab(object): + def setupUi(self, offset_dros_xyzab): + offset_dros_xyzab.setObjectName("offset_dros_xyzab") + offset_dros_xyzab.resize(493, 332) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyzab.sizePolicy().hasHeightForWidth()) + offset_dros_xyzab.setSizePolicy(sizePolicy) + offset_dros_xyzab.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyzab) + self.verticalLayout.setContentsMargins(9, 9, 9, 9) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.x_axis_dro_layout.setSpacing(12) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button_offset = MDIButton(offset_dros_xyzab) + self.zero_x_button_offset.setEnabled(False) + self.zero_x_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button_offset.setObjectName("zero_x_button_offset") + self.x_axis_dro_layout.addWidget(self.zero_x_button_offset) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.y_axis_dro_layout.setSpacing(12) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button_offset = MDIButton(offset_dros_xyzab) + self.zero_y_button_offset.setEnabled(False) + self.zero_y_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button_offset.setObjectName("zero_y_button_offset") + self.y_axis_dro_layout.addWidget(self.zero_y_button_offset) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.z_axis_dro_layout.setSpacing(12) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button_offset = MDIButton(offset_dros_xyzab) + self.zero_z_button_offset.setEnabled(False) + self.zero_z_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button_offset.setObjectName("zero_z_button_offset") + self.z_axis_dro_layout.addWidget(self.zero_z_button_offset) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.a_axis_dro_layout.setSpacing(12) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button_offset = MDIButton(offset_dros_xyzab) + self.zero_a_button_offset.setEnabled(False) + self.zero_a_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_a_button_offset.setObjectName("zero_a_button_offset") + self.a_axis_dro_layout.addWidget(self.zero_a_button_offset) + self.axis_label_a = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_a.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_a.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_a.setObjectName("axis_label_a") + self.a_axis_dro_layout.addWidget(self.axis_label_a) + self.dro_entry_offset_a = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_a.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_a.setSizePolicy(sizePolicy) + self.dro_entry_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_a.setFont(font) + self.dro_entry_offset_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_a.setProperty("axisNumber", 3) + self.dro_entry_offset_a.setObjectName("dro_entry_offset_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_offset_a) + self.drolabel_work_a = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_a.sizePolicy().hasHeightForWidth()) + self.drolabel_work_a.setSizePolicy(sizePolicy) + self.drolabel_work_a.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_a.setProperty("referenceType", 0) + self.drolabel_work_a.setProperty("axisNumber", 3) + self.drolabel_work_a.setProperty("latheMode", 0) + self.drolabel_work_a.setObjectName("drolabel_work_a") + self.a_axis_dro_layout.addWidget(self.drolabel_work_a) + self.work_offset_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_a.sizePolicy().hasHeightForWidth()) + self.work_offset_a.setSizePolicy(sizePolicy) + self.work_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_a.setObjectName("work_offset_a") + self.a_axis_dro_layout.addWidget(self.work_offset_a) + self.g52_g92_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_a.sizePolicy().hasHeightForWidth()) + self.g52_g92_a.setSizePolicy(sizePolicy) + self.g52_g92_a.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_a.setObjectName("g52_g92_a") + self.a_axis_dro_layout.addWidget(self.g52_g92_a) + self.tool_offset_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_a.sizePolicy().hasHeightForWidth()) + self.tool_offset_a.setSizePolicy(sizePolicy) + self.tool_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_a.setObjectName("tool_offset_a") + self.a_axis_dro_layout.addWidget(self.tool_offset_a) + self.verticalLayout.addLayout(self.a_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.b_axis_dro_layout.setSpacing(12) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button_offset = MDIButton(offset_dros_xyzab) + self.zero_b_button_offset.setEnabled(False) + self.zero_b_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_b_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_b_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_b_button_offset.setObjectName("zero_b_button_offset") + self.b_axis_dro_layout.addWidget(self.zero_b_button_offset) + self.axis_label_b = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_b.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_b.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_b.setObjectName("axis_label_b") + self.b_axis_dro_layout.addWidget(self.axis_label_b) + self.dro_entry_offset_b = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_b.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_b.setSizePolicy(sizePolicy) + self.dro_entry_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_b.setFont(font) + self.dro_entry_offset_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_b.setProperty("axisNumber", 4) + self.dro_entry_offset_b.setObjectName("dro_entry_offset_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_offset_b) + self.drolabel_work_b = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_b.sizePolicy().hasHeightForWidth()) + self.drolabel_work_b.setSizePolicy(sizePolicy) + self.drolabel_work_b.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_b.setProperty("referenceType", 0) + self.drolabel_work_b.setProperty("axisNumber", 4) + self.drolabel_work_b.setProperty("latheMode", 0) + self.drolabel_work_b.setObjectName("drolabel_work_b") + self.b_axis_dro_layout.addWidget(self.drolabel_work_b) + self.work_offset_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_b.sizePolicy().hasHeightForWidth()) + self.work_offset_b.setSizePolicy(sizePolicy) + self.work_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_b.setObjectName("work_offset_b") + self.b_axis_dro_layout.addWidget(self.work_offset_b) + self.g52_g92_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_b.sizePolicy().hasHeightForWidth()) + self.g52_g92_b.setSizePolicy(sizePolicy) + self.g52_g92_b.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_b.setObjectName("g52_g92_b") + self.b_axis_dro_layout.addWidget(self.g52_g92_b) + self.tool_offset_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_b.sizePolicy().hasHeightForWidth()) + self.tool_offset_b.setSizePolicy(sizePolicy) + self.tool_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_b.setObjectName("tool_offset_b") + self.b_axis_dro_layout.addWidget(self.tool_offset_b) + self.verticalLayout.addLayout(self.b_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.c_axis_dro_layout.setSpacing(12) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(offset_dros_xyzab) + self.zero_c_button.setEnabled(False) + self.zero_c_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.axis_label_c = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_c.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_c.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_c.setObjectName("axis_label_c") + self.c_axis_dro_layout.addWidget(self.axis_label_c) + self.dro_entry_offset_c = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_c.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_c.setSizePolicy(sizePolicy) + self.dro_entry_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_c.setFont(font) + self.dro_entry_offset_c.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_c.setProperty("referenceType", 1) + self.dro_entry_offset_c.setProperty("axisNumber", 4) + self.dro_entry_offset_c.setProperty("latheMode", 0) + self.dro_entry_offset_c.setObjectName("dro_entry_offset_c") + self.c_axis_dro_layout.addWidget(self.dro_entry_offset_c) + self.drolabel_work_c = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_c.sizePolicy().hasHeightForWidth()) + self.drolabel_work_c.setSizePolicy(sizePolicy) + self.drolabel_work_c.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_c.setProperty("referenceType", 0) + self.drolabel_work_c.setProperty("axisNumber", 4) + self.drolabel_work_c.setProperty("latheMode", 0) + self.drolabel_work_c.setObjectName("drolabel_work_c") + self.c_axis_dro_layout.addWidget(self.drolabel_work_c) + self.work_offset_c = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_c.sizePolicy().hasHeightForWidth()) + self.work_offset_c.setSizePolicy(sizePolicy) + self.work_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_c.setObjectName("work_offset_c") + self.c_axis_dro_layout.addWidget(self.work_offset_c) + self.g52_g92_c = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_c.sizePolicy().hasHeightForWidth()) + self.g52_g92_c.setSizePolicy(sizePolicy) + self.g52_g92_c.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_c.setObjectName("g52_g92_c") + self.c_axis_dro_layout.addWidget(self.g52_g92_c) + self.tool_offset_c = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_c.sizePolicy().hasHeightForWidth()) + self.tool_offset_c.setSizePolicy(sizePolicy) + self.tool_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_c.setObjectName("tool_offset_c") + self.c_axis_dro_layout.addWidget(self.tool_offset_c) + self.verticalLayout.addLayout(self.c_axis_dro_layout) + + self.retranslateUi(offset_dros_xyzab) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyzab) + + def retranslateUi(self, offset_dros_xyzab): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyzab.setWindowTitle(_translate("offset_dros_xyzab", "offset_dros_xyzab")) + self.zero_x_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_x_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyzab", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_y_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyzab", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_z_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyzab", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) + self.zero_a_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_a_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} A0.0")) + self.axis_label_a.setText(_translate("offset_dros_xyzab", "A")) + self.drolabel_work_a.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_a.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_a.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.g52_g92_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.tool_offset_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.zero_b_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_b_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} B0.0")) + self.axis_label_b.setText(_translate("offset_dros_xyzab", "B")) + self.drolabel_work_b.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_b.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_b.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.zero_c_button.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_c_button.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} C0.0")) + self.axis_label_c.setText(_translate("offset_dros_xyzab", "C")) + self.dro_entry_offset_c.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.dro_entry_offset_c.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.dro_entry_offset_c.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.drolabel_work_c.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_c.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_c.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_c.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_c.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_c.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyz_dros/dros_xyz.py b/user_dro_display/xyz_dros/dros_xyz.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/xyz_dros/dros_xyz.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/xyz_dros/dros_xyz.ui b/user_dro_display/xyz_dros/dros_xyz.ui new file mode 100644 index 0000000..18056bd --- /dev/null +++ b/user_dro_display/xyz_dros/dros_xyz.ui @@ -0,0 +1,1353 @@ + + + dros_xyz + + + + 0 + 0 + 469 + 286 + + + + + 0 + 0 + + + + dros_xyz + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 19 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 8 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 15 + + + 20 + + + + + + 0 + 0 + + + + + 60 + 17 + + + + + 60 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 1px; + padding-right: 20px; +} + + + AXIS + + + Qt::AlignCenter + + + [] + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 40 + 17 + + + + + 40 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + REF + + + Qt::AlignCenter + + + [] + + + + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + 10 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 20 + + + 3 + + + 1 + + + 3 + + + 1 + + + + + false + + + + 1 + 0 + + + + + 60 + 40 + + + + + 16777215 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO ALL + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 16777215 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyz_dros/dros_xyz_ui.py b/user_dro_display/xyz_dros/dros_xyz_ui.py new file mode 100644 index 0000000..127b24e --- /dev/null +++ b/user_dro_display/xyz_dros/dros_xyz_ui.py @@ -0,0 +1,654 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyz_dros/dros_xyz.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_xyz(object): + def setupUi(self, dros_xyz): + dros_xyz.setObjectName("dros_xyz") + dros_xyz.resize(469, 286) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_xyz.sizePolicy().hasHeightForWidth()) + dros_xyz.setSizePolicy(sizePolicy) + dros_xyz.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(dros_xyz) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.widget_xyz = QtWidgets.QWidget(dros_xyz) + self.widget_xyz.setObjectName("widget_xyz") + self.verticalLayout_55 = QtWidgets.QVBoxLayout(self.widget_xyz) + self.verticalLayout_55.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_55.setSpacing(19) + self.verticalLayout_55.setObjectName("verticalLayout_55") + self.horizontalLayout_81 = QtWidgets.QHBoxLayout() + self.horizontalLayout_81.setContentsMargins(1, 1, 1, 1) + self.horizontalLayout_81.setSpacing(8) + self.horizontalLayout_81.setObjectName("horizontalLayout_81") + self.frame = QtWidgets.QFrame(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_136 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_136.setContentsMargins(15, -1, 20, -1) + self.horizontalLayout_136.setSpacing(8) + self.horizontalLayout_136.setObjectName("horizontalLayout_136") + self.axis_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_column_header.sizePolicy().hasHeightForWidth()) + self.axis_column_header.setSizePolicy(sizePolicy) + self.axis_column_header.setMinimumSize(QtCore.QSize(60, 17)) + self.axis_column_header.setMaximumSize(QtCore.QSize(60, 17)) + self.axis_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 1px;\n" +" padding-right: 20px;\n" +"}") + self.axis_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.axis_column_header.setObjectName("axis_column_header") + self.horizontalLayout_136.addWidget(self.axis_column_header) + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_136.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_136.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_136.addWidget(self.dtg_column_header) + self.ref_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_column_header.sizePolicy().hasHeightForWidth()) + self.ref_column_header.setSizePolicy(sizePolicy) + self.ref_column_header.setMinimumSize(QtCore.QSize(40, 17)) + self.ref_column_header.setMaximumSize(QtCore.QSize(40, 17)) + self.ref_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.ref_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.ref_column_header.setObjectName("ref_column_header") + self.horizontalLayout_136.addWidget(self.ref_column_header) + self.horizontalLayout_81.addWidget(self.frame) + self.verticalLayout_55.addLayout(self.horizontalLayout_81) + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout.setSpacing(7) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(self.widget_xyz) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.drowidget_x = DROLineEdit(self.widget_xyz) + self.drowidget_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_x.setFont(font) + self.drowidget_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_x.setCursorPosition(10) + self.drowidget_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_x.setProperty("referenceType", 1) + self.drowidget_x.setProperty("axisNumber", 0) + self.drowidget_x.setProperty("latheMode", 0) + self.drowidget_x.setObjectName("drowidget_x") + self.x_axis_dro_layout.addWidget(self.drowidget_x) + self.drolabel_machine_x = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout.addWidget(self.drolabel_dtg_x) + self.ref_x_button = ActionButton(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button.sizePolicy().hasHeightForWidth()) + self.ref_x_button.setSizePolicy(sizePolicy) + self.ref_x_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button.setObjectName("ref_x_button") + self.x_axis_dro_layout.addWidget(self.ref_x_button) + self.verticalLayout_55.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout.setSpacing(7) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(self.widget_xyz) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.drowidget_y = DROLineEdit(self.widget_xyz) + self.drowidget_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_y.setFont(font) + self.drowidget_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_y.setProperty("axisNumber", 1) + self.drowidget_y.setObjectName("drowidget_y") + self.y_axis_dro_layout.addWidget(self.drowidget_y) + self.drolabel_machine_y = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout.addWidget(self.ref_y_button) + self.verticalLayout_55.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout.setSpacing(7) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(self.widget_xyz) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.drowidget_z = DROLineEdit(self.widget_xyz) + self.drowidget_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_z.setFont(font) + self.drowidget_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_z.setProperty("axisNumber", 2) + self.drowidget_z.setObjectName("drowidget_z") + self.z_axis_dro_layout.addWidget(self.drowidget_z) + self.drolabel_machine_z = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout.addWidget(self.ref_z_button) + self.verticalLayout_55.addLayout(self.z_axis_dro_layout) + self.layout = QtWidgets.QHBoxLayout() + self.layout.setContentsMargins(3, 1, 3, 1) + self.layout.setSpacing(20) + self.layout.setObjectName("layout") + self.zero_all_button = MDIButton(self.widget_xyz) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(16777215, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.layout.addWidget(self.zero_all_button) + self.ref_all_button = ActionButton(self.widget_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(16777215, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.layout.addWidget(self.ref_all_button) + self.verticalLayout_55.addLayout(self.layout) + self.verticalLayout.addWidget(self.widget_xyz) + + self.retranslateUi(dros_xyz) + QtCore.QMetaObject.connectSlotsByName(dros_xyz) + + def retranslateUi(self, dros_xyz): + _translate = QtCore.QCoreApplication.translate + dros_xyz.setWindowTitle(_translate("dros_xyz", "dros_xyz")) + self.axis_column_header.setText(_translate("dros_xyz", "AXIS")) + self.axis_column_header.setProperty("rules", _translate("dros_xyz", "[]")) + self.work_column_header.setProperty("rules", _translate("dros_xyz", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_xyz", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_xyz", "DTG")) + self.ref_column_header.setText(_translate("dros_xyz", "REF")) + self.ref_column_header.setProperty("rules", _translate("dros_xyz", "[]")) + self.zero_x_button.setText(_translate("dros_xyz", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_xyz", "G10 L20 P{ch[0]} X0.0")) + self.drowidget_x.setText(_translate("dros_xyz", " 0.000")) + self.drowidget_x.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drowidget_x.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drowidget_x.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.ref_x_button.setText(_translate("dros_xyz", "REF X")) + self.ref_x_button.setProperty("rules", _translate("dros_xyz", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}]}]")) + self.ref_x_button.setProperty("actionName", _translate("dros_xyz", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_xyz", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_xyz", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.ref_y_button.setText(_translate("dros_xyz", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_xyz", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_xyz", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_xyz", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_xyz", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_xyz", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_xyz", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_xyz", "%10.2f")) + self.ref_z_button.setText(_translate("dros_xyz", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_xyz", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_xyz", "machine.home.axis:z")) + self.zero_all_button.setText(_translate("dros_xyz", "ZERO ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_xyz", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0")) + self.ref_all_button.setText(_translate("dros_xyz", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_xyz", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_xyz", "machine.home.all")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyz_dros/offset_dros_xyz.ui b/user_dro_display/xyz_dros/offset_dros_xyz.ui new file mode 100644 index 0000000..cbe0712 --- /dev/null +++ b/user_dro_display/xyz_dros/offset_dros_xyz.ui @@ -0,0 +1,1026 @@ + + + offset_dros_xyz + + + + 0 + 0 + 493 + 150 + + + + + 0 + 0 + + + + offset_dros_xyz + + + Qt::LeftToRight + + + + + + 12 + + + 1 + + + 1 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 1 + + + 1 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 1 + + + 1 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyz_dros/offset_dros_xyz_ui.py b/user_dro_display/xyz_dros/offset_dros_xyz_ui.py new file mode 100644 index 0000000..6beaf83 --- /dev/null +++ b/user_dro_display/xyz_dros/offset_dros_xyz_ui.py @@ -0,0 +1,560 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyz_dros/offset_dros_xyz.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyz(object): + def setupUi(self, offset_dros_xyz): + offset_dros_xyz.setObjectName("offset_dros_xyz") + offset_dros_xyz.resize(493, 150) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyz.sizePolicy().hasHeightForWidth()) + offset_dros_xyz.setSizePolicy(sizePolicy) + offset_dros_xyz.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyz) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(-1, 1, -1, 1) + self.x_axis_dro_layout.setSpacing(12) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button_offset = MDIButton(offset_dros_xyz) + self.zero_x_button_offset.setEnabled(False) + self.zero_x_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button_offset.setObjectName("zero_x_button_offset") + self.x_axis_dro_layout.addWidget(self.zero_x_button_offset) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(-1, 1, -1, 1) + self.y_axis_dro_layout.setSpacing(12) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button_offset = MDIButton(offset_dros_xyz) + self.zero_y_button_offset.setEnabled(False) + self.zero_y_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button_offset.setObjectName("zero_y_button_offset") + self.y_axis_dro_layout.addWidget(self.zero_y_button_offset) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyz) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(-1, 1, -1, 1) + self.z_axis_dro_layout.setSpacing(12) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button_offset = MDIButton(offset_dros_xyz) + self.zero_z_button_offset.setEnabled(False) + self.zero_z_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button_offset.setObjectName("zero_z_button_offset") + self.z_axis_dro_layout.addWidget(self.zero_z_button_offset) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyz) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyz) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout) + + self.retranslateUi(offset_dros_xyz) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyz) + + def retranslateUi(self, offset_dros_xyz): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyz.setWindowTitle(_translate("offset_dros_xyz", "offset_dros_xyz")) + self.zero_x_button_offset.setText(_translate("offset_dros_xyz", "ZERO")) + self.zero_x_button_offset.setProperty("rules", _translate("offset_dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button_offset.setProperty("MDICommand", _translate("offset_dros_xyz", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyz", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyz", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyz", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyz", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button_offset.setText(_translate("offset_dros_xyz", "ZERO")) + self.zero_y_button_offset.setProperty("rules", _translate("offset_dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button_offset.setProperty("MDICommand", _translate("offset_dros_xyz", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyz", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyz", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyz", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyz", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button_offset.setText(_translate("offset_dros_xyz", "ZERO")) + self.zero_z_button_offset.setProperty("rules", _translate("offset_dros_xyz", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button_offset.setProperty("MDICommand", _translate("offset_dros_xyz", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyz", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyz", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyz", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyz", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyz", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyza_dros/dros_xyza.py b/user_dro_display/xyza_dros/dros_xyza.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/xyza_dros/dros_xyza.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/xyza_dros/dros_xyza.ui b/user_dro_display/xyza_dros/dros_xyza.ui new file mode 100644 index 0000000..a393918 --- /dev/null +++ b/user_dro_display/xyza_dros/dros_xyza.ui @@ -0,0 +1,1639 @@ + + + dros_xyza + + + + 0 + 0 + 469 + 272 + + + + + 0 + 0 + + + + dros_xyza + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 8 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 15 + + + 20 + + + + + + 0 + 0 + + + + + 60 + 17 + + + + + 60 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 1px; + padding-right: 20px; +} + + + AXIS + + + Qt::AlignCenter + + + [] + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 40 + 17 + + + + + 40 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + REF + + + Qt::AlignCenter + + + [] + + + + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + 10 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + A + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF A + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}]}] + + + machine.home.axis:a + + + + + + + + + 20 + + + 3 + + + 1 + + + 3 + + + 1 + + + + + false + + + + 1 + 0 + + + + + 60 + 40 + + + + + 16777215 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO ALL + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 16777215 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyza_dros/dros_xyza_ui.py b/user_dro_display/xyza_dros/dros_xyza_ui.py new file mode 100644 index 0000000..5378f2f --- /dev/null +++ b/user_dro_display/xyza_dros/dros_xyza_ui.py @@ -0,0 +1,795 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyza_dros/dros_xyza.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_xyza(object): + def setupUi(self, dros_xyza): + dros_xyza.setObjectName("dros_xyza") + dros_xyza.resize(469, 272) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_xyza.sizePolicy().hasHeightForWidth()) + dros_xyza.setSizePolicy(sizePolicy) + dros_xyza.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(dros_xyza) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.widgets_xyza = QtWidgets.QWidget(dros_xyza) + self.widgets_xyza.setObjectName("widgets_xyza") + self.verticalLayout_56 = QtWidgets.QVBoxLayout(self.widgets_xyza) + self.verticalLayout_56.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_56.setSpacing(4) + self.verticalLayout_56.setObjectName("verticalLayout_56") + self.horizontalLayout_77 = QtWidgets.QHBoxLayout() + self.horizontalLayout_77.setContentsMargins(1, 1, 1, 1) + self.horizontalLayout_77.setSpacing(8) + self.horizontalLayout_77.setObjectName("horizontalLayout_77") + self.frame = QtWidgets.QFrame(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_144 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_144.setContentsMargins(15, -1, 20, -1) + self.horizontalLayout_144.setSpacing(8) + self.horizontalLayout_144.setObjectName("horizontalLayout_144") + self.axis_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_column_header.sizePolicy().hasHeightForWidth()) + self.axis_column_header.setSizePolicy(sizePolicy) + self.axis_column_header.setMinimumSize(QtCore.QSize(60, 17)) + self.axis_column_header.setMaximumSize(QtCore.QSize(60, 17)) + self.axis_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 1px;\n" +" padding-right: 20px;\n" +"}") + self.axis_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.axis_column_header.setObjectName("axis_column_header") + self.horizontalLayout_144.addWidget(self.axis_column_header) + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_144.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_144.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_144.addWidget(self.dtg_column_header) + self.ref_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_column_header.sizePolicy().hasHeightForWidth()) + self.ref_column_header.setSizePolicy(sizePolicy) + self.ref_column_header.setMinimumSize(QtCore.QSize(40, 17)) + self.ref_column_header.setMaximumSize(QtCore.QSize(40, 17)) + self.ref_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.ref_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.ref_column_header.setObjectName("ref_column_header") + self.horizontalLayout_144.addWidget(self.ref_column_header) + self.horizontalLayout_77.addWidget(self.frame) + self.verticalLayout_56.addLayout(self.horizontalLayout_77) + self.x_axis_dro_layout_3 = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout_3.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout_3.setSpacing(7) + self.x_axis_dro_layout_3.setObjectName("x_axis_dro_layout_3") + self.zero_x_button = MDIButton(self.widgets_xyza) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout_3.addWidget(self.zero_x_button) + self.drowidget_x = DROLineEdit(self.widgets_xyza) + self.drowidget_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_x.setFont(font) + self.drowidget_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_x.setCursorPosition(10) + self.drowidget_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_x.setProperty("referenceType", 1) + self.drowidget_x.setProperty("axisNumber", 0) + self.drowidget_x.setProperty("latheMode", 0) + self.drowidget_x.setObjectName("drowidget_x") + self.x_axis_dro_layout_3.addWidget(self.drowidget_x) + self.drolabel_machine_x = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout_3.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout_3.addWidget(self.drolabel_dtg_x) + self.ref_x_button = ActionButton(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button.sizePolicy().hasHeightForWidth()) + self.ref_x_button.setSizePolicy(sizePolicy) + self.ref_x_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button.setObjectName("ref_x_button") + self.x_axis_dro_layout_3.addWidget(self.ref_x_button) + self.verticalLayout_56.addLayout(self.x_axis_dro_layout_3) + self.y_axis_dro_layout_3 = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout_3.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout_3.setSpacing(7) + self.y_axis_dro_layout_3.setObjectName("y_axis_dro_layout_3") + self.zero_y_button = MDIButton(self.widgets_xyza) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout_3.addWidget(self.zero_y_button) + self.drowidget_y = DROLineEdit(self.widgets_xyza) + self.drowidget_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_y.setFont(font) + self.drowidget_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_y.setProperty("axisNumber", 1) + self.drowidget_y.setObjectName("drowidget_y") + self.y_axis_dro_layout_3.addWidget(self.drowidget_y) + self.drolabel_machine_y = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout_3.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout_3.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout_3.addWidget(self.ref_y_button) + self.verticalLayout_56.addLayout(self.y_axis_dro_layout_3) + self.z_axis_dro_layout_3 = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout_3.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout_3.setSpacing(7) + self.z_axis_dro_layout_3.setObjectName("z_axis_dro_layout_3") + self.zero_z_button = MDIButton(self.widgets_xyza) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout_3.addWidget(self.zero_z_button) + self.drowidget_z = DROLineEdit(self.widgets_xyza) + self.drowidget_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_z.setFont(font) + self.drowidget_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_z.setProperty("axisNumber", 2) + self.drowidget_z.setObjectName("drowidget_z") + self.z_axis_dro_layout_3.addWidget(self.drowidget_z) + self.drolabel_machine_z = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout_3.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout_3.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout_3.addWidget(self.ref_z_button) + self.verticalLayout_56.addLayout(self.z_axis_dro_layout_3) + self.a_axis_dro_layout_2 = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout_2.setContentsMargins(1, 1, 1, 1) + self.a_axis_dro_layout_2.setSpacing(7) + self.a_axis_dro_layout_2.setObjectName("a_axis_dro_layout_2") + self.zero_a_button = MDIButton(self.widgets_xyza) + self.zero_a_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_a_button.sizePolicy().hasHeightForWidth()) + self.zero_a_button.setSizePolicy(sizePolicy) + self.zero_a_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_a_button.setIcon(icon) + self.zero_a_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_a_button.setObjectName("zero_a_button") + self.a_axis_dro_layout_2.addWidget(self.zero_a_button) + self.drowidget_a = DROLineEdit(self.widgets_xyza) + self.drowidget_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drowidget_a.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.drowidget_a.setFont(font) + self.drowidget_a.setFocusPolicy(QtCore.Qt.ClickFocus) + self.drowidget_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.drowidget_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drowidget_a.setProperty("axisNumber", 3) + self.drowidget_a.setObjectName("drowidget_a") + self.a_axis_dro_layout_2.addWidget(self.drowidget_a) + self.drolabel_machine_a = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_a.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_a.setSizePolicy(sizePolicy) + self.drolabel_machine_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_a.setProperty("referenceType", 0) + self.drolabel_machine_a.setProperty("axisNumber", 3) + self.drolabel_machine_a.setProperty("latheMode", 0) + self.drolabel_machine_a.setObjectName("drolabel_machine_a") + self.a_axis_dro_layout_2.addWidget(self.drolabel_machine_a) + self.drolabel_dtg_a = DROLabel(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_a.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_a.setSizePolicy(sizePolicy) + self.drolabel_dtg_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_a.setProperty("referenceType", 2) + self.drolabel_dtg_a.setProperty("axisNumber", 3) + self.drolabel_dtg_a.setProperty("latheMode", 0) + self.drolabel_dtg_a.setObjectName("drolabel_dtg_a") + self.a_axis_dro_layout_2.addWidget(self.drolabel_dtg_a) + self.ref_a_button = ActionButton(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_a_button.sizePolicy().hasHeightForWidth()) + self.ref_a_button.setSizePolicy(sizePolicy) + self.ref_a_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_a_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_a_button.setObjectName("ref_a_button") + self.a_axis_dro_layout_2.addWidget(self.ref_a_button) + self.verticalLayout_56.addLayout(self.a_axis_dro_layout_2) + self.horizontalLayout_104 = QtWidgets.QHBoxLayout() + self.horizontalLayout_104.setContentsMargins(3, 1, 3, 1) + self.horizontalLayout_104.setSpacing(20) + self.horizontalLayout_104.setObjectName("horizontalLayout_104") + self.zero_all_button = MDIButton(self.widgets_xyza) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(16777215, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.horizontalLayout_104.addWidget(self.zero_all_button) + self.ref_all_button = ActionButton(self.widgets_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(16777215, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.horizontalLayout_104.addWidget(self.ref_all_button) + self.verticalLayout_56.addLayout(self.horizontalLayout_104) + self.verticalLayout.addWidget(self.widgets_xyza) + + self.retranslateUi(dros_xyza) + QtCore.QMetaObject.connectSlotsByName(dros_xyza) + + def retranslateUi(self, dros_xyza): + _translate = QtCore.QCoreApplication.translate + dros_xyza.setWindowTitle(_translate("dros_xyza", "dros_xyza")) + self.axis_column_header.setText(_translate("dros_xyza", "AXIS")) + self.axis_column_header.setProperty("rules", _translate("dros_xyza", "[]")) + self.work_column_header.setProperty("rules", _translate("dros_xyza", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_xyza", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_xyza", "DTG")) + self.ref_column_header.setText(_translate("dros_xyza", "REF")) + self.ref_column_header.setProperty("rules", _translate("dros_xyza", "[]")) + self.zero_x_button.setText(_translate("dros_xyza", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_xyza", "G10 L20 P{ch[0]} X0.0")) + self.drowidget_x.setText(_translate("dros_xyza", " 0.000")) + self.drowidget_x.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drowidget_x.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drowidget_x.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.ref_x_button.setText(_translate("dros_xyza", "REF X")) + self.ref_x_button.setProperty("rules", _translate("dros_xyza", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}]}]")) + self.ref_x_button.setProperty("actionName", _translate("dros_xyza", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_xyza", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_xyza", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.ref_y_button.setText(_translate("dros_xyza", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_xyza", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_xyza", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_xyza", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_xyza", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.ref_z_button.setText(_translate("dros_xyza", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_xyza", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_xyza", "machine.home.axis:z")) + self.zero_a_button.setText(_translate("dros_xyza", "A")) + self.zero_a_button.setProperty("rules", _translate("dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button.setProperty("MDICommand", _translate("dros_xyza", "G10 L20 P{ch[0]} A0.0")) + self.drolabel_machine_a.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_machine_a.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_machine_a.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.drolabel_dtg_a.setProperty("inchFormat", _translate("dros_xyza", "%9.4f")) + self.drolabel_dtg_a.setProperty("millimeterFormat", _translate("dros_xyza", "%10.3f")) + self.drolabel_dtg_a.setProperty("degreeFormat", _translate("dros_xyza", "%10.2f")) + self.ref_a_button.setText(_translate("dros_xyza", "REF A")) + self.ref_a_button.setProperty("rules", _translate("dros_xyza", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}]}]")) + self.ref_a_button.setProperty("actionName", _translate("dros_xyza", "machine.home.axis:a")) + self.zero_all_button.setText(_translate("dros_xyza", "ZERO ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_xyza", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0")) + self.ref_all_button.setText(_translate("dros_xyza", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_xyza", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_xyza", "machine.home.all")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyza_dros/offset_dros_xyza.ui b/user_dro_display/xyza_dros/offset_dros_xyza.ui new file mode 100644 index 0000000..489497a --- /dev/null +++ b/user_dro_display/xyza_dros/offset_dros_xyza.ui @@ -0,0 +1,1363 @@ + + + offset_dros_xyza + + + + 0 + 0 + 493 + 220 + + + + + 0 + 0 + + + + offset_dros_xyza + + + Qt::LeftToRight + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + A + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyza_dros/offset_dros_xyza_ui.py b/user_dro_display/xyza_dros/offset_dros_xyza_ui.py new file mode 100644 index 0000000..42633f5 --- /dev/null +++ b/user_dro_display/xyza_dros/offset_dros_xyza_ui.py @@ -0,0 +1,734 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyza_dros/offset_dros_xyza.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyza(object): + def setupUi(self, offset_dros_xyza): + offset_dros_xyza.setObjectName("offset_dros_xyza") + offset_dros_xyza.resize(493, 220) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyza.sizePolicy().hasHeightForWidth()) + offset_dros_xyza.setSizePolicy(sizePolicy) + offset_dros_xyza.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyza) + self.verticalLayout.setContentsMargins(9, 9, 9, 9) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout_6 = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout_6.setContentsMargins(-1, 4, -1, 4) + self.x_axis_dro_layout_6.setSpacing(12) + self.x_axis_dro_layout_6.setObjectName("x_axis_dro_layout_6") + self.zero_x_button_offset = MDIButton(offset_dros_xyza) + self.zero_x_button_offset.setEnabled(False) + self.zero_x_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button_offset.setObjectName("zero_x_button_offset") + self.x_axis_dro_layout_6.addWidget(self.zero_x_button_offset) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout_6.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout_6.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout_6.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout_6.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout_6.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout_6.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout_6) + self.y_axis_dro_layout_6 = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout_6.setContentsMargins(-1, 4, -1, 4) + self.y_axis_dro_layout_6.setSpacing(12) + self.y_axis_dro_layout_6.setObjectName("y_axis_dro_layout_6") + self.zero_y_button_offset = MDIButton(offset_dros_xyza) + self.zero_y_button_offset.setEnabled(False) + self.zero_y_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button_offset.setObjectName("zero_y_button_offset") + self.y_axis_dro_layout_6.addWidget(self.zero_y_button_offset) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyza) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout_6.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout_6.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout_6.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout_6.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout_6.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout_6.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout_6) + self.z_axis_dro_layout_6 = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout_6.setContentsMargins(-1, 4, -1, 4) + self.z_axis_dro_layout_6.setSpacing(12) + self.z_axis_dro_layout_6.setObjectName("z_axis_dro_layout_6") + self.zero_z_button_offset = MDIButton(offset_dros_xyza) + self.zero_z_button_offset.setEnabled(False) + self.zero_z_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button_offset.setObjectName("zero_z_button_offset") + self.z_axis_dro_layout_6.addWidget(self.zero_z_button_offset) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyza) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout_6.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout_6.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout_6.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout_6.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout_6.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout_6.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout_6) + self.a_axis_dro_layout_5 = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout_5.setContentsMargins(-1, 4, -1, 4) + self.a_axis_dro_layout_5.setSpacing(12) + self.a_axis_dro_layout_5.setObjectName("a_axis_dro_layout_5") + self.zero_a_button_offset = MDIButton(offset_dros_xyza) + self.zero_a_button_offset.setEnabled(False) + self.zero_a_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_a_button_offset.setObjectName("zero_a_button_offset") + self.a_axis_dro_layout_5.addWidget(self.zero_a_button_offset) + self.axis_label_a = QtWidgets.QLabel(offset_dros_xyza) + self.axis_label_a.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_a.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_a.setObjectName("axis_label_a") + self.a_axis_dro_layout_5.addWidget(self.axis_label_a) + self.dro_entry_offset_a = DROLineEdit(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_a.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_a.setSizePolicy(sizePolicy) + self.dro_entry_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_a.setFont(font) + self.dro_entry_offset_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_a.setProperty("axisNumber", 3) + self.dro_entry_offset_a.setObjectName("dro_entry_offset_a") + self.a_axis_dro_layout_5.addWidget(self.dro_entry_offset_a) + self.drolabel_work_a = DROLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_a.sizePolicy().hasHeightForWidth()) + self.drolabel_work_a.setSizePolicy(sizePolicy) + self.drolabel_work_a.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_a.setProperty("referenceType", 0) + self.drolabel_work_a.setProperty("axisNumber", 3) + self.drolabel_work_a.setProperty("latheMode", 0) + self.drolabel_work_a.setObjectName("drolabel_work_a") + self.a_axis_dro_layout_5.addWidget(self.drolabel_work_a) + self.work_offset_a = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_a.sizePolicy().hasHeightForWidth()) + self.work_offset_a.setSizePolicy(sizePolicy) + self.work_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_a.setObjectName("work_offset_a") + self.a_axis_dro_layout_5.addWidget(self.work_offset_a) + self.g52_g92_a = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_a.sizePolicy().hasHeightForWidth()) + self.g52_g92_a.setSizePolicy(sizePolicy) + self.g52_g92_a.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_a.setObjectName("g52_g92_a") + self.a_axis_dro_layout_5.addWidget(self.g52_g92_a) + self.tool_offset_a = StatusLabel(offset_dros_xyza) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_a.sizePolicy().hasHeightForWidth()) + self.tool_offset_a.setSizePolicy(sizePolicy) + self.tool_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_a.setObjectName("tool_offset_a") + self.a_axis_dro_layout_5.addWidget(self.tool_offset_a) + self.verticalLayout.addLayout(self.a_axis_dro_layout_5) + + self.retranslateUi(offset_dros_xyza) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyza) + + def retranslateUi(self, offset_dros_xyza): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyza.setWindowTitle(_translate("offset_dros_xyza", "offset_dros_xyza")) + self.zero_x_button_offset.setText(_translate("offset_dros_xyza", "ZERO")) + self.zero_x_button_offset.setProperty("rules", _translate("offset_dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button_offset.setProperty("MDICommand", _translate("offset_dros_xyza", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyza", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyza", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyza", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyza", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button_offset.setText(_translate("offset_dros_xyza", "ZERO")) + self.zero_y_button_offset.setProperty("rules", _translate("offset_dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button_offset.setProperty("MDICommand", _translate("offset_dros_xyza", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyza", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyza", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyza", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyza", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button_offset.setText(_translate("offset_dros_xyza", "ZERO")) + self.zero_z_button_offset.setProperty("rules", _translate("offset_dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button_offset.setProperty("MDICommand", _translate("offset_dros_xyza", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyza", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyza", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyza", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyza", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) + self.zero_a_button_offset.setText(_translate("offset_dros_xyza", "ZERO")) + self.zero_a_button_offset.setProperty("rules", _translate("offset_dros_xyza", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button_offset.setProperty("MDICommand", _translate("offset_dros_xyza", "G10 L20 P{ch[0]} A0.0")) + self.axis_label_a.setText(_translate("offset_dros_xyza", "A")) + self.drolabel_work_a.setProperty("inchFormat", _translate("offset_dros_xyza", "%9.4f")) + self.drolabel_work_a.setProperty("millimeterFormat", _translate("offset_dros_xyza", "%10.3f")) + self.drolabel_work_a.setProperty("degreeFormat", _translate("offset_dros_xyza", "%10.2f")) + self.work_offset_a.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.g52_g92_a.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.tool_offset_a.setProperty("rules", _translate("offset_dros_xyza", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzab_dros/dros_xyzab.py b/user_dro_display/xyzab_dros/dros_xyzab.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/xyzab_dros/dros_xyzab.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/xyzab_dros/dros_xyzab.ui b/user_dro_display/xyzab_dros/dros_xyzab.ui new file mode 100644 index 0000000..e77f27a --- /dev/null +++ b/user_dro_display/xyzab_dros/dros_xyzab.ui @@ -0,0 +1,1846 @@ + + + dros_xyzab + + + + 0 + 0 + 466 + 272 + + + + + 0 + 0 + + + + dros_xyzab + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 14pt "Bebas Kai"; +} + + + ALL + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 5 + + + 7 + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + A + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF A + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:a + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + B + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF B + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:b + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzab_dros/dros_xyzab_ui.py b/user_dro_display/xyzab_dros/dros_xyzab_ui.py new file mode 100644 index 0000000..b5f51ed --- /dev/null +++ b/user_dro_display/xyzab_dros/dros_xyzab_ui.py @@ -0,0 +1,900 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzab_dros/dros_xyzab.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_xyzab(object): + def setupUi(self, dros_xyzab): + dros_xyzab.setObjectName("dros_xyzab") + dros_xyzab.resize(466, 272) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_xyzab.sizePolicy().hasHeightForWidth()) + dros_xyzab.setSizePolicy(sizePolicy) + dros_xyzab.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(dros_xyzab) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(0) + self.verticalLayout.setObjectName("verticalLayout") + self.widget_xyzab = QtWidgets.QWidget(dros_xyzab) + self.widget_xyzab.setObjectName("widget_xyzab") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget_xyzab) + self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_4.setSpacing(4) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.header_layout = QtWidgets.QHBoxLayout() + self.header_layout.setContentsMargins(1, 1, 1, 1) + self.header_layout.setSpacing(7) + self.header_layout.setObjectName("header_layout") + self.zero_all_button = MDIButton(self.widget_xyzab) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 14pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_all_button.setIcon(icon) + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.header_layout.addWidget(self.zero_all_button) + self.frame = QtWidgets.QFrame(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_103 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_103.setContentsMargins(5, -1, 7, -1) + self.horizontalLayout_103.setSpacing(8) + self.horizontalLayout_103.setObjectName("horizontalLayout_103") + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_103.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_103.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_103.addWidget(self.dtg_column_header) + self.header_layout.addWidget(self.frame) + self.ref_all_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.header_layout.addWidget(self.ref_all_button) + self.verticalLayout_4.addLayout(self.header_layout) + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout.setSpacing(7) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(self.widget_xyzab) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.dro_entry_main_x = DROLineEdit(self.widget_xyzab) + self.dro_entry_main_x.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_x.setFont(font) + self.dro_entry_main_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_x.setProperty("referenceType", 1) + self.dro_entry_main_x.setProperty("axisNumber", 0) + self.dro_entry_main_x.setProperty("latheMode", 0) + self.dro_entry_main_x.setObjectName("dro_entry_main_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_main_x) + self.drolabel_machine_x = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout.addWidget(self.drolabel_dtg_x) + self.ref_x_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button.sizePolicy().hasHeightForWidth()) + self.ref_x_button.setSizePolicy(sizePolicy) + self.ref_x_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button.setObjectName("ref_x_button") + self.x_axis_dro_layout.addWidget(self.ref_x_button) + self.verticalLayout_4.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout.setSpacing(7) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(self.widget_xyzab) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.dro_entry_main_y = DROLineEdit(self.widget_xyzab) + self.dro_entry_main_y.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_y.setFont(font) + self.dro_entry_main_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_y.setProperty("axisNumber", 1) + self.dro_entry_main_y.setObjectName("dro_entry_main_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_main_y) + self.drolabel_machine_y = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout.addWidget(self.ref_y_button) + self.verticalLayout_4.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout.setSpacing(7) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(self.widget_xyzab) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.dro_entry_main_z = DROLineEdit(self.widget_xyzab) + self.dro_entry_main_z.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_z.setFont(font) + self.dro_entry_main_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_z.setProperty("axisNumber", 2) + self.dro_entry_main_z.setObjectName("dro_entry_main_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_main_z) + self.drolabel_machine_z = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout.addWidget(self.ref_z_button) + self.verticalLayout_4.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.a_axis_dro_layout.setSpacing(7) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button = MDIButton(self.widget_xyzab) + self.zero_a_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_a_button.sizePolicy().hasHeightForWidth()) + self.zero_a_button.setSizePolicy(sizePolicy) + self.zero_a_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_a_button.setIcon(icon) + self.zero_a_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_a_button.setObjectName("zero_a_button") + self.a_axis_dro_layout.addWidget(self.zero_a_button) + self.dro_entry_main_a = DROLineEdit(self.widget_xyzab) + self.dro_entry_main_a.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_a.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_a.setFont(font) + self.dro_entry_main_a.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_a.setProperty("axisNumber", 3) + self.dro_entry_main_a.setObjectName("dro_entry_main_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_main_a) + self.drolabel_machine_a = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_a.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_a.setSizePolicy(sizePolicy) + self.drolabel_machine_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_a.setProperty("referenceType", 0) + self.drolabel_machine_a.setProperty("axisNumber", 3) + self.drolabel_machine_a.setProperty("latheMode", 0) + self.drolabel_machine_a.setObjectName("drolabel_machine_a") + self.a_axis_dro_layout.addWidget(self.drolabel_machine_a) + self.drolabel_dtg_a = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_a.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_a.setSizePolicy(sizePolicy) + self.drolabel_dtg_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_a.setProperty("referenceType", 2) + self.drolabel_dtg_a.setProperty("axisNumber", 3) + self.drolabel_dtg_a.setProperty("latheMode", 0) + self.drolabel_dtg_a.setObjectName("drolabel_dtg_a") + self.a_axis_dro_layout.addWidget(self.drolabel_dtg_a) + self.ref_a_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_a_button.sizePolicy().hasHeightForWidth()) + self.ref_a_button.setSizePolicy(sizePolicy) + self.ref_a_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_a_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_a_button.setObjectName("ref_a_button") + self.a_axis_dro_layout.addWidget(self.ref_a_button) + self.verticalLayout_4.addLayout(self.a_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.b_axis_dro_layout.setSpacing(7) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button = MDIButton(self.widget_xyzab) + self.zero_b_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_b_button.sizePolicy().hasHeightForWidth()) + self.zero_b_button.setSizePolicy(sizePolicy) + self.zero_b_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_b_button.setIcon(icon) + self.zero_b_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_b_button.setObjectName("zero_b_button") + self.b_axis_dro_layout.addWidget(self.zero_b_button) + self.dro_entry_main_b = DROLineEdit(self.widget_xyzab) + self.dro_entry_main_b.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_b.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_b.setFont(font) + self.dro_entry_main_b.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_b.setProperty("referenceType", 1) + self.dro_entry_main_b.setProperty("axisNumber", 4) + self.dro_entry_main_b.setProperty("latheMode", 0) + self.dro_entry_main_b.setObjectName("dro_entry_main_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_main_b) + self.drolabel_machine_b = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_b.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_b.setSizePolicy(sizePolicy) + self.drolabel_machine_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_b.setProperty("referenceType", 0) + self.drolabel_machine_b.setProperty("axisNumber", 4) + self.drolabel_machine_b.setProperty("latheMode", 0) + self.drolabel_machine_b.setObjectName("drolabel_machine_b") + self.b_axis_dro_layout.addWidget(self.drolabel_machine_b) + self.drolabel_dtg_b = DROLabel(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_b.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_b.setSizePolicy(sizePolicy) + self.drolabel_dtg_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_b.setProperty("referenceType", 2) + self.drolabel_dtg_b.setProperty("axisNumber", 4) + self.drolabel_dtg_b.setProperty("latheMode", 0) + self.drolabel_dtg_b.setObjectName("drolabel_dtg_b") + self.b_axis_dro_layout.addWidget(self.drolabel_dtg_b) + self.ref_b_button = ActionButton(self.widget_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_b_button.sizePolicy().hasHeightForWidth()) + self.ref_b_button.setSizePolicy(sizePolicy) + self.ref_b_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_b_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_b_button.setObjectName("ref_b_button") + self.b_axis_dro_layout.addWidget(self.ref_b_button) + self.verticalLayout_4.addLayout(self.b_axis_dro_layout) + self.verticalLayout.addWidget(self.widget_xyzab) + + self.retranslateUi(dros_xyzab) + QtCore.QMetaObject.connectSlotsByName(dros_xyzab) + + def retranslateUi(self, dros_xyzab): + _translate = QtCore.QCoreApplication.translate + dros_xyzab.setWindowTitle(_translate("dros_xyzab", "dros_xyzab")) + self.zero_all_button.setText(_translate("dros_xyzab", "ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0")) + self.work_column_header.setProperty("rules", _translate("dros_xyzab", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_xyzab", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_xyzab", "DTG")) + self.ref_all_button.setText(_translate("dros_xyzab", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_xyzab", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.all")) + self.zero_x_button.setText(_translate("dros_xyzab", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} X0.0")) + self.dro_entry_main_x.setText(_translate("dros_xyzab", " 0.000")) + self.dro_entry_main_x.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.dro_entry_main_x.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.dro_entry_main_x.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.ref_x_button.setText(_translate("dros_xyzab", "REF X")) + self.ref_x_button.setProperty("rules", _translate("dros_xyzab", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_x_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_xyzab", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.ref_y_button.setText(_translate("dros_xyzab", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_xyzab", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_xyzab", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.ref_z_button.setText(_translate("dros_xyzab", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_xyzab", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.axis:z")) + self.zero_a_button.setText(_translate("dros_xyzab", "A")) + self.zero_a_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} A0.0")) + self.drolabel_machine_a.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_machine_a.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_machine_a.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_dtg_a.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_dtg_a.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_dtg_a.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.ref_a_button.setText(_translate("dros_xyzab", "REF A")) + self.ref_a_button.setProperty("rules", _translate("dros_xyzab", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_a_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.axis:a")) + self.zero_b_button.setText(_translate("dros_xyzab", "B")) + self.zero_b_button.setProperty("rules", _translate("dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button.setProperty("MDICommand", _translate("dros_xyzab", "G10 L20 P{ch[0]} B0.0")) + self.dro_entry_main_b.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.dro_entry_main_b.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.dro_entry_main_b.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_machine_b.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_machine_b.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_machine_b.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.drolabel_dtg_b.setProperty("inchFormat", _translate("dros_xyzab", "%9.4f")) + self.drolabel_dtg_b.setProperty("millimeterFormat", _translate("dros_xyzab", "%10.3f")) + self.drolabel_dtg_b.setProperty("degreeFormat", _translate("dros_xyzab", "%10.2f")) + self.ref_b_button.setText(_translate("dros_xyzab", "REF B")) + self.ref_b_button.setProperty("rules", _translate("dros_xyzab", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_b_button.setProperty("actionName", _translate("dros_xyzab", "machine.home.axis:b")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzab_dros/offset_dros_xyzab.ui b/user_dro_display/xyzab_dros/offset_dros_xyzab.ui new file mode 100644 index 0000000..e17069c --- /dev/null +++ b/user_dro_display/xyzab_dros/offset_dros_xyzab.ui @@ -0,0 +1,1686 @@ + + + offset_dros_xyzab + + + + 0 + 0 + 493 + 276 + + + + + 0 + 0 + + + + offset_dros_xyzab + + + Qt::LeftToRight + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + A + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + B + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzab_dros/offset_dros_xyzab_ui.py b/user_dro_display/xyzab_dros/offset_dros_xyzab_ui.py new file mode 100644 index 0000000..07cb4a3 --- /dev/null +++ b/user_dro_display/xyzab_dros/offset_dros_xyzab_ui.py @@ -0,0 +1,907 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzab_dros/offset_dros_xyzab.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyzab(object): + def setupUi(self, offset_dros_xyzab): + offset_dros_xyzab.setObjectName("offset_dros_xyzab") + offset_dros_xyzab.resize(493, 276) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyzab.sizePolicy().hasHeightForWidth()) + offset_dros_xyzab.setSizePolicy(sizePolicy) + offset_dros_xyzab.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyzab) + self.verticalLayout.setContentsMargins(9, 9, 9, 9) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.x_axis_dro_layout.setSpacing(12) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button_offset = MDIButton(offset_dros_xyzab) + self.zero_x_button_offset.setEnabled(False) + self.zero_x_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button_offset.setObjectName("zero_x_button_offset") + self.x_axis_dro_layout.addWidget(self.zero_x_button_offset) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.y_axis_dro_layout.setSpacing(12) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button_offset = MDIButton(offset_dros_xyzab) + self.zero_y_button_offset.setEnabled(False) + self.zero_y_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button_offset.setObjectName("zero_y_button_offset") + self.y_axis_dro_layout.addWidget(self.zero_y_button_offset) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.z_axis_dro_layout.setSpacing(12) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button_offset = MDIButton(offset_dros_xyzab) + self.zero_z_button_offset.setEnabled(False) + self.zero_z_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button_offset.setObjectName("zero_z_button_offset") + self.z_axis_dro_layout.addWidget(self.zero_z_button_offset) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.a_axis_dro_layout.setSpacing(12) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button_offset = MDIButton(offset_dros_xyzab) + self.zero_a_button_offset.setEnabled(False) + self.zero_a_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_a_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_a_button_offset.setObjectName("zero_a_button_offset") + self.a_axis_dro_layout.addWidget(self.zero_a_button_offset) + self.axis_label_a = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_a.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_a.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_a.setObjectName("axis_label_a") + self.a_axis_dro_layout.addWidget(self.axis_label_a) + self.dro_entry_offset_a = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_a.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_a.setSizePolicy(sizePolicy) + self.dro_entry_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_a.setFont(font) + self.dro_entry_offset_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_a.setProperty("axisNumber", 3) + self.dro_entry_offset_a.setObjectName("dro_entry_offset_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_offset_a) + self.drolabel_work_a = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_a.sizePolicy().hasHeightForWidth()) + self.drolabel_work_a.setSizePolicy(sizePolicy) + self.drolabel_work_a.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_a.setProperty("referenceType", 0) + self.drolabel_work_a.setProperty("axisNumber", 3) + self.drolabel_work_a.setProperty("latheMode", 0) + self.drolabel_work_a.setObjectName("drolabel_work_a") + self.a_axis_dro_layout.addWidget(self.drolabel_work_a) + self.work_offset_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_a.sizePolicy().hasHeightForWidth()) + self.work_offset_a.setSizePolicy(sizePolicy) + self.work_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_a.setObjectName("work_offset_a") + self.a_axis_dro_layout.addWidget(self.work_offset_a) + self.g52_g92_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_a.sizePolicy().hasHeightForWidth()) + self.g52_g92_a.setSizePolicy(sizePolicy) + self.g52_g92_a.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_a.setObjectName("g52_g92_a") + self.a_axis_dro_layout.addWidget(self.g52_g92_a) + self.tool_offset_a = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_a.sizePolicy().hasHeightForWidth()) + self.tool_offset_a.setSizePolicy(sizePolicy) + self.tool_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_a.setObjectName("tool_offset_a") + self.a_axis_dro_layout.addWidget(self.tool_offset_a) + self.verticalLayout.addLayout(self.a_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.b_axis_dro_layout.setSpacing(12) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button_offset = MDIButton(offset_dros_xyzab) + self.zero_b_button_offset.setEnabled(False) + self.zero_b_button_offset.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_b_button_offset.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_b_button_offset.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button_offset.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_b_button_offset.setObjectName("zero_b_button_offset") + self.b_axis_dro_layout.addWidget(self.zero_b_button_offset) + self.axis_label_b = QtWidgets.QLabel(offset_dros_xyzab) + self.axis_label_b.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_b.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_b.setObjectName("axis_label_b") + self.b_axis_dro_layout.addWidget(self.axis_label_b) + self.dro_entry_offset_b = DROLineEdit(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_b.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_b.setSizePolicy(sizePolicy) + self.dro_entry_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_b.setFont(font) + self.dro_entry_offset_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_b.setProperty("axisNumber", 4) + self.dro_entry_offset_b.setObjectName("dro_entry_offset_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_offset_b) + self.drolabel_work_b = DROLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_b.sizePolicy().hasHeightForWidth()) + self.drolabel_work_b.setSizePolicy(sizePolicy) + self.drolabel_work_b.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_b.setProperty("referenceType", 0) + self.drolabel_work_b.setProperty("axisNumber", 4) + self.drolabel_work_b.setProperty("latheMode", 0) + self.drolabel_work_b.setObjectName("drolabel_work_b") + self.b_axis_dro_layout.addWidget(self.drolabel_work_b) + self.work_offset_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_b.sizePolicy().hasHeightForWidth()) + self.work_offset_b.setSizePolicy(sizePolicy) + self.work_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_b.setObjectName("work_offset_b") + self.b_axis_dro_layout.addWidget(self.work_offset_b) + self.g52_g92_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_b.sizePolicy().hasHeightForWidth()) + self.g52_g92_b.setSizePolicy(sizePolicy) + self.g52_g92_b.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_b.setObjectName("g52_g92_b") + self.b_axis_dro_layout.addWidget(self.g52_g92_b) + self.tool_offset_b = StatusLabel(offset_dros_xyzab) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_b.sizePolicy().hasHeightForWidth()) + self.tool_offset_b.setSizePolicy(sizePolicy) + self.tool_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_b.setObjectName("tool_offset_b") + self.b_axis_dro_layout.addWidget(self.tool_offset_b) + self.verticalLayout.addLayout(self.b_axis_dro_layout) + + self.retranslateUi(offset_dros_xyzab) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyzab) + + def retranslateUi(self, offset_dros_xyzab): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyzab.setWindowTitle(_translate("offset_dros_xyzab", "offset_dros_xyzab")) + self.zero_x_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_x_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyzab", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_y_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyzab", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_z_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyzab", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) + self.zero_a_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_a_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} A0.0")) + self.axis_label_a.setText(_translate("offset_dros_xyzab", "A")) + self.drolabel_work_a.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_a.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_a.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.g52_g92_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.tool_offset_a.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.zero_b_button_offset.setText(_translate("offset_dros_xyzab", "ZERO")) + self.zero_b_button_offset.setProperty("rules", _translate("offset_dros_xyzab", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button_offset.setProperty("MDICommand", _translate("offset_dros_xyzab", "G10 L20 P{ch[0]} B0.0")) + self.axis_label_b.setText(_translate("offset_dros_xyzab", "B")) + self.drolabel_work_b.setProperty("inchFormat", _translate("offset_dros_xyzab", "%9.4f")) + self.drolabel_work_b.setProperty("millimeterFormat", _translate("offset_dros_xyzab", "%10.3f")) + self.drolabel_work_b.setProperty("degreeFormat", _translate("offset_dros_xyzab", "%10.2f")) + self.work_offset_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_b.setProperty("rules", _translate("offset_dros_xyzab", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzac_dros/dros_xyzac.py b/user_dro_display/xyzac_dros/dros_xyzac.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/xyzac_dros/dros_xyzac.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/xyzac_dros/dros_xyzac.ui b/user_dro_display/xyzac_dros/dros_xyzac.ui new file mode 100644 index 0000000..fed4daf --- /dev/null +++ b/user_dro_display/xyzac_dros/dros_xyzac.ui @@ -0,0 +1,1849 @@ + + + dros_xyzac + + + + 0 + 0 + 458 + 272 + + + + + 0 + 0 + + + + dros_xyzac + + + Qt::LeftToRight + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 4 + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 14pt "Bebas Kai"; +} + + + ALL + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 C0.0 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 5 + + + 7 + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + A + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF A + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:a + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + C + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF C + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:c + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzac_dros/dros_xyzac_ui.py b/user_dro_display/xyzac_dros/dros_xyzac_ui.py new file mode 100644 index 0000000..ea6b067 --- /dev/null +++ b/user_dro_display/xyzac_dros/dros_xyzac_ui.py @@ -0,0 +1,901 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzac_dros/dros_xyzac.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_xyzac(object): + def setupUi(self, dros_xyzac): + dros_xyzac.setObjectName("dros_xyzac") + dros_xyzac.resize(458, 272) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_xyzac.sizePolicy().hasHeightForWidth()) + dros_xyzac.setSizePolicy(sizePolicy) + dros_xyzac.setLayoutDirection(QtCore.Qt.LeftToRight) + self.y_axis_dro_layout_2 = QtWidgets.QVBoxLayout(dros_xyzac) + self.y_axis_dro_layout_2.setContentsMargins(0, 0, 0, 0) + self.y_axis_dro_layout_2.setSpacing(0) + self.y_axis_dro_layout_2.setObjectName("y_axis_dro_layout_2") + self.widget_xyzac = QtWidgets.QWidget(dros_xyzac) + self.widget_xyzac.setObjectName("widget_xyzac") + self._2 = QtWidgets.QVBoxLayout(self.widget_xyzac) + self._2.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) + self._2.setContentsMargins(0, 0, 0, 0) + self._2.setSpacing(4) + self._2.setObjectName("_2") + self.header_layout = QtWidgets.QHBoxLayout() + self.header_layout.setContentsMargins(1, 1, 1, 1) + self.header_layout.setSpacing(7) + self.header_layout.setObjectName("header_layout") + self.zero_all_button = MDIButton(self.widget_xyzac) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 14pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_all_button.setIcon(icon) + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.header_layout.addWidget(self.zero_all_button) + self.frame = QtWidgets.QFrame(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_131 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_131.setContentsMargins(5, -1, 7, -1) + self.horizontalLayout_131.setSpacing(8) + self.horizontalLayout_131.setObjectName("horizontalLayout_131") + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_131.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_131.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_131.addWidget(self.dtg_column_header) + self.header_layout.addWidget(self.frame) + self.ref_all_button = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.header_layout.addWidget(self.ref_all_button) + self._2.addLayout(self.header_layout) + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout.setSpacing(7) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(self.widget_xyzac) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.dro_entry_main_x = DROLineEdit(self.widget_xyzac) + self.dro_entry_main_x.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_x.setFont(font) + self.dro_entry_main_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_x.setProperty("referenceType", 1) + self.dro_entry_main_x.setProperty("axisNumber", 0) + self.dro_entry_main_x.setProperty("latheMode", 0) + self.dro_entry_main_x.setObjectName("dro_entry_main_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_main_x) + self.drolabel_machine_x = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout.addWidget(self.drolabel_dtg_x) + self.ref_x_button_3 = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button_3.sizePolicy().hasHeightForWidth()) + self.ref_x_button_3.setSizePolicy(sizePolicy) + self.ref_x_button_3.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button_3.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button_3.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button_3.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button_3.setObjectName("ref_x_button_3") + self.x_axis_dro_layout.addWidget(self.ref_x_button_3) + self._2.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout.setSpacing(7) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(self.widget_xyzac) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.dro_entry_main_y = DROLineEdit(self.widget_xyzac) + self.dro_entry_main_y.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_y.setFont(font) + self.dro_entry_main_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_y.setProperty("axisNumber", 1) + self.dro_entry_main_y.setObjectName("dro_entry_main_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_main_y) + self.drolabel_machine_y = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout.addWidget(self.ref_y_button) + self._2.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout.setSpacing(7) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(self.widget_xyzac) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.dro_entry_main_z = DROLineEdit(self.widget_xyzac) + self.dro_entry_main_z.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_z.setFont(font) + self.dro_entry_main_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_z.setProperty("axisNumber", 2) + self.dro_entry_main_z.setObjectName("dro_entry_main_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_main_z) + self.drolabel_machine_z = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout.addWidget(self.ref_z_button) + self._2.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.a_axis_dro_layout.setSpacing(7) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button = MDIButton(self.widget_xyzac) + self.zero_a_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_a_button.sizePolicy().hasHeightForWidth()) + self.zero_a_button.setSizePolicy(sizePolicy) + self.zero_a_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_a_button.setIcon(icon) + self.zero_a_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_a_button.setObjectName("zero_a_button") + self.a_axis_dro_layout.addWidget(self.zero_a_button) + self.dro_entry_main_a = DROLineEdit(self.widget_xyzac) + self.dro_entry_main_a.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_a.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_a.setFont(font) + self.dro_entry_main_a.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_a.setProperty("axisNumber", 3) + self.dro_entry_main_a.setObjectName("dro_entry_main_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_main_a) + self.drolabel_machine_a = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_a.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_a.setSizePolicy(sizePolicy) + self.drolabel_machine_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_a.setProperty("referenceType", 0) + self.drolabel_machine_a.setProperty("axisNumber", 3) + self.drolabel_machine_a.setProperty("latheMode", 0) + self.drolabel_machine_a.setObjectName("drolabel_machine_a") + self.a_axis_dro_layout.addWidget(self.drolabel_machine_a) + self.drolabel_dtg_a = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_a.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_a.setSizePolicy(sizePolicy) + self.drolabel_dtg_a.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_a.setProperty("referenceType", 2) + self.drolabel_dtg_a.setProperty("axisNumber", 3) + self.drolabel_dtg_a.setProperty("latheMode", 0) + self.drolabel_dtg_a.setObjectName("drolabel_dtg_a") + self.a_axis_dro_layout.addWidget(self.drolabel_dtg_a) + self.ref_a_button = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_a_button.sizePolicy().hasHeightForWidth()) + self.ref_a_button.setSizePolicy(sizePolicy) + self.ref_a_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_a_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_a_button.setObjectName("ref_a_button") + self.a_axis_dro_layout.addWidget(self.ref_a_button) + self._2.addLayout(self.a_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.c_axis_dro_layout.setSpacing(7) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(self.widget_xyzac) + self.zero_c_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_c_button.sizePolicy().hasHeightForWidth()) + self.zero_c_button.setSizePolicy(sizePolicy) + self.zero_c_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setIcon(icon) + self.zero_c_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.dro_entry_main_b = DROLineEdit(self.widget_xyzac) + self.dro_entry_main_b.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_b.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_b.setFont(font) + self.dro_entry_main_b.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_b.setProperty("referenceType", 1) + self.dro_entry_main_b.setProperty("axisNumber", 4) + self.dro_entry_main_b.setProperty("latheMode", 0) + self.dro_entry_main_b.setObjectName("dro_entry_main_b") + self.c_axis_dro_layout.addWidget(self.dro_entry_main_b) + self.drolabel_machine_c = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_c.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_c.setSizePolicy(sizePolicy) + self.drolabel_machine_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_c.setProperty("referenceType", 0) + self.drolabel_machine_c.setProperty("axisNumber", 4) + self.drolabel_machine_c.setProperty("latheMode", 0) + self.drolabel_machine_c.setObjectName("drolabel_machine_c") + self.c_axis_dro_layout.addWidget(self.drolabel_machine_c) + self.drolabel_dtg_c = DROLabel(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_c.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_c.setSizePolicy(sizePolicy) + self.drolabel_dtg_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_c.setProperty("referenceType", 2) + self.drolabel_dtg_c.setProperty("axisNumber", 4) + self.drolabel_dtg_c.setProperty("latheMode", 0) + self.drolabel_dtg_c.setObjectName("drolabel_dtg_c") + self.c_axis_dro_layout.addWidget(self.drolabel_dtg_c) + self.ref_c_button = ActionButton(self.widget_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_c_button.sizePolicy().hasHeightForWidth()) + self.ref_c_button.setSizePolicy(sizePolicy) + self.ref_c_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_c_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_c_button.setObjectName("ref_c_button") + self.c_axis_dro_layout.addWidget(self.ref_c_button) + self._2.addLayout(self.c_axis_dro_layout) + self.y_axis_dro_layout_2.addWidget(self.widget_xyzac) + + self.retranslateUi(dros_xyzac) + QtCore.QMetaObject.connectSlotsByName(dros_xyzac) + + def retranslateUi(self, dros_xyzac): + _translate = QtCore.QCoreApplication.translate + dros_xyzac.setWindowTitle(_translate("dros_xyzac", "dros_xyzac")) + self.zero_all_button.setText(_translate("dros_xyzac", "ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 C0.0")) + self.work_column_header.setProperty("rules", _translate("dros_xyzac", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_xyzac", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_xyzac", "DTG")) + self.ref_all_button.setText(_translate("dros_xyzac", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_xyzac", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_xyzac", "machine.home.all")) + self.zero_x_button.setText(_translate("dros_xyzac", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} X0.0")) + self.dro_entry_main_x.setText(_translate("dros_xyzac", " 0.000")) + self.dro_entry_main_x.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.dro_entry_main_x.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.dro_entry_main_x.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.ref_x_button_3.setText(_translate("dros_xyzac", "REF X")) + self.ref_x_button_3.setProperty("rules", _translate("dros_xyzac", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_x_button_3.setProperty("actionName", _translate("dros_xyzac", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_xyzac", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.ref_y_button.setText(_translate("dros_xyzac", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_xyzac", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_xyzac", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_xyzac", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.ref_z_button.setText(_translate("dros_xyzac", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_xyzac", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_xyzac", "machine.home.axis:z")) + self.zero_a_button.setText(_translate("dros_xyzac", "A")) + self.zero_a_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} A0.0")) + self.drolabel_machine_a.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_machine_a.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_machine_a.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_dtg_a.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_dtg_a.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_dtg_a.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.ref_a_button.setText(_translate("dros_xyzac", "REF A")) + self.ref_a_button.setProperty("rules", _translate("dros_xyzac", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_a_button.setProperty("actionName", _translate("dros_xyzac", "machine.home.axis:a")) + self.zero_c_button.setText(_translate("dros_xyzac", "C")) + self.zero_c_button.setProperty("rules", _translate("dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("dros_xyzac", "G10 L20 P{ch[0]} C0.0")) + self.dro_entry_main_b.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.dro_entry_main_b.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.dro_entry_main_b.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_machine_c.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_machine_c.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_machine_c.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.drolabel_dtg_c.setProperty("inchFormat", _translate("dros_xyzac", "%9.4f")) + self.drolabel_dtg_c.setProperty("millimeterFormat", _translate("dros_xyzac", "%10.3f")) + self.drolabel_dtg_c.setProperty("degreeFormat", _translate("dros_xyzac", "%10.2f")) + self.ref_c_button.setText(_translate("dros_xyzac", "REF C")) + self.ref_c_button.setProperty("rules", _translate("dros_xyzac", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_c_button.setProperty("actionName", _translate("dros_xyzac", "machine.home.axis:c")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzac_dros/offset_dros_xyzac.ui b/user_dro_display/xyzac_dros/offset_dros_xyzac.ui new file mode 100644 index 0000000..51ecd8c --- /dev/null +++ b/user_dro_display/xyzac_dros/offset_dros_xyzac.ui @@ -0,0 +1,1701 @@ + + + offset_dros_xyzac + + + + 0 + 0 + 493 + 276 + + + + + 0 + 0 + + + + offset_dros_xyzac + + + Qt::LeftToRight + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} A0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + A + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][3])", "name": "New Rule"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + C + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzac_dros/offset_dros_xyzac_ui.py b/user_dro_display/xyzac_dros/offset_dros_xyzac_ui.py new file mode 100644 index 0000000..69cbb90 --- /dev/null +++ b/user_dro_display/xyzac_dros/offset_dros_xyzac_ui.py @@ -0,0 +1,912 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzac_dros/offset_dros_xyzac.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyzac(object): + def setupUi(self, offset_dros_xyzac): + offset_dros_xyzac.setObjectName("offset_dros_xyzac") + offset_dros_xyzac.resize(493, 276) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyzac.sizePolicy().hasHeightForWidth()) + offset_dros_xyzac.setSizePolicy(sizePolicy) + offset_dros_xyzac.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyzac) + self.verticalLayout.setContentsMargins(9, 9, 9, 9) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.x_axis_dro_layout.setSpacing(12) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(offset_dros_xyzac) + self.zero_x_button.setEnabled(False) + self.zero_x_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.y_axis_dro_layout.setSpacing(12) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(offset_dros_xyzac) + self.zero_y_button.setEnabled(False) + self.zero_y_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyzac) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.z_axis_dro_layout.setSpacing(12) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(offset_dros_xyzac) + self.zero_z_button.setEnabled(False) + self.zero_z_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyzac) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout) + self.a_axis_dro_layout = QtWidgets.QHBoxLayout() + self.a_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.a_axis_dro_layout.setSpacing(12) + self.a_axis_dro_layout.setObjectName("a_axis_dro_layout") + self.zero_a_button = MDIButton(offset_dros_xyzac) + self.zero_a_button.setEnabled(False) + self.zero_a_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_a_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_a_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_a_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_a_button.setObjectName("zero_a_button") + self.a_axis_dro_layout.addWidget(self.zero_a_button) + self.axis_label_a = QtWidgets.QLabel(offset_dros_xyzac) + self.axis_label_a.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_a.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_a.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_a.setObjectName("axis_label_a") + self.a_axis_dro_layout.addWidget(self.axis_label_a) + self.dro_entry_offset_a = DROLineEdit(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_a.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_a.setSizePolicy(sizePolicy) + self.dro_entry_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_a.setFont(font) + self.dro_entry_offset_a.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_a.setProperty("axisNumber", 3) + self.dro_entry_offset_a.setObjectName("dro_entry_offset_a") + self.a_axis_dro_layout.addWidget(self.dro_entry_offset_a) + self.drolabel_work_a = DROLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_a.sizePolicy().hasHeightForWidth()) + self.drolabel_work_a.setSizePolicy(sizePolicy) + self.drolabel_work_a.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_a.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_a.setProperty("referenceType", 0) + self.drolabel_work_a.setProperty("axisNumber", 3) + self.drolabel_work_a.setProperty("latheMode", 0) + self.drolabel_work_a.setObjectName("drolabel_work_a") + self.a_axis_dro_layout.addWidget(self.drolabel_work_a) + self.work_offset_a = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_a.sizePolicy().hasHeightForWidth()) + self.work_offset_a.setSizePolicy(sizePolicy) + self.work_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_a.setObjectName("work_offset_a") + self.a_axis_dro_layout.addWidget(self.work_offset_a) + self.g52_g92_a = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_a.sizePolicy().hasHeightForWidth()) + self.g52_g92_a.setSizePolicy(sizePolicy) + self.g52_g92_a.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_a.setObjectName("g52_g92_a") + self.a_axis_dro_layout.addWidget(self.g52_g92_a) + self.tool_offset_a = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_a.sizePolicy().hasHeightForWidth()) + self.tool_offset_a.setSizePolicy(sizePolicy) + self.tool_offset_a.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_a.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_a.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_a.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_a.setObjectName("tool_offset_a") + self.a_axis_dro_layout.addWidget(self.tool_offset_a) + self.verticalLayout.addLayout(self.a_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.c_axis_dro_layout.setSpacing(12) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(offset_dros_xyzac) + self.zero_c_button.setEnabled(False) + self.zero_c_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.axis_label_c = QtWidgets.QLabel(offset_dros_xyzac) + self.axis_label_c.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_c.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_c.setObjectName("axis_label_c") + self.c_axis_dro_layout.addWidget(self.axis_label_c) + self.dro_entry_offset_c = DROLineEdit(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_c.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_c.setSizePolicy(sizePolicy) + self.dro_entry_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_c.setFont(font) + self.dro_entry_offset_c.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_c.setProperty("referenceType", 1) + self.dro_entry_offset_c.setProperty("axisNumber", 4) + self.dro_entry_offset_c.setProperty("latheMode", 0) + self.dro_entry_offset_c.setObjectName("dro_entry_offset_c") + self.c_axis_dro_layout.addWidget(self.dro_entry_offset_c) + self.drolabel_work_c = DROLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_c.sizePolicy().hasHeightForWidth()) + self.drolabel_work_c.setSizePolicy(sizePolicy) + self.drolabel_work_c.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_c.setProperty("referenceType", 0) + self.drolabel_work_c.setProperty("axisNumber", 4) + self.drolabel_work_c.setProperty("latheMode", 0) + self.drolabel_work_c.setObjectName("drolabel_work_c") + self.c_axis_dro_layout.addWidget(self.drolabel_work_c) + self.work_offset_c = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_c.sizePolicy().hasHeightForWidth()) + self.work_offset_c.setSizePolicy(sizePolicy) + self.work_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_c.setObjectName("work_offset_c") + self.c_axis_dro_layout.addWidget(self.work_offset_c) + self.g52_g92_c = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_c.sizePolicy().hasHeightForWidth()) + self.g52_g92_c.setSizePolicy(sizePolicy) + self.g52_g92_c.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_c.setObjectName("g52_g92_c") + self.c_axis_dro_layout.addWidget(self.g52_g92_c) + self.tool_offset_c = StatusLabel(offset_dros_xyzac) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_c.sizePolicy().hasHeightForWidth()) + self.tool_offset_c.setSizePolicy(sizePolicy) + self.tool_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_c.setObjectName("tool_offset_c") + self.c_axis_dro_layout.addWidget(self.tool_offset_c) + self.verticalLayout.addLayout(self.c_axis_dro_layout) + + self.retranslateUi(offset_dros_xyzac) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyzac) + + def retranslateUi(self, offset_dros_xyzac): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyzac.setWindowTitle(_translate("offset_dros_xyzac", "offset_dros_xyzac")) + self.zero_x_button.setText(_translate("offset_dros_xyzac", "ZERO")) + self.zero_x_button.setProperty("rules", _translate("offset_dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("offset_dros_xyzac", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyzac", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button.setText(_translate("offset_dros_xyzac", "ZERO")) + self.zero_y_button.setProperty("rules", _translate("offset_dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("offset_dros_xyzac", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyzac", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button.setText(_translate("offset_dros_xyzac", "ZERO")) + self.zero_z_button.setProperty("rules", _translate("offset_dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("offset_dros_xyzac", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyzac", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) + self.zero_a_button.setText(_translate("offset_dros_xyzac", "ZERO")) + self.zero_a_button.setProperty("rules", _translate("offset_dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_a_button.setProperty("MDICommand", _translate("offset_dros_xyzac", "G10 L20 P{ch[0]} A0.0")) + self.axis_label_a.setText(_translate("offset_dros_xyzac", "A")) + self.drolabel_work_a.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.drolabel_work_a.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.drolabel_work_a.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.work_offset_a.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.g52_g92_a.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.tool_offset_a.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][3])\", \"name\": \"New Rule\"}]")) + self.zero_c_button.setText(_translate("offset_dros_xyzac", "ZERO")) + self.zero_c_button.setProperty("rules", _translate("offset_dros_xyzac", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("offset_dros_xyzac", "G10 L20 P{ch[0]} C0.0")) + self.axis_label_c.setText(_translate("offset_dros_xyzac", "C")) + self.dro_entry_offset_c.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.dro_entry_offset_c.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.dro_entry_offset_c.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.drolabel_work_c.setProperty("inchFormat", _translate("offset_dros_xyzac", "%9.4f")) + self.drolabel_work_c.setProperty("millimeterFormat", _translate("offset_dros_xyzac", "%10.3f")) + self.drolabel_work_c.setProperty("degreeFormat", _translate("offset_dros_xyzac", "%10.2f")) + self.work_offset_c.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_c.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_c.setProperty("rules", _translate("offset_dros_xyzac", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzbc_dros/dros_xyzbc.py b/user_dro_display/xyzbc_dros/dros_xyzbc.py new file mode 100644 index 0000000..1a29dfb --- /dev/null +++ b/user_dro_display/xyzbc_dros/dros_xyzbc.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserDRO(QWidget): + def __init__(self, parent=None): + super(UserDRO, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_dro_display/xyzbc_dros/dros_xyzbc.ui b/user_dro_display/xyzbc_dros/dros_xyzbc.ui new file mode 100644 index 0000000..3498520 --- /dev/null +++ b/user_dro_display/xyzbc_dros/dros_xyzbc.ui @@ -0,0 +1,1862 @@ + + + dros_xyzbc + + + + 0 + 0 + 458 + 272 + + + + + 0 + 0 + + + + dros_xyzbc + + + Qt::LeftToRight + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 14pt "Bebas Kai"; +} + + + ALL + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0 + + + + + + + + 0 + 0 + + + + + 0 + 40 + + + + + 16777215 + 40 + + + + .QFrame{ + border-style: solid; + border-color: rgb(176, 179,172); + border-width: 1px; + border-radius: 4px; + background-color: rgb(90, 90, 90); + padding: -5px; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + 8 + + + 5 + + + 7 + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; + padding-left: 6px; +} + + + Qt::AlignCenter + + + [{"channels": [{"url": "status:g5x_index?text", "trigger": true}], "property": "Text", "expression": "ch[0] + ' WORK'\n", "name": "WCS Header"}] + + + + + + + false + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + MACHINE + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 100 + 17 + + + + + 100 + 17 + + + + QLabel{ + color: rgb(238, 238, 236); + font: 16pt "Bebas Kai"; +} + + + DTG + + + Qt::AlignCenter + + + + + + + + + + + 1 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF ALL + + + [{"channels": [{"url": "status:all_axes_homed", "trigger": true}], "property": "Text", "expression": "'HOMED' if ch[0] else 'REF ALL'", "name": "reference_all"}, {"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.all + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + Qt::LeftToRight + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + X + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + 0.000 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF X + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:x + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Y + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Y + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:y + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + Z + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF Z + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:z + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + B + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 3 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF B + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:b + + + + + + + + + 7 + + + 1 + + + 1 + + + 1 + + + 1 + + + + + false + + + + 0 + 0 + + + + + 60 + 40 + + + + + 60 + 40 + + + + Qt::NoFocus + + + MDIButton { + font: 17pt "Bebas Kai"; +} + + + C + + + + :/images/zero.png:/images/zero.png + + + + 20 + 20 + + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 100 + 35 + + + + + 100 + 35 + + + + + Bebas Kai + 17 + 50 + false + false + + + + Qt::ClickFocus + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 100 + 35 + + + + + 100 + 35 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 0 + 0 + + + + + 62 + 40 + + + + + 62 + 40 + + + + Qt::NoFocus + + + QPushButton { + font: 15pt "Bebas Kai"; +} + + + REF C + + + [{"name": "home_prohibit", "property": "Enable", "expression": "not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])", "channels": [{"url": "status:joint.0.homing", "trigger": true}, {"url": "status:joint.1.homing", "trigger": true}, {"url": "status:joint.2.homing", "trigger": true}, {"url": "status:joint.3.homing", "trigger": true}, {"url": "status:joint.4.homing", "trigger": true}]}] + + + machine.home.axis:c + + + + + + + + + + + + + ActionButton + QPushButton +
qtpyvcp.widgets.button_widgets.action_button
+
+ + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzbc_dros/dros_xyzbc_ui.py b/user_dro_display/xyzbc_dros/dros_xyzbc_ui.py new file mode 100644 index 0000000..30426ed --- /dev/null +++ b/user_dro_display/xyzbc_dros/dros_xyzbc_ui.py @@ -0,0 +1,906 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzbc_dros/dros_xyzbc.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_dros_xyzbc(object): + def setupUi(self, dros_xyzbc): + dros_xyzbc.setObjectName("dros_xyzbc") + dros_xyzbc.resize(458, 272) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(dros_xyzbc.sizePolicy().hasHeightForWidth()) + dros_xyzbc.setSizePolicy(sizePolicy) + dros_xyzbc.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(dros_xyzbc) + self.verticalLayout.setContentsMargins(0, 0, 0, 0) + self.verticalLayout.setSpacing(4) + self.verticalLayout.setObjectName("verticalLayout") + self.widget_xyzbc = QtWidgets.QWidget(dros_xyzbc) + self.widget_xyzbc.setObjectName("widget_xyzbc") + self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.widget_xyzbc) + self.verticalLayout_4.setContentsMargins(0, 0, 0, 0) + self.verticalLayout_4.setSpacing(4) + self.verticalLayout_4.setObjectName("verticalLayout_4") + self.header_layout = QtWidgets.QHBoxLayout() + self.header_layout.setContentsMargins(1, 1, 1, 1) + self.header_layout.setSpacing(7) + self.header_layout.setObjectName("header_layout") + self.zero_all_button = MDIButton(self.widget_xyzbc) + self.zero_all_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_all_button.sizePolicy().hasHeightForWidth()) + self.zero_all_button.setSizePolicy(sizePolicy) + self.zero_all_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_all_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_all_button.setStyleSheet("MDIButton {\n" +" font: 14pt \"Bebas Kai\";\n" +"}") + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/images/zero.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.zero_all_button.setIcon(icon) + self.zero_all_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_all_button.setObjectName("zero_all_button") + self.header_layout.addWidget(self.zero_all_button) + self.frame = QtWidgets.QFrame(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth()) + self.frame.setSizePolicy(sizePolicy) + self.frame.setMinimumSize(QtCore.QSize(0, 40)) + self.frame.setMaximumSize(QtCore.QSize(16777215, 40)) + self.frame.setStyleSheet(".QFrame{\n" +" border-style: solid;\n" +" border-color: rgb(176, 179,172);\n" +" border-width: 1px;\n" +" border-radius: 4px;\n" +" background-color: rgb(90, 90, 90);\n" +" padding: -5px;\n" +"}") + self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Raised) + self.frame.setObjectName("frame") + self.horizontalLayout_103 = QtWidgets.QHBoxLayout(self.frame) + self.horizontalLayout_103.setContentsMargins(5, -1, 7, -1) + self.horizontalLayout_103.setSpacing(8) + self.horizontalLayout_103.setObjectName("horizontalLayout_103") + self.work_column_header = StatusLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_column_header.sizePolicy().hasHeightForWidth()) + self.work_column_header.setSizePolicy(sizePolicy) + self.work_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.work_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.work_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +" padding-left: 6px;\n" +"}") + self.work_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.work_column_header.setObjectName("work_column_header") + self.horizontalLayout_103.addWidget(self.work_column_header) + self.machine_column_header = QtWidgets.QLabel(self.frame) + self.machine_column_header.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.machine_column_header.sizePolicy().hasHeightForWidth()) + self.machine_column_header.setSizePolicy(sizePolicy) + self.machine_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.machine_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.machine_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.machine_column_header.setObjectName("machine_column_header") + self.horizontalLayout_103.addWidget(self.machine_column_header) + self.dtg_column_header = QtWidgets.QLabel(self.frame) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dtg_column_header.sizePolicy().hasHeightForWidth()) + self.dtg_column_header.setSizePolicy(sizePolicy) + self.dtg_column_header.setMinimumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setMaximumSize(QtCore.QSize(100, 17)) + self.dtg_column_header.setStyleSheet("QLabel{\n" +" color: rgb(238, 238, 236);\n" +" font: 16pt \"Bebas Kai\";\n" +"}") + self.dtg_column_header.setAlignment(QtCore.Qt.AlignCenter) + self.dtg_column_header.setObjectName("dtg_column_header") + self.horizontalLayout_103.addWidget(self.dtg_column_header) + self.header_layout.addWidget(self.frame) + self.ref_all_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_all_button.sizePolicy().hasHeightForWidth()) + self.ref_all_button.setSizePolicy(sizePolicy) + self.ref_all_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_all_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_all_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_all_button.setObjectName("ref_all_button") + self.header_layout.addWidget(self.ref_all_button) + self.verticalLayout_4.addLayout(self.header_layout) + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.x_axis_dro_layout.setSpacing(7) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(self.widget_xyzbc) + self.zero_x_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_x_button.sizePolicy().hasHeightForWidth()) + self.zero_x_button.setSizePolicy(sizePolicy) + self.zero_x_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setLayoutDirection(QtCore.Qt.LeftToRight) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setIcon(icon) + self.zero_x_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.dro_entry_main_x = DROLineEdit(self.widget_xyzbc) + self.dro_entry_main_x.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_x.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_x.setFont(font) + self.dro_entry_main_x.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_x.setProperty("referenceType", 1) + self.dro_entry_main_x.setProperty("axisNumber", 0) + self.dro_entry_main_x.setProperty("latheMode", 0) + self.dro_entry_main_x.setObjectName("dro_entry_main_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_main_x) + self.drolabel_machine_x = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_x.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_x.setSizePolicy(sizePolicy) + self.drolabel_machine_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_x.setProperty("referenceType", 0) + self.drolabel_machine_x.setProperty("axisNumber", 0) + self.drolabel_machine_x.setProperty("latheMode", 0) + self.drolabel_machine_x.setObjectName("drolabel_machine_x") + self.x_axis_dro_layout.addWidget(self.drolabel_machine_x) + self.drolabel_dtg_x = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_x.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_x.setSizePolicy(sizePolicy) + self.drolabel_dtg_x.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_x.setProperty("referenceType", 2) + self.drolabel_dtg_x.setProperty("axisNumber", 0) + self.drolabel_dtg_x.setProperty("latheMode", 0) + self.drolabel_dtg_x.setObjectName("drolabel_dtg_x") + self.x_axis_dro_layout.addWidget(self.drolabel_dtg_x) + self.ref_x_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_x_button.sizePolicy().hasHeightForWidth()) + self.ref_x_button.setSizePolicy(sizePolicy) + self.ref_x_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_x_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_x_button.setObjectName("ref_x_button") + self.x_axis_dro_layout.addWidget(self.ref_x_button) + self.verticalLayout_4.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.y_axis_dro_layout.setSpacing(7) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(self.widget_xyzbc) + self.zero_y_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_y_button.sizePolicy().hasHeightForWidth()) + self.zero_y_button.setSizePolicy(sizePolicy) + self.zero_y_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setIcon(icon) + self.zero_y_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.dro_entry_main_y = DROLineEdit(self.widget_xyzbc) + self.dro_entry_main_y.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_y.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_y.setFont(font) + self.dro_entry_main_y.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_y.setProperty("axisNumber", 1) + self.dro_entry_main_y.setObjectName("dro_entry_main_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_main_y) + self.drolabel_machine_y = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_y.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_y.setSizePolicy(sizePolicy) + self.drolabel_machine_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_y.setProperty("referenceType", 0) + self.drolabel_machine_y.setProperty("axisNumber", 1) + self.drolabel_machine_y.setProperty("latheMode", 0) + self.drolabel_machine_y.setObjectName("drolabel_machine_y") + self.y_axis_dro_layout.addWidget(self.drolabel_machine_y) + self.drolabel_dtg_y = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_y.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_y.setSizePolicy(sizePolicy) + self.drolabel_dtg_y.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_y.setProperty("referenceType", 2) + self.drolabel_dtg_y.setProperty("axisNumber", 1) + self.drolabel_dtg_y.setProperty("latheMode", 0) + self.drolabel_dtg_y.setObjectName("drolabel_dtg_y") + self.y_axis_dro_layout.addWidget(self.drolabel_dtg_y) + self.ref_y_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_y_button.sizePolicy().hasHeightForWidth()) + self.ref_y_button.setSizePolicy(sizePolicy) + self.ref_y_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_y_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_y_button.setObjectName("ref_y_button") + self.y_axis_dro_layout.addWidget(self.ref_y_button) + self.verticalLayout_4.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.z_axis_dro_layout.setSpacing(7) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(self.widget_xyzbc) + self.zero_z_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_z_button.sizePolicy().hasHeightForWidth()) + self.zero_z_button.setSizePolicy(sizePolicy) + self.zero_z_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setIcon(icon) + self.zero_z_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.dro_entry_main_z = DROLineEdit(self.widget_xyzbc) + self.dro_entry_main_z.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_z.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_z.setFont(font) + self.dro_entry_main_z.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_z.setProperty("axisNumber", 2) + self.dro_entry_main_z.setObjectName("dro_entry_main_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_main_z) + self.drolabel_machine_z = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_z.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_z.setSizePolicy(sizePolicy) + self.drolabel_machine_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_z.setProperty("referenceType", 0) + self.drolabel_machine_z.setProperty("axisNumber", 2) + self.drolabel_machine_z.setProperty("latheMode", 0) + self.drolabel_machine_z.setObjectName("drolabel_machine_z") + self.z_axis_dro_layout.addWidget(self.drolabel_machine_z) + self.drolabel_dtg_z = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_z.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_z.setSizePolicy(sizePolicy) + self.drolabel_dtg_z.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_z.setProperty("referenceType", 2) + self.drolabel_dtg_z.setProperty("axisNumber", 2) + self.drolabel_dtg_z.setProperty("latheMode", 0) + self.drolabel_dtg_z.setObjectName("drolabel_dtg_z") + self.z_axis_dro_layout.addWidget(self.drolabel_dtg_z) + self.ref_z_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_z_button.sizePolicy().hasHeightForWidth()) + self.ref_z_button.setSizePolicy(sizePolicy) + self.ref_z_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_z_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_z_button.setObjectName("ref_z_button") + self.z_axis_dro_layout.addWidget(self.ref_z_button) + self.verticalLayout_4.addLayout(self.z_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.b_axis_dro_layout.setSpacing(7) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button = MDIButton(self.widget_xyzbc) + self.zero_b_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_b_button.sizePolicy().hasHeightForWidth()) + self.zero_b_button.setSizePolicy(sizePolicy) + self.zero_b_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_b_button.setIcon(icon) + self.zero_b_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_b_button.setObjectName("zero_b_button") + self.b_axis_dro_layout.addWidget(self.zero_b_button) + self.dro_entry_main_b = DROLineEdit(self.widget_xyzbc) + self.dro_entry_main_b.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_b.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_b.setFont(font) + self.dro_entry_main_b.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_b.setProperty("referenceType", 1) + self.dro_entry_main_b.setProperty("axisNumber", 3) + self.dro_entry_main_b.setProperty("latheMode", 0) + self.dro_entry_main_b.setObjectName("dro_entry_main_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_main_b) + self.drolabel_machine_b = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_b.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_b.setSizePolicy(sizePolicy) + self.drolabel_machine_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_b.setProperty("referenceType", 0) + self.drolabel_machine_b.setProperty("axisNumber", 3) + self.drolabel_machine_b.setProperty("latheMode", 0) + self.drolabel_machine_b.setObjectName("drolabel_machine_b") + self.b_axis_dro_layout.addWidget(self.drolabel_machine_b) + self.drolabel_dtg_b = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_b.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_b.setSizePolicy(sizePolicy) + self.drolabel_dtg_b.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_b.setProperty("referenceType", 2) + self.drolabel_dtg_b.setProperty("axisNumber", 3) + self.drolabel_dtg_b.setProperty("latheMode", 0) + self.drolabel_dtg_b.setObjectName("drolabel_dtg_b") + self.b_axis_dro_layout.addWidget(self.drolabel_dtg_b) + self.ref_b_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_b_button.sizePolicy().hasHeightForWidth()) + self.ref_b_button.setSizePolicy(sizePolicy) + self.ref_b_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_b_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_b_button.setObjectName("ref_b_button") + self.b_axis_dro_layout.addWidget(self.ref_b_button) + self.verticalLayout_4.addLayout(self.b_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(1, 1, 1, 1) + self.c_axis_dro_layout.setSpacing(7) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(self.widget_xyzbc) + self.zero_c_button.setEnabled(False) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.zero_c_button.sizePolicy().hasHeightForWidth()) + self.zero_c_button.setSizePolicy(sizePolicy) + self.zero_c_button.setMinimumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setMaximumSize(QtCore.QSize(60, 40)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setIcon(icon) + self.zero_c_button.setIconSize(QtCore.QSize(20, 20)) + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.dro_entry_main_c = DROLineEdit(self.widget_xyzbc) + self.dro_entry_main_c.setMinimumSize(QtCore.QSize(100, 35)) + self.dro_entry_main_c.setMaximumSize(QtCore.QSize(100, 35)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_main_c.setFont(font) + self.dro_entry_main_c.setFocusPolicy(QtCore.Qt.ClickFocus) + self.dro_entry_main_c.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_main_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_main_c.setProperty("referenceType", 1) + self.dro_entry_main_c.setProperty("axisNumber", 4) + self.dro_entry_main_c.setProperty("latheMode", 0) + self.dro_entry_main_c.setObjectName("dro_entry_main_c") + self.c_axis_dro_layout.addWidget(self.dro_entry_main_c) + self.drolabel_machine_c = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_machine_c.sizePolicy().hasHeightForWidth()) + self.drolabel_machine_c.setSizePolicy(sizePolicy) + self.drolabel_machine_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_machine_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_machine_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_machine_c.setProperty("referenceType", 0) + self.drolabel_machine_c.setProperty("axisNumber", 4) + self.drolabel_machine_c.setProperty("latheMode", 0) + self.drolabel_machine_c.setObjectName("drolabel_machine_c") + self.c_axis_dro_layout.addWidget(self.drolabel_machine_c) + self.drolabel_dtg_c = DROLabel(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_dtg_c.sizePolicy().hasHeightForWidth()) + self.drolabel_dtg_c.setSizePolicy(sizePolicy) + self.drolabel_dtg_c.setMinimumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setMaximumSize(QtCore.QSize(100, 35)) + self.drolabel_dtg_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}") + self.drolabel_dtg_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_dtg_c.setProperty("referenceType", 2) + self.drolabel_dtg_c.setProperty("axisNumber", 4) + self.drolabel_dtg_c.setProperty("latheMode", 0) + self.drolabel_dtg_c.setObjectName("drolabel_dtg_c") + self.c_axis_dro_layout.addWidget(self.drolabel_dtg_c) + self.ref_c_button = ActionButton(self.widget_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ref_c_button.sizePolicy().hasHeightForWidth()) + self.ref_c_button.setSizePolicy(sizePolicy) + self.ref_c_button.setMinimumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setMaximumSize(QtCore.QSize(62, 40)) + self.ref_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.ref_c_button.setStyleSheet("QPushButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.ref_c_button.setObjectName("ref_c_button") + self.c_axis_dro_layout.addWidget(self.ref_c_button) + self.verticalLayout_4.addLayout(self.c_axis_dro_layout) + self.verticalLayout.addWidget(self.widget_xyzbc) + + self.retranslateUi(dros_xyzbc) + QtCore.QMetaObject.connectSlotsByName(dros_xyzbc) + + def retranslateUi(self, dros_xyzbc): + _translate = QtCore.QCoreApplication.translate + dros_xyzbc.setWindowTitle(_translate("dros_xyzbc", "dros_xyzbc")) + self.zero_all_button.setText(_translate("dros_xyzbc", "ALL")) + self.zero_all_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_all_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} X0.0 Y0.0 Z0.0 A0.0 B0.0")) + self.work_column_header.setProperty("rules", _translate("dros_xyzbc", "[{\"channels\": [{\"url\": \"status:g5x_index?text\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"ch[0] + \' WORK\'\\n\", \"name\": \"WCS Header\"}]")) + self.machine_column_header.setText(_translate("dros_xyzbc", "MACHINE")) + self.dtg_column_header.setText(_translate("dros_xyzbc", "DTG")) + self.ref_all_button.setText(_translate("dros_xyzbc", "REF ALL")) + self.ref_all_button.setProperty("rules", _translate("dros_xyzbc", "[{\"channels\": [{\"url\": \"status:all_axes_homed\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\'HOMED\' if ch[0] else \'REF ALL\'\", \"name\": \"reference_all\"}, {\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_all_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.all")) + self.zero_x_button.setText(_translate("dros_xyzbc", "X")) + self.zero_x_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} X0.0")) + self.dro_entry_main_x.setText(_translate("dros_xyzbc", " 0.000")) + self.dro_entry_main_x.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.dro_entry_main_x.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.dro_entry_main_x.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_machine_x.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_machine_x.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_machine_x.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_dtg_x.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_dtg_x.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_dtg_x.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.ref_x_button.setText(_translate("dros_xyzbc", "REF X")) + self.ref_x_button.setProperty("rules", _translate("dros_xyzbc", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_x_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.axis:x")) + self.zero_y_button.setText(_translate("dros_xyzbc", "Y")) + self.zero_y_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} Y0.0")) + self.drolabel_machine_y.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_machine_y.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_machine_y.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_dtg_y.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_dtg_y.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_dtg_y.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.ref_y_button.setText(_translate("dros_xyzbc", "REF Y")) + self.ref_y_button.setProperty("rules", _translate("dros_xyzbc", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_y_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.axis:y")) + self.zero_z_button.setText(_translate("dros_xyzbc", "Z")) + self.zero_z_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} Z0.0")) + self.drolabel_machine_z.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_machine_z.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_machine_z.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_dtg_z.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_dtg_z.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_dtg_z.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.ref_z_button.setText(_translate("dros_xyzbc", "REF Z")) + self.ref_z_button.setProperty("rules", _translate("dros_xyzbc", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_z_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.axis:z")) + self.zero_b_button.setText(_translate("dros_xyzbc", "B")) + self.zero_b_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} B0.0")) + self.dro_entry_main_b.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.dro_entry_main_b.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.dro_entry_main_b.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_machine_b.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_machine_b.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_machine_b.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_dtg_b.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_dtg_b.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_dtg_b.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.ref_b_button.setText(_translate("dros_xyzbc", "REF B")) + self.ref_b_button.setProperty("rules", _translate("dros_xyzbc", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_b_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.axis:b")) + self.zero_c_button.setText(_translate("dros_xyzbc", "C")) + self.zero_c_button.setProperty("rules", _translate("dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("dros_xyzbc", "G10 L20 P{ch[0]} C0.0")) + self.dro_entry_main_c.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.dro_entry_main_c.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.dro_entry_main_c.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_machine_c.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_machine_c.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_machine_c.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.drolabel_dtg_c.setProperty("inchFormat", _translate("dros_xyzbc", "%9.4f")) + self.drolabel_dtg_c.setProperty("millimeterFormat", _translate("dros_xyzbc", "%10.3f")) + self.drolabel_dtg_c.setProperty("degreeFormat", _translate("dros_xyzbc", "%10.2f")) + self.ref_c_button.setText(_translate("dros_xyzbc", "REF C")) + self.ref_c_button.setProperty("rules", _translate("dros_xyzbc", "[{\"name\": \"home_prohibit\", \"property\": \"Enable\", \"expression\": \"not (ch[0] or ch[1] or ch[2] or ch[3] or ch[4])\", \"channels\": [{\"url\": \"status:joint.0.homing\", \"trigger\": true}, {\"url\": \"status:joint.1.homing\", \"trigger\": true}, {\"url\": \"status:joint.2.homing\", \"trigger\": true}, {\"url\": \"status:joint.3.homing\", \"trigger\": true}, {\"url\": \"status:joint.4.homing\", \"trigger\": true}]}]")) + self.ref_c_button.setProperty("actionName", _translate("dros_xyzbc", "machine.home.axis:c")) +from qtpyvcp.widgets.button_widgets.action_button import ActionButton +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_dro_display/xyzbc_dros/offset_dros_xyzbc.ui b/user_dro_display/xyzbc_dros/offset_dros_xyzbc.ui new file mode 100644 index 0000000..6f994d7 --- /dev/null +++ b/user_dro_display/xyzbc_dros/offset_dros_xyzbc.ui @@ -0,0 +1,1702 @@ + + + offset_dros_xyzbc + + + + 0 + 0 + 493 + 280 + + + + + 0 + 0 + + + + offset_dros_xyzbc + + + Qt::LeftToRight + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} X0.0 + + + + + + + + 0 + 0 + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + X + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 0 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][0])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Y0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Y + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 1 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][1])", "name": "New Rule"}] + + + + + + + + + 12 + + + 4 + + + 4 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} Z0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + Z + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 2 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"url": "status:tool_offset", "trigger": true}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][2])", "name": "tool offset"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} B0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + B + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + 12 + + + 6 + + + 6 + + + + + false + + + + 55 + 38 + + + + + 55 + 38 + + + + Qt::NoFocus + + + MDIButton { + font: 15pt "Bebas Kai"; +} + + + ZERO + + + [ + { + "channels": [ + { + "url": "status:g5x_index", + "trigger": true, + "type": "int" + } + ], + "expression": "", + "name": "G5x Index", + "property": "None" + } +] + + + G10 L20 P{ch[0]} C0.0 + + + + + + + + 45 + 35 + + + + + 45 + 35 + + + + QLabel{ + border-style: solid; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: rgb(238, 238, 236); + font: 18pt "Bebas Kai"; +} + + + C + + + Qt::AlignCenter + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + + Bebas Kai + 17 + 50 + false + false + + + + QLineEdit{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + padding-right: 2px; + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + QLabel{ + border-style: transparent; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; + padding-right: 2px; +} + +QLabel[style="unhomed"]{ + color: red; +} + +QLabel[style="homing"]{ + color: rgb(196, 160, 0); +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 0 + + + 4 + + + %9.4f + + + %10.3f + + + %10.2f + + + 0 + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g92_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:g5x_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + 1 + 0 + + + + + 0 + 38 + + + + + 16777215 + 38 + + + + StatusLabel{ + border-style: transparant; + border-color: rgb(235, 235, 235); + border-width: 1px; + border-radius: 5px; + color: black; + background: rgb(235, 235, 235); + font: 17pt "Bebas Kai"; +} + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + [{"channels": [{"trigger": true, "type": "tuple", "url": "status:tool_offset"}], "property": "Text", "expression": "\"{:.4f}\".format(ch[0][4])", "name": "New Rule"}] + + + + + + + + + + MDIButton + QPushButton +
qtpyvcp.widgets.button_widgets.mdi_button
+
+ + StatusLabel + QLabel +
qtpyvcp.widgets.display_widgets.status_label
+
+ + DROLabel + QLabel +
qtpyvcp.widgets.display_widgets.dro_label
+
+ + DROLineEdit + QLineEdit +
qtpyvcp.widgets.input_widgets.dro_line_edit
+
+
+ + + + +
diff --git a/user_dro_display/xyzbc_dros/offset_dros_xyzbc_ui.py b/user_dro_display/xyzbc_dros/offset_dros_xyzbc_ui.py new file mode 100644 index 0000000..b3474c5 --- /dev/null +++ b/user_dro_display/xyzbc_dros/offset_dros_xyzbc_ui.py @@ -0,0 +1,913 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_dro_display/xyzbc_dros/offset_dros_xyzbc.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_offset_dros_xyzbc(object): + def setupUi(self, offset_dros_xyzbc): + offset_dros_xyzbc.setObjectName("offset_dros_xyzbc") + offset_dros_xyzbc.resize(493, 280) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(offset_dros_xyzbc.sizePolicy().hasHeightForWidth()) + offset_dros_xyzbc.setSizePolicy(sizePolicy) + offset_dros_xyzbc.setLayoutDirection(QtCore.Qt.LeftToRight) + self.verticalLayout = QtWidgets.QVBoxLayout(offset_dros_xyzbc) + self.verticalLayout.setContentsMargins(9, 9, 9, 9) + self.verticalLayout.setSpacing(6) + self.verticalLayout.setObjectName("verticalLayout") + self.x_axis_dro_layout = QtWidgets.QHBoxLayout() + self.x_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.x_axis_dro_layout.setSpacing(12) + self.x_axis_dro_layout.setObjectName("x_axis_dro_layout") + self.zero_x_button = MDIButton(offset_dros_xyzbc) + self.zero_x_button.setEnabled(False) + self.zero_x_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_x_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_x_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_x_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_x_button.setObjectName("zero_x_button") + self.x_axis_dro_layout.addWidget(self.zero_x_button) + self.axis_label_x = QtWidgets.QLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.axis_label_x.sizePolicy().hasHeightForWidth()) + self.axis_label_x.setSizePolicy(sizePolicy) + self.axis_label_x.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_x.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_x.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_x.setObjectName("axis_label_x") + self.x_axis_dro_layout.addWidget(self.axis_label_x) + self.dro_entry_offset_x = DROLineEdit(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_x.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_x.setSizePolicy(sizePolicy) + self.dro_entry_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_x.setFont(font) + self.dro_entry_offset_x.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_x.setObjectName("dro_entry_offset_x") + self.x_axis_dro_layout.addWidget(self.dro_entry_offset_x) + self.drolabel_work_x = DROLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_x.sizePolicy().hasHeightForWidth()) + self.drolabel_work_x.setSizePolicy(sizePolicy) + self.drolabel_work_x.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_x.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_x.setProperty("referenceType", 0) + self.drolabel_work_x.setProperty("axisNumber", 0) + self.drolabel_work_x.setProperty("latheMode", 0) + self.drolabel_work_x.setObjectName("drolabel_work_x") + self.x_axis_dro_layout.addWidget(self.drolabel_work_x) + self.work_offset_x = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_x.sizePolicy().hasHeightForWidth()) + self.work_offset_x.setSizePolicy(sizePolicy) + self.work_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_x.setObjectName("work_offset_x") + self.x_axis_dro_layout.addWidget(self.work_offset_x) + self.g52_g92_x = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_x.sizePolicy().hasHeightForWidth()) + self.g52_g92_x.setSizePolicy(sizePolicy) + self.g52_g92_x.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_x.setObjectName("g52_g92_x") + self.x_axis_dro_layout.addWidget(self.g52_g92_x) + self.tool_offset_x = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_x.sizePolicy().hasHeightForWidth()) + self.tool_offset_x.setSizePolicy(sizePolicy) + self.tool_offset_x.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_x.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_x.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_x.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_x.setObjectName("tool_offset_x") + self.x_axis_dro_layout.addWidget(self.tool_offset_x) + self.verticalLayout.addLayout(self.x_axis_dro_layout) + self.y_axis_dro_layout = QtWidgets.QHBoxLayout() + self.y_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.y_axis_dro_layout.setSpacing(12) + self.y_axis_dro_layout.setObjectName("y_axis_dro_layout") + self.zero_y_button = MDIButton(offset_dros_xyzbc) + self.zero_y_button.setEnabled(False) + self.zero_y_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_y_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_y_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_y_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_y_button.setObjectName("zero_y_button") + self.y_axis_dro_layout.addWidget(self.zero_y_button) + self.axis_label_y = QtWidgets.QLabel(offset_dros_xyzbc) + self.axis_label_y.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_y.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_y.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_y.setObjectName("axis_label_y") + self.y_axis_dro_layout.addWidget(self.axis_label_y) + self.dro_entry_offset_y = DROLineEdit(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_y.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_y.setSizePolicy(sizePolicy) + self.dro_entry_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_y.setFont(font) + self.dro_entry_offset_y.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_y.setProperty("axisNumber", 1) + self.dro_entry_offset_y.setObjectName("dro_entry_offset_y") + self.y_axis_dro_layout.addWidget(self.dro_entry_offset_y) + self.drolabel_work_y = DROLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_y.sizePolicy().hasHeightForWidth()) + self.drolabel_work_y.setSizePolicy(sizePolicy) + self.drolabel_work_y.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_y.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_y.setProperty("referenceType", 0) + self.drolabel_work_y.setProperty("axisNumber", 1) + self.drolabel_work_y.setProperty("latheMode", 0) + self.drolabel_work_y.setObjectName("drolabel_work_y") + self.y_axis_dro_layout.addWidget(self.drolabel_work_y) + self.work_offset_y = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_y.sizePolicy().hasHeightForWidth()) + self.work_offset_y.setSizePolicy(sizePolicy) + self.work_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_y.setObjectName("work_offset_y") + self.y_axis_dro_layout.addWidget(self.work_offset_y) + self.g52_g92_y = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_y.sizePolicy().hasHeightForWidth()) + self.g52_g92_y.setSizePolicy(sizePolicy) + self.g52_g92_y.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_y.setObjectName("g52_g92_y") + self.y_axis_dro_layout.addWidget(self.g52_g92_y) + self.tool_offset_y = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_y.sizePolicy().hasHeightForWidth()) + self.tool_offset_y.setSizePolicy(sizePolicy) + self.tool_offset_y.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_y.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_y.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_y.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_y.setObjectName("tool_offset_y") + self.y_axis_dro_layout.addWidget(self.tool_offset_y) + self.verticalLayout.addLayout(self.y_axis_dro_layout) + self.z_axis_dro_layout = QtWidgets.QHBoxLayout() + self.z_axis_dro_layout.setContentsMargins(-1, 4, -1, 4) + self.z_axis_dro_layout.setSpacing(12) + self.z_axis_dro_layout.setObjectName("z_axis_dro_layout") + self.zero_z_button = MDIButton(offset_dros_xyzbc) + self.zero_z_button.setEnabled(False) + self.zero_z_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_z_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_z_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_z_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_z_button.setObjectName("zero_z_button") + self.z_axis_dro_layout.addWidget(self.zero_z_button) + self.axis_label_z = QtWidgets.QLabel(offset_dros_xyzbc) + self.axis_label_z.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_z.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_z.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_z.setObjectName("axis_label_z") + self.z_axis_dro_layout.addWidget(self.axis_label_z) + self.dro_entry_offset_z = DROLineEdit(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_z.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_z.setSizePolicy(sizePolicy) + self.dro_entry_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_z.setFont(font) + self.dro_entry_offset_z.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_z.setProperty("axisNumber", 2) + self.dro_entry_offset_z.setObjectName("dro_entry_offset_z") + self.z_axis_dro_layout.addWidget(self.dro_entry_offset_z) + self.drolabel_work_z = DROLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_z.sizePolicy().hasHeightForWidth()) + self.drolabel_work_z.setSizePolicy(sizePolicy) + self.drolabel_work_z.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_z.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_z.setProperty("referenceType", 0) + self.drolabel_work_z.setProperty("axisNumber", 2) + self.drolabel_work_z.setProperty("latheMode", 0) + self.drolabel_work_z.setObjectName("drolabel_work_z") + self.z_axis_dro_layout.addWidget(self.drolabel_work_z) + self.work_offset_z = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_z.sizePolicy().hasHeightForWidth()) + self.work_offset_z.setSizePolicy(sizePolicy) + self.work_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_z.setObjectName("work_offset_z") + self.z_axis_dro_layout.addWidget(self.work_offset_z) + self.g52_g92_z = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_z.sizePolicy().hasHeightForWidth()) + self.g52_g92_z.setSizePolicy(sizePolicy) + self.g52_g92_z.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_z.setObjectName("g52_g92_z") + self.z_axis_dro_layout.addWidget(self.g52_g92_z) + self.tool_offset_z = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_z.sizePolicy().hasHeightForWidth()) + self.tool_offset_z.setSizePolicy(sizePolicy) + self.tool_offset_z.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_z.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_z.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_z.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_z.setObjectName("tool_offset_z") + self.z_axis_dro_layout.addWidget(self.tool_offset_z) + self.verticalLayout.addLayout(self.z_axis_dro_layout) + self.b_axis_dro_layout = QtWidgets.QHBoxLayout() + self.b_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.b_axis_dro_layout.setSpacing(12) + self.b_axis_dro_layout.setObjectName("b_axis_dro_layout") + self.zero_b_button = MDIButton(offset_dros_xyzbc) + self.zero_b_button.setEnabled(False) + self.zero_b_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_b_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_b_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_b_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_b_button.setObjectName("zero_b_button") + self.b_axis_dro_layout.addWidget(self.zero_b_button) + self.axis_label_b = QtWidgets.QLabel(offset_dros_xyzbc) + self.axis_label_b.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_b.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_b.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_b.setObjectName("axis_label_b") + self.b_axis_dro_layout.addWidget(self.axis_label_b) + self.dro_entry_offset_b = DROLineEdit(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_b.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_b.setSizePolicy(sizePolicy) + self.dro_entry_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_b.setFont(font) + self.dro_entry_offset_b.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_b.setProperty("axisNumber", 4) + self.dro_entry_offset_b.setObjectName("dro_entry_offset_b") + self.b_axis_dro_layout.addWidget(self.dro_entry_offset_b) + self.drolabel_work_b = DROLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_b.sizePolicy().hasHeightForWidth()) + self.drolabel_work_b.setSizePolicy(sizePolicy) + self.drolabel_work_b.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_b.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_b.setProperty("referenceType", 0) + self.drolabel_work_b.setProperty("axisNumber", 4) + self.drolabel_work_b.setProperty("latheMode", 0) + self.drolabel_work_b.setObjectName("drolabel_work_b") + self.b_axis_dro_layout.addWidget(self.drolabel_work_b) + self.work_offset_b = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_b.sizePolicy().hasHeightForWidth()) + self.work_offset_b.setSizePolicy(sizePolicy) + self.work_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_b.setObjectName("work_offset_b") + self.b_axis_dro_layout.addWidget(self.work_offset_b) + self.g52_g92_b = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_b.sizePolicy().hasHeightForWidth()) + self.g52_g92_b.setSizePolicy(sizePolicy) + self.g52_g92_b.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_b.setObjectName("g52_g92_b") + self.b_axis_dro_layout.addWidget(self.g52_g92_b) + self.tool_offset_b = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_b.sizePolicy().hasHeightForWidth()) + self.tool_offset_b.setSizePolicy(sizePolicy) + self.tool_offset_b.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_b.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_b.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_b.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_b.setObjectName("tool_offset_b") + self.b_axis_dro_layout.addWidget(self.tool_offset_b) + self.verticalLayout.addLayout(self.b_axis_dro_layout) + self.c_axis_dro_layout = QtWidgets.QHBoxLayout() + self.c_axis_dro_layout.setContentsMargins(-1, 6, -1, 6) + self.c_axis_dro_layout.setSpacing(12) + self.c_axis_dro_layout.setObjectName("c_axis_dro_layout") + self.zero_c_button = MDIButton(offset_dros_xyzbc) + self.zero_c_button.setEnabled(False) + self.zero_c_button.setMinimumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setMaximumSize(QtCore.QSize(55, 38)) + self.zero_c_button.setFocusPolicy(QtCore.Qt.NoFocus) + self.zero_c_button.setStyleSheet("MDIButton {\n" +" font: 15pt \"Bebas Kai\";\n" +"}") + self.zero_c_button.setObjectName("zero_c_button") + self.c_axis_dro_layout.addWidget(self.zero_c_button) + self.axis_label_c = QtWidgets.QLabel(offset_dros_xyzbc) + self.axis_label_c.setMinimumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setMaximumSize(QtCore.QSize(45, 35)) + self.axis_label_c.setStyleSheet("QLabel{\n" +" border-style: solid;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: rgb(238, 238, 236);\n" +" font: 18pt \"Bebas Kai\";\n" +"}") + self.axis_label_c.setAlignment(QtCore.Qt.AlignCenter) + self.axis_label_c.setObjectName("axis_label_c") + self.c_axis_dro_layout.addWidget(self.axis_label_c) + self.dro_entry_offset_c = DROLineEdit(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dro_entry_offset_c.sizePolicy().hasHeightForWidth()) + self.dro_entry_offset_c.setSizePolicy(sizePolicy) + self.dro_entry_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.dro_entry_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + font = QtGui.QFont() + font.setFamily("Bebas Kai") + font.setPointSize(17) + font.setBold(False) + font.setItalic(False) + font.setWeight(50) + self.dro_entry_offset_c.setFont(font) + self.dro_entry_offset_c.setStyleSheet("QLineEdit{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" padding-right: 2px;\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.dro_entry_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.dro_entry_offset_c.setProperty("referenceType", 1) + self.dro_entry_offset_c.setProperty("axisNumber", 4) + self.dro_entry_offset_c.setProperty("latheMode", 0) + self.dro_entry_offset_c.setObjectName("dro_entry_offset_c") + self.c_axis_dro_layout.addWidget(self.dro_entry_offset_c) + self.drolabel_work_c = DROLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.drolabel_work_c.sizePolicy().hasHeightForWidth()) + self.drolabel_work_c.setSizePolicy(sizePolicy) + self.drolabel_work_c.setMinimumSize(QtCore.QSize(0, 38)) + self.drolabel_work_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.drolabel_work_c.setStyleSheet("QLabel{\n" +" border-style: transparent;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +" padding-right: 2px;\n" +"}\n" +"\n" +"QLabel[style=\"unhomed\"]{\n" +" color: red;\n" +"}\n" +"\n" +"QLabel[style=\"homing\"]{\n" +" color: rgb(196, 160, 0);\n" +"}") + self.drolabel_work_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.drolabel_work_c.setProperty("referenceType", 0) + self.drolabel_work_c.setProperty("axisNumber", 4) + self.drolabel_work_c.setProperty("latheMode", 0) + self.drolabel_work_c.setObjectName("drolabel_work_c") + self.c_axis_dro_layout.addWidget(self.drolabel_work_c) + self.work_offset_c = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.work_offset_c.sizePolicy().hasHeightForWidth()) + self.work_offset_c.setSizePolicy(sizePolicy) + self.work_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.work_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.work_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.work_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.work_offset_c.setObjectName("work_offset_c") + self.c_axis_dro_layout.addWidget(self.work_offset_c) + self.g52_g92_c = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.g52_g92_c.sizePolicy().hasHeightForWidth()) + self.g52_g92_c.setSizePolicy(sizePolicy) + self.g52_g92_c.setMinimumSize(QtCore.QSize(0, 38)) + self.g52_g92_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.g52_g92_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.g52_g92_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.g52_g92_c.setObjectName("g52_g92_c") + self.c_axis_dro_layout.addWidget(self.g52_g92_c) + self.tool_offset_c = StatusLabel(offset_dros_xyzbc) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(1) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tool_offset_c.sizePolicy().hasHeightForWidth()) + self.tool_offset_c.setSizePolicy(sizePolicy) + self.tool_offset_c.setMinimumSize(QtCore.QSize(0, 38)) + self.tool_offset_c.setMaximumSize(QtCore.QSize(16777215, 38)) + self.tool_offset_c.setStyleSheet("StatusLabel{\n" +" border-style: transparant;\n" +" border-color: rgb(235, 235, 235);\n" +" border-width: 1px;\n" +" border-radius: 5px;\n" +" color: black;\n" +" background: rgb(235, 235, 235);\n" +" font: 17pt \"Bebas Kai\";\n" +"}") + self.tool_offset_c.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.tool_offset_c.setObjectName("tool_offset_c") + self.c_axis_dro_layout.addWidget(self.tool_offset_c) + self.verticalLayout.addLayout(self.c_axis_dro_layout) + + self.retranslateUi(offset_dros_xyzbc) + QtCore.QMetaObject.connectSlotsByName(offset_dros_xyzbc) + + def retranslateUi(self, offset_dros_xyzbc): + _translate = QtCore.QCoreApplication.translate + offset_dros_xyzbc.setWindowTitle(_translate("offset_dros_xyzbc", "offset_dros_xyzbc")) + self.zero_x_button.setText(_translate("offset_dros_xyzbc", "ZERO")) + self.zero_x_button.setProperty("rules", _translate("offset_dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_x_button.setProperty("MDICommand", _translate("offset_dros_xyzbc", "G10 L20 P{ch[0]} X0.0")) + self.axis_label_x.setText(_translate("offset_dros_xyzbc", "X")) + self.drolabel_work_x.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.drolabel_work_x.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.drolabel_work_x.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.work_offset_x.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.g52_g92_x.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.tool_offset_x.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][0])\", \"name\": \"New Rule\"}]")) + self.zero_y_button.setText(_translate("offset_dros_xyzbc", "ZERO")) + self.zero_y_button.setProperty("rules", _translate("offset_dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_y_button.setProperty("MDICommand", _translate("offset_dros_xyzbc", "G10 L20 P{ch[0]} Y0.0")) + self.axis_label_y.setText(_translate("offset_dros_xyzbc", "Y")) + self.drolabel_work_y.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.drolabel_work_y.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.drolabel_work_y.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.work_offset_y.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.g52_g92_y.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.tool_offset_y.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][1])\", \"name\": \"New Rule\"}]")) + self.zero_z_button.setText(_translate("offset_dros_xyzbc", "ZERO")) + self.zero_z_button.setProperty("rules", _translate("offset_dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_z_button.setProperty("MDICommand", _translate("offset_dros_xyzbc", "G10 L20 P{ch[0]} Z0.0")) + self.axis_label_z.setText(_translate("offset_dros_xyzbc", "Z")) + self.drolabel_work_z.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.drolabel_work_z.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.drolabel_work_z.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.work_offset_z.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.g52_g92_z.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"New Rule\"}]")) + self.tool_offset_z.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"url\": \"status:tool_offset\", \"trigger\": true}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][2])\", \"name\": \"tool offset\"}]")) + self.zero_b_button.setText(_translate("offset_dros_xyzbc", "ZERO")) + self.zero_b_button.setProperty("rules", _translate("offset_dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_b_button.setProperty("MDICommand", _translate("offset_dros_xyzbc", "G10 L20 P{ch[0]} B0.0")) + self.axis_label_b.setText(_translate("offset_dros_xyzbc", "B")) + self.drolabel_work_b.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.drolabel_work_b.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.drolabel_work_b.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.work_offset_b.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_b.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_b.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.zero_c_button.setText(_translate("offset_dros_xyzbc", "ZERO")) + self.zero_c_button.setProperty("rules", _translate("offset_dros_xyzbc", "[\n" +" {\n" +" \"channels\": [\n" +" {\n" +" \"url\": \"status:g5x_index\",\n" +" \"trigger\": true,\n" +" \"type\": \"int\"\n" +" }\n" +" ],\n" +" \"expression\": \"\",\n" +" \"name\": \"G5x Index\",\n" +" \"property\": \"None\"\n" +" }\n" +"]")) + self.zero_c_button.setProperty("MDICommand", _translate("offset_dros_xyzbc", "G10 L20 P{ch[0]} C0.0")) + self.axis_label_c.setText(_translate("offset_dros_xyzbc", "C")) + self.dro_entry_offset_c.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.dro_entry_offset_c.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.dro_entry_offset_c.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.drolabel_work_c.setProperty("inchFormat", _translate("offset_dros_xyzbc", "%9.4f")) + self.drolabel_work_c.setProperty("millimeterFormat", _translate("offset_dros_xyzbc", "%10.3f")) + self.drolabel_work_c.setProperty("degreeFormat", _translate("offset_dros_xyzbc", "%10.2f")) + self.work_offset_c.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g92_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.g52_g92_c.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:g5x_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) + self.tool_offset_c.setProperty("rules", _translate("offset_dros_xyzbc", "[{\"channels\": [{\"trigger\": true, \"type\": \"tuple\", \"url\": \"status:tool_offset\"}], \"property\": \"Text\", \"expression\": \"\\\"{:.4f}\\\".format(ch[0][4])\", \"name\": \"New Rule\"}]")) +from qtpyvcp.widgets.button_widgets.mdi_button import MDIButton +from qtpyvcp.widgets.display_widgets.dro_label import DROLabel +from qtpyvcp.widgets.display_widgets.status_label import StatusLabel +from qtpyvcp.widgets.input_widgets.dro_line_edit import DROLineEdit +import probe_basic_rc diff --git a/user_tabs/template_main/template_main.py b/user_tabs/template_main/template_main.py new file mode 100644 index 0000000..1bcd807 --- /dev/null +++ b/user_tabs/template_main/template_main.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserTab(QWidget): + def __init__(self, parent=None): + super(UserTab, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_tabs/template_main/template_main.ui b/user_tabs/template_main/template_main.ui new file mode 100644 index 0000000..e9c3969 --- /dev/null +++ b/user_tabs/template_main/template_main.ui @@ -0,0 +1,28 @@ + + + USER + + + + 0 + 0 + 1645 + 619 + + + + + 1645 + 619 + + + + USER MAIN + + + false + + + + + diff --git a/user_tabs/template_main/template_main_ui.py b/user_tabs/template_main/template_main_ui.py new file mode 100644 index 0000000..91fe4f0 --- /dev/null +++ b/user_tabs/template_main/template_main_ui.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_tabs/template_main/template_main.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_USER(object): + def setupUi(self, USER): + USER.setObjectName("USER") + USER.resize(1645, 619) + USER.setMaximumSize(QtCore.QSize(1645, 619)) + USER.setProperty("sidebar", False) + + self.retranslateUi(USER) + QtCore.QMetaObject.connectSlotsByName(USER) + + def retranslateUi(self, USER): + _translate = QtCore.QCoreApplication.translate + USER.setWindowTitle(_translate("USER", "USER MAIN")) diff --git a/user_tabs/template_sidebar/template_sidebar.py b/user_tabs/template_sidebar/template_sidebar.py new file mode 100644 index 0000000..1bcd807 --- /dev/null +++ b/user_tabs/template_sidebar/template_sidebar.py @@ -0,0 +1,23 @@ +import os +import linuxcnc + +from qtpy import uic +from qtpy.QtCore import Qt +from qtpy.QtWidgets import QWidget + +from qtpyvcp.plugins import getPlugin +from qtpyvcp.utilities import logger + +LOG = logger.getLogger(__name__) + +STATUS = getPlugin('status') +TOOL_TABLE = getPlugin('tooltable') + +INI_FILE = linuxcnc.ini(os.getenv('INI_FILE_NAME')) + + +class UserTab(QWidget): + def __init__(self, parent=None): + super(UserTab, self).__init__(parent) + ui_file = os.path.splitext(os.path.basename(__file__))[0] + ".ui" + uic.loadUi(os.path.join(os.path.dirname(__file__), ui_file), self) diff --git a/user_tabs/template_sidebar/template_sidebar.ui b/user_tabs/template_sidebar/template_sidebar.ui new file mode 100644 index 0000000..6b28ca9 --- /dev/null +++ b/user_tabs/template_sidebar/template_sidebar.ui @@ -0,0 +1,28 @@ + + + USER + + + + 0 + 0 + 179 + 511 + + + + + 179 + 511 + + + + Sidebar User Tab + + + true + + + + + diff --git a/user_tabs/template_sidebar/template_sidebar_ui.py b/user_tabs/template_sidebar/template_sidebar_ui.py new file mode 100644 index 0000000..68a189a --- /dev/null +++ b/user_tabs/template_sidebar/template_sidebar_ui.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/buildbot/buildbot/worker/probe_basic-dev/sources/debian/python3-probe-basic/usr/share/configs/machine_setup_files/user_tabs/template_sidebar/template_sidebar.ui' +# +# Created by: PyQt5 UI code generator 5.15.9 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_USER(object): + def setupUi(self, USER): + USER.setObjectName("USER") + USER.resize(179, 511) + USER.setMaximumSize(QtCore.QSize(179, 511)) + USER.setProperty("sidebar", True) + + self.retranslateUi(USER) + QtCore.QMetaObject.connectSlotsByName(USER) + + def retranslateUi(self, USER): + _translate = QtCore.QCoreApplication.translate + USER.setWindowTitle(_translate("USER", "Sidebar User Tab"))