tangxu
2025-02-26 0f0af979b3108483a7f5206e6967a74a5f10918f
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_StepInfo.cs
@@ -3,7 +3,8 @@
using System.Windows.Forms;
using System.IO;
using System.Text;
using System.Linq;
using System.Linq;
namespace DPumpHydr.WinFrmUI.Volute
{
    public partial class MainViewPage
@@ -18,73 +19,31 @@
        /// <returns></returns>
        private bool GoNextStepCore()
        {
            var currentStepID = this._stepTreeDockPanel.CurrentStepID;
            var current_step_id = this._stepTreeDockPanel.CurrentStepID;
            //
            var next_step_id = this._stepTreeDockPanel.NextStepID;
            if (currentStepID == this._stepTreeDockPanel.Step_ID_Section18_Full)
            if (current_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full)
            {
                next_step_id = this._stepTreeDockPanel.Step_ID_Outflow_Paras;
            }
            if (next_step_id > 0)
            {
                if (currentStepID == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info)
                {
                    if (!SaveParaStep1())
                        return false;
                }
                else if (currentStepID == this._stepTreeDockPanel.Step_ID_Section18_Full)
                {
                    if (!SaveParaStep2())
                        return false;
                }
                else if (currentStepID == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
                {
                    if (!SaveParaStep3())
                        return false;
                }
                else
                {
                }
                this.SetParasCtrl(currentStepID, next_step_id );
            ChangeStep(current_step_id, next_step_id);
                //
                this._stepTreeDockPanel.SetFocusedNode(next_step_id);
            }
            CheckStepBtnStatus();
            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 current_step_id = this._stepTreeDockPanel.CurrentStepID;
            var prev_step_id = this._stepTreeDockPanel.PrevStepID;
            if (currentStepID == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
            if (current_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
            {
                prev_step_id = this._stepTreeDockPanel.Step_ID_Section18_Full;
            }
@@ -93,46 +52,154 @@
                return false;
            this.SetParasCtrl(currentStepID, prev_step_id);
            //
            this._stepTreeDockPanel.SetFocusedNode(prev_step_id);
            CheckStepBtnStatus();
            this.ChangeStep(current_step_id, prev_step_id);
            return true;
        }
        /// <summary>
        /// 生成控件的参数控件
        /// 切换步骤
        /// </summary>
        /// <param name="current_step_id"></param>
        private void SetParasCtrl(long last_step_id, long current_step_id)
        /// <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;
            #region  第1步
            if (current_step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info)
            if (next_step_id == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info)
            {
                EnterStep1(last_step_id);
                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 (current_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full)
            if (next_step_id == this._stepTreeDockPanel.Step_ID_Section18_Full)
            {
                EnterStep2(last_step_id);
                EnterStep2(current_step_id);
                return;
            }
            #endregion
            #region  第3步 1-8断面
            if (current_step_id > this._stepTreeDockPanel.Step_ID_Section18_Grp &&
                current_step_id <= this._stepTreeDockPanel.Step_ID_Section18_Grp + 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;
@@ -143,7 +210,7 @@
                    _ctrlSectionShapeInfo18.OnRefreshShape += RefreshSectShapeSingle18;
                }
                DockStepParaCtrl(_ctrlSectionShapeInfo18);
                var sect_index = 9 + this._stepTreeDockPanel.Step_ID_Section18_Grp - current_step_id;
                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);
@@ -159,53 +226,25 @@
            #endregion
            #region  出水面参数
            if (current_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
            if (next_step_id == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
            {
                EnterStep3(last_step_id);
                EnterStep3(current_step_id);
                return;
            }
            #endregion
            #region  加厚
            if (current_step_id == this._stepTreeDockPanel.Step_ID_jiahout)
            #region 加厚
            if (next_step_id == this._stepTreeDockPanel.Step_ID_Thickness)
            {
                if (_sectionBundleInfo == null)
                    return;
                Rbtn数据导出STP.Visible = true;
                Rbtn数据导出IGS.Visible = true;
                this._occDesign2dCtrl.SetAllSectionCurveVisible(false);
                this._occDesign3dCtrl.SetAllSectionCurveVisible(false);
                EnterStep4(current_step_id);
                if (_ctrlThicknessParas == null)
                {
                    _ctrlThicknessParas = new ctrlThicknessParas();
                    _ctrlThicknessParas.Name = "ctrlThicknessParas";
                    _ctrlThicknessParas.OnRefreshShape += (houdu) =>
                    {
                        this._bodyThickness = houdu;
                        this._occDesign3dCtrl.BuildThicknessBody(houdu);
                    };
                    this._bodyThickness = _ctrlThicknessParas.InitialParas(_hdrBaseInfo, _geomBaseInfo, _outflowParas);
                    this._occDesign3dCtrl.BuildThicknessBody(_bodyThickness);
                }
                _ctrlThicknessParas.ShowPage();
                this._occDesign3dCtrl.setWaterBodyOpacity(
                    DPumpHydr.WinFrmUI.Volute.GlobalParas.WaterBodyColor.R,
                    DPumpHydr.WinFrmUI.Volute.GlobalParas.WaterBodyColor.G,
                    DPumpHydr.WinFrmUI.Volute.GlobalParas.WaterBodyColor.B, 60);
                this._occDesign3dCtrl.SetThicknessBodyVisible(true);
                DockStepParaCtrl(_ctrlThicknessParas);
                return;
            }
            #endregion
            #endregion
        }