update 更新部署

This commit is contained in:
FrankCV2048
2024-12-12 21:50:40 +08:00
parent 7a26238219
commit ad90c9f1f6
10 changed files with 354 additions and 230 deletions

View File

@ -1,5 +1,6 @@
from enum import Enum
import Constant
from COM.COM_Robot import RobotClient
from Util.util_time import CClockPulse, CTon
@ -11,7 +12,7 @@ class CatchStatus(Enum):
CShake = 3
COk = 4
class catch:
class Catch:
def __init__(self, robotClient: RobotClient):
self.robotClient = robotClient
self.catch_status = CatchStatus.CNone
@ -24,26 +25,27 @@ class catch:
if self.catch_status == CatchStatus.CTake:
self.robotClient.sendIOControl(self.robotClient.con_ios[0],1)
if self.robotClient.check_outputQ(self.robotClient.con_ios[0]):
if self.robotClient.check_outputQ(self.robotClient.con_ios[0]) or Constant.Debug:
self.catch_status = CatchStatus.COk
if self.catch_status == CatchStatus.CDrop:
self.robotClient.sendIOControl(self.robotClient.con_ios[0],0)
self.robotClient.sendIOControl(self.robotClient.con_ios[1],1)
if self.robotClient.check_outputQ(self.robotClient.con_ios[1]) and not self.robotClient.check_outputQ(self.robotClient.con_ios[0]):
if Constant.Debug or self.robotClient.check_outputQ(self.robotClient.con_ios[1]) and not self.robotClient.check_outputQ(self.robotClient.con_ios[0]):
self.catch_status = CatchStatus.COk
if self.catch_status == CatchStatus.CShake:
if not self.shake_continue.Q(True, 3000):
shakeQ = self.shakePulse.Q(True, 1000, 1000)
if not self.shake_continue.Q(True, 2000):
shakeQ = self.shakePulse.Q(True, 100, 100)
self.robotClient.sendIOControl(self.robotClient.con_ios[2], shakeQ)
print("正在震动" if shakeQ else "震动结束")
else:
self.shake_continue.SetReset()
self.catch_status = CatchStatus.COk
if self.robotClient.check_outputQ(self.robotClient.con_ios[2]):
if Constant.Debug or self.robotClient.check_outputQ(self.robotClient.con_ios[2]):
self.robotClient.sendIOControl(self.robotClient.con_ios[2], False)
print("震动结束")
if self.catch_status == CatchStatus.COk:
pass

View File

