2025-07-29 13:16:30 +08:00
|
|
|
import configparser
|
|
|
|
|
|
|
|
|
|
import Constant
|
|
|
|
|
from Model.Position import Real_Position
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LineModel:
|
|
|
|
|
def __init__(self,index=9):
|
|
|
|
|
self.id = index
|
|
|
|
|
self.name = '未定义'
|
2025-09-28 09:48:12 +08:00
|
|
|
#1基础点 2 码垛点 默认码垛点
|
|
|
|
|
self.line_category=1
|
2025-07-29 13:16:30 +08:00
|
|
|
self.positions = []
|
|
|
|
|
self.section = f'{Constant.feedLine_set_section}{index}'
|
|
|
|
|
|
|
|
|
|
def read_line_model(self,config_reader,index:int):
|
|
|
|
|
|
|
|
|
|
self.section = f'FeedLine{index}'
|
|
|
|
|
|
|
|
|
|
self.id = config_reader.getint(self.section, 'id')
|
|
|
|
|
self.name = config_reader.get(self.section, 'name')
|
|
|
|
|
for i in range(1, Constant.MAX_Position_num):
|
|
|
|
|
if config_reader.has_section(f'{Constant.position_set_section}{i}'):
|
|
|
|
|
position = PositionModel()
|
|
|
|
|
position.read_position_model(config_reader,i)
|
|
|
|
|
if position.lineId == self.id:
|
|
|
|
|
self.positions.append(position)
|
|
|
|
|
self.positions = sorted(self.positions, key=lambda x: x.order)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def save_line_model(self,config_reader):
|
|
|
|
|
if not config_reader.has_section(self.section):
|
|
|
|
|
config_reader.add_section(self.section)
|
|
|
|
|
config_reader.set(self.section, 'id', str(self.id))
|
|
|
|
|
config_reader.set(self.section, 'name', self.name)
|
|
|
|
|
for i in range(len(self.positions)):
|
|
|
|
|
self.positions[i].save_position_model(config_reader)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PositionModel:
|
|
|
|
|
def __init__(self,index=99):
|
|
|
|
|
self.X = 0.0
|
|
|
|
|
self.Y = 0.0
|
|
|
|
|
self.Z = 0.0
|
|
|
|
|
self.U = 0.0
|
|
|
|
|
self.V = 0.0
|
|
|
|
|
self.W = 0.0
|
|
|
|
|
self.id = index
|
|
|
|
|
self.order = 0
|
|
|
|
|
self.lineId = 0
|
|
|
|
|
self.status = 0
|
|
|
|
|
self.lineType = 0
|
|
|
|
|
self.section = f'Position{index}'
|
|
|
|
|
pass
|
|
|
|
|
def init_position(self,real_pos:Real_Position):
|
|
|
|
|
self.set_position(real_pos)
|
|
|
|
|
self.id = 0
|
|
|
|
|
self.order = 0
|
|
|
|
|
self.status = 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def read_position_model(self,config_reader,index:int):
|
|
|
|
|
self.section = f'Position{index}'
|
|
|
|
|
self.X = config_reader.getfloat(self.section, 'X')
|
|
|
|
|
self.Y = config_reader.getfloat(self.section, 'Y')
|
|
|
|
|
self.Z = config_reader.getfloat(self.section, 'Z')
|
|
|
|
|
self.U = config_reader.getfloat(self.section, 'U')
|
|
|
|
|
self.V = config_reader.getfloat(self.section, 'V')
|
|
|
|
|
self.W = config_reader.getfloat(self.section, 'W')
|
|
|
|
|
self.id = config_reader.getint(self.section, 'id')
|
|
|
|
|
self.order = config_reader.getint(self.section, 'order')
|
|
|
|
|
self.lineId = config_reader.getint(self.section, 'lineId')
|
|
|
|
|
self.status = config_reader.getint(self.section, 'status')
|
|
|
|
|
self.lineType = config_reader.getint(self.section, 'lineType')
|
|
|
|
|
def get_position(self):
|
|
|
|
|
real_pos = Real_Position()
|
2025-09-10 09:16:57 +08:00
|
|
|
#初始化类型
|
|
|
|
|
real_pos.position_type = self.lineType
|
2025-07-29 13:16:30 +08:00
|
|
|
real_pos.init_position(self.X, self.Y, self.Z, self.U, self.V, self.W)
|
|
|
|
|
if real_pos.X == -9999:
|
|
|
|
|
return None
|
|
|
|
|
return real_pos
|
|
|
|
|
def set_position(self,real_pos:Real_Position):
|
|
|
|
|
if real_pos == None:
|
|
|
|
|
self.X = -9999
|
|
|
|
|
self.Y = -9999
|
|
|
|
|
self.Z = -9999
|
|
|
|
|
self.U = -9999
|
|
|
|
|
self.V = -9999
|
|
|
|
|
self.W = -9999
|
|
|
|
|
return
|
|
|
|
|
self.X = real_pos.X
|
|
|
|
|
self.Y = real_pos.Y
|
|
|
|
|
self.Z = real_pos.Z
|
|
|
|
|
self.U = real_pos.U
|
|
|
|
|
self.V = real_pos.V
|
|
|
|
|
self.W = real_pos.W
|
|
|
|
|
def save_position_model(self,config_reader):
|
|
|
|
|
if not config_reader.has_section(self.section):
|
|
|
|
|
config_reader.add_section(self.section)
|
|
|
|
|
config_reader.set(self.section, 'X', str(self.X))
|
|
|
|
|
config_reader.set(self.section, 'Y', str(self.Y))
|
|
|
|
|
config_reader.set(self.section, 'Z', str(self.Z))
|
|
|
|
|
config_reader.set(self.section, 'U', str(self.U))
|
|
|
|
|
config_reader.set(self.section, 'V', str(self.V))
|
|
|
|
|
config_reader.set(self.section, 'W', str(self.W))
|
|
|
|
|
config_reader.set(self.section, 'id', str(self.id))
|
|
|
|
|
config_reader.set(self.section, 'order', str(self.order))
|
|
|
|
|
config_reader.set(self.section, 'lineId', str(self.lineId))
|
|
|
|
|
config_reader.set(self.section, 'status', str(self.status))
|
|
|
|
|
config_reader.set(self.section, 'lineType', str(self.lineType))
|