tx
2025-04-14 5fc444fd4e3a7f94fed8c848211e52012d6c522f
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_ExportImport.cs
@@ -5,9 +5,6 @@
using System.Text;
using System.Drawing;
using HydrEngineCSharp;
using DPumpHydr.WinFrmUI.RLT.Native;
using DPumpHydr.WinFrmUI.RLT.Docking.Crown;
using DPumpHydr.WinFrmUI.Volute.TempCtrl;
namespace DPumpHydr.WinFrmUI.Volute
{
@@ -18,11 +15,49 @@
        /// </summary>
        public void ExportXmlFile()
        {
            //if (_hdrBaseInfo == null)
            //{
            //    MessageBox.Show("您还没有完成定义参数!请定义完成后在进行导出!(至少完成第三步)");
            //    return;
            //}
            var currentStepID = this._stepTreeDockPanel.CurrentStepID;
            if (_hdrBaseInfo == null)
            {
                MessageBox.Show("您还没有完成定义参数!请定义完成后在进行导出!(至少完成第三步)");
                return;
                if (currentStepID == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info)
                {
                    if (!SaveParaStep1())
                    {
                        MessageBox.Show("您还没有完成定义参数!请该界面全部输入完成后在进行导出!");
                        return;
                    }
                    if (_sectionBundleInfo == null)
                    {
                        _sectionBundleInfo = new ViewModel.SectionBundleInfo();
                        _sectionBundleInfo.BaseWidth = _geomBaseInfo.B3;
                        _sectionBundleInfo.BaseCircleRadius = _geomBaseInfo.D3 / 2;
                        _sectionBundleInfo.ResetAllParas(_hdrBaseInfo, _geomBaseInfo);
                    }
                }
            }
            #region 暂时需要导出目前页面的值,并没有进行判断,测试使用
            if (currentStepID == this._stepTreeDockPanel.Step_ID_Hdr_Base_Info)
            {
                if (!SaveParaStep1())
                    return;
            }
            else if (currentStepID == this._stepTreeDockPanel.Step_ID_Section18_Full)
            {
                if (!SaveParaStep2())
                    return;
            }
            else if (currentStepID == this._stepTreeDockPanel.Step_ID_Outflow_Paras)
            {
                if (!SaveParaStep3())
                    return;
            }
            #endregion
            SaveFileDialog dlg = new SaveFileDialog();
            dlg.Title = "导出蜗壳信息";
            dlg.FileName = "蜗壳信息.xml";
@@ -31,19 +66,18 @@
                return;
            new DPumpHydr.WinFrmUI.VoluteXmlParasTranHelper().Save(
                dlg.FileName,
                _hdrBaseInfo,
                _geomBaseInfo,
                _hdrBaseInfo,
                _geomBaseInfo,
                _sectionBundleInfo,
                _outflowType,
                _outflowParas,
                this._bodyThickness);
                this._bodyThickness);
        }
        /// <summary>
        /// 蜗壳参数导入
        /// </summary>
        public void ImportXmlFile()
        {
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "导入蜗壳信息";
            dlg.FileName = "蜗壳信息.xml";
@@ -52,108 +86,83 @@
                return;
            var ret = new DPumpHydr.WinFrmUI.VoluteXmlParasTranHelper().Read(
                dlg.FileName,
                out  _hdrBaseInfo,
                out _hdrBaseInfo,
                out _geomBaseInfo,
                out _sectionBundleInfo,
                out _outflowType,
                out _outflowParas,
                out this._bodyThickness);
            if(ret)
            if (ret)
            {
                this._occDesign2dCtrl.ClearAll();
                this._occDesign3dCtrl.ClearAll();
                #region  第一步 
                if (_hdrBaseInfo != null )
                if (_hdrBaseInfo == null)
                    return;
                if (_ctrlHdrBaseInfo == null)
                {
                    if (_ctrlHdrBaseInfo == null)
                    {
                        _ctrlHdrBaseInfo = new ctrlHdrBaseInfo();
                        _ctrlHdrBaseInfo.Name = "ctrlHdrBaseInfo";
                    }
                    _ctrlHdrBaseInfo.SetBindingData(_hdrBaseInfo);
                    _ctrlHdrBaseInfo.SetBindingData(_geomBaseInfo);
                    _ctrlHdrBaseInfo.SaveHistoryParas(_hdrBaseInfo, _geomBaseInfo);
                    _ctrlHdrBaseInfo = new ctrlHdrBaseInfo();
                    _ctrlHdrBaseInfo.Name = "ctrlHdrBaseInfo";
                }
                _ctrlHdrBaseInfo.SetBindingData(_hdrBaseInfo);
                _ctrlHdrBaseInfo.SetBindingData(_geomBaseInfo);
                _ctrlHdrBaseInfo.SaveHistoryParas(_hdrBaseInfo, _geomBaseInfo);
                _stepTreeDockPanel.SetFocusedNode(this._stepTreeDockPanel.Step_ID_Hdr_Base_Info);
                #endregion
                #region  第2步 断面总览
                if (_sectionBundleInfo != null)
                if (_sectionBundleInfo == null)
                    return;
                CreateSectionStepCtrl();
                _isHaveCreateWaterBody3d = false;
                DockStepParaCtrl(_ctrlSectionBundleInfo);
                if (_ctrlSectionBundleInfo != null)
                {
                    if (_ctrlSectionBundleInfo == null)
                    {
                        _ctrlSectionBundleInfo = new ctrlSectionBundleInfo();
                        _ctrlSectionBundleInfo.Name = "ctrlSectionBaseInfo";
                        _ctrlSectionBundleInfo.OnRefreshShape += RefreshSectShapeWhole18;
                        _ctrlSectionBundleInfo.OnHightLightSectCurve += HightLightSectCurve;
                    }
                    _ctrlSectionBundleInfo.ShowPage(_hdrBaseInfo, _geomBaseInfo,
                        DPumpHydr.ViewModel.eWizardStepDiretion.前进);
                    _ctrlSectionBundleInfo.RefreshAllSectPara(_sectionBundleInfo);
                    RefreshSectShapeWhole18(_sectionBundleInfo);
                    _ctrlSectionBundleInfo.SetBindingData(_sectionBundleInfo);
                }
                _ctrlSectionBundleInfo.ShowPage(_hdrBaseInfo, _geomBaseInfo,
                        DPumpHydr.ViewModel.eWizardStepDiretion.前进, false);
                _ctrlSectionBundleInfo.RefreshAllSectPara(_sectionBundleInfo);
                RefreshSectShapeWhole18(_sectionBundleInfo);
                _stepTreeDockPanel.SetFocusedNode(this._stepTreeDockPanel.Step_ID_Section18_Full);
                #endregion
                #region  出水面类型选择
                if (_outflowType != ViewModel.eOutflowStyle.未知)
                {
                    if (_ctrlSetOutflowType == null)
                    {
                        _ctrlSetOutflowType = new ctrlSetOutflowType();
                        _ctrlSetOutflowType.Name = "ctrlSetOutflowDim";
                    }
                    this._ctrlSetOutflowType.SetBindingData(_outflowType);
                }
                #endregion
                #region  出水面参数
                if (_outflowParas != null)
                {
                    if (_ctrlSetOutflowParas == null)
                    {
                        _ctrlSetOutflowParas = new ctrlSetOutflowParas();
                        _ctrlSetOutflowParas.Name = "ctrlSetOutflowStyle";
                        _ctrlSetOutflowParas.OnRefreshShape2D += RefreshWaterBody2D;
                        _ctrlSetOutflowParas.OnRefreshShape3D += RefreshWaterBody3D;
                        _ctrlSetOutflowParas.InitialParas(_outflowType, _hdrBaseInfo, _geomBaseInfo, _sectionBundleInfo);
                    }
                    //CreateWaterBody2D(_outflowParas);
                    RefreshWaterBody3D(_outflowParas);
                if (_outflowParas == null)
                    return;
                CreateOutflowStepCtrl();
                _isHaveCreateWaterBody3d = false;
                DockStepParaCtrl(_ctrlSetOutflowParas);
                _ctrlSetOutflowParas.Isxml = true;
                InitilOutflowStepCtrl(this._stepTreeDockPanel.Step_ID_Section18_Full);
                    _ctrlSetOutflowParas.SetBindingData(_outflowType,_outflowParas);
                this._occDesign2dCtrl.SetAllSectionCurveVisible(false);
                this._occDesign3dCtrl.SetAllSectionCurveVisible(false);
                    #region  加厚
                    if (_bodyThickness>0)
                    {
                        Rbtn数据导出STP.Visible = true;
                        Rbtn数据导出IGS.Visible = true;
                        if (_ctrlThicknessParas == null)
                        {
                            _ctrlThicknessParas = new ctrlThicknessParas();
                            _ctrlThicknessParas.Name = "ctrlThicknessParas";
                            _ctrlThicknessParas.OnRefreshShape += (houdu) => {
                                this._bodyThickness = houdu;
                                this._occDesign3dCtrl.BuildThicknessBody(houdu);
                            };
                             _ctrlThicknessParas.InitialParas(_bodyThickness);
                            this._occDesign3dCtrl.BuildThicknessBody(_bodyThickness);
                        }
                    }
                    #endregion
                }
                RbtnChk标注.Visible = true;
                _stepTreeDockPanel.SetFocusedNode(this._stepTreeDockPanel.Step_ID_Outflow_Paras);
                #endregion
                #region  加厚
                if (_bodyThickness < 1)
                    return;
                InitilThicknessStepCtrl(this._stepTreeDockPanel.Step_ID_Outflow_Paras, _bodyThickness);
                DockStepParaCtrl(_ctrlThicknessParas);
                _stepTreeDockPanel.SetFocusedNode(this._stepTreeDockPanel.Step_ID_Thickness);
                RbtnChk标注.Visible = true;
                #endregion
                GoNextStep();
            }
        }
        /// <summary>
@@ -173,22 +182,21 @@
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                this._occDesign3dCtrl.ExportThicknessBody(dlg.FileName.Replace(".stp", "_body.stp"), FileType.ESTEPFILE);
                this._occDesign3dCtrl.ExportWaterBodyFile(dlg.FileName.Replace(".stp","_water.stp"), FileType.ESTEPFILE);
                this._occDesign3dCtrl.ExportWaterBodyFile(dlg.FileName.Replace(".stp", "_water.stp"), FileType.ESTEPFILE);
                new DPumpHydr.WinFrmUI.VoluteXmlParasTranHelper().Save(
    dlg.FileName.Replace(".stp", ".xml"),
    _hdrBaseInfo,
    _geomBaseInfo,
    _sectionBundleInfo,
    _outflowType,
    _outflowParas,
    this._bodyThickness);
            }
        }
        /// <summary>
        /// 蜗壳参数导出
        /// </summary>
@@ -214,10 +222,9 @@
    _hdrBaseInfo,
    _geomBaseInfo,
    _sectionBundleInfo,
    _outflowType,
    _outflowParas,
    this._bodyThickness);
            }
            }
        }
    }