From 0f0af979b3108483a7f5206e6967a74a5f10918f Mon Sep 17 00:00:00 2001 From: tangxu <tangxu76880903> Date: 星期三, 26 二月 2025 20:48:52 +0800 Subject: [PATCH] 添加截面的显示隐藏 --- WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs | 643 ++++++++++++++++++++++++--------------------------------- 1 files changed, 274 insertions(+), 369 deletions(-) diff --git a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs index 9365df7..44f6f1a 100644 --- a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs +++ b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs @@ -3,7 +3,7 @@ using System.Windows.Forms; using System.IO; using System.Text; -using System.Linq; +using System.Linq; namespace DPumpHydr.WinFrmUI.Volute { @@ -12,19 +12,280 @@ //姝ラ鎺т欢 StepTreeDockPanel _stepTreeDockPanel = null; - //鍙傛暟鎺т欢 - ctrlHdrBaseInfo _ctrlHdrBaseInfo = null; - ctrlGeomBaseInfo _ctrlGeomBaseInfo = null; - ctrlSectionBundleInfo _ctrlSectionBundleInfo = null; - ctrlSectionShapeInfo18 _ctrlSectionShapeInfo18 = null; - ctrlSetOutflowStyle _ctrlSetOutflowStyle = null; - ctrlSetOutflowType _ctrlSetOutflowType = null; - //鍙傛暟 - ViewModel.HdrBaseInfo _hdrBaseInfo = null; - ViewModel.GeomBaseInfo _geomBaseInfo = null; - ViewModel.SectionBundleInfo _sectionBundleInfo = null; - + /// <summary> + /// 涓嬩竴姝ユ牳蹇� + /// </summary> + /// <returns></returns> + private bool GoNextStepCore() + { + var current_step_id = this._stepTreeDockPanel.CurrentStepID; + + // + var next_step_id = this._stepTreeDockPanel.NextStepID; + if (current_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) + { + next_step_id = this._stepTreeDockPanel.Step_ID_Outflow_Paras; + } + + + ChangeStep(current_step_id, next_step_id); + + return true; + } + + /// <summary> + /// 涓婁竴姝ユ牳蹇� + /// </summary> + /// <returns></returns> + private bool GoPrevStepCore() + { + var current_step_id = this._stepTreeDockPanel.CurrentStepID; + + var prev_step_id = this._stepTreeDockPanel.PrevStepID; + if (current_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras) + { + prev_step_id = this._stepTreeDockPanel.Step_ID_Section18_Full; + } + + if (prev_step_id == 0) + return false; + + + this.ChangeStep(current_step_id, prev_step_id); + + return true; + } + + /// <summary> + /// 鍒囨崲姝ラ + /// </summary> + /// <param name="current_step_id"></param> + /// <param name="next_step_id"></param> + private bool ChangeStep(long current_step_id, long next_step_id) + { + RbtnChk鎴潰18.Visible = false; + if (current_step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) + { + if (!SaveParaStep1()) + return false; + //ParasInfoBaseCtrl paras_ctrl = GetParasCtrl(current_step_id); + //if (paras_ctrl != null && paras_ctrl.IsChangesParas()) + //{ + // DialogResult result = MessageBox.Show("宸茬粡淇敼杩囩殑鏁版嵁闇�瑕佷繚瀛樺悧锛�", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); + // if (result == DialogResult.OK) + // { + // if (SaveStepParas(current_step_id) == false) + // { + // return false; + // } + // } + //} + } + else if (current_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) + { + if (!SaveParaStep2()) + return false; + } + else if (current_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras) + { + + if (!SaveParaStep3()) + return false; + } + else if (current_step_id == this._stepTreeDockPanel.Step_ID_Thickness) + { + if (!SaveParaStep4()) + return false; + if (next_step_id < current_step_id) + {//鍒犻櫎鍔犲帤浣� + this._occDesign3dCtrl.RemoveThicknessBody( ); + } + } + + + this.BuildParasCtrl(current_step_id, next_step_id); + + // + this._stepTreeDockPanel.SetFocusedNode(next_step_id); + + + + Rbtn鏁版嵁瀵煎嚭STP.Visible = false; + Rbtn鏁版嵁瀵煎嚭IGS.Visible = false; + + + if (next_step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) + { + this._sectAreaDockPanel.Visible = false; + + this.RBtn鍚庨��.Enabled = false; + this.Rbtn鍓嶈繘.Enabled = true; + + + this.Rbtn涓婁竴姝�.Enabled = false; + this.Rbtn涓嬩竴姝�.Enabled = true; + this.Rbtn瀹屾垚.Enabled = false; + + this._occDesign2dCtrl.HideAll(); + this._occDesign3dCtrl.HideAll(); + } + else if (next_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras) + { + RbtnChk鎴潰18.Visible = true; + + this.RBtn鍚庨��.Enabled = true; + this.Rbtn鍓嶈繘.Enabled = true; + + this.Rbtn涓婁竴姝�.Enabled = true; + this.Rbtn涓嬩竴姝�.Enabled = true; + this.Rbtn瀹屾垚.Enabled = false; + } + + else if (next_step_id == this._stepTreeDockPanel.Step_ID_Thickness) + { + this.RBtn鍚庨��.Enabled = true; + this.Rbtn鍓嶈繘.Enabled = false; + + + this.Rbtn涓婁竴姝�.Enabled = true; + this.Rbtn涓嬩竴姝�.Enabled = false; + this.Rbtn瀹屾垚.Enabled = true; + + this.Rbtn鏁版嵁瀵煎嚭STP.Visible = true; + this.Rbtn鏁版嵁瀵煎嚭IGS.Visible = true; + } + else + { + this.RBtn鍚庨��.Enabled = true; + this.Rbtn鍓嶈繘.Enabled = true; + + + this.Rbtn涓婁竴姝�.Enabled = true; + this.Rbtn涓嬩竴姝�.Enabled = true; + this.Rbtn瀹屾垚.Enabled = false; + } + + + + return true; + } + + + + /// <summary> + /// 璁剧疆鍙傛暟鎺т欢 + /// </summary> + /// <param name="next_step_id"></param> + private void BuildParasCtrl(long current_step_id, long next_step_id) + { + #region 绗�1姝� + if (next_step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) + { + EnterStep1(current_step_id); + + return; + } + #endregion + + #region 绗�2姝� + if (next_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) + { + EnterStep2(current_step_id); + + return; + } + #endregion + + #region 绗�3姝� 1-8鏂潰 + if (next_step_id > this._stepTreeDockPanel.Step_ID_Section18_Grp && + next_step_id <= this._stepTreeDockPanel.Step_ID_Section18_Grp + 8) + { + if (_sectionBundleInfo == null) + return; + if (_ctrlSectionShapeInfo18 == null) + { + _ctrlSectionShapeInfo18 = new ctrlSectionShapeInfo18(); + _ctrlSectionShapeInfo18.Name = "ctrlSectionShapeInfo18"; + _ctrlSectionShapeInfo18.OnRefreshShape += RefreshSectShapeSingle18; + } + DockStepParaCtrl(_ctrlSectionShapeInfo18); + var sect_index = 9 + this._stepTreeDockPanel.Step_ID_Section18_Grp - next_step_id; + var shape_info = _sectionBundleInfo.ToSectionShapePara((int)sect_index); + RefreshSectShapeSingle18(shape_info); + _ctrlSectionShapeInfo18.SetBindingData(shape_info); + this._sectAreaDockPanel.RefreshControl(); + this._sectAreaDockPanel.Visible = true; + + this._occDesign2dCtrl.SetAllSectionCurveVisible(true); + this._occDesign3dCtrl.SetAllSectionCurveVisible(true); + + return; + } + + #endregion + + #region 鍑烘按闈㈠弬鏁� + if (next_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras) + { + EnterStep3(current_step_id); + + return; + } + #endregion + + #region 鍔犲帤 + if (next_step_id == this._stepTreeDockPanel.Step_ID_Thickness) + { + if (_sectionBundleInfo == null) + return; + + EnterStep4(current_step_id); + + return; + } + #endregion + } + + + + /// <summary> + /// 鑾峰彇褰撳墠姝ラ鐨勫弬鏁版帶鍒舵帶浠� + /// </summary> + /// <param name="step_id"></param> + private DPumpHydr.WinFrmUI.Volute.ParasInfoBaseCtrl GetParasCtrl(long step_id) + { + if (step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) + { + return _ctrlHdrBaseInfo; + } + //绗簩姝� + if (step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) + { + return _ctrlSectionBundleInfo; + } + //1-8鏂潰杩涜涓嬩竴姝ョ偣鍑� + if (step_id >= this._stepTreeDockPanel.Step_ID_Section18_Grp && + step_id >= this._stepTreeDockPanel.Step_ID_Section18_Grp + 8) + { + return _ctrlSectionShapeInfo18; + } + + return null; + } + + + + /// <summary> + /// + /// </summary> + /// <param name="ctrl"></param> + private void DockStepParaCtrl(ParasInfoBaseCtrl ctrl) + { + this._parasDockPanel.Controls.Clear(); + ctrl.Dock = DockStyle.Fill; + this._parasDockPanel.Controls.Add(ctrl); + } /// <summary> /// 涓嬩竴姝� @@ -43,361 +304,5 @@ { return GoPrevStepCore(); } - - /// <summary> - /// 涓嬩竴姝ユ牳蹇� - /// </summary> - /// <returns></returns> - private bool GoNextStepCore() - { - var currentStepID = this._stepTreeDockPanel.CurrentStepID; - if (SaveStepParas(currentStepID) == false) - { - return false; - } - - // - var next_step_id = this._stepTreeDockPanel.NextStepID; - if (next_step_id > 0) - { - this.SetParasCtrl(next_step_id); - - // - this._stepTreeDockPanel.SetFocusedNode(next_step_id); - } - - return true; - } - - /// <summary> - /// - /// </summary> - /// <param name="stepID"></param> - /// <returns></returns> - protected bool SaveStepParas(long stepID) - { - #region 鑾峰彇褰撳墠椤甸潰鍙傛暟 - //绗竴姝� - if (stepID == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) - { - string error_info; - var hdrBaseInfo = _ctrlHdrBaseInfo.GetBindingData(out error_info); - if (hdrBaseInfo == null) - { - MessageBox.Show(error_info); - return false; - } - hdrBaseInfo.CalcNs(); - _hdrBaseInfo = hdrBaseInfo; - if (_geomBaseInfo == null) - { - _geomBaseInfo = new ViewModel.GeomBaseInfo(); - } - _geomBaseInfo.Calc(_hdrBaseInfo); - return true; - } - //绗簩姝� - if (stepID == this._stepTreeDockPanel.Step_ID_Geom_Base_Info) - { - if (_ctrlGeomBaseInfo == null) - return false; - string error_info; - var geomBaseInfo = _ctrlGeomBaseInfo.GetBindingData(out error_info); - if (geomBaseInfo == null) - { - MessageBox.Show(error_info); - return false; - } - _geomBaseInfo = geomBaseInfo; - if (_sectionBundleInfo == null) - { - _sectionBundleInfo = new ViewModel.SectionBundleInfo(); - } - var v3 = ViewModel.SectionBundleInfo.CalcV3(_hdrBaseInfo, _geomBaseInfo); - _sectionBundleInfo.ResetAllParas(_hdrBaseInfo, _geomBaseInfo, v3); - - return true; - } - //绗笁姝� - if (stepID == this._stepTreeDockPanel.Step_ID_Section18_Full) - { - string error_info; - var sectionBaseInfo = _ctrlSectionBundleInfo.GetBindingData(out error_info); - if (sectionBaseInfo == null) - { - MessageBox.Show(error_info); - return false; - } - _sectionBundleInfo = sectionBaseInfo; - //_sectionBundleInfo.ResetAllParas(_hdrBaseInfo, _geomBaseInfo); - //ViewModel.SectionShapePara _sectionShapePara = null; - //if (_sectionShapePara == null) - //{ - // _sectionShapePara = new ViewModel.SectionShapePara(); - //} - //_sectionShapePara.Initialparameters(_currentSectIndex, _sectionBaseInfo); - - return true; - } - //1-8鏂潰杩涜涓嬩竴姝ョ偣鍑� - if (stepID == this._stepTreeDockPanel.Step_ID_Section18_Grp) - { - //string error_info; - //var sectionShapeInfo18 = _ctrlSectionShapeInfo18.GetBindingData(out error_info); - //if (sectionShapeInfo18 == null) - //{ - // MessageBox.Show(error_info); - // return false; - //} - //if (!sectionShapeInfo18.Verify(out error_info)) - //{ - // MessageBox.Show(error_info); - // return false; - //} - //_sectionShapePara = sectionShapeInfo18; - //_sectionShapePara.CalcHeightByArea(_sectionBaseInfo.ShapeType); - //_sectionBaseInfo.EditSingleShape(_sectionShapePara, _currentSectIndex); - //if (_currentSectIndex != 9) - //{ - // _currentSectIndex--; - //} - //_sectionShapePara.Initialparameters(_currentSectIndex, _sectionBaseInfo); - - return true; - } - - #endregion - - - return true; - } - - /// <summary> - /// 涓婁竴姝ユ牳蹇� - /// </summary> - /// <returns></returns> - private bool GoPrevStepCore() - { - var currentStepID = this._stepTreeDockPanel.CurrentStepID; - ParasInfoBaseCtrl paras_ctrl = GetParasCtrl(currentStepID); - if(paras_ctrl != null && paras_ctrl.IsChangesParas()) - { - DialogResult result = MessageBox.Show("宸茬粡淇敼杩囩殑鏁版嵁闇�瑕佷繚瀛樺悧锛�", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); - if (result == DialogResult.OK) - { - if (SaveStepParas(currentStepID) == false ) - { - return false; - } - } - } - - var prev_step_id = this._stepTreeDockPanel.PrevStepID; - if (prev_step_id == 0) - return false; - - - this.SetParasCtrl(prev_step_id); - - // - this._stepTreeDockPanel.SetFocusedNode(prev_step_id); - - - return true; - } - - /// <summary> - /// 鐢熸垚鎺т欢鐨勫弬鏁版帶浠� - /// </summary> - /// <param name="step_id"></param> - private void SetParasCtrl(long step_id) - { - //绗竴姝� - if (step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) - { - if (_ctrlHdrBaseInfo == null) - { - _ctrlHdrBaseInfo = new ctrlHdrBaseInfo(); - _ctrlHdrBaseInfo.Name = "ctrlHdrBaseInfo"; - } - - - _ctrlHdrBaseInfo.SetBindingData(_hdrBaseInfo); - AddStepParaCtrl(_ctrlHdrBaseInfo); - } - - //绗簩姝� - if (step_id == this._stepTreeDockPanel.Step_ID_Geom_Base_Info) - { - if (_ctrlGeomBaseInfo == null) - { - _ctrlGeomBaseInfo = new ctrlGeomBaseInfo(); - _ctrlGeomBaseInfo.Name = "ctrlGeomBaseInfo"; - } - _ctrlGeomBaseInfo.SetBindingData(_geomBaseInfo); - AddStepParaCtrl(_ctrlGeomBaseInfo); - } - - //绗笁姝� - if (step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) - { - if (_ctrlSectionBundleInfo == null) - { - _ctrlSectionBundleInfo = new ctrlSectionBundleInfo(); - _ctrlSectionBundleInfo.Name = "ctrlSectionBaseInfo"; - _ctrlSectionBundleInfo.OnRefreshShape += RefreshSectShapeWhole18; - } - AddStepParaCtrl(_ctrlSectionBundleInfo); - _ctrlSectionBundleInfo.InitialParas(_hdrBaseInfo, _geomBaseInfo); - _ctrlSectionBundleInfo.SetBindingData(_sectionBundleInfo); - RefreshSectShapeWhole18(_sectionBundleInfo); - } - - //绗洓姝� - if (step_id > this._stepTreeDockPanel.Step_ID_Section18_Grp && - step_id <= this._stepTreeDockPanel.Step_ID_Section18_Grp + 8) - { - if (_sectionBundleInfo == null) - return; - if (_ctrlSectionShapeInfo18 == null) - { - _ctrlSectionShapeInfo18 = new ctrlSectionShapeInfo18(); - _ctrlSectionShapeInfo18.Name = "ctrlSectionShapeInfo18"; - _ctrlSectionShapeInfo18.OnRefreshShape += RefreshSectShapeSingle18; - } - AddStepParaCtrl(_ctrlSectionShapeInfo18); - var sect_index = 9 + this._stepTreeDockPanel.Step_ID_Section18_Grp - step_id; - var shape_info = _sectionBundleInfo.ToSectionShapePara((int)sect_index); - - _ctrlSectionShapeInfo18.SetBindingData(shape_info); - } - - if (step_id == this._stepTreeDockPanel.Step_ID_Outflow_Type) - { - if (_ctrlSetOutflowType == null) - { - _ctrlSetOutflowType = new ctrlSetOutflowType(); - _ctrlSetOutflowType.Name = "ctrlSetOutflowDim"; - } - AddStepParaCtrl(_ctrlSetOutflowType); - } - - if (step_id == this._stepTreeDockPanel.Step_ID_Outflow_Style) - { - if (_ctrlSetOutflowStyle == null) - { - _ctrlSetOutflowStyle = new ctrlSetOutflowStyle(); - _ctrlSetOutflowStyle.Name = "ctrlSetOutflowStyle"; - - var pt = _occDesign2dCtrl.CreateOutflowBody(); - if(pt != null) - { - _occDesign3dCtrl.CreateOutflowBody(pt); - } - } - AddStepParaCtrl(_ctrlSetOutflowStyle); - } - - - } - - - - /// <summary> - /// 鑾峰彇褰撳墠姝ラ鐨勫弬鏁版帶鍒舵帶浠� - /// </summary> - /// <param name="step_id"></param> - private DPumpHydr.WinFrmUI.Volute.ParasInfoBaseCtrl GetParasCtrl(long step_id) - { - if (step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info) - { - return _ctrlHdrBaseInfo; - } - //绗簩姝� - if (step_id == this._stepTreeDockPanel.Step_ID_Geom_Base_Info) - { - return _ctrlGeomBaseInfo; - } - //绗笁姝� - if (step_id == this._stepTreeDockPanel.Step_ID_Section18_Full) - { - return _ctrlSectionBundleInfo; - } - //1-8鏂潰杩涜涓嬩竴姝ョ偣鍑� - if (step_id >= this._stepTreeDockPanel.Step_ID_Section18_Grp &&銆� - step_id>= this._stepTreeDockPanel.Step_ID_Section18_Grp+8) - { - return _ctrlSectionShapeInfo18; - } - - return null; - } - - - - /// <summary> - /// - /// </summary> - /// <param name="ctrl"></param> - private void AddStepParaCtrl(ParasInfoBaseCtrl ctrl) - { - this._parasDockPanel.Controls.Clear(); - ctrl.Dock = DockStyle.Fill; - this._parasDockPanel.Controls.Add(ctrl); - } - /// <summary> - /// 铚楀3鍙傛暟瀵煎嚭 - /// </summary> - public void VoluteDeriveArgument() - { - //if (_sectionBaseInfo == null) - //{ - // MessageBox.Show("鎮ㄨ繕娌℃湁瀹屾垚瀹氫箟鍙傛暟锛佽瀹氫箟瀹屾垚鍚庡湪杩涜瀵煎嚭锛侊紙鑷冲皯瀹屾垚绗笁姝ワ級"); - // return; - //} - //if (_currentStepID <= 21) - //{ - // DialogResult result = MessageBox.Show("纭畾涓嶈繘琛屽悗缁柇闈㈠弬鏁扮殑璋冩暣锛屼娇鐢ㄥ垵濮嬭绠楀悗鐨勫弬鏁板悧锛�", "鎻愮ず", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); - // if (result == DialogResult.Cancel) - // { - // return; - // } - //} - //ViewModel.SectionShapePara VoluteArgument = new ViewModel.SectionShapePara(); - //string json = VoluteArgument.DeriveArgument(_sectionBaseInfo); - //string filePath = Path.Combine(@"C:\Users\THL\Desktop", $"铚楀3鍙傛暟.json"); - //File.WriteAllText(filePath, json); - } - - #region 鍒濆鍖栨楠ゅ垪琛� - - /// <summary> - /// - /// </summary> - private void InitialStepNodes() - { - ViewModel.HdrBaseInfo hdrBaseInfo = new ViewModel.HdrBaseInfo(); - hdrBaseInfo.Q = 200; - hdrBaseInfo.H = 50; - hdrBaseInfo.n = 2900; - hdrBaseInfo.D2 = 220; - hdrBaseInfo.B2 = 20; - - if (_ctrlHdrBaseInfo == null) - { - _ctrlHdrBaseInfo = new ctrlHdrBaseInfo(); - _ctrlHdrBaseInfo.Name = "ctrlHdrBaseInfo"; - _ctrlHdrBaseInfo.Dock = DockStyle.Right; - _ctrlHdrBaseInfo.SetBindingData(hdrBaseInfo); - } - - this.AddStepParaCtrl(_ctrlHdrBaseInfo); - - // - this._stepTreeDockPanel.InitialStepNodes(); - } - - #endregion - } } -- Gitblit v1.9.3