| | |
| | | // DlgSideDimensionSetting.cpp : 备泅 颇老涝聪促. |
| | | // DlgSideDimensionSetting.cpp : 备泅 颇老涝聪促. |
| | | // |
| | | |
| | | #include "stdafx.h" |
| | |
| | | #include "afxdialogex.h" |
| | | |
| | | |
| | | // CDlgSideDimensionSetting 措拳 惑磊涝聪促. |
| | | // CDlgSideDimensionSetting 措拳 惑磊涝聪促. |
| | | |
| | | IMPLEMENT_DYNAMIC(CDlgSideDimensionSetting, CDialogEx) |
| | | |
| | |
| | | void CDlgSideDimensionSetting::SetDlgRecipe(CGlassRecipe* pDlgRecipe) |
| | | { |
| | | m_pDlgRecipe = pDlgRecipe; |
| | | |
| | | UpdateRecipe(FALSE); |
| | | } |
| | | |
| | | void CDlgSideDimensionSetting::UpdateRecipe(BOOL bGetData) |
| | | { |
| | | // Title |
| | | if(m_pSelectSideIdx != NULL) |
| | | { |
| | | CString strTemp; |
| | | strTemp.Format(_T("[%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); |
| | | SetDlgItemText(IDC_STATIC_TITLE, strTemp); |
| | | |
| | | strTemp.Format(_T("Top Corner [%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); |
| | | SetDlgItemText(IDC_STATIC_TITLE_TOP_CORNER, strTemp); |
| | | |
| | | strTemp.Format(_T("Bot Corner [%s] Dim. Setting"), g_SideName[(int) *(m_pSelectSideIdx)]); |
| | | SetDlgItemText(IDC_STATIC_TITLE_BOT_CORNER, strTemp); |
| | | } |
| | | |
| | | if(bGetData == FALSE) |
| | | { |
| | | if(bGetData == FALSE) { |
| | | Fill_SideDimensionSetting(bGetData); |
| | | Fill_TopCornerDimensionSetting(bGetData); |
| | | Fill_BotCornerDimensionSetting(bGetData); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | Fill_SideDimensionSetting(bGetData); |
| | | Fill_TopCornerDimensionSetting(bGetData); |
| | | Fill_BotCornerDimensionSetting(bGetData); |
| | | } |
| | | } |
| | | |
| | | void CDlgSideDimensionSetting::RefreshSideUI(BOOL bReinitGrid /*=TRUE*/) |
| | | { |
| | | if (!m_pSelectSideIdx) { |
| | | return; |
| | | } |
| | | |
| | | const int nSideIdx = *m_pSelectSideIdx; |
| | | const DimensionDir eDim = (DimensionDir)nSideIdx; |
| | | m_bIsRipSide = (DIMENSION_A_RIP == eDim) || (DIMENSION_B_RIP == eDim) || (DIMENSION_C_RIP == eDim) || (DIMENSION_D_RIP == eDim); |
| | | |
| | | CString strTemp; |
| | | strTemp.Format(_T("[%s] Dim. Setting"), g_SideName[nSideIdx]); |
| | | SetDlgItemText(IDC_STATIC_TITLE, strTemp); |
| | | |
| | | strTemp.Format(_T("Top Corner [%s] Dim. Setting"), g_SideName[nSideIdx]); |
| | | SetDlgItemText(IDC_STATIC_TITLE_TOP_CORNER, strTemp); |
| | | |
| | | strTemp.Format(_T("Bot Corner [%s] Dim. Setting"), g_SideName[nSideIdx]); |
| | | SetDlgItemText(IDC_STATIC_TITLE_BOT_CORNER, strTemp); |
| | | |
| | | if (CWnd* p = GetDlgItem(IDC_BUTTON_CAL)) { |
| | | p->EnableWindow(!m_bIsRipSide); |
| | | } |
| | | |
| | | if (CWnd* p = GetDlgItem(IDC_BUTTON_GET_SIDE_RESULT)) { |
| | | p->EnableWindow(!m_bIsRipSide); |
| | | } |
| | | |
| | | if (bReinitGrid) { |
| | | Init_SideDimensionSetting(); |
| | | } |
| | | } |
| | | |
| | | void CDlgSideDimensionSetting::Init_SideDimensionSetting() |
| | | { |
| | | if (m_SideDimensionSetting.GetSafeHwnd() == NULL) |
| | | if (m_SideDimensionSetting.GetSafeHwnd() == NULL) { |
| | | return; |
| | | } |
| | | |
| | | int nRows = 1; |
| | | int nCols = 9 + 3; |
| | | if (m_pSelectSideIdx == nullptr) { |
| | | return; |
| | | } |
| | | |
| | | int nFixRows = 1; |
| | | int nFixCols = 0; |
| | | int nRowIdx = 0; |
| | | int nColIdx = 0; |
| | | auto ScaleX = [&](int px)->int { |
| | | HDC hdc = ::GetDC(m_hWnd); |
| | | const int dpi = GetDeviceCaps(hdc, LOGPIXELSX); |
| | | ::ReleaseDC(m_hWnd, hdc); |
| | | return MulDiv(px, dpi, 96); |
| | | }; |
| | | |
| | | struct ColDef { int w; LPCTSTR name; }; |
| | | static const ColDef kColsRip[] = { |
| | | { 90, _T("No.") }, |
| | | { 100, _T("Start Line To Y(um)") }, |
| | | { 100, _T("Use Dim.") }, |
| | | }; |
| | | static const ColDef kColsNormal[] = { |
| | | { 90, _T("No.") }, |
| | | { 70, _T("Top Mark To Y(um)") }, |
| | | { 70, _T("Use Dim.") }, |
| | | { 70, _T("Thres") }, |
| | | { 70, _T("Std(mm)") }, |
| | | { 70, _T("Min(mm)") }, |
| | | { 70, _T("Max(mm)") }, |
| | | { 70, _T("Off(mm)") }, |
| | | { 70, _T("Use Chamfer") }, |
| | | { 70, _T("Std(mm)") }, |
| | | { 70, _T("Min(mm)") }, |
| | | { 70, _T("Max(mm)") }, |
| | | }; |
| | | const ColDef* cols = m_bIsRipSide ? kColsRip : kColsNormal; |
| | | const int nCols = m_bIsRipSide ? (int)_countof(kColsRip) : (int)_countof(kColsNormal); |
| | | const int nRows = 1; |
| | | const int nFixRows = 1; |
| | | const int nFixCols = 0; |
| | | |
| | | m_SideDimensionSetting.DeleteAllItems(); |
| | | m_SideDimensionSetting.SetVirtualMode(FALSE); |
| | |
| | | m_SideDimensionSetting.SetFixedRowCount(nFixRows); |
| | | m_SideDimensionSetting.SetFixedColumnCount(nFixCols); |
| | | |
| | | CFont *pFont = m_SideDimensionSetting.GetFont(); |
| | | if (pFont) |
| | | { |
| | | LOGFONT lf; |
| | | pFont->GetLogFont(&lf); |
| | | if (CFont* pFont = m_SideDimensionSetting.GetFont()) { |
| | | LOGFONT lf{}; pFont->GetLogFont(&lf); |
| | | lf.lfItalic = 0; |
| | | lf.lfHeight = 14; |
| | | lf.lfWeight = FW_BOLD; |
| | | _tcscpy_s(lf.lfFaceName, _T("Arial")); |
| | | lf.lfHeight = 14; |
| | | |
| | | m_SideDimensionSetting.GetDefaultCell(FALSE, TRUE)->SetFont(&lf); |
| | | m_SideDimensionSetting.GetDefaultCell(TRUE, FALSE)->SetFont(&lf); |
| | |
| | | m_SideDimensionSetting.GetDefaultCell(TRUE, TRUE)->SetFont(&lf); |
| | | } |
| | | |
| | | // Col |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 90); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("No.")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 100); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Top Mark To Y(um)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Dim.")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Thres")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Off(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Use Chamfer")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Std(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Min(mm)")); |
| | | m_SideDimensionSetting.SetColumnWidth(nColIdx, 70); |
| | | m_SideDimensionSetting.SetItemText(nRowIdx, nColIdx++, _T("Max(mm)")); |
| | | for (int c = 0; c < nCols; ++c) { |
| | | m_SideDimensionSetting.SetColumnWidth(c, ScaleX(cols[c].w)); |
| | | m_SideDimensionSetting.SetItemText(0, c, cols[c].name); |
| | | } |
| | | |
| | | m_SideDimensionSetting.SetFixedRowSelection(FALSE); |
| | | m_SideDimensionSetting.SetFixedColumnSelection(FALSE); |
| | |
| | | |
| | | void CDlgSideDimensionSetting::Fill_SideDimensionSetting(BOOL bGetData) |
| | | { |
| | | if(m_SideDimensionSetting.GetSafeHwnd() == NULL) |
| | | if (m_SideDimensionSetting.GetSafeHwnd() == NULL) { |
| | | return; |
| | | } |
| | | |
| | | if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) |
| | | if (m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) { |
| | | return; |
| | | } |
| | | |
| | | int nSideIdx = *(m_pSelectSideIdx); |
| | | |
| | | if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) |
| | | if (nSideIdx < 0 || nSideIdx >= eRcp_SideRD_End) { |
| | | return; |
| | | } |
| | | |
| | | int c = 0; |
| | | const int COL_NO = c++; |
| | | const int COL_TOPMARK_Y = c++; |
| | | const int COL_USE_DIM = c++; |
| | | |
| | | int COL_THRES = -1, COL_STD = -1, COL_MIN = -1, COL_MAX = -1, COL_OFF = -1; |
| | | int COL_CHAMFER_USE = -1, COL_CH_STD = -1, COL_CH_MIN = -1, COL_CH_MAX = -1; |
| | | |
| | | if (!m_bIsRipSide) { |
| | | COL_THRES = c++; |
| | | COL_STD = c++; |
| | | COL_MIN = c++; |
| | | COL_MAX = c++; |
| | | COL_OFF = c++; |
| | | COL_CHAMFER_USE = c++; |
| | | COL_CH_STD = c++; |
| | | COL_CH_MIN = c++; |
| | | COL_CH_MAX = c++; |
| | | } |
| | | |
| | | // 单元格读写封装 |
| | | auto SetCell = [&](int r, int col, LPCTSTR s) { m_SideDimensionSetting.SetItemText(r, col, s); }; |
| | | auto SetCellInt = [&](int r, int col, int v) { CString t; t.Format(_T("%d"), v); SetCell(r, col, t); }; |
| | | auto SetCellDouble = [&](int r, int col, double v, int prec = 3) { CString t; t.Format(_T("%.*f"), prec, v); SetCell(r, col, t); }; |
| | | auto SetCellBool = [&](int r, int col, BOOL b) { CString t; t.Format(_T("%d"), b ? 1 : 0); SetCell(r, col, t); }; |
| | | auto GetCellStr = [&](int r, int col)->CString { CString s = m_SideDimensionSetting.GetItemText(r, col); s.Trim(); return s; }; |
| | | auto GetCellInt = [&](int r, int col, int def = 0)->int { CString s = GetCellStr(r, col); return s.IsEmpty() ? def : _wtoi(s); }; |
| | | auto GetCellDouble = [&](int r, int col, double def = 0.0)->double { CString s = GetCellStr(r, col); return s.IsEmpty() ? def : _wtof(s); }; |
| | | auto GetCellBool = [&](int r, int col)->BOOL { return GetCellInt(r, col, 0) ? TRUE : FALSE; }; |
| | | |
| | | m_SideDimensionSetting.SetRedraw(FALSE); |
| | | CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; |
| | | |
| | | CString strTemp; |
| | | int nRow = 0; |
| | | int nCol = 0; |
| | | |
| | | if(bGetData == FALSE) |
| | | { |
| | | int nDimensionCount = pParam->m_nSideDimensionCount; |
| | | |
| | | if (!bGetData) { |
| | | const int nDimensionCount = max(0, min(pParam->m_nSideDimensionCount, MAX_SIDE_DIMENSION_MEASURE_COUNT)); |
| | | m_SideDimensionSetting.SetRowCount(nDimensionCount + 1); |
| | | |
| | | for(int i=0; i<nDimensionCount; i++) |
| | | { |
| | | nRow = i + 1; |
| | | nCol = 0; |
| | | for (int i = 0; i < nDimensionCount; ++i) { |
| | | const int r = i + 1; |
| | | |
| | | // 1. No. |
| | | strTemp.Format(_T("S_D/C_%d"), i + 1); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 1) No. |
| | | CString no; no.Format(_T("S_D/C_%d"), i + 1); |
| | | SetCell(r, COL_NO, no); |
| | | |
| | | // 2. Top Mark To Distance Y (um) |
| | | strTemp.Format(_T("%d"), pParam->m_nSideDimensionPos_TopMarkToDistance_um[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 2) Top Mark To Distance Y (um) |
| | | SetCellInt(r, COL_TOPMARK_Y, pParam->m_nSideDimensionPos_TopMarkToDistance_um[i]); |
| | | |
| | | // 3. Use Dimension |
| | | strTemp.Format(_T("%d"), (int) pParam->m_bSideDimension_Use[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 3) Use Dimension (0/1) |
| | | SetCellBool(r, COL_USE_DIM, pParam->m_bSideDimension_Use[i]); |
| | | |
| | | // 4. Thres |
| | | strTemp.Format(_T("%.d"), pParam->m_nSideDimensionSpec_Thres[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | if (!m_bIsRipSide) { |
| | | // 4) Thres |
| | | SetCellInt(r, COL_THRES, pParam->m_nSideDimensionSpec_Thres[i]); |
| | | |
| | | // 5. Std |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Std[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 5-7) Std/Min/Max |
| | | SetCellDouble(r, COL_STD, pParam->m_dSideDimensionSpec_mm_Std[i]); |
| | | SetCellDouble(r, COL_MIN, pParam->m_dSideDimensionSpec_mm_Min[i]); |
| | | SetCellDouble(r, COL_MAX, pParam->m_dSideDimensionSpec_mm_Max[i]); |
| | | |
| | | // 6. Min |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Min[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 8) Offset |
| | | SetCellDouble(r, COL_OFF, pParam->m_dSideDimensionSpec_mm_Off[i]); |
| | | |
| | | // 7. Max |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Max[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 9) Chamfer Use |
| | | SetCellBool(r, COL_CHAMFER_USE, pParam->m_bSideChamfer_Use[i]); |
| | | |
| | | // 8. Offset |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideDimensionSpec_mm_Off[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | |
| | | // 9. Chamfer |
| | | strTemp.Format(_T("%d"), (int) pParam->m_bSideChamfer_Use[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | |
| | | // 10. Std |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Std[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | |
| | | // 11. Min |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Min[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | |
| | | // 12. Max |
| | | strTemp.Format(_T("%.3f"), pParam->m_dSideChamfer_Spec_mm_Max[i]); |
| | | m_SideDimensionSetting.SetItemText(nRow, nCol++, strTemp); |
| | | // 10-12) Chamfer Std/Min/Max |
| | | SetCellDouble(r, COL_CH_STD, pParam->m_dSideChamfer_Spec_mm_Std[i]); |
| | | SetCellDouble(r, COL_CH_MIN, pParam->m_dSideChamfer_Spec_mm_Min[i]); |
| | | SetCellDouble(r, COL_CH_MAX, pParam->m_dSideChamfer_Spec_mm_Max[i]); |
| | | } |
| | | } |
| | | |
| | | m_SideDimensionSetting.Invalidate(); |
| | | } |
| | | else |
| | | { |
| | | int nDimensionCount = m_SideDimensionSetting.GetRowCount() - 1; |
| | | |
| | | else { |
| | | int nDimensionCount = max(0, m_SideDimensionSetting.GetRowCount() - 1); |
| | | nDimensionCount = min(nDimensionCount, MAX_SIDE_DIMENSION_MEASURE_COUNT); |
| | | pParam->m_nSideDimensionCount = nDimensionCount; |
| | | |
| | | for(int i=0; i<nDimensionCount; i++) |
| | | { |
| | | nRow = i + 1; |
| | | nCol = 1; |
| | | for (int i = 0; i < nDimensionCount; ++i) { |
| | | const int r = i + 1; |
| | | int col = COL_TOPMARK_Y; |
| | | |
| | | // 1. No. |
| | | // 2) Top Mark To Distance Y (um) |
| | | pParam->m_nSideDimensionPos_TopMarkToDistance_um[i] = GetCellInt(r, col++, pParam->m_nSideDimensionPos_TopMarkToDistance_um[i]); |
| | | |
| | | // 2. Top Mark To Distance Y (um) |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_nSideDimensionPos_TopMarkToDistance_um[i] = _wtoi(strTemp); |
| | | // 3) Use Dimension |
| | | pParam->m_bSideDimension_Use[i] = GetCellBool(r, col++); |
| | | |
| | | // 3. Use Dimension |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_bSideDimension_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; |
| | | if (!m_bIsRipSide) { |
| | | // 4) Thres |
| | | pParam->m_nSideDimensionSpec_Thres[i] = GetCellInt(r, col++, pParam->m_nSideDimensionSpec_Thres[i]); |
| | | |
| | | // 4. Thres |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_nSideDimensionSpec_Thres[i] = _wtoi(strTemp); |
| | | // 5-7) Std/Min/Max |
| | | pParam->m_dSideDimensionSpec_mm_Std[i] = GetCellDouble(r, col++, pParam->m_dSideDimensionSpec_mm_Std[i]); |
| | | pParam->m_dSideDimensionSpec_mm_Min[i] = GetCellDouble(r, col++, pParam->m_dSideDimensionSpec_mm_Min[i]); |
| | | pParam->m_dSideDimensionSpec_mm_Max[i] = GetCellDouble(r, col++, pParam->m_dSideDimensionSpec_mm_Max[i]); |
| | | |
| | | // 5. Std |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideDimensionSpec_mm_Std[i] = _wtof(strTemp); |
| | | // 8) Offset |
| | | pParam->m_dSideDimensionSpec_mm_Off[i] = GetCellDouble(r, col++, pParam->m_dSideDimensionSpec_mm_Off[i]); |
| | | |
| | | // 6. Min |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideDimensionSpec_mm_Min[i] = _wtof(strTemp); |
| | | // 9) Chamfer Use |
| | | pParam->m_bSideChamfer_Use[i] = GetCellBool(r, col++); |
| | | |
| | | // 7. Max |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideDimensionSpec_mm_Max[i] = _wtof(strTemp); |
| | | // 10-12) Chamfer Std/Min/Max |
| | | pParam->m_dSideChamfer_Spec_mm_Std[i] = GetCellDouble(r, col++, pParam->m_dSideChamfer_Spec_mm_Std[i]); |
| | | pParam->m_dSideChamfer_Spec_mm_Min[i] = GetCellDouble(r, col++, pParam->m_dSideChamfer_Spec_mm_Min[i]); |
| | | pParam->m_dSideChamfer_Spec_mm_Max[i] = GetCellDouble(r, col++, pParam->m_dSideChamfer_Spec_mm_Max[i]); |
| | | } |
| | | } |
| | | |
| | | // 8. Offset |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideDimensionSpec_mm_Off[i] = _wtof(strTemp); |
| | | for (int k = nDimensionCount; k < MAX_SIDE_DIMENSION_MEASURE_COUNT; ++k) { |
| | | pParam->m_nSideDimensionPos_TopMarkToDistance_um[k] = 0; |
| | | pParam->m_bSideDimension_Use[k] = FALSE; |
| | | |
| | | // 9. Chamfer |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_bSideChamfer_Use[i] = (_wtoi(strTemp) == 0) ? FALSE : TRUE; |
| | | pParam->m_nSideDimensionSpec_Thres[k] = 0; |
| | | pParam->m_dSideDimensionSpec_mm_Std[k] = 0.0; |
| | | pParam->m_dSideDimensionSpec_mm_Min[k] = 0.0; |
| | | pParam->m_dSideDimensionSpec_mm_Max[k] = 0.0; |
| | | pParam->m_dSideDimensionSpec_mm_Off[k] = 0.0; |
| | | |
| | | // 10. Std |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideChamfer_Spec_mm_Std[i] = _wtof(strTemp); |
| | | |
| | | // 11. Min |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideChamfer_Spec_mm_Min[i] = _wtof(strTemp); |
| | | |
| | | // 12. Max |
| | | strTemp = m_SideDimensionSetting.GetItemText(nRow, nCol++); |
| | | pParam->m_dSideChamfer_Spec_mm_Max[i] = _wtof(strTemp); |
| | | pParam->m_bSideChamfer_Use[k] = FALSE; |
| | | pParam->m_dSideChamfer_Spec_mm_Std[k] = 0.0; |
| | | pParam->m_dSideChamfer_Spec_mm_Min[k] = 0.0; |
| | | pParam->m_dSideChamfer_Spec_mm_Max[k] = 0.0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | m_SideDimensionSetting.SetRedraw(TRUE); |
| | | m_SideDimensionSetting.Invalidate(FALSE); |
| | | } |
| | | |
| | | void CDlgSideDimensionSetting::Fill_SideDimensionSetting_CurrentResult() |
| | | { |
| | |
| | | |
| | | void CDlgSideDimensionSetting::ClickButtonAdd() |
| | | { |
| | | if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) |
| | | if (m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) { |
| | | return; |
| | | } |
| | | |
| | | int nSideIdx = *(m_pSelectSideIdx); |
| | | |
| | | if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) |
| | | if (nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) { |
| | | return; |
| | | } |
| | | |
| | | CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; |
| | | |
| | | int nAddIdx = pParam->m_nSideDimensionCount; |
| | | |
| | | if(nAddIdx < 0 || MAX_SIDE_DIMENSION_MEASURE_COUNT <= nAddIdx) |
| | | { |
| | | if(nAddIdx < 0 || MAX_SIDE_DIMENSION_MEASURE_COUNT <= nAddIdx) { |
| | | CString strMsg; |
| | | strMsg.Format(_T("Max Dimension Measure Count : %d ea"), MAX_SIDE_DIMENSION_MEASURE_COUNT); |
| | | AfxMessageBox(strMsg); |
| | | return; |
| | | } |
| | | |
| | | UpdateRecipe(TRUE); |
| | | |
| | | pParam->m_nSideDimensionPos_TopMarkToDistance_um[nAddIdx] = 0; |
| | | pParam->m_dSideDimensionSpec_mm_Min[nAddIdx] = 0; |
| | |
| | | |
| | | void CDlgSideDimensionSetting::ClickButtonDel() |
| | | { |
| | | if(m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) |
| | | if (m_pDlgRecipe == NULL || m_pSelectSideIdx == NULL) { |
| | | return; |
| | | } |
| | | |
| | | int nSideIdx = *(m_pSelectSideIdx); |
| | | |
| | | if(nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) |
| | | if (nSideIdx < 0 || eRcp_SideRD_End <= nSideIdx) { |
| | | return; |
| | | } |
| | | |
| | | CSIDE_PARM* pParam = &m_pDlgRecipe->m_SideParam[nSideIdx]; |
| | | |
| | |
| | | CCellID FocusedID = m_SideDimensionSetting.GetFocusCell(); |
| | | int nDelIdx = FocusedID.row - 1; |
| | | |
| | | if(nDelIdx < 0 || nSideDimensionCount <= nDelIdx) |
| | | { |
| | | if(nDelIdx < 0 || nSideDimensionCount <= nDelIdx) { |
| | | AfxMessageBox(_T("Select Error")); |
| | | return; |
| | | } |
| | | |
| | | UpdateRecipe(TRUE); |
| | | |
| | | int nPosIdx = 0; |
| | | for(int i=0; i<MAX_DIMENSION_COUNT; i++) |
| | | { |
| | | if(i == nDelIdx) |
| | | for(int i=0; i<MAX_DIMENSION_COUNT; i++) { |
| | | if (i == nDelIdx) { |
| | | continue; |
| | | } |
| | | |
| | | pParam->m_nSideDimensionPos_TopMarkToDistance_um[nPosIdx] = pParam->m_nSideDimensionPos_TopMarkToDistance_um[i]; |
| | | pParam->m_dSideDimensionSpec_mm_Min[nPosIdx] = pParam->m_dSideDimensionSpec_mm_Min[i]; |