From 5043208b24f45b3e3c630a596b9e83373096a78a Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 18 十月 2024 12:47:49 +0800 Subject: [PATCH] 优化计算前提,计算逻辑还需要继续优化 --- WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 100 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 90 insertions(+), 10 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs index b8672da..b1130a6 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs @@ -624,7 +624,7 @@ } var rated_speed = x.RatedN.Value; - var speed_ratio = x.SpeedRatio ?? 1; + var speed_ratio = x.SpeedRatio; var qh_pt_list = qh.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); var qe_pt_list = qe?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); @@ -730,6 +730,87 @@ } private XhsProjectSimulationCalcuCtrl _calcuCtrl = null;//璁$畻鎺т欢 + private SetHydroCalcuPrefixCtrl _calcuPrefixCtrl = null; + + private SetHydroCalcuPrefixCtrl GetCalcuPrefixCtrl() + { + if (_calcuPrefixCtrl == null) + { + _calcuPrefixCtrl = new SetHydroCalcuPrefixCtrl(); + _calcuPrefixCtrl.Dock = DockStyle.Fill; + _calcuPrefixCtrl.InitialData(() => _hydroInfo); + _calcuPrefixCtrl.HydroViewEvent += async (parter) => + { + if (parter == null) + { + return; + } + await _bimfaceCtrl.ZoomAndSelectComponents(new List<string>() { parter.Code }); + }; + _calcuPrefixCtrl.HydroCalcuEvent += async (hydroInfo) => + { + if (hydroInfo == null) + { + return; + } + _checkResult = hydroInfo.Check(); + if (!_checkResult.Succeed) + { + this.controlContainerBottom.Controls.Clear(); + var checkResultCtrl = GetCheckResultCtrl(); + checkResultCtrl.SetBindingData(_checkResult); + this.controlContainerBottom.Controls.Add(checkResultCtrl); + TipFormHelper.ShowWarn("鏍¢獙澶辫触锛岃妫�鏌ュ悗閲嶈瘯"); + return; + } + + var netWork = Yw.Hydro.ParseHelper.ToNetwork(hydroInfo); + _calcuResult = netWork.Calcu(); + if (_calcuResult.Succeed) + { + this.controlContainerBottom.Controls.Clear(); + var parterListCtrl = GetParterListCtrl(); + var calcuResultList = new List<IHydroCalcuResult>(); + _calcuResult.NodeList?.ForEach(x => + { + calcuResultList.Add(new HydroCalcuNodeResult() + { + Code = x.Id, + CalcuPress = x.Press, + CalcuHead = x.Head, + CalcuDemand = x.Demand, + }); + }); + _calcuResult.LinkList?.ForEach(x => + { + calcuResultList.Add(new HydroCalcuLinkResult() + { + Code = x.Id, + CalcuFlow = x.Flow, + CalcuVelocity = x.Velocity, + CalcuHeadLoss = x.Headloss + }); + }); + parterListCtrl.SetBindingData(_hydroInfo, calcuResultList); + parterListCtrl.SetCalcuView(); + this.controlContainerBottom.Controls.Add(parterListCtrl); + this.docPnlBottom.Text = "璁$畻缁撴灉"; + ShowProperty(); + await _bimfaceCtrl?.ShowCalcuCustomLabels(_calcuResult); + TipFormHelper.ShowSucceed("璁$畻鎴愬姛锛�"); + } + else + { + _calcuCtrl.SetBindingData(_calcuResult.FailedList); + this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; + this.docPnlBottom.Text = "璁$畻澶辫触鍘熷洜"; + this.docPnlBottom.Height = 350; + TipFormHelper.ShowError("璁$畻澶辫触"); + } + }; + } + return _calcuPrefixCtrl; + } //姘村姏璁$畻 private void barBtnHydroCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) @@ -738,17 +819,16 @@ { return; } - - this.controlContainerBottom.Controls.Clear(); - var calcuCtrl = GetCalcuCtrl(); - calcuCtrl.SetBindingData(_hydroInfo); - this.controlContainerBottom.Controls.Add(calcuCtrl); - this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; - this.docPnlBottom.Text = "璁$畻鍓嶆彁鏉′欢"; - this.docPnlBottom.Height = 350; + var calcuPrefixCtrl = GetCalcuPrefixCtrl(); + calcuPrefixCtrl.SetBindingData(); + this.controlContainerRight.Controls.Clear(); + this.controlContainerRight.Controls.Add(calcuPrefixCtrl); + this.docPnlRight.Text = "鍓嶆彁鏉′欢"; + this.docPnlRight.Width = SetHydroCalcuPrefixCtrl.ControlMinWidth; + this.docPnlRight.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; } - #endregion 姘村姏璁$畻 + #endregion #region 鏋勪欢鏌ヨ -- Gitblit v1.9.3