1.完善了attrs的功能。
2.增加了生成断面前文件是否被占用的判断。
This commit is contained in:
20
PWFile.py
20
PWFile.py
@@ -1,6 +1,8 @@
|
|||||||
import os.path
|
import os.path
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
import attrs
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
from attrs import define
|
from attrs import define
|
||||||
from tkinter.messagebox import NO
|
from tkinter.messagebox import NO
|
||||||
@@ -509,6 +511,7 @@ class ContinuousPlate:
|
|||||||
|
|
||||||
@define
|
@define
|
||||||
class ControlFile:
|
class ControlFile:
|
||||||
|
_z_excel_file_path: bool = attrs.field(init=True, kw_only=False)
|
||||||
_z_file_path: str = ""
|
_z_file_path: str = ""
|
||||||
_dwg_file_path: str = ""
|
_dwg_file_path: str = ""
|
||||||
_from_tower_name: str = ""
|
_from_tower_name: str = ""
|
||||||
@@ -519,8 +522,11 @@ class ControlFile:
|
|||||||
_s_file_path: str = ""
|
_s_file_path: str = ""
|
||||||
_dir_prefix: str = ""
|
_dir_prefix: str = ""
|
||||||
_z_file_name: str = ""
|
_z_file_name: str = ""
|
||||||
|
_close_cad_document: bool = attrs.field(init=True, kw_only=False, default=True)
|
||||||
def __init__(self, z_excel_file_path):
|
# def __init__(self, z_excel_file_path):
|
||||||
|
def __attrs_post_init__(self):
|
||||||
|
# self._close_cad_document=close_cad_document
|
||||||
|
z_excel_file_path = self._z_excel_file_path
|
||||||
excel_pf = pd.read_excel(z_excel_file_path)
|
excel_pf = pd.read_excel(z_excel_file_path)
|
||||||
pf_dict = excel_pf.to_dict("records")[0]
|
pf_dict = excel_pf.to_dict("records")[0]
|
||||||
z_excel_path = os.path.split(z_excel_file_path)
|
z_excel_path = os.path.split(z_excel_file_path)
|
||||||
@@ -537,6 +543,9 @@ class ControlFile:
|
|||||||
self._dwg_file_path = os.path.join(dir_prefix, pf_dict["DWG文件"])
|
self._dwg_file_path = os.path.join(dir_prefix, pf_dict["DWG文件"])
|
||||||
self._s_file_path = os.path.join(dir_prefix, pf_dict["S文件"])
|
self._s_file_path = os.path.join(dir_prefix, pf_dict["S文件"])
|
||||||
|
|
||||||
|
def get_zt_dwg_file_path(self): # 获得生成的dwg文件名路径
|
||||||
|
return os.path.join(self._dir_prefix, "ZT" + self._z_file_name + ".dwg")
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
continousePlate = ContinuousPlate(
|
continousePlate = ContinuousPlate(
|
||||||
self._dwg_file_path,
|
self._dwg_file_path,
|
||||||
@@ -555,7 +564,6 @@ class ControlFile:
|
|||||||
)
|
)
|
||||||
string_impact_plate.draw()
|
string_impact_plate.draw()
|
||||||
cad = continousePlate.cad
|
cad = continousePlate.cad
|
||||||
cad.doc.SaveAs(
|
cad.doc.SaveAs(self.get_zt_dwg_file_path())
|
||||||
os.path.join(self._dir_prefix, "ZT" + self._z_file_name + ".dwg")
|
if self._close_cad_document:
|
||||||
)
|
cad.doc.Close(False)
|
||||||
cad.doc.Close(False)
|
|
||||||
|
|||||||
19
gui.py
19
gui.py
@@ -1,3 +1,5 @@
|
|||||||
|
import os.path
|
||||||
|
|
||||||
from ui.mainwindow import Ui_mainWindow
|
from ui.mainwindow import Ui_mainWindow
|
||||||
|
|
||||||
from PyQt6 import QtWidgets
|
from PyQt6 import QtWidgets
|
||||||
@@ -8,6 +10,16 @@ from PWFile import ControlFile
|
|||||||
|
|
||||||
|
|
||||||
class MainWindow(QMainWindow, Ui_mainWindow):
|
class MainWindow(QMainWindow, Ui_mainWindow):
|
||||||
|
def _test_if_file_occupied(self, file_path):
|
||||||
|
if not os.path.exists(file_path):
|
||||||
|
return False
|
||||||
|
try:
|
||||||
|
with open(file_path, "wb") as file:
|
||||||
|
pass
|
||||||
|
return False
|
||||||
|
except PermissionError:
|
||||||
|
return True
|
||||||
|
|
||||||
def open_dialog(self):
|
def open_dialog(self):
|
||||||
z_control_file_paths = QFileDialog.getOpenFileNames(
|
z_control_file_paths = QFileDialog.getOpenFileNames(
|
||||||
self,
|
self,
|
||||||
@@ -17,7 +29,12 @@ class MainWindow(QMainWindow, Ui_mainWindow):
|
|||||||
)[0]
|
)[0]
|
||||||
for z_control_file_path in z_control_file_paths:
|
for z_control_file_path in z_control_file_paths:
|
||||||
if z_control_file_path != "":
|
if z_control_file_path != "":
|
||||||
cf = ControlFile(z_control_file_path)
|
cf = ControlFile(z_control_file_path,close_cad_document=False)
|
||||||
|
if self._test_if_file_occupied(cf.get_zt_dwg_file_path()):
|
||||||
|
QMessageBox.warning(
|
||||||
|
self, "注意", f"{cf.get_zt_dwg_file_path()}被占用,请先关闭。"
|
||||||
|
)
|
||||||
|
return
|
||||||
cf.draw()
|
cf.draw()
|
||||||
self.statusBar().showMessage(
|
self.statusBar().showMessage(
|
||||||
f"{datetime.datetime.now()} Finished.", 8000
|
f"{datetime.datetime.now()} Finished.", 8000
|
||||||
|
|||||||
Reference in New Issue
Block a user