Библиотеки — это готовые модули Python, которые предоставляют GladeVCP дополнительные возможности. Таким образом, вы можете выбрать, какие функции вам нужны, но при этом вам не придется самостоятельно создавать общие.
1. Информация
Info — это библиотека для сбора и фильтрации данных из INI-файла.
Доступные данные и значения по умолчанию:
LINUXCNC_IS_RUNNING LINUXCNC_VERSION INIPATH INI = linuxcnc.ini(INIPATH) MDI_HISTORY_PATH = '~/.axis_mdi_history' QTVCP_LOG_HISTORY_PATH = '~/qtvcp.log' MACHINE_LOG_HISTORY_PATH = '~/.machine_log_history' PREFERENCE_PATH = '~/.Preferences' SUB_PATH = None SUB_PATH_LIST = [] self.MACRO_PATH = None MACRO_PATH_LIST = [] INI_MACROS = self.INI.findall("DISPLAY", "MACRO") IMAGE_PATH = IMAGEDIR LIB_PATH = os.path.join(HOME, "share","qtvcp") PROGRAM_FILTERS = None PARAMETER_FILE = None MACHINE_IS_LATHE = False MACHINE_IS_METRIC = False MACHINE_UNIT_CONVERSION = 1 MACHINE_UNIT_CONVERSION_9 = [1]*9 TRAJ_COORDINATES = JOINT_COUNT = int(self.INI.find("KINS","JOINTS")or 0) AVAILABLE_AXES = ['X','Y','Z'] AVAILABLE_JOINTS = [0,1,2] GET_NAME_FROM_JOINT = {0:'X',1:'Y',2:'Z'} GET_JOG_FROM_NAME = {'X':0,'Y':1,'Z':2} NO_HOME_REQUIRED = False HOME_ALL_FLAG JOINT_TYPE = self.INI.find(section, "TYPE") or "LINEAR" JOINT_SEQUENCE_LIST JOINT_SYNC_LIST JOG_INCREMENTS = None ANGULAR_INCREMENTS = None GRID_INCREMENTS DEFAULT_LINEAR_JOG_VEL = 15 units per minute MIN_LINEAR_JOG_VEL = 60 units per minute MAX_LINEAR_JOG_VEL = 300 units per minute DEFAULT_ANGULAR_JOG_VEL = MIN_ANGULAR_JOG_VEL = MAX_ANGULAR_JOG_VEL = MAX_FEED_OVERRIDE = MAX_TRAJ_VELOCITY = AVAILABLE_SPINDLES = int(self.INI.find("TRAJ", "SPINDLES") or 1) DEFAULT_SPINDLE_0_SPEED = 200 MAX_SPINDLE_0_SPEED = 2500 MAX_SPINDLE_0_OVERRIDE = 100 MIN_SPINDLE_0_OVERRIDE = 50 MAX_FEED_OVERRIDE = 1.5 MAX_TRAJ_VELOCITY # user message dialog info USRMESS_BOLDTEXT = self.INI.findall("DISPLAY", "MESSAGE_BOLDTEXT") USRMESS_TEXT = self.INI.findall("DISPLAY", "MESSAGE_TEXT") USRMESS_TYPE = self.INI.findall("DISPLAY", "MESSAGE_TYPE") USRMESS_PINNAME = self.INI.findall("DISPLAY", "MESSAGE_PINNAME") USRMESS_DETAILS = self.INI.findall("DISPLAY", "MESSAGE_DETAILS") USRMESS_ICON = self.INI.findall("DISPLAY", "MESSAGE_ICON") ZIPPED_USRMESS = self.GLADEVCP = (self.INI.find("DISPLAY", "GLADEVCP")) or None # embedded program info TAB_NAMES = (self.INI.findall("DISPLAY", "EMBED_TAB_NAME")) or None TAB_LOCATION = (self.INI.findall("DISPLAY", "EMBED_TAB_LOCATION")) or [] TAB_CMD = (self.INI.findall("DISPLAY", "EMBED_TAB_COMMAND")) or None ZIPPED_TABS = MDI_COMMAND_LIST = (heading: [MDI_COMMAND_LIST], title: MDI_COMMAND") TOOL_FILE_PATH = (heading: [EMCIO], title:TOOL_TABLE) POSTGUI_HALFILE_PATH = (heading: [HAL], title: POSTGUI_HALFILE)
Есть несколько вспомогательных функций, которые в основном используются для поддержки виджетов
get_error_safe_setting(self, heading, detail, default=None)
convert_metric_to_machine(data)
convert_imperial_to_machine(data)
convert_9_metric_to_machine(data)
convert_9_imperial_to_machine(data)
convert_units(data)
convert_units_9(data)
get_filter_program(fname)
Чтобы импортировать эти модули, добавьте этот код Python в раздел импорта:
############################ # **** IMPORT SECTION **** # ############################ from gladevcp.core import Info
Чтобы создать экземпляр модуля и использовать его в файле-обработчике, добавьте этот код Python в раздел создания экземпляра:
########################################### # **** INSTANTIATE LIBRARIES SECTION **** # ########################################### INFO = Info()
Для доступа к данным INFO используйте следующий общий синтаксис:
home_state = INFO.NO_HOME_REQUIRED if INFO.MACHINE_IS_METRIC is True: print('Metric based')
2. Действие
Эта библиотека используется для управления контроллером движения LinuxCNC. Она пытается скрыть второстепенные детали и добавить удобные методы для разработчиков.
Чтобы импортировать эти модули, добавьте этот код Python в раздел импорта:
############################ # **** IMPORT SECTION **** # ############################ from gladevcp.core import Action
Чтобы создать экземпляр модуля и использовать его, добавьте этот код Python в раздел создания экземпляра:
########################################### # **** INSTANTIATE LIBRARIES SECTION **** # ########################################### ACTION = Action()
Для доступа к командам действий используйте общий синтаксис, например:
ACTION.SET_ESTOP_STATE(state) ACTION.SET_MACHINE_STATE(state) ACTION.SET_MACHINE_HOMING(joint) ACTION.SET_MACHINE_UNHOMED(joint) ACTION.SET_LIMITS_OVERRIDE() ACTION.SET_MDI_MODE() ACTION.SET_MANUAL_MODE() ACTION.SET_AUTO_MODE() ACTION.SET_LIMITS_OVERRIDE() ACTION.CALL_MDI(code) ACTION.CALL_MDI_WAIT(code) ACTION.CALL_INI_MDI(number) ACTION.CALL_OWORD() ACTION.OPEN_PROGRAM(filename) ACTION.SAVE_PROGRAM(text_source, fname): ACTION.SET_AXIS_ORIGIN(axis,value) ACTION.SET_TOOL_OFFSET(axis,value,fixture = False) ACTION.RUN() ACTION.ABORT() ACTION.PAUSE() ACTION.SET_MAX_VELOCITY_RATE(rate) ACTION.SET_RAPID_RATE(rate) ACTION.SET_FEED_RATE(rate) ACTION.SET_SPINDLE_RATE(rate) ACTION.SET_JOG_RATE(rate) ACTION.SET_JOG_INCR(incr) ACTION.SET_JOG_RATE_ANGULAR(rate) ACTION.SET_JOG_INCR_ANGULAR(incr, text) ACTION.SET_SPINDLE_ROTATION(direction = 1, rpm = 100, number = 0) ACTION.SET_SPINDLE_FASTER(number = 0) ACTION.SET_SPINDLE_SLOWER(number = 0) ACTION.SET_SPINDLE_STOP(number = 0) ACTION.SET_USER_SYSTEM(system) ACTION.ZERO_G92_OFFSET() ACTION.ZERO_ROTATIONAL_OFFSET() ACTION.ZERO_G5X_OFFSET(num) ACTION.RECORD_CURRENT_MODE() ACTION.RESTORE_RECORDED_MODE() ACTION.SET_SELECTED_AXIS(jointnum) ACTION.DO_JOG(jointnum, direction) ACTION.JOG(jointnum, direction, rate, distance=0) ACTION.TOGGLE_FLOOD() ACTION.SET_FLOOD_ON() ACTION.SET_FLOOD_OFF() ACTION.TOGGLE_MIST() ACTION.SET_MIST_ON() ACTION.SET_MIST_OFF() ACTION.RELOAD_TOOLTABLE() ACTION.UPDATE_VAR_FILE() ACTION.TOGGLE_OPTIONAL_STOP() ACTION.SET_OPTIONAL_STOP_ON() ACTION.SET_OPTIONAL_STOP_OFF() ACTION.TOGGLE_BLOCK_DELETE() ACTION.SET_BLOCK_DELETE_ON() ACTION.SET_BLOCK_DELETE_OFF() ACTION.RELOAD_DISPLAY() ACTION.SET_GRAPHICS_VIEW(view) ACTION.UPDATE_MACHINE_LOG(text, option=None): ACTION.SET_DISPLAY_MESSAGE(string) ACTION.SET_ERROR_MESSAGE(string)
Есть несколько вспомогательных функций, которые в основном используются для поддержки этой библиотеки.
get_jog_info (num) jnum_check(num) ensure_mode(modes) open_filter_program(filename, filter)