def __init__(self, parent=None): super(Lcnc_3dGraphics, self).__init__(parent) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a, )] # requires linuxcnc running before laoding this widget inifile = os.environ.get('INI_FILE_NAME', '/dev/null') self.inifile = linuxcnc.ini(inifile) self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry()) # start tracking linuxcnc position so we can plot it thread.start_new_thread(self.logger.start, (.01, )) glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) # set defaults self.current_view = 'p' self.fingerprint = () self.select_primed = None self.lat = 0 self.minlat = -90 self.maxlat = 90 self._current_file = None self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.gcode_properties = None self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = self.inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true") self.foam_option = bool(self.inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.show_overlay = False self.enable_dro = False self.use_default_controls = True self.mouse_btn_mode = 0 self.use_gradient_background = False self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i, j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1 << i) == 0: continue live_axis_count += 1 self.num_joints = int( self.inifile.find("KINS", "JOINTS") or live_axis_count) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 # add a 100ms timer to poll linuxcnc stats self.timer = QTimer() self.timer.timeout.connect(self.poll) self.timer.start(100) self.Green = QColor.fromCmykF(0.40, 0.0, 1.0, 0.0)
def __init__(self, inifile): gobject.GObject.__init__(self) display_mode = ( gtk.gdkgl.MODE_RGB | gtk.gdkgl.MODE_DEPTH | gtk.gdkgl.MODE_DOUBLE ) glconfig = gtk.gdkgl.Config(mode=display_mode) gtk.gtkgl.widget.DrawingArea.__init__(self, glconfig) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a,)] self.inifile = inifile self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry() ) thread.start_new_thread(self.logger.start, (.01,)) rs274.glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) self.current_view = 'z' self.select_primed = None self.connect_after('realize', self.realize) self.connect('configure_event', self.reshape) self.connect('map_event', self.map) self.connect('expose_event', self.expose) self.connect('motion-notify-event', self.motion) self.connect('button-press-event', self.pressed) self.connect('button-release-event', self.select_fire) self.connect('scroll-event', self.scroll) self.add_events(gtk.gdk.POINTER_MOTION_MASK) self.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK) self.add_events(gtk.gdk.BUTTON_MOTION_MASK) self.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.fingerprint = () self.lat = 0 self.minlat = -90 self.maxlat = 90 self.highlight_line = None self.material_buttom_left = (0.0,0.0) self.material_buttom_right = (0.0,0.0) self.material_top_left = (0.0,0.0) self.material_top_right = (0.0,0.0) self.draw_material_state = False self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true" ) self.foam_option = bool(inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.use_default_controls = True self.mouse_btn_mode = 0 self.a_axis_wrapped = inifile.find("AXIS_3", "WRAPPED_ROTARY") self.b_axis_wrapped = inifile.find("AXIS_4", "WRAPPED_ROTARY") self.c_axis_wrapped = inifile.find("AXIS_5", "WRAPPED_ROTARY") live_axis_count = 0 for i,j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1<<i) == 0: continue live_axis_count += 1 self.num_joints = int(inifile.find("TRAJ", "JOINTS") or live_axis_count) self.highlight_mode = 'line' self.highlight_mode = inifile.find("DISPLAY", "HIGHLIGHT_MODE")
def __init__(self, inifile): display_mode = ( gtk.gdkgl.MODE_RGB | gtk.gdkgl.MODE_DEPTH | gtk.gdkgl.MODE_DOUBLE ) glconfig = gtk.gdkgl.Config(mode=display_mode) gtk.gtkgl.widget.DrawingArea.__init__(self, glconfig) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a,)] self.inifile = inifile self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry() ) thread.start_new_thread(self.logger.start, (.01,)) rs274.glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) self.current_view = 'z' self.select_primed = None self.connect_after('realize', self.realize) self.connect('configure_event', self.reshape) self.connect('map_event', self.map) self.connect('expose_event', self.expose) self.connect('motion-notify-event', self.motion) self.connect('button-press-event', self.pressed) self.connect('button-release-event', self.select_fire) self.connect('scroll-event', self.scroll) self.add_events(gtk.gdk.POINTER_MOTION_MASK) self.add_events(gtk.gdk.POINTER_MOTION_HINT_MASK) self.add_events(gtk.gdk.BUTTON_MOTION_MASK) self.add_events(gtk.gdk.BUTTON_PRESS_MASK) self.add_events(gtk.gdk.BUTTON_RELEASE_MASK) self.fingerprint = () self.lat = 0 self.minlat = -90 self.maxlat = 90 self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true" ) self.foam_option = bool(inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.use_default_controls = True self.a_axis_wrapped = inifile.find("AXIS_3", "WRAPPED_ROTARY") self.b_axis_wrapped = inifile.find("AXIS_4", "WRAPPED_ROTARY") self.c_axis_wrapped = inifile.find("AXIS_5", "WRAPPED_ROTARY") live_axis_count = 0 for i,j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1<<i) == 0: continue live_axis_count += 1 self.num_joints = int(inifile.find("TRAJ", "JOINTS") or live_axis_count)
def __init__(self, parent=None): super(Lcnc_3dGraphics, self).__init__(parent) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a, )] # requires linuxcnc running before laoding this widget inifile = os.environ.get('INI_FILE_NAME', '/dev/null') # if status is not available then we are probably # displaying in designer so fake it stat = linuxcnc.stat() try: stat.poll() except: LOG.warning( 'linuxcnc staus failed, Assuming linuxcnc is not running so using fake status for a XYZ machine' ) stat = fakeStatus() self.inifile = linuxcnc.ini(inifile) self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry()) # start tracking linuxcnc position so we can plot it _thread.start_new_thread(self.logger.start, (.01, )) glcanon.GlCanonDraw.__init__(self, stat, self.logger) # set defaults self.current_view = 'p' self.fingerprint = () self.select_primed = None self.lat = 0 self.minlat = -90 self.maxlat = 90 self._current_file = None self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.gcode_properties = None self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_lathe_radius = False self.show_dtg = True self.grid_size = 0.0 temp = self.inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true") self.foam_option = bool(self.inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.show_overlay = False self.enable_dro = False self.use_default_controls = True self.mouse_btn_mode = 0 self.cancel_rotate = False self.use_gradient_background = False self.gradient_color1 = (0.0, 0.0, 1) self.gradient_color2 = (0.0, 0.0, 0.0) self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i, j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1 << i) == 0: continue live_axis_count += 1 self.num_joints = int( self.inifile.find("KINS", "JOINTS") or live_axis_count) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.Green = QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) self.inhibit_selection = True self.dro_in = "% 9.4f" self.dro_mm = "% 9.3f" self.dro_deg = "% 9.2f" self.dro_vel = " Vel:% 9.2F" self.addTimer()
def __init__(self, parent=None): super(Lcnc_3dGraphics, self).__init__(parent) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a, )] # requires linuxcnc running before loading this widget inifile = os.environ.get('INI_FILE_NAME', '/dev/null') # if status is not available then we are probably # displaying in designer so fake it stat = linuxcnc.stat() try: stat.poll() except: LOG.warning( 'linuxcnc status failed, Assuming linuxcnc is not running so using fake status for a XYZ machine' ) stat = fakeStatus() self.inifile = linuxcnc.ini(inifile) self.foam_option = bool(self.inifile.find("DISPLAY", "FOAM")) try: trajcoordinates = self.inifile.find("TRAJ", "COORDINATES").lower().replace( " ", "") except: trajcoordinates = "unknown" #raise SystemExit("Missing [TRAJ]COORDINATES") kinsmodule = self.inifile.find("KINS", "KINEMATICS") self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry(), self.foam_option) # start tracking linuxcnc position so we can plot it _thread.start_new_thread(self.logger.start, (.01, )) glcanon.GlCanonDraw.__init__(self, stat, self.logger) glcanon.GlCanonDraw.init_glcanondraw(self, trajcoordinates=trajcoordinates, kinsmodule=kinsmodule) # set defaults self.display_loaded = False self.current_view = 'p' self.fingerprint = () self.select_primed = None self.lat = 0 self.minlat = -90 self.maxlat = 90 self._current_file = None self.highlight_line = None self.program_alpha = False self.use_joints_mode = True self.use_commanded = True self.show_limits = True self.show_extents_option = True self.gcode_properties = None self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_lathe_radius = False self.show_dtg = True self.grid_size = 0.0 temp = self.inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true") self.show_offsets = False self.show_overlay = False self.enable_dro = False self.use_default_controls = True self.mouse_btn_mode = 0 self.cancel_rotate = False self.use_gradient_background = False self.gradient_color1 = (0.0, 0.0, 1) self.gradient_color2 = (0.0, 0.0, 0.0) self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i, j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1 << i) == 0: continue live_axis_count += 1 self.num_joints = int( self.inifile.find("KINS", "JOINTS") or live_axis_count) # initialize variables for user view self.presetViewSettings(v=None, z=0, x=0, y=0, lat=None, lon=None) # allow anyone else to preset user view with better settings self._presetFlag = False self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.Green = QColor.fromCmykF(0.40, 0.0, 1.0, 0.0) self.inhibit_selection = True self.dro_in = "% 9.4f" self.dro_mm = "% 9.3f" self.dro_deg = "% 9.2f" self.dro_vel = " Vel:% 9.2F" self._font = 'monospace bold 16' self.addTimer() self._buttonList = [Qt.LeftButton, Qt.MiddleButton, Qt.RightButton] self._invertWheelZoom = False
def __init__(self, parent=None): super(QBackPlot, self).__init__(parent) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a,)] # requires linuxcnc running before laoding this widget inifile = os.environ.get('INI_FILE_NAME', '/dev/null') self.inifile = linuxcnc.ini(inifile) self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry() ) # start tracking linuxcnc position so we can plot it thread.start_new_thread(self.logger.start, (.01,)) glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) self.canon = None # set defaults self.current_view = 'p' self.fingerprint = () self.select_primed = None self.lat = 0 self.minlat = -90 self.maxlat = 90 self.current_file = None self.program_length = 0 self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 self.is_lathe = self.inifile.find("DISPLAY", "LATHE") in ['1', 'True', 'true'] self.random = int(self.inifile.find("EMCIO", "RANDOM_TOOLCHANGER") or 0) temp = self.inifile.find("RS274NGC", "PARAMETER_FILE") or "linuxcnc.var" self.parameter_file = os.path.join(os.getenv('CONFIG_DIR', ''), temp) self.foam_option = bool(self.inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.show_overlay = False self.enable_dro = False self.use_default_controls = True self.mouse_btn_mode = 0 self.mouse_moving = False self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i, j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1 << i) == 0: continue live_axis_count += 1 self.num_joints = int(self.inifile.find("KINS", "JOINTS") or live_axis_count) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 self.Green = QColor.fromCmykF(0.40, 0.0, 1.0, 0.0)
def __init__(self, inifile): self.xwindow_id = None #self.set_has_alpha(True) #'set_has_stencil_buffer', glutInit() glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH ) self.add_attribute(GLX.GLX_RGBA, True) self.add_attribute(GLX.GLX_RED_SIZE, 1) self.add_attribute(GLX.GLX_GREEN_SIZE, 1) self.add_attribute(GLX.GLX_BLUE_SIZE, 1) self.add_attribute(GLX.GLX_DOUBLEBUFFER, 1) xvinfo = GLX.glXChooseVisual(self.xdisplay, self.display.get_default_screen(), self.get_attributes()) configs = GLX.glXChooseFBConfig(self.xdisplay, 0, None, byref(c_int())) self.context = GLX.glXCreateContext(self.xdisplay, xvinfo, None, True) #class Gremlin(gtk.gtkgl.widget.DrawingArea, glnav.GlNavBase, # rs274.glcanon.GlCanonDraw): # rotation_vectors = [(1.,0.,0.), (0., 0., 1.)] # def __init__(self, inifile): # # display_mode = ( gtk.gdkgl.MODE_RGB | gtk.gdkgl.MODE_DEPTH | # gtk.gdkgl.MODE_DOUBLE ) # glconfig = gtk.gdkgl.Config(mode=display_mode) # gtk.gtkgl.widget.DrawingArea.__init__(self, glconfig) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a,)] self.inifile = inifile self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry() ) _thread.start_new_thread(self.logger.start, (.01,)) rs274.glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) self.current_view = 'z' self.select_primed = None self.connect_after('realize', self.realize) self.connect('configure_event', self.reshape) self.connect('map_event', self.map) self.connect('draw', self.expose) # expose_event was deprecated self.connect('motion-notify-event', self.motion) self.connect('button-press-event', self.pressed) self.connect('button-release-event', self.select_fire) self.connect('scroll-event', self.scroll) self.add_events(Gdk.EventMask.POINTER_MOTION_MASK) self.add_events(Gdk.EventMask.POINTER_MOTION_HINT_MASK) #self.add_events(gdk.BUTTON_MOTION_MASK) #self.add_events(gdk.EventMask.BUTTON_PRESS_MASK) #self.add_events(gdk.BUTTON_RELEASE_MASK) self.add_events(Gdk.EventMask.BUTTON_MOTION_MASK) self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) self.add_events(Gdk.EventMask.SCROLL_MASK) self.fingerprint = () self.lat = 0 self.minlat = -90 self.maxlat = 90 self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true" ) self.foam_option = bool(inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.use_default_controls = True self.mouse_btn_mode = 0 self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i,j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1<<i) == 0: continue live_axis_count += 1 self.num_joints = int(inifile.find("KINS", "JOINTS") or live_axis_count) glDrawBuffer(GL_BACK) glDisable(GL_CULL_FACE) glLineStipple(2, 0x5555) glDisable(GL_LIGHTING) glClearColor(0,0,0,0) glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
def __init__(self, parent=None): super(Lcnc_3dGraphics, self).__init__(parent) glnav.GlNavBase.__init__(self) def C(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a,)] # requires linuxcnc running before laoding this widget inifile = os.environ.get('INI_FILE_NAME', '/dev/null') self.inifile = linuxcnc.ini(inifile) self.logger = linuxcnc.positionlogger(linuxcnc.stat(), C('backplotjog'), C('backplottraverse'), C('backplotfeed'), C('backplotarc'), C('backplottoolchange'), C('backplotprobing'), self.get_geometry() ) # start tracking linuxcnc position so we can plot it thread.start_new_thread(self.logger.start, (.01,)) glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) # set defaults self.current_view = 'p' self.fingerprint = () self.select_primed = None self.lat = 0 self.minlat = -90 self.maxlat = 90 self._current_file = None self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.gcode_properties = None self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = self.inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true" ) self.foam_option = bool(self.inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.show_overlay = False self.enable_dro = False self.use_default_controls = True self.mouse_btn_mode = 0 self.use_gradient_background = False self.a_axis_wrapped = self.inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = self.inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = self.inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i,j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1<<i) == 0: continue live_axis_count += 1 self.num_joints = int(self.inifile.find("KINS", "JOINTS") or live_axis_count) self.object = 0 self.xRot = 0 self.yRot = 0 self.zRot = 0 # add a 100ms timer to poll linuxcnc stats self.timer = QTimer() self.timer.timeout.connect(self.poll) self.timer.start(100) self.Green = QColor.fromCmykF(0.40, 0.0, 1.0, 0.0)
def __init__(self, inifile): Gtk.GLArea.__init__(self) glnav3.GlNavBase.__init__(self) def get_color(s): a = self.colors[s + "_alpha"] s = self.colors[s] return [int(x * 255) for x in s + (a, )] self.inifile = inifile self.logger = linuxcnc.positionlogger(linuxcnc.stat(), get_color('backplotjog'), get_color('backplottraverse'), get_color('backplotfeed'), get_color('backplotarc'), get_color('backplottoolchange'), get_color('backplotprobing'), self.get_geometry()) thread.start_new_thread(self.logger.start, (.01, )) glcanon.GlCanonDraw.__init__(self, linuxcnc.stat(), self.logger) self.current_view = 'z' self.select_primed = None self.connect_after('realize', self.realize) self.connect('configure_event', self.reshape) self.connect('map-event', self.map) self.connect('draw', self.on_draw) self.connect('motion-notify-event', self.motion) self.connect('button-press-event', self.pressed) self.connect('button-release-event', self.select_fire) self.connect('scroll-event', self.scroll) self.add_events(Gdk.EventMask.EXPOSURE_MASK | Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK | Gdk.EventMask.SCROLL_MASK | Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.POINTER_MOTION_MASK | Gdk.EventMask.POINTER_MOTION_HINT_MASK | Gdk.EventMask.ENTER_NOTIFY_MASK | Gdk.EventMask.LEAVE_NOTIFY_MASK) self.fingerprint = () self.lat = 0 self.minlat = -90 self.maxlat = 90 self.highlight_line = None self.program_alpha = False self.use_joints_mode = False self.use_commanded = True self.show_limits = True self.show_extents_option = True self.show_live_plot = True self.show_velocity = True self.metric_units = True self.show_program = True self.show_rapids = True self.use_relative = True self.show_tool = True self.show_dtg = True self.grid_size = 0.0 temp = inifile.find("DISPLAY", "LATHE") self.lathe_option = bool(temp == "1" or temp == "True" or temp == "true") self.foam_option = bool(inifile.find("DISPLAY", "FOAM")) self.show_offsets = False self.use_default_controls = True self.mouse_btn_mode = 0 self.a_axis_wrapped = inifile.find("AXIS_A", "WRAPPED_ROTARY") self.b_axis_wrapped = inifile.find("AXIS_B", "WRAPPED_ROTARY") self.c_axis_wrapped = inifile.find("AXIS_C", "WRAPPED_ROTARY") live_axis_count = 0 for i, j in enumerate("XYZABCUVW"): if self.stat.axis_mask & (1 << i) == 0: continue live_axis_count += 1 self.num_joints = int( inifile.find("KINS", "JOINTS") or live_axis_count)