123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627 |
- import sqlite3
- import os
- import tkinter as tk
- from tkinter import messagebox
- import math
- import numpy as np
- import math
- import tkinter as tk
- import numpy as np
- from tkinter import messagebox
- from tkinter import *
-
- from PySide6.QtWidgets import QMessageBox
-
-
- # region 各种方法
- def to_utf8(text):
- str1 = text.encode('utf-8')
- return str1
-
-
- def jzys1(listy, zxzby, listx, zxzbx, sf):
- rlist = []
- listlen = len(listy)
- ll = 0
- while ll < listlen:
- # 第一个的值
- # num1 = round(((listx[ll] - zxzbx) / sf),0)
- # num2 = round(((listy[ll] - zxzby) / sf),0)
- num1 = listx[ll] - zxzbx
- num2 = listy[ll] - zxzby
- rlist.append(num1)
- rlist.append(num2)
- ll = ll + 1
- return rlist
-
-
- def jzys2(listy, zxzby, listx, zxzbx, sf):
- rlist = []
- listlen = len(listy)
- ll = 0
- while ll < listlen:
- # 第一个的值
- num2 = (-1) * (listx[ll] - zxzbx) / sf
- num1 = (listy[ll] - zxzby) / sf
- rlist.append(num1)
- rlist.append(num2)
- ll = ll + 1
- return rlist
-
-
- def jzys3(listy, aa, bb):
- rlist = []
- listlen = len(listy)
- ll = 0
- while ll < listlen:
- # 第一个的值
- num1 = aa
- num2 = bb
- rlist.append(num1)
- rlist.append(num2)
- ll = ll + 1
- return rlist
-
-
- def jzys4(listpasty, zxzbpasty, listpastx, zxzbpastx, listnewy, zxzbnewy, listnewx, zxzbnewx, sf):
- rlist = []
- listlen = len(listnewx)
- ll = 0
- while ll < listlen:
- num1 = (listpastx[ll] - listnewx[ll] - zxzbpastx + zxzbnewx) / sf
- num2 = (listpasty[ll] - listnewy[ll] - zxzbpasty + zxzbnewy) / sf
- rlist.append(num1)
- rlist.append(num2)
- ll = ll + 1
- return rlist
-
-
- def jzys5(listp, zxzbp, sf):
- rlist = []
- listlen = len(listp)
- ll = 0
- while ll < listlen:
- num1 = (listp[ll] - zxzbp) / sf
- rlist.append(num1)
- ll = ll + 1
- return rlist
-
-
- def jzys6(listp, num):
- rlist = []
- listlen = len(listp)
- ll = 0
- while ll < listlen:
- num1 = listp[ll] * num
- rlist.append(num1)
- ll = ll + 1
- return rlist
-
-
- def cjh(listp):
- rp = 0
- listlen = len(listp)
- ll = 0
- while ll < listlen:
- num1 = listp[ll] * listp[ll]
- rp = rp + num1
- ll = ll + 1
- return rp
-
-
- def cjh2(lista, listb):
- rp = 0
- listlen = len(lista)
- ll = 0
- while ll < listlen:
- num1 = lista[ll] * listb[ll]
- rp = rp + num1
- ll = ll + 1
- return rp
-
-
- def gsys(listnewp, jxlist1, jylist1, lxlist, lylist, arrz, sf, zxzbnewp, zxzbpastp, ii):
- # 新x+(矩阵[jx1 jy1 lx1 ly1]*矩阵z)*缩放-新重心坐标x+旧重心坐标x
- rlist = []
- listlen = len(listnewp)
- ll = 0
- while ll < listlen:
- arr0 = np.array((jxlist1[ll], jylist1[ll],
- lxlist[2 * ll + ii], lylist[2 * ll + ii]))
- arr1 = np.matmul(arr0, arrz)
- arr3 = sf * arr1
- newp = listnewp[ll] + arr3 - zxzbnewp + zxzbpastp
- rlist.append(newp)
- ll = ll + 1
- return rlist
-
-
- def xcys(newlist, pastlist):
- listlen = len(newlist)
- ll = 0
- rlist = []
- while ll < listlen:
- num1 = newlist[ll] - pastlist[ll]
- num2 = num1 * 1000
- rlist.append(num2)
- ll = ll + 1
- return rlist
-
-
- def takeFirst(elem):
- return elem[0]
-
-
- # endregion
-
- def insert_into_database1(database, pastname, newname, beforename, excelname, listname1, listpastx1, listpasty1,
- listcgcs1, listbex, listbey, sxylist, wypd, gsx, gsy, listcgcs):
- # 转换下汉字
- utf_tn = to_utf8(excelname)
- utf_nn = to_utf8(newname)
- utf_pn = to_utf8(pastname)
- utf_bn = to_utf8(beforename)
- utf_bx = to_utf8('变形')
- utf_wd = to_utf8('稳定')
- # 将结果输出到数据库
- db1 = sqlite3.connect(database)
- # 获取游标
- cursor1 = db1.cursor()
- # 先清除已有数据,用来更新
- try:
- sqlstr3 = 'delete from WD_Result_Param WHERE TableName = ?'
- sqlstr4 = 'delete from WD_Result_Point WHERE TableName = ?'
- cursor1.execute(sqlstr3, (utf_tn,))
- cursor1.execute(sqlstr4, (utf_tn,))
- except:
- pass
- cursor1.execute(
- 'INSERT INTO WD_Result_Param(TableName,Last_ResultName,New_ResultName,Formula_X1,Formula_X2,Formula_X3,Formula_Y1,Formula_Y2,Formula_Y3) VALUES(?,?,?,?,?,?,?,?,?)',
- (utf_tn, utf_pn, utf_nn, sxylist[0], sxylist[1], sxylist[2], sxylist[3], sxylist[4], sxylist[5],))
- # WD_Result_Point的输入
- kk = -1
- kk1 = -1
- if (-1) in listcgcs:
- kk = 1
- # 记位移点个数
- wyd = 0
- for lname in listname1:
- # 获取对应索引号
- index1 = listname1.index(lname)
- PointName = lname
- First_X = listbex[index1]
- First_Y = listbey[index1]
- Last_X = listpastx1[index1]
- Last_Y = listpasty1[index1]
- Last_Wight = listcgcs1[index1]
- New_Wight = listcgcs[index1]
- # 位移点
- if New_Wight == -1:
- # 获取他原本的坐标和初始改算值进行对比
- for smx in jslist:
- if First_X == smx[0] and First_Y == smx[1]:
- numa3 = sxylist[0] * jslist1[index1][0]
- numa4 = sxylist[1] * jslist1[index1][1]
- numa5 = numa3 + numa4 + sxylist[2]
- numa6 = sxylist[3] * jslist1[index1][0]
- numa7 = sxylist[4] * jslist1[index1][1]
- numa8 = numa6 + numa7 + sxylist[5]
- Result_X = numa5
- Result_Y = numa8
- New_Wight = 1
- numb1 = (numa5 - First_X) * 1000
- numb2 = (numa8 - First_Y) * 1000
- numb3 = numb1 * numb1
- numb4 = numb2 * numb2
- numb5 = math.sqrt(numb3 + numb4)
- New_FirstX = numb1
- New_FirstY = numb2
- New_FirstP = numb5
- # 新-首有个位移判定
- if numb5 > wypd:
- NFDis_Ass = utf_bx
- else:
- NFDis_Ass = utf_wd
-
- numc1 = (numa5 - Last_X) * 1000
- numc2 = (numa8 - Last_Y) * 1000
- numc3 = numc1 * numc1
- numc4 = numc2 * numc2
- numc5 = math.sqrt(numc3 + numc4)
- New_LastX = numc1
- New_LastY = numc2
- New_LastP = numc5
- NLDis_Ass = utf_bx
- kk1 = 1
- wyd = wyd + 1
- break
- # 不是位移点
- else:
- # 全部都是稳定点
- if kk == -1:
- num3 = Last_X * Last_Wight
- num4 = num3 + gsx[index1]
- num5 = Last_Wight + 1
- num6 = num4 / num5
- num7 = Last_Y * Last_Wight
- num8 = num7 + gsy[index1]
- num10 = num8 / num5
- Result_X = num6
- Result_Y = num10
- New_Wight = num5
- numd1 = (num6 - First_X) * 1000
- numd2 = (num10 - First_Y) * 1000
- numd3 = numd1 * numd1
- numd4 = numd2 * numd2
- numd5 = math.sqrt(numd3 + numd4)
- New_FirstX = numd1
- New_FirstY = numd2
- New_FirstP = numd5
- # 新-首有个位移判定
- if numd5 > wypd:
- NFDis_Ass = utf_bx
- else:
- NFDis_Ass = utf_wd
- nume1 = (num6 - Last_X) * 1000
- nume2 = (num10 - Last_Y) * 1000
- nume3 = nume1 * nume1
- nume4 = nume2 * nume2
- nume5 = math.sqrt(nume3 + nume4)
- New_LastX = nume1
- New_LastY = nume2
- New_LastP = nume5
- NLDis_Ass = utf_wd
- # 有位移点,且已经走过了
- if kk == 1 and kk1 == 1:
- num3 = Last_X * Last_Wight
- num4 = num3 + gsx[index1 - wyd]
- num5 = Last_Wight + 1
- num6 = num4 / num5
- num7 = Last_Y * Last_Wight
- num8 = num7 + gsy[index1 - wyd]
- num10 = num8 / num5
- Result_X = num6
- Result_Y = num10
- New_Wight = num5
- numd1 = (num6 - First_X) * 1000
- numd2 = (num10 - First_Y) * 1000
- numd3 = numd1 * numd1
- numd4 = numd2 * numd2
- numd5 = math.sqrt(numd3 + numd4)
- New_FirstX = numd1
- New_FirstY = numd2
- New_FirstP = numd5
- # 新-首有个位移判定
- if numd5 > wypd:
- NFDis_Ass = utf_bx
- else:
- NFDis_Ass = utf_wd
- nume1 = (num6 - Last_X) * 1000
- nume2 = (num10 - Last_Y) * 1000
- nume3 = nume1 * nume1
- nume4 = nume2 * nume2
- nume5 = math.sqrt(nume3 + nume4)
- New_LastX = nume1
- New_LastY = nume2
- New_LastP = nume5
- NLDis_Ass = utf_wd
- # 有位移点,但没有走过
- if kk == 1 and kk1 == -1:
- num3 = Last_X * Last_Wight
- num4 = num3 + gsx[index1]
- num5 = Last_Wight + 1
- num6 = num4 / num5
- num7 = Last_Y * Last_Wight
- num8 = num7 + gsy[index1]
- num10 = num8 / num5
- Result_X = num6
- Result_Y = num10
- New_Wight = num5
- numd1 = (num6 - First_X) * 1000
- numd2 = (num10 - First_Y) * 1000
- numd3 = numd1 * numd1
- numd4 = numd2 * numd2
- numd5 = math.sqrt(numd3 + numd4)
- New_FirstX = numd1
- New_FirstY = numd2
- New_FirstP = numd5
- # 新-首有个位移判定
- if numd5 > wypd:
- NFDis_Ass = utf_bx
- else:
- NFDis_Ass = utf_wd
- nume1 = (num6 - Last_X) * 1000
- nume2 = (num10 - Last_Y) * 1000
- nume3 = nume1 * nume1
- nume4 = nume2 * nume2
- nume5 = math.sqrt(nume3 + nume4)
- New_LastX = nume1
- New_LastY = nume2
- New_LastP = nume5
- NLDis_Ass = utf_wd
- # 在这里整体输出
- cursor1.execute(
- 'INSERT INTO WD_Result_Point(TableName,First_ResultName,Last_ResultName,New_ResultName,First_X,First_Y,Last_X,Last_Y,Result_X,Result_Y,Last_Wight,New_Wight,New_FirstX,New_FirstY,New_FirstP,NFDis_Ass,New_LastX,New_LastY,New_LastP,NLDis_Ass,PointName) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
- (
- utf_tn, utf_bn, utf_pn, utf_nn, First_X, First_Y, Last_X, Last_Y, Result_X, Result_Y, Last_Wight,
- New_Wight,
- New_FirstX, New_FirstY, New_FirstP, NFDis_Ass, New_LastX, New_LastY, New_LastP, NLDis_Ass, PointName,))
- # 数据库执行
- db1.commit()
- # 做完一切后,先关闭游标,再关闭数据库
- cursor1.close()
- db1.close()
-
-
- gszbx = []
- gszby = []
- jslist = []
- jslist1 = []
-
-
- def bhjs(listcgcs1, listname1, listpastx1, listpasty1, wypd, listname, listnewx, listnewy, listpastx, listpasty, points,
- listcgcs, listbex, listbey, sf, dbpath, befname, finalname, lastname, js, file_name):
- np.set_printoptions(suppress=False)
- # pt用于给点数point计数
- # point会随着回递函数而减少
- pt = 0
- sumnewx = 0
- sumnewy = 0
- sumpastx = 0
- sumpasty = 0
- while pt < points:
- sumnewx = sumnewx + listnewx[pt]
- sumnewy = sumnewy + listnewy[pt]
- sumpastx = sumpastx + listpastx[pt]
- sumpasty = sumpasty + listpasty[pt]
- pt = pt + 1
- # 计算4个重心坐标(最新一期和上一期的)
- zxzbnewx = round((sumnewx / points), 7)
- zxzbnewy = round((sumnewy / points), 7)
- zxzbpastx = round((sumpastx / points), 7)
- zxzbpasty = round((sumpasty / points), 7)
- # 先计算平移参数
- # pycsx = abs(zxzbnewx - zxzbpastx) * 1000
- # pycsy = abs(zxzbnewy - zxzbpasty) * 1000
- pycsx = abs(zxzbnewx - zxzbpastx)
- pycsy = abs(zxzbnewy - zxzbpasty)
- # 分别得k,sita的值
- klist = jzys1(listnewy, zxzbnewy, listnewx, zxzbnewx, sf)
- slist = jzys2(listnewy, zxzbnewy, listnewx, zxzbnewx, sf)
- # 得dx,dy
- dxlist = jzys3(listnewy, 1, 0)
- dylist = jzys3(listnewy, 0, 1)
- # 矩阵太难用了,还是手动计算
- # 分别计算k、s、dx、dy的乘积和
- k2 = cjh(klist)
- s2 = cjh(slist)
- dx2 = cjh(dxlist)
- dy2 = cjh(dylist)
- # 这里再创建矩阵1
- arr1 = np.array(((k2, 0, 0, 0), (0, s2, 0, 0),
- (0, 0, dx2, 0), (0, 0, 0, dy2)))
- # 矩阵1的逆矩阵矩阵2
- arr2 = np.linalg.inv(arr1)
- # 求矩阵l
- llist = jzys4(listpasty, zxzbpasty, listpastx, zxzbpastx,
- listnewy, zxzbnewy, listnewx, zxzbnewx, sf)
- # 得到数列e1,e2,e3,e4
- e1 = cjh2(klist, llist)
- e2 = cjh2(slist, llist)
- e3 = cjh2(dxlist, llist)
- e4 = cjh2(dylist, llist)
- arrl = np.array(((e1), (e2), (e3), (e4)))
- # 得到矩阵z
- arrz = np.matmul(arr2, arrl)
- # 求转换矩阵
- jxlist1 = jzys5(listnewx, zxzbnewx, sf)
- jylist1 = jzys5(listnewy, zxzbnewy, sf)
- jxlist2 = jylist1
- # jylist2 = jxlist1 * (-1)
- jylist2 = jzys6(jxlist1, -1)
- lxlist = jzys3(jylist1, 1, 0)
- lylist = jzys3(jylist1, 0, 1)
- # 求改算坐标
- gsx = gsys(listnewx, jxlist1, jylist1, lxlist,
- lylist, arrz, sf, zxzbnewx, zxzbpastx, 0)
- gsy = gsys(listnewy, jxlist2, jylist2, lxlist,
- lylist, arrz, sf, zxzbnewy, zxzbpasty, 1)
- # 还是要先求较差
- xcx = xcys(gsx, listpastx)
- xcy = xcys(gsy, listpasty)
- # 这里记录下第一次所有点的改算坐标
- if js == 0:
- lengs = len(gsx)
- xx = 0
- while xx < lengs:
- gszbx.append(gsx[xx])
- gszby.append(gsy[xx])
- zblist1 = []
- zblist1.append(listbex[xx])
- zblist1.append(listbey[xx])
- zblist1.append(gsx[xx])
- zblist1.append(gsy[xx])
- zblist1.append(xcx[xx])
- zblist1.append(xcy[xx])
- jslist.append(zblist1)
- zblist2 = []
- zblist2.append(listnewx[xx])
- zblist2.append(listnewy[xx])
- jslist1.append(zblist2)
- xx = xx + 1
- # 后面不需要经过这个if
- # 判定方式是用差值平方和和位移对比
- gxpd = 0
- lenxc = len(xcx)
- yy = 0
- while yy < lenxc:
- sumxcx = xcx[yy] * xcx[yy]
- sumxcy = xcy[yy] * xcy[yy]
- sumxc = sumxcx + sumxcy
- xcpd = math.sqrt(sumxc)
- if xcpd > wypd:
- gxpd = -1
- break
- yy = yy + 1
- if gxpd == 0:
- # 输出之前把转换参数都算出来
- # X=(z1+1)*x+z2*y+(旧重心坐标x-新重心坐标x-新重心坐标x*z1-新重心坐标y*z2+z3)
- # Y=(-z2)*x+(z1+1)*y+(z1*新重心坐标y+新重心坐标x*z2+z4+旧重心坐标y-新重心坐标y)
- n1 = float(arrz[0]) + 1
- n2 = float(arrz[1])
- s1 = zxzbnewx * float(arrz[0])
- s2 = zxzbnewy * float(arrz[1])
- n3 = zxzbpastx - zxzbnewx - s1 - s2 + float(arrz[2])
- n4 = (-1) * float(arrz[1])
- n5 = n1
- s3 = (-1) * float(arrz[0]) * zxzbnewy
- s4 = float(arrz[1]) * zxzbnewx
- n6 = s3 + s4 + float(arrz[3]) + zxzbpasty - zxzbnewy
- sxylist = []
- sxylist.append(n1)
- sxylist.append(n2)
- sxylist.append(n3)
- sxylist.append(n4)
- sxylist.append(n5)
- sxylist.append(n6)
- # 输出
- relist1 = []
- relist1.append(listname)
- relist1.append(xcx)
- relist1.append(xcy)
- relist1.append(listcgcs)
- relist1.append(gszbx)
- relist1.append(gszby)
- relist1.append(sxylist)
- # 存入数据库
- insert_into_database1(dbpath, lastname, finalname, befname, file_name, listname1, listpastx1, listpasty1,
- listcgcs1, listbex, listbey, sxylist, wypd, gsx, gsy, listcgcs)
- else:
- # 先把所有的合在一起,方便删除
- lenlist1 = len(xcx)
- ii = 0
- relist1 = []
- while ii < lenlist1:
- smlist1 = []
- nn2 = xcx[ii] * xcx[ii]
- mm2 = xcy[ii] * xcy[ii]
- nm2 = math.sqrt(nn2 + mm2)
- smlist1.append(nm2)
- smlist1.append(listname[ii])
- smlist1.append(listnewx[ii])
- smlist1.append(listnewy[ii])
- smlist1.append(listpastx[ii])
- smlist1.append(listpasty[ii])
- relist1.append(smlist1)
- ii = ii + 1
- # 直接删除最大的那个
- relist1.sort(key=takeFirst, reverse=True)
- num1 = relist1[0]
- # 获取name
- num2 = num1[1]
- ii2 = 0
- mm2 = 0
- while ii2 < lenlist1:
- if listname[ii2] == num2:
- del listname[ii2]
- del listnewx[ii2]
- del listnewy[ii2]
- del listpastx[ii2]
- del listpasty[ii2]
- points = points - 1
- break
- else:
- ii2 = ii2 + 1
- while mm2 < len(listcgcs):
- if listname1[mm2] == num2:
- listcgcs[mm2] = -1
- break
- else:
- mm2 = mm2 + 1
- print(" Finish!")
- js1 = 1
- bhjs(listcgcs1, listname1, listpastx1, listpasty1, wypd, listname, listnewx, listnewy, listpastx,
- listpasty, points, listcgcs, listbex, listbey, sf, dbpath, befname, finalname, lastname, js1, file_name)
-
-
- def tablein(dbpath, file_name):
- # 收集每一列的数据,方便后期计算
- listname1 = []
- listpastx1 = []
- listpasty1 = []
- listcgcs1 = []
- listname = []
- listnewx = []
- listnewy = []
- listpastx = []
- listpasty = []
- # 成果次数
- listcgcs = []
- # 最早的
- listbex = []
- listbey = []
- points = 0
- # 查询,提取需要的数据
- db2 = sqlite3.connect(dbpath)
- cursor2 = db2.cursor()
- utfstr1 = to_utf8(file_name)
- sqlstr1 = 'SELECT * FROM WD_Input_Point WHERE TableName = ?'
- cursor2.execute(sqlstr1, (utfstr1,))
- all_da = cursor2.fetchall()
- for da in all_da:
- listbex.append(da[4])
- listbey.append(da[5])
- listpastx.append(da[6])
- listpastx1.append(da[6])
- listpasty.append(da[7])
- listpasty1.append(da[7])
- listnewx.append(da[8])
- listnewy.append(da[9])
- listcgcs.append(da[10])
- listcgcs1.append(da[10])
- points = points + 1
- listname.append(da[11])
- listname1.append(da[11])
- sqlstr2 = 'SELECT * FROM WD_Input_Param WHERE TableName = ?'
- cursor2.execute(sqlstr2, (utfstr1,))
- all_par = cursor2.fetchall()
- befname = all_par[0][0].decode('utf-8')
- lastname = all_par[0][1].decode('utf-8')
- finalname = all_par[0][2].decode('utf-8')
- # pjbc是平均边长
- # fxzwc是方向中误差,zrbzwc是最弱边边长相对中误差,pjbcs是平均边数,pjfxs是平均方向数,sf是缩放值
- # 新增总边数zbs,总方向数zfxs
- # 先计算位移判断值
- pjbc = all_par[0][3]
- fxzwc = all_par[0][4]
- zbs = all_par[0][5]
- zfxs = all_par[0][7]
- sf = all_par[0][9]
- pjbcs = zbs / points
- pjfxs = zfxs / points
- # 再拆细点
- wy1 = pjbc / 1000
- wy2 = wy1 + 1
- wypd1 = wy2 * wy2 / pjbcs
- # 好像206.265是常数系数
- wy3 = pjbc * fxzwc / 206.265
- wypd2 = wy3 * wy3 / pjfxs
- wypd3 = math.sqrt(wypd1 + wypd2)
- wypd = round((wypd3 * 2 * math.sqrt(2)), 9)
- wypd0 = wypd
- js = 0
- return listcgcs1, listname1, listpastx1, listpasty1, wypd0, listname, listnewx, listnewy, listpastx, listpasty, points, listcgcs, listbex, listbey, sf, befname, finalname, lastname, js
-
-
- # 主函数 计算
- def main_function(file_name, dbpath):
- try:
- # 从数据库中调用
- listcgcs1, listname1, listpastx1, listpasty1, wypd0, listname, listnewx, listnewy, listpastx, listpasty, points, listcgcs, listbex, listbey, sf, befname, finalname, lastname, js = tablein(
- dbpath, file_name)
- # 计算
- bhjs(listcgcs1, listname1, listpastx1, listpasty1, wypd0, listname, listnewx, listnewy, listpastx, listpasty,
- points, listcgcs, listbex, listbey, sf, dbpath, befname, finalname, lastname, js, file_name)
- QMessageBox.information(None, "提示", f"文件 '{file_name}' 计算成功!")
- except Exception as e:
- QMessageBox.critical(None, "错误", f"文件 '{file_name}' 计算失败!错误信息: {str(e)}")
|