@ -3,9 +3,11 @@ import time
import cv2
from PyQt5.QtWidgets import QMessageBox
from PySide6.QtCore import Signal, QObject
import Constant
import Expection
from CU.Catch import Catch, CatchStatus
from Model.FeedModel import PositionModel
from Model.Position import Real_Position, Detection_Position
from enum import Enum, IntEnum
@ -156,8 +158,11 @@ class FeedingConfig:
pass
class Feeding:
class Feeding(QObject):
need_origin_signal = Signal(str)
take_no_photo_sigal = Signal(str)
def __init__(self, robotClient: RobotClient, detection: Detection):
super().__init__()
self.feedConfig = None
self.feedStatus = FeedStatus.FNone
self.robotClient = robotClient
@ -177,12 +182,14 @@ class Feeding:
self.pos_index = -1
self.pos_near_index = -1
self.catch = Catch(self.robotClient)
pass
def init_detection_image(self):
self.detection_image = cv2.imread(Constant.feed_sign_path)
def run(self):
self.catch.run()
# 获取事件坐标
real_position = Real_Position()
real_position.init_position(self.robotClient.status_model.world_0,
@ -233,6 +240,7 @@ class Feeding:
log.log_message(logging.INFO, Constant.str_feed_start)
if not self.robotClient.origin_position.compare(real_position) and not self.is_reverse:
# QMessageBox.information(None, "提示", Constant.str_feed_start_error) # Fuck 引起异常
self.need_origin_signal.emit(Constant.str_feed_start_error)
self.feedStatus = FeedStatus.FNone
return
if self.is_reverse:
@ -270,7 +278,6 @@ class Feeding:
self.feedConfig.feedLine.start2take_pos_index = len(self.feedConfig.feedLine.start_to_take) -2
self.feedConfig.feedLine.origin2start_pos_index = len(self.feedConfig.feedLine.origin_to_start) - 2
self.next_position(self.is_reverse)
return
if self.robotClient.type_detection == DetectType.EyeOutHand:
@ -347,21 +354,31 @@ class Feeding:
elif self.feedStatus == FeedStatus.FTake:
log.log_message(logging.INFO, Constant.str_feed_take)
if self.feedConfig.feedLine.get_take_position().get_position() != None:
self.take_no_photo = False
# self.take_no_photo = False
if self.feedConfig.feedLine.get_take_position().get_position().compare(real_position):
# 打开吸嘴并返回
# self.sendIOControl(self.robotClient.con_ios[0], 1)
# self.sendIOControl(self.robotClient.con_ios[1], 1)
# self.sendIOControl(self.robotClient.con_ios[2], 1)
# TODO 检测是否通 不然报警
if self.catch.catch_status == CatchStatus.CNone :
self.catch.catch_status = CatchStatus.CTake
return
if self.catch.catch_status == CatchStatus.CTake:
return
if self.catch.catch_status == CatchStatus.COk :
self.catch.catch_status = CatchStatus.CNone
self.feedConfig.feedLine.set_take_position(None)
time.sleep(self.robotClient.time_delay_take)
log.log_message(logging.INFO, Constant.str_feed_take_success)
self.next_position()
else:
log.log_message(logging.ERROR, Constant.str_feed_takePhoto_fail)
self.take_no_photo = True
# self.take_no_photo = True
self.take_no_photo_sigal.emit()
# 继续获取图像
# TODO
@ -383,6 +400,15 @@ class Feeding:
log.log_message(logging.INFO, Constant.str_feed_shake)
if self.get_current_position().get_position().compare(real_position):
# TODO 震动方案
if self.catch.catch_status == CatchStatus.CNone:
self.catch.catch_status = CatchStatus.CShake
return
if self.catch.catch_status == CatchStatus.CShake:
return
if self.catch.catch_status == CatchStatus.COk:
self.catch.catch_status = CatchStatus.CNone
time.sleep(self.robotClient.time_delay_shake)
self.next_position()
@ -393,16 +419,23 @@ class Feeding:
# self.sendIOControl(self.robotClient.con_ios[0], 0)
# self.sendIOControl(self.robotClient.con_ios[1], 0)
# self.sendIOControl(self.robotClient.con_ios[2], 0)
# TODO 检测是否断 不然报警
if self.catch.catch_status == CatchStatus.CNone:
self.catch.catch_status = CatchStatus.CDrop
return
if self.catch.catch_status == CatchStatus.CDrop:
return
if self.catch.catch_status == CatchStatus.COk:
self.catch.catch_status = CatchStatus.CNone
time.sleep(self.robotClient.time_delay_put)
# TODO 获取目标位置
# self.detection.get_position(Point_isVision=False, Box_isPoint=True, First_Depth=True, Iter_Max_Pixel=30, save_img_point=0, Height_reduce=30, width_reduce=30)
self.feedConfig.feedLine.set_take_position(self.get_take_position())
self.feedConfig.num = self.feedConfig.num - 1
log.log_message(logging.INFO, f'{Constant.str_feed_feed_num}{self.feedConfig.num}')
self.next_position()
def run_reseet(self):
def run_reset(self):
real_position = Real_Position()
real_position.init_position(self.robotClient.status_model.world_0,
self.robotClient.status_model.world_1,
@ -540,7 +573,7 @@ class Feeding:
self.send_emergency_stop()
return True
def send_emergency_sound(self):
self.sendIOControl(Constant.IO_EmergencyPoint, 1)
self.sendIOControl(Constant.IO_EmergencyPoint, 2)
def send_emergency_stop(self):
self.sendIOControl(Constant.IO_EmergencyPoint, 0)
@ -597,8 +630,12 @@ class Feeding:
self.robotClient.add_sendQuene(request_command)
pass
def get_take_position(self):
if Constant.Debug:
return self.robotClient.status_model.getRealPosition()
_, img, xyz, uvw, points = self.detection.get_position(Point_isVision=False, Box_isPoint=True, First_Depth=True, Iter_Max_Pixel=30,save_img_point=0, Height_reduce=30, width_reduce=30)
self.detection_image = img
if xyz ==None or uvw==None or points==None:
return None
target_position,noraml_base = getPosition(*xyz,*uvw,None,points)
position = Real_Position().init_position(*target_position[:3],*noraml_base[:3])

View File

@ -33,41 +33,119 @@ status = 3
linetype = 0
[Position5]
x = 0.0
y = 0.0
z = 0.0
u = 0.0
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 0.0
w = 1.0
id = 5
order = 1
order = 2
lineid = 1
status = 4
linetype = 0
[Position4]
x = 0.0
y = 0.0
z = 0.0
u = 0.0
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 0.0
w = 1.0
id = 4
order = 2
order = 3
lineid = 1
status = 2
linetype = 0
[Position1]
x = 0.0
y = 0.0
z = 0.0
u = 0.0
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 0.0
w = 1.0
id = 1
order = 3
order = 4
lineid = 1
status = 5
linetype = 0
[Position6]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 6
order = 1
lineid = 1
status = 2
linetype = 0
[Position7]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 7
order = 5
lineid = 1
status = 6
linetype = 0
[Position8]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 8
order = 6
lineid = 1
status = 7
linetype = 0
[Position9]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 9
order = 7
lineid = 1
status = 8
linetype = 0
[Position10]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 10
order = 8
lineid = 1
status = 9
linetype = 0
[Position11]
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
id = 11
order = 9
lineid = 1
status = 3
linetype = 0

View File

@ -57,7 +57,7 @@ str_feed_photo_confirm = '确认摆好'
str_feed_io_control = '发送IO控制: '
str_feed_safe_error_msgbox = '未在安全位置,请先复位!'
str_feed_shake = '摇摆'
str_feed_start_error = '请先复位机械臂'
str_feed_start_error = '请先复位到原点'
str_feed_return_original_position_fail = '机械臂未按照实际路线点移动,未能寻找到适配路径点位'
str_feed_reset_no_line_error = '未定义的线段'
str_sys_start = '进入系统'

View File

@ -939,7 +939,7 @@ background-color: rgb(13, 17, 40);</string>
</sizepolicy>
</property>
<property name="currentIndex">
<number>5</number>
<number>0</number>
</property>
<widget class="QWidget" name="page_3">
<layout class="QVBoxLayout" name="verticalLayout_7" stretch="1">
@ -2477,11 +2477,14 @@ border:None;</string>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_9" rowstretch="1,1,1,1">
<layout class="QGridLayout" name="gridLayout_9" rowstretch="1,1,1">
<property name="verticalSpacing">
<number>80</number>
</property>
<item row="1" column="2">
<widget class="QLabel" name="label_92">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -2529,7 +2532,7 @@ border:None;</string>
<item row="0" column="4">
<widget class="QLabel" name="label_88">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -2545,7 +2548,7 @@ border:None;</string>
<item row="0" column="2">
<widget class="QLabel" name="label_93">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -2561,7 +2564,7 @@ border:None;</string>
<item row="1" column="0">
<widget class="QLabel" name="label_95">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -2577,7 +2580,7 @@ border:None;</string>
<item row="0" column="0">
<widget class="QLabel" name="label_90">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@ -2625,7 +2628,7 @@ border:None;</string>
<item row="1" column="4">
<widget class="QLabel" name="label_91">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>

View File

@ -186,7 +186,7 @@ class CMDInstructRequest:
if len(self.instructions) != 0:
model_str = model_str+',"instructions":'+"[{"+self.instructions[0].toString()+"}]"+"}"
else:
model_str = model_str+"}"
model_str = model_str+',"instructions":'+"[{""}]"+"}" #model_str+"}"
print(model_str)
return model_str

View File

@ -61,12 +61,12 @@ feed_speed = 10
reset_speed = 35
[Origin]
x = 143.921
y = 2170.454
z = 1627.494
u = 3.234
v = 24.269
w = -87.403
x = 7.0
y = 50.0
z = 1.0
u = 12.0
v = 0.0
w = 1.0
[Camera_Feed]
ipaddress = 127.0.0.1

36
main.py
View File

@ -617,6 +617,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.robotClient.feed_speed = feed_speed
self.robotClient.reset_speed = reset_speed
self.feeding = Feeding(self.robotClient, self.detection) # 临时
self.feeding.need_origin_signal.connect(self.show_infomessage_box)
self.feeding.take_no_photo_sigal.emit(self.show_no_photo_message_box)
self.last_time = time.time()
self.remain_lineName = self.configReader.get('Robot_Feed', 'remain_lineName')
self.remain_Count = int(self.configReader.get('Robot_Feed', 'remain_Count'))
@ -870,7 +872,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
line_head = self.comboBox_lineIndex.currentData()
self.command_quene.put(FeedCommand(FeedingConfig(num, FeedLine(self.feedLine_dict[line_head].id,self.feedLine_dict[line_head].name,self.feedLine_dict[line_head].positions), self.feeding.robotClient.photo_locs[:])))
self.stackedWidget_num.setCurrentIndex(1)
# self.stackedWidget_num.setCurrentIndex(1)
self.set_run_status_button(True)
self.feeding.pause = False
log.log_message(logging.INFO, f'{self.feedLine_dict[line_head].name}:{Constant.str_feed_start}')
@ -1157,8 +1159,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def send_reset_button_click(self):
# TODO 清楚痕迹
# TODO 开启自动
# 触发自动运行
if self.robotClient.status_model.curMode != 7:
self.send_switch_tool_command()
log.log_message(logging.INFO, Constant.str_sys_switch_tool)
self.send_start_tool_command()
log.log_message(logging.INFO, Constant.str_sys_start_tool)
line_head = self.comboBox_lineIndex.currentData()
self.send_clear_auto_command()
#safe_position = self.feedLine_dict[line_head].safe_position
# self.send_position_command(safe_position.X, safe_position.Y, safe_position.Z, safe_position.U, safe_position.V, safe_position.W,move_type=MoveType.WORLD)
if self.remain_lineName != '':
@ -1272,10 +1282,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
position_origin.init_position(self.robotClient.origin_position)
position_origin.status = 1
command.feed_config.feedLine.feed_positions.insert(0,position_origin)
self.feeding.feedConfig = command.feed_config
self.robotClient.send_emergency_sound()
time.sleep(5)
self.robotClient.send_emergency_stop()
self.feeding.feedConfig = command.feed_config
self.feeding.feedStatus = FeedStatus.FStart
# self.feeding.feed_Mid_Status = FeedMidStatus.FMid_Start
command.status = Status.Runing
@ -1283,7 +1294,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
try:
self.feeding.run()
self.feeding.run_reseet()
self.feeding.run_reset()
except:
print(Error_Code.SYS_NONEPoint)
@ -1338,7 +1349,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.updateUI_label_status()
self.updateUI_frame_sign(self.feeding.feedStatus)
self.updateUI_IOPanel()
self.updateUI_InfoMB()
def updateRobotSeting(self):
@ -1349,11 +1360,20 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.lineEdit_origin_v.setText(str(self.robotClient.origin_position.V))
self.lineEdit_origin_w.setText(str(self.robotClient.origin_position.W))
def updateUI_InfoMB(self):
if self.cton_take_no_photo.Q(self.feeding.take_no_photo,True):
self.show_infomessage_box("未识别到料袋报警,请重新放料后,点击继续")
self.send_pause_command(pause=1)
def show_no_photo_message_box(self):
self.feeding.pause = True
self.send_pause_command(pause=1)
msg_box_person = QMessageBox()
msg_box_person.setIcon(QMessageBox.Icon.Warning)
msg_box_person.setText("未识别到料袋报警,请重新放料后,点击继续")
msg_box_person.setWindowTitle("提示")
msg_box_person.setStandardButtons(QMessageBox.StandardButton.Ok)
result = msg_box_person.exec()
if result == QMessageBox.StandardButton.Cancel:
return
# self.show_infomessage_box("")
def updateUI_IOPanel(self):
try:

102
test2.py
View File

@ -1,76 +1,54 @@
from PySide6.QtWidgets import QApplication, QPushButton, QMainWindow
from PySide6.QtGui import QPainter, QLinearGradient, QColor, QFont
from PySide6.QtCore import Qt, QRectF
import sys
import threading
class GradientButton(QPushButton):
def __init__(self, text, parent=None):
super().__init__(text, parent)
# 设置按钮无边框
self.setFlat(True)
# 设置按钮文本对齐方式
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox
from PySide6.QtCore import QThread, Signal, QObject
# 设置按钮字体
self.setFont(QFont("Arial", 14, QFont.Bold))
# 启用鼠标追踪以便在悬停时重绘
self.setMouseTracking(True)
# 当前是否悬停
self.hover = False
class Worker:
# 定义一个类属性的信号
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
def __init__(self):
self.task_done_signal = Signal(str)
def run_task(self):
import time
time.sleep(2) # 模拟耗时操作
# 发送信号
self.task_done_signal.emit("子线程任务完成!")
# 获取按钮的矩形区域
rect = self.rect()
# 创建线性渐变,从中心线向上下渐变
gradient = QLinearGradient(rect.center().x(), rect.top(), rect.center().x(), rect.bottom())
gradient.setColorAt(0, QColor(225,225,225))
gradient.setColorAt(0.5, QColor('#1A1F38'))
gradient.setColorAt(1, QColor(225,225,225))
brush = gradient
painter.setBrush(brush)
painter.setPen(Qt.NoPen)
# 绘制圆角矩形作为按钮背景
radius = 2 # 圆角半径
painter.drawRoundedRect(QRectF(rect), radius, radius)
# 绘制按钮文本
painter.setPen(QColor('#E8E9EB')) # 设置字体为白色
painter.drawText(rect, Qt.AlignCenter, self.text())
def enterEvent(self, event):
self.hover = True
self.update() # 触发重绘
super().enterEvent(event)
def leaveEvent(self, event):
self.hover = False
self.update() # 触发重绘
super().leaveEvent(event)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("中心线性渐变按钮示例")
self.setFixedSize(400, 300)
self.setWindowTitle("子线程信号示例")
self.setGeometry(200, 200, 400, 300)
# 创建自定义渐变按钮
self.button = GradientButton("点击我", self)
self.button.setGeometry(100, 130, 100, 40)
# 连接按钮点击事件
self.button.clicked.connect(self.on_button_click)
# 添加按钮
self.button = QPushButton("启动子线程", self)
self.button.setGeometry(100, 100, 200, 50)
self.button.clicked.connect(self.run_task)
def on_button_click(self):
print("按钮被点击了!")
# 创建子线程和工作者对象
self.worker_thread = threading.Thread(target=self.run_task)
self.worker = Worker()
# 连接信号和槽
self.worker.task_done_signal.connect(self.show_message)
def run_task(self):
# 启动子线程
self.worker_thread.start()
def show_message(self, message):
# 显示来自子线程的消息
QMessageBox.information(self, "任务完成", message)
# 停止子线程
self.worker_thread.quit()
self.worker_thread.wait()
if __name__ == "__main__":
app = QApplication(sys.argv)
app = QApplication([])
window = MainWindow()
window.show()
sys.exit(app.exec())
app.exec()

View File

@ -1533,114 +1533,118 @@ class Ui_MainWindow(object):
"border:None;")
self.frame_27.setFrameShape(QFrame.Shape.StyledPanel)
self.frame_27.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_15 = QHBoxLayout(self.frame_27)
self.horizontalLayout_15.setObjectName(u"horizontalLayout_15")
self.label_90 = QLabel(self.frame_27)
self.label_90.setObjectName(u"label_90")
sizePolicy2.setHeightForWidth(self.label_90.sizePolicy().hasHeightForWidth())
self.label_90.setSizePolicy(sizePolicy2)
self.label_90.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout_9 = QGridLayout(self.frame_27)
self.gridLayout_9.setObjectName(u"gridLayout_9")
self.gridLayout_9.setVerticalSpacing(80)
self.label_92 = QLabel(self.frame_27)
self.label_92.setObjectName(u"label_92")
sizePolicy7 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
sizePolicy7.setHorizontalStretch(0)
sizePolicy7.setVerticalStretch(0)
sizePolicy7.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth())
self.label_92.setSizePolicy(sizePolicy7)
self.label_92.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_15.addWidget(self.label_90)
self.lineEdit_origin_x = QLineEdit(self.frame_27)
self.lineEdit_origin_x.setObjectName(u"lineEdit_origin_x")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_x.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_x.setSizePolicy(sizePolicy2)
self.lineEdit_origin_x.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_x.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_x)
self.label_93 = QLabel(self.frame_27)
self.label_93.setObjectName(u"label_93")
sizePolicy2.setHeightForWidth(self.label_93.sizePolicy().hasHeightForWidth())
self.label_93.setSizePolicy(sizePolicy2)
self.label_93.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.horizontalLayout_15.addWidget(self.label_93)
self.gridLayout_9.addWidget(self.label_92, 1, 2, 1, 1)
self.lineEdit_origin_y = QLineEdit(self.frame_27)
self.lineEdit_origin_y.setObjectName(u"lineEdit_origin_y")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_y.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_y.setSizePolicy(sizePolicy2)
sizePolicy4.setHeightForWidth(self.lineEdit_origin_y.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_y.setSizePolicy(sizePolicy4)
self.lineEdit_origin_y.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_y.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_y)
self.label_88 = QLabel(self.frame_27)
self.label_88.setObjectName(u"label_88")
sizePolicy2.setHeightForWidth(self.label_88.sizePolicy().hasHeightForWidth())
self.label_88.setSizePolicy(sizePolicy2)
self.label_88.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.horizontalLayout_15.addWidget(self.label_88)
self.lineEdit_origin_z = QLineEdit(self.frame_27)
self.lineEdit_origin_z.setObjectName(u"lineEdit_origin_z")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_z.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_z.setSizePolicy(sizePolicy2)
self.lineEdit_origin_z.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_z.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_z)
self.label_89 = QLabel(self.frame_27)
self.label_89.setObjectName(u"label_89")
sizePolicy2.setHeightForWidth(self.label_89.sizePolicy().hasHeightForWidth())
self.label_89.setSizePolicy(sizePolicy2)
self.label_89.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.horizontalLayout_15.addWidget(self.label_89)
self.lineEdit_origin_u = QLineEdit(self.frame_27)
self.lineEdit_origin_u.setObjectName(u"lineEdit_origin_u")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_u.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_u.setSizePolicy(sizePolicy2)
self.lineEdit_origin_u.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_u.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_u)
self.label_92 = QLabel(self.frame_27)
self.label_92.setObjectName(u"label_92")
sizePolicy2.setHeightForWidth(self.label_92.sizePolicy().hasHeightForWidth())
self.label_92.setSizePolicy(sizePolicy2)
self.label_92.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.horizontalLayout_15.addWidget(self.label_92)
self.gridLayout_9.addWidget(self.lineEdit_origin_y, 0, 3, 1, 1)
self.lineEdit_origin_v = QLineEdit(self.frame_27)
self.lineEdit_origin_v.setObjectName(u"lineEdit_origin_v")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_v.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_v.setSizePolicy(sizePolicy2)
sizePolicy4.setHeightForWidth(self.lineEdit_origin_v.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_v.setSizePolicy(sizePolicy4)
self.lineEdit_origin_v.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_v.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_v)
self.gridLayout_9.addWidget(self.lineEdit_origin_v, 1, 3, 1, 1)
self.label_88 = QLabel(self.frame_27)
self.label_88.setObjectName(u"label_88")
sizePolicy7.setHeightForWidth(self.label_88.sizePolicy().hasHeightForWidth())
self.label_88.setSizePolicy(sizePolicy7)
self.label_88.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.gridLayout_9.addWidget(self.label_88, 0, 4, 1, 1)
self.label_93 = QLabel(self.frame_27)
self.label_93.setObjectName(u"label_93")
sizePolicy7.setHeightForWidth(self.label_93.sizePolicy().hasHeightForWidth())
self.label_93.setSizePolicy(sizePolicy7)
self.label_93.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.gridLayout_9.addWidget(self.label_93, 0, 2, 1, 1)
self.label_95 = QLabel(self.frame_27)
self.label_95.setObjectName(u"label_95")
sizePolicy7.setHeightForWidth(self.label_95.sizePolicy().hasHeightForWidth())
self.label_95.setSizePolicy(sizePolicy7)
self.label_95.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.gridLayout_9.addWidget(self.label_95, 1, 0, 1, 1)
self.label_90 = QLabel(self.frame_27)
self.label_90.setObjectName(u"label_90")
sizePolicy7.setHeightForWidth(self.label_90.sizePolicy().hasHeightForWidth())
self.label_90.setSizePolicy(sizePolicy7)
self.label_90.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.gridLayout_9.addWidget(self.label_90, 0, 0, 1, 1)
self.lineEdit_origin_u = QLineEdit(self.frame_27)
self.lineEdit_origin_u.setObjectName(u"lineEdit_origin_u")
sizePolicy4.setHeightForWidth(self.lineEdit_origin_u.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_u.setSizePolicy(sizePolicy4)
self.lineEdit_origin_u.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_u.setReadOnly(True)
self.gridLayout_9.addWidget(self.lineEdit_origin_u, 1, 1, 1, 1)
self.lineEdit_origin_x = QLineEdit(self.frame_27)
self.lineEdit_origin_x.setObjectName(u"lineEdit_origin_x")
sizePolicy4.setHeightForWidth(self.lineEdit_origin_x.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_x.setSizePolicy(sizePolicy4)
self.lineEdit_origin_x.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_x.setReadOnly(True)
self.gridLayout_9.addWidget(self.lineEdit_origin_x, 0, 1, 1, 1)
self.label_91 = QLabel(self.frame_27)
self.label_91.setObjectName(u"label_91")
sizePolicy2.setHeightForWidth(self.label_91.sizePolicy().hasHeightForWidth())
self.label_91.setSizePolicy(sizePolicy2)
self.label_91.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
sizePolicy7.setHeightForWidth(self.label_91.sizePolicy().hasHeightForWidth())
self.label_91.setSizePolicy(sizePolicy7)
self.label_91.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.horizontalLayout_15.addWidget(self.label_91)
self.gridLayout_9.addWidget(self.label_91, 1, 4, 1, 1)
self.lineEdit_origin_w = QLineEdit(self.frame_27)
self.lineEdit_origin_w.setObjectName(u"lineEdit_origin_w")
sizePolicy2.setHeightForWidth(self.lineEdit_origin_w.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_w.setSizePolicy(sizePolicy2)
sizePolicy4.setHeightForWidth(self.lineEdit_origin_w.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_w.setSizePolicy(sizePolicy4)
self.lineEdit_origin_w.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_w.setReadOnly(True)
self.horizontalLayout_15.addWidget(self.lineEdit_origin_w)
self.gridLayout_9.addWidget(self.lineEdit_origin_w, 1, 5, 1, 1)
self.lineEdit_origin_z = QLineEdit(self.frame_27)
self.lineEdit_origin_z.setObjectName(u"lineEdit_origin_z")
sizePolicy4.setHeightForWidth(self.lineEdit_origin_z.sizePolicy().hasHeightForWidth())
self.lineEdit_origin_z.setSizePolicy(sizePolicy4)
self.lineEdit_origin_z.setStyleSheet(u"border:1px solid #FFFfff")
self.lineEdit_origin_z.setReadOnly(True)
self.gridLayout_9.addWidget(self.lineEdit_origin_z, 0, 5, 1, 1)
self.pushButton_get_origin = QPushButton(self.frame_27)
self.pushButton_get_origin.setObjectName(u"pushButton_get_origin")
sizePolicy2.setHeightForWidth(self.pushButton_get_origin.sizePolicy().hasHeightForWidth())
self.pushButton_get_origin.setSizePolicy(sizePolicy2)
sizePolicy4.setHeightForWidth(self.pushButton_get_origin.sizePolicy().hasHeightForWidth())
self.pushButton_get_origin.setSizePolicy(sizePolicy4)
self.pushButton_get_origin.setStyleSheet(u"\n"
"*{\n"
"color: #ffffff;\n"
@ -1655,12 +1659,12 @@ class Ui_MainWindow(object):
"}\n"
"")
self.horizontalLayout_15.addWidget(self.pushButton_get_origin)
self.gridLayout_9.addWidget(self.pushButton_get_origin, 2, 1, 1, 2)
self.pushButton_set_origin = QPushButton(self.frame_27)
self.pushButton_set_origin.setObjectName(u"pushButton_set_origin")
sizePolicy2.setHeightForWidth(self.pushButton_set_origin.sizePolicy().hasHeightForWidth())
self.pushButton_set_origin.setSizePolicy(sizePolicy2)
sizePolicy4.setHeightForWidth(self.pushButton_set_origin.sizePolicy().hasHeightForWidth())
self.pushButton_set_origin.setSizePolicy(sizePolicy4)
self.pushButton_set_origin.setStyleSheet(u"\n"
"*{\n"
"color: #ffffff;\n"
@ -1675,12 +1679,14 @@ class Ui_MainWindow(object):
"}\n"
"")
self.horizontalLayout_15.addWidget(self.pushButton_set_origin)
self.gridLayout_9.addWidget(self.pushButton_set_origin, 2, 4, 1, 2)
self.gridLayout_9.setRowStretch(0, 1)
self.gridLayout_9.setRowStretch(1, 1)
self.gridLayout_9.setRowStretch(2, 1)
self.verticalLayout_16.addWidget(self.frame_27)
self.verticalLayout_16.setStretch(0, 1)
self.verticalLayout_15.addWidget(self.frame_6)
@ -2453,11 +2459,11 @@ class Ui_MainWindow(object):
self.verticalLayout_18.setObjectName(u"verticalLayout_18")
self.frame_29 = QFrame(self.frame_8)
self.frame_29.setObjectName(u"frame_29")
sizePolicy7 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum)
sizePolicy7.setHorizontalStretch(0)
sizePolicy7.setVerticalStretch(0)
sizePolicy7.setHeightForWidth(self.frame_29.sizePolicy().hasHeightForWidth())
self.frame_29.setSizePolicy(sizePolicy7)
sizePolicy8 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum)
sizePolicy8.setHorizontalStretch(0)
sizePolicy8.setVerticalStretch(0)
sizePolicy8.setHeightForWidth(self.frame_29.sizePolicy().hasHeightForWidth())
self.frame_29.setSizePolicy(sizePolicy8)
self.frame_29.setFrameShape(QFrame.Shape.StyledPanel)
self.frame_29.setFrameShadow(QFrame.Shadow.Raised)
self.gridLayout_6 = QGridLayout(self.frame_29)
@ -3787,7 +3793,7 @@ class Ui_MainWindow(object):
self.retranslateUi(MainWindow)
self.stackedWidget_view.setCurrentIndex(3)
self.stackedWidget_view.setCurrentIndex(0)
self.tabWidget.setCurrentIndex(0)
self.stackedWidget_num.setCurrentIndex(0)
@ -3869,11 +3875,11 @@ class Ui_MainWindow(object):
self.label_76.setText(QCoreApplication.translate("MainWindow", u"30", None))
self.label_83.setText(QCoreApplication.translate("MainWindow", u"31", None))
self.label_79.setText(QCoreApplication.translate("MainWindow", u"32", None))
self.label_90.setText(QCoreApplication.translate("MainWindow", u"X1:", None))
self.label_93.setText(QCoreApplication.translate("MainWindow", u"Y1:", None))
self.label_88.setText(QCoreApplication.translate("MainWindow", u"Z1:", None))
self.label_89.setText(QCoreApplication.translate("MainWindow", u"U1:", None))
self.label_92.setText(QCoreApplication.translate("MainWindow", u"V1:", None))
self.label_88.setText(QCoreApplication.translate("MainWindow", u"Z1:", None))
self.label_93.setText(QCoreApplication.translate("MainWindow", u"Y1:", None))
self.label_95.setText(QCoreApplication.translate("MainWindow", u"U1:", None))
self.label_90.setText(QCoreApplication.translate("MainWindow", u"X1:", None))
self.label_91.setText(QCoreApplication.translate("MainWindow", u"W1:", None))
self.pushButton_get_origin.setText(QCoreApplication.translate("MainWindow", u"\u83b7\u53d6\u539f\u70b9", None))
self.pushButton_set_origin.setText(QCoreApplication.translate("MainWindow", u"\u4fdd\u5b58\u539f\u70b9", None))