Przeglądaj źródła

修复了相机初始化的异常bug

yun 1 dzień temu
rodzic
commit
cc7648c796

+ 22 - 22
View/die-bonder-ui/CameraMaterialGroupWnd/MaterialWindow/Wafer.cpp

@@ -138,9 +138,9 @@ void Wafer::paintInitFrom(QWidget *parent) {
     QPointF pointf(m_centerX, m_centerY);
     double radius = width / 2 - 10;
     //比例
-    double radio = m_radius / radius;
-    int dieLong = m_dieLong / radio;
-    int dieWide = m_dieWide / radio;
+    double ratio = m_radius / radius;
+    int dieLong = m_dieLong / ratio;
+    int dieWide = m_dieWide / ratio;
 
     //test 实际使用时需要删除或注释
     angle = 0.00;
@@ -160,20 +160,20 @@ void Wafer::paintInitFrom(QWidget *parent) {
         if (waferData[i].nDieMatrixId != currentDieMatrixId) {
             //重新画矩阵框然后配置新的参考点
             currentDieMatrixId = waferData[i].nDieMatrixId;
-            referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / radio;
-            referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / radio;
+            referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / ratio;
+            referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / ratio;
             maxRow_Col = maxRow_Colmap.value(currentDieMatrixId);
-            minx = center.x() + (maxRow_Col.minX - m_centerX) / radio - 20;
-            miny = center.y() - (maxRow_Col.minY - m_centerY) / radio + 20;
-            maxx = center.x() + (maxRow_Col.maxX - m_centerX) / radio + 20;
-            maxy = center.y() - (maxRow_Col.maxY - m_centerY) / radio - 20;
+            minx = center.x() + (maxRow_Col.minX - m_centerX) / ratio - 20;
+            miny = center.y() - (maxRow_Col.minY - m_centerY) / ratio + 20;
+            maxx = center.x() + (maxRow_Col.maxX - m_centerX) / ratio + 20;
+            maxy = center.y() - (maxRow_Col.maxY - m_centerY) / ratio - 20;
             widthMatrix = maxx - minx;
             heightMatrix = miny - maxy;
             view->drawDieMatrix(QPointF(minx, maxy), widthMatrix, heightMatrix, currentDieMatrixId);
 
         }
-        referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / radio;
-        referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / radio;
+        referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / ratio;
+        referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / ratio;
 
         view->addDiePoint(QPointF(referPointX, referPointY), waferData[i]);
     }
@@ -226,9 +226,9 @@ void Wafer::initFrom(QWidget* parent) {
     QPointF pointf(m_centerX, m_centerY);
     double radius = width / 2 - 10;
     //比例
-    double radio = m_radius / radius;
-    int dieLong = m_dieLong / radio;
-    int dieWide = m_dieWide / radio;
+    double ratio = m_radius / radius;
+    int dieLong = m_dieLong / ratio;
+    int dieWide = m_dieWide / ratio;
 
     //test 实际使用时需要删除或注释
     angle = 90.00;
@@ -248,20 +248,20 @@ void Wafer::initFrom(QWidget* parent) {
         if (waferData[i].nDieMatrixId != currentDieMatrixId) {
             //重新画矩阵框然后配置新的参考点
             currentDieMatrixId = waferData[i].nDieMatrixId;
-            referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / radio;
-            referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / radio;
+            referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / ratio;
+            referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / ratio;
             maxRow_Col = maxRow_Colmap.value(currentDieMatrixId);
-            minx = center.x()+(maxRow_Col.minX - m_centerX) / radio - 20;
-            miny = center.y() - (maxRow_Col.minY - m_centerY) / radio + 20;
-            maxx = center.x() + (maxRow_Col.maxX - m_centerX) / radio + 20;
-            maxy = center.y() - (maxRow_Col.maxY - m_centerY) / radio - 20;
+            minx = center.x()+(maxRow_Col.minX - m_centerX) / ratio - 20;
+            miny = center.y() - (maxRow_Col.minY - m_centerY) / ratio + 20;
+            maxx = center.x() + (maxRow_Col.maxX - m_centerX) / ratio + 20;
+            maxy = center.y() - (maxRow_Col.maxY - m_centerY) / ratio - 20;
             widthMatrix = maxx - minx;
             heightMatrix = miny - maxy;
             view->drawDieMatrix(QPointF(minx, maxy), widthMatrix, heightMatrix, currentDieMatrixId);
 
         }
-        referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / radio;
-        referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / radio;
+        referPointX = center.x() + (waferData[i].stPosition.x - m_centerX) / ratio;
+        referPointY = center.y() - (waferData[i].stPosition.y - m_centerY) / ratio;
 
 
         view->addDiePoint(QPointF(referPointX, referPointY),waferData[i]);

+ 6 - 3
View/die-bonder-ui/OriginalWnd/ChartsAndCamerasWnd.cpp

@@ -272,11 +272,12 @@ void ChartsAndCamerasWnd::initFrom() {
                 CameraInfo test;
                 test.iCameraId = i;
                 test.name = ("camera" + QString::number(i)).toStdString();
-                test.eType = MATERIAL_WAFER;
+                test.eType = MATERIAL_BOX;
                 manager = new CameraImageHandler(num, test);
             }
             else
             {
+                m_pMainCameraBind->m_vecCamera[i].eType = MATERIAL_BOX;
                 manager = new CameraImageHandler(num, m_pMainCameraBind->m_vecCamera[i]);
             }
 
@@ -320,8 +321,10 @@ void ChartsAndCamerasWnd::initFrom() {
             delete manager;
         }
         //清理ui->viewwidgetgroup
-        ui->viewwidgetgroup->clearLayout();
-        QPixmap pixmap = ui->viewwidgetgroup->getCurrentComboBoxPixmap(0);
+        int width = ui->viewwidgetgroup->width();
+        int height = ui->viewwidgetgroup->height();
+        QPixmap pixmap(width, height);
+        pixmap.fill(Qt::white); // 白色背景
         GetGroupImageShowSignals(pixmap);
 
         // 设置控件的最小高度和最大宽度

+ 4 - 2
View/die-bonder-ui/OriginalWnd/MainAndSecondaryCamerasWnd.cpp

@@ -146,8 +146,10 @@ void MainAndSecondaryCamerasWnd::InitPage()
             delete manager;
         }
         //清理ui->viewwidgetgroup_L
-        ui->viewwidgetgroup_L->clearLayout();
-        QPixmap pixmap = ui->viewwidgetgroup_L->getCurrentComboBoxPixmap(0);
+        int width = ui->viewwidgetgroup_L->width();
+        int height = ui->viewwidgetgroup_L->height();
+        QPixmap pixmap(width, height);
+        pixmap.fill(Qt::white); // 白色背景
         GetGroupImageShowSignalsTo_L(pixmap);
 
         // 设置控件的最小高度和最大宽度

+ 6 - 3
View/die-bonder-ui/OriginalWnd/SingleCameraOperationWnd.cpp

@@ -65,11 +65,12 @@ void SingleCameraOperationWnd::initFrom() {
                 CameraInfo test;
                 test.iCameraId = i;
                 test.name = ("camera" + QString::number(i)).toStdString();
-                test.eType = MATERIAL_WAFER;
+                test.eType = MATERIAL_BOX;
                 manager = new CameraImageHandler(num, test);
             }
             else
             {
+                m_pMainCameraBind->m_vecCamera[i].eType = MATERIAL_BOX;
                 manager = new CameraImageHandler(num, m_pMainCameraBind->m_vecCamera[i]);
             }
            
@@ -110,8 +111,10 @@ void SingleCameraOperationWnd::initFrom() {
             delete manager;
         }
         //清理ui->viewwidgetgroup
-        ui->viewwidgetgroup->clearLayout();
-        QPixmap pixmap = ui->viewwidgetgroup->getCurrentComboBoxPixmap(0);
+        int width = ui->viewwidgetgroup->width();
+        int height = ui->viewwidgetgroup->height();
+        QPixmap pixmap(width, height);
+        pixmap.fill(Qt::white); // 白色背景
         GetGroupImageShowSignals(pixmap);
 
         // 设置控件的最小高度和最大宽